9router-imagefix 0.5.136 → 0.5.138
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/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +9 -9
- package/app/.next-cli-build/build-manifest.json +2 -2
- 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 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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.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 +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.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.nft.json +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.nft.json +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.nft.json +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.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.nft.json +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 +1 -1
- 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.nft.json +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.nft.json +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +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.nft.json +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
- 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 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.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.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.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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +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.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.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 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +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.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.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.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +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.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.nft.json +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 +1 -1
- 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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
- 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.nft.json +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.nft.json +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.nft.json +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.nft.json +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 +1 -1
- 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.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 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
- 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/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 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
- 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 +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/automation.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +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 +4 -4
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- 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 +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
- 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 +5 -5
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
- 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 +9 -9
- package/app/.next-cli-build/server/chunks/1281.js +1 -0
- package/app/.next-cli-build/server/chunks/2132.js +1 -1
- package/app/.next-cli-build/server/chunks/2147.js +1 -1
- package/app/.next-cli-build/server/chunks/238.js +1 -0
- 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/{5524.js → 3683.js} +1 -1
- package/app/.next-cli-build/server/chunks/3943.js +1 -1
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/5260.js +1 -0
- package/app/.next-cli-build/server/chunks/5330.js +3 -11
- package/app/.next-cli-build/server/chunks/5335.js +1 -0
- package/app/.next-cli-build/server/chunks/5615.js +1 -1
- package/app/.next-cli-build/server/chunks/5670.js +1 -1
- package/app/.next-cli-build/server/chunks/6155.js +1 -0
- package/app/.next-cli-build/server/chunks/6795.js +1 -0
- package/app/.next-cli-build/server/chunks/6818.js +1 -1
- package/app/.next-cli-build/server/chunks/7616.js +1 -1
- package/app/.next-cli-build/server/chunks/7716.js +9 -1
- package/app/.next-cli-build/server/chunks/8005.js +1 -1
- package/app/.next-cli-build/server/chunks/8157.js +1 -0
- package/app/.next-cli-build/server/chunks/827.js +1 -1
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/8895.js +3 -8
- package/app/.next-cli-build/server/chunks/8907.js +1 -0
- package/app/.next-cli-build/server/chunks/8967.js +1 -1
- package/app/.next-cli-build/server/chunks/9229.js +6 -0
- package/app/.next-cli-build/server/chunks/9609.js +1 -1
- 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.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/static/chunks/{1321-1c530e5975955126.js → 1321-27b1fa843de72660.js} +1 -1
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/4037.js +0 -1
- package/app/.next-cli-build/server/chunks/4663.js +0 -1
- package/app/.next-cli-build/server/chunks/5245.js +0 -1
- package/app/.next-cli-build/server/chunks/576.js +0 -1
- package/app/.next-cli-build/server/chunks/8283.js +0 -1
- package/app/.next-cli-build/server/chunks/8908.js +0 -1
- package/app/.next-cli-build/server/chunks/929.js +0 -1
- /package/app/.next-cli-build/static/{KShBS6I4_7-mtcIrc3qd2 → I6qdfW3CKcF_LGnm4gr0x}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{KShBS6I4_7-mtcIrc3qd2 → I6qdfW3CKcF_LGnm4gr0x}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
I6qdfW3CKcF_LGnm4gr0x
|
|
@@ -118,15 +118,15 @@
|
|
|
118
118
|
"/api/version/update/route": "/api/version/update",
|
|
119
119
|
"/favicon.ico/route": "/favicon.ico",
|
|
120
120
|
"/manifest.webmanifest/route": "/manifest.webmanifest",
|
|
121
|
-
"/api/automation/device/poll/route": "/api/automation/device/poll",
|
|
122
121
|
"/api/automation/connections/route": "/api/automation/connections",
|
|
122
|
+
"/api/automation/device/poll/route": "/api/automation/device/poll",
|
|
123
123
|
"/api/automation/device/start/route": "/api/automation/device/start",
|
|
124
124
|
"/api/automation/export/route": "/api/automation/export",
|
|
125
125
|
"/api/automation/gate/route": "/api/automation/gate",
|
|
126
126
|
"/api/automation/generate-txt/route": "/api/automation/generate-txt",
|
|
127
127
|
"/api/automation/jobs/[id]/route": "/api/automation/jobs/[id]",
|
|
128
|
-
"/api/automation/jobs/route": "/api/automation/jobs",
|
|
129
128
|
"/api/automation/import-lines/route": "/api/automation/import-lines",
|
|
129
|
+
"/api/automation/jobs/route": "/api/automation/jobs",
|
|
130
130
|
"/api/automation/overview/route": "/api/automation/overview",
|
|
131
131
|
"/api/automation/providers/route": "/api/automation/providers",
|
|
132
132
|
"/api/automation/run/route": "/api/automation/run",
|
|
@@ -150,24 +150,24 @@
|
|
|
150
150
|
"/api/models/custom/route": "/api/models/custom",
|
|
151
151
|
"/api/models/disabled/route": "/api/models/disabled",
|
|
152
152
|
"/api/oauth/[provider]/[action]/route": "/api/oauth/[provider]/[action]",
|
|
153
|
-
"/api/oauth/kiro/import-cli-proxy/route": "/api/oauth/kiro/import-cli-proxy",
|
|
154
153
|
"/api/oauth/kiro/auto-import/route": "/api/oauth/kiro/auto-import",
|
|
154
|
+
"/api/oauth/kiro/import-cli-proxy/route": "/api/oauth/kiro/import-cli-proxy",
|
|
155
155
|
"/api/oauth/xiaomi-mimo/login/status/route": "/api/oauth/xiaomi-mimo/login/status",
|
|
156
156
|
"/api/oauth/xiaomi-mimo/login/start/route": "/api/oauth/xiaomi-mimo/login/start",
|
|
157
157
|
"/api/provider-nodes/route": "/api/provider-nodes",
|
|
158
158
|
"/api/providers/[id]/overrides/route": "/api/providers/[id]/overrides",
|
|
159
|
+
"/api/providers/[id]/models/route": "/api/providers/[id]/models",
|
|
159
160
|
"/api/providers/[id]/route": "/api/providers/[id]",
|
|
160
|
-
"/api/providers/suggested-models/route": "/api/providers/suggested-models",
|
|
161
161
|
"/api/providers/client/route": "/api/providers/client",
|
|
162
|
-
"/api/providers/
|
|
162
|
+
"/api/providers/suggested-models/route": "/api/providers/suggested-models",
|
|
163
163
|
"/api/providers/route": "/api/providers",
|
|
164
164
|
"/api/proxy-pools/[id]/route": "/api/proxy-pools/[id]",
|
|
165
165
|
"/api/proxy-pools/[id]/test/route": "/api/proxy-pools/[id]/test",
|
|
166
166
|
"/api/proxy-pools/cloudflare-deploy/route": "/api/proxy-pools/cloudflare-deploy",
|
|
167
167
|
"/api/proxy-pools/deno-deploy/route": "/api/proxy-pools/deno-deploy",
|
|
168
168
|
"/api/proxy-pools/route": "/api/proxy-pools",
|
|
169
|
-
"/api/pxpipe/health/route": "/api/pxpipe/health",
|
|
170
169
|
"/api/proxy-pools/vercel-deploy/route": "/api/proxy-pools/vercel-deploy",
|
|
170
|
+
"/api/pxpipe/health/route": "/api/pxpipe/health",
|
|
171
171
|
"/api/pxpipe/install/route": "/api/pxpipe/install",
|
|
172
172
|
"/api/pxpipe/logs/route": "/api/pxpipe/logs",
|
|
173
173
|
"/api/pxpipe/restart/route": "/api/pxpipe/restart",
|
|
@@ -181,11 +181,11 @@
|
|
|
181
181
|
"/api/translator/console-logs/stream/route": "/api/translator/console-logs/stream",
|
|
182
182
|
"/api/usage/[connectionId]/claude-reset/route": "/api/usage/[connectionId]/claude-reset",
|
|
183
183
|
"/api/usage/[connectionId]/codex-reset-credits/route": "/api/usage/[connectionId]/codex-reset-credits",
|
|
184
|
-
"/api/usage/backup/route": "/api/usage/backup",
|
|
185
184
|
"/api/usage/[connectionId]/route": "/api/usage/[connectionId]",
|
|
185
|
+
"/api/usage/backup/route": "/api/usage/backup",
|
|
186
186
|
"/api/usage/stats/route": "/api/usage/stats",
|
|
187
|
-
"/api/v1/audio/transcriptions/route": "/api/v1/audio/transcriptions",
|
|
188
187
|
"/api/usage/stream/route": "/api/usage/stream",
|
|
188
|
+
"/api/v1/audio/transcriptions/route": "/api/v1/audio/transcriptions",
|
|
189
189
|
"/api/v1/models/route": "/api/v1/models",
|
|
190
190
|
"/api/v1beta/models/[...path]/route": "/api/v1beta/models/[...path]",
|
|
191
191
|
"/callback/page": "/callback",
|
|
@@ -213,8 +213,8 @@
|
|
|
213
213
|
"/(dashboard)/dashboard/translator/page": "/dashboard/translator",
|
|
214
214
|
"/(dashboard)/dashboard/usage/page": "/dashboard/usage",
|
|
215
215
|
"/(dashboard)/dashboard/console-log/page": "/dashboard/console-log",
|
|
216
|
-
"/(dashboard)/dashboard/profile/page": "/dashboard/profile",
|
|
217
216
|
"/(dashboard)/dashboard/providers/page": "/dashboard/providers",
|
|
217
|
+
"/(dashboard)/dashboard/profile/page": "/dashboard/profile",
|
|
218
218
|
"/(dashboard)/dashboard/proxy-pools/page": "/dashboard/proxy-pools",
|
|
219
219
|
"/(dashboard)/dashboard/providers/[id]/page": "/dashboard/providers/[id]"
|
|
220
220
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
],
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"lowPriorityFiles": [
|
|
7
|
-
"static/
|
|
8
|
-
"static/
|
|
7
|
+
"static/I6qdfW3CKcF_LGnm4gr0x/_buildManifest.js",
|
|
8
|
+
"static/I6qdfW3CKcF_LGnm4gr0x/_ssgManifest.js"
|
|
9
9
|
],
|
|
10
10
|
"rootMainFiles": [
|
|
11
11
|
"static/chunks/webpack-8404e72c76160a5e.js",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=8593,a.ids=[8593],a.modules={643:a=>{"use strict";a.exports=require("node:perf_hooks")},1708:a=>{"use strict";a.exports=require("node:process")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},7066:a=>{"use strict";a.exports=require("node:tty")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{"use strict";a.exports=require("dns")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},32467:a=>{"use strict";a.exports=require("node:http2")},33279:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>w,handler:()=>y,routeModule:()=>x});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,57529))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),t=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),u={children:["",{children:["(dashboard)",{children:["dashboard",{children:["automation",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,99947))),"C:\\Users\\Developer\\9router-fix\\src\\app\\(dashboard)\\dashboard\\automation\\page.js"]}]},{"global-error":[t,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[s,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"C:\\Users\\Developer\\9router-fix\\src\\app\\(dashboard)\\layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"C:\\Users\\Developer\\9router-fix\\src\\app\\layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,v=(0,e.H)({tree:u,page:"/(dashboard)/dashboard/automation/page",pathname:"/dashboard/automation",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),w=v.__next_app__,x=v.routeModule,y=v.handler},33873:a=>{"use strict";a.exports=require("path")},34589:a=>{"use strict";a.exports=require("node:assert")},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40610:a=>{"use strict";a.exports=require("node:dns")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},51559:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>L});var d=c(48249),e=c(67484),f=c(50412);function g({onUnlock:a}){let[b,c]=(0,e.useState)(""),[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(0),n=async d=>{if(d.preventDefault(),b&&!j){k(!0),i("");try{let d=await fetch("/api/automation/gate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:b})}),e=await d.json().catch(()=>({}));if(!d.ok){i(e?.error||`Gagal membuka (HTTP ${d.status})`),c(""),m(a=>a+1);return}a()}catch(a){i(a.message||"Tidak bisa menghubungi server")}finally{k(!1)}}};return(0,d.jsxs)("div",{className:"mx-auto flex w-full max-w-md flex-col gap-4 py-10",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[22px] text-primary","aria-hidden":"true",children:"lock"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-lg font-semibold text-text-main",children:"Automation"}),(0,d.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,d.jsxs)("form",{onSubmit:n,className:"flex flex-col gap-3",children:[(0,d.jsx)(f.pd,{label:"Password",id:"automation-password",type:"password",value:b,onChange:a=>c(a.target.value),placeholder:"••••••••",autoComplete:"off",disabled:j,autoFocus:!0,"aria-invalid":h?"true":void 0,"aria-describedby":h?"automation-password-error":void 0},l),h?(0,d.jsx)("p",{id:"automation-password-error",role:"alert",className:"text-xs font-medium text-error",children:h}):null,(0,d.jsx)(f.$n,{type:"submit",disabled:j||!b,children:j?"Memeriksa…":"Buka"})]})]})}function h({onPick:a}){let[b,c]=(0,e.useState)(null),[f,g]=(0,e.useState)("");if(f)return(0,d.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:f});if(!b)return(0,d.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(a=>(0,d.jsx)("div",{className:"h-32 animate-pulse rounded-[14px] bg-border-subtle/60"},a))});let j=b.reduce((a,b)=>a+b.counts.total,0);return(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-text-main",children:"Pilih provider"}),(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:[j," akun di ",b.length," provider. Membuka salah satu akan menampilkan fitur yang tersedia untuknya."]})]}),(0,d.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:b.map(b=>(0,d.jsxs)("button",{type:"button",onClick:()=>a(b.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,d.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:"truncate text-sm font-semibold text-text-main",children:b.label}),(0,d.jsx)("div",{className:"truncate font-mono text-[10px] text-text-subtle",children:b.source})]}),(0,d.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,d.jsxs)("div",{className:"flex items-baseline gap-3",children:[(0,d.jsx)("span",{className:"tabular-nums text-2xl font-semibold text-text-main",children:b.counts.total}),(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"akun"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 text-xs",children:[(0,d.jsxs)("span",{className:"text-success",children:[b.counts.active," aktif"]}),b.counts.problem>0?(0,d.jsxs)("span",{className:"text-error",children:[b.counts.problem," bermasalah"]}):null,b.counts.unknown>0?(0,d.jsxs)("span",{className:"text-text-subtle",children:[b.counts.unknown," perlu ditinjau"]}):null]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-1",children:[b.kinds.quota?(0,d.jsx)(i,{children:"Cek kuota"}):null,b.kinds.test?(0,d.jsx)(i,{children:"Tes koneksi"}):null,b.kinds.prompt?(0,d.jsx)(i,{children:"Tes prompt"}):null,"device"===b.kinds.calls?(0,d.jsx)(i,{children:"Login device"}):null]})]},b.id))})]})}function i({children:a}){return(0,d.jsx)("span",{className:"rounded-md bg-bg-subtle px-1.5 py-0.5 text-[10px] font-medium text-text-muted",children:a})}let j="automation:activeJob",k={quota:"Cek kuota",test:"Test koneksi",delete:"Hapus akun",refresh:"Refresh token",verify:"Verifikasi key",deactivate:"Nonaktifkan akun"};function l({job:a}){if(!a||"idle"===a.status)return null;let b=a.total>0?Math.round(a.done/a.total*100):0,c="running"===a.status;return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,d.jsxs)("p",{className:"text-sm font-medium text-text-main",children:[k[a.kind]||a.label||"Memproses",(0,d.jsxs)("span",{className:"ml-2 tabular-nums text-text-muted",children:[a.done,"/",a.total]})]}),c?(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",onClick:a.cancel,children:"Hentikan"}):(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"cancelled"===a.status?"Dihentikan":"Selesai"})]}),(0,d.jsx)("div",{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":b,"aria-label":"Kemajuan",className:"h-1.5 w-full overflow-hidden rounded-full bg-surface-3",children:(0,d.jsx)("div",{className:"h-full rounded-full bg-primary transition-[width] duration-300 ease-out",style:{width:`${b}%`}})}),(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:[(0,d.jsxs)("span",{className:"text-success",children:[a.ok," berhasil"]}),a.failed>0?(0,d.jsxs)(d.Fragment,{children:[" \xb7 ",(0,d.jsxs)("span",{className:"text-error",children:[a.failed," gagal"]})]}):null,a.error?` \xb7 ${a.error}`:""]})]})}function m({connection:a,onClose:b}){let[c,g]=(0,e.useState)("Balas dalam satu kalimat singkat: siapa kamu dan model apa ini?"),[h,i]=(0,e.useState)(a?.model||""),[j,k]=(0,e.useState)(200),[l,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(""),s=async()=>{n(!0),r(""),p(null);try{let b=await fetch("/api/automation/test-prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({connectionId:a.id,prompt:c,model:h||void 0,maxTokens:Number(j)||200})}),d=await b.json().catch(()=>({}));if(!b.ok)return void r(d?.error||`HTTP ${b.status}`);p(d)}catch(a){r(a.message||"Permintaan gagal")}finally{n(!1)}};return(0,d.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:a=>{a.target===a.currentTarget&&b()},children:(0,d.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,d.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Tes prompt"}),(0,d.jsx)("p",{className:"mt-0.5 truncate font-mono text-xs text-text-muted",children:a.email||a.name||a.id})]}),(0,d.jsx)("button",{type:"button",onClick:b,"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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"close"})})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(f.pd,{label:"Model (opsional)",value:h,onChange:a=>i(a.target.value),placeholder:"kosongkan = model bawaan"})}),(0,d.jsx)("div",{className:"sm:w-32",children:(0,d.jsx)(f.pd,{label:"Max token",type:"number",value:j,onChange:a=>k(a.target.value)})})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("label",{htmlFor:"tp-prompt",className:"text-sm font-medium text-text-main",children:"Prompt"}),(0,d.jsx)("textarea",{id:"tp-prompt",value:c,onChange:a=>g(a.target.value),disabled:l,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,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(f.$n,{onClick:s,disabled:l||!c.trim(),loading:l,icon:"send",children:"Kirim"}),o?(0,d.jsxs)("span",{className:"tabular-nums text-xs text-text-muted",children:[o.elapsedMs," ms \xb7 ",o.servedModel||"—"]}):null]}),q?(0,d.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:q}):null,o&&!o.ok?(0,d.jsxs)("div",{className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-error",children:["HTTP ",o.status]}),(0,d.jsx)("p",{className:"mt-1 break-words text-xs text-text-main",children:o.error})]}):null,o?.ok?(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("div",{className:"whitespace-pre-wrap break-words rounded-[10px] border border-border bg-surface p-3 text-sm text-text-main",children:o.reply||"(balasan kosong)"}),o.usage?(0,d.jsx)("p",{className:"tabular-nums text-xs text-text-muted",children:[null!=o.usage.prompt_tokens?`${o.usage.prompt_tokens} in`:null,null!=o.usage.completion_tokens?`${o.usage.completion_tokens} out`:null].filter(Boolean).join(" \xb7 ")}):null]}):null]})})}var n=c(50377);function o(a){let b=a?.providerSpecificData?.nodeName;return b&&b!==a.provider&&!/^openai-compatible-chat-/.test(b)?b:a?.provider||a?.providerLabel||"?"}let p={mati:"MATI (kredensial ditolak)",limit:"LIMIT (429 laju)",error:"ERROR (jaringan/server)",expired:"EXPIRED (token kedaluwarsa)"};function q({providerId:a,info:b,rows:c=[],visible:e=[],scanResults:g=[],running:h,runOp:i,onDelete:j,onChanged:k}){let l=b?.kinds||{};return l.selective||l.refresh||l.verify||l.cleanup||l.patternDelete||l.blocked||l.expiryOps||l.inactive||l.deviceBulk||b?.script||"antigravity"===a||"kiro"===a?(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-text-subtle",children:["Operasi ",b?.label||a]}),b?.script?(0,d.jsx)(r,{info:b}):null,l.deviceBulk?(0,d.jsx)(s,{providerId:a,onChanged:k}):null,l.selective?(0,d.jsx)(t,{rows:e.length?e:c,running:h,runOp:i}):null,"antigravity"===a?(0,d.jsx)(v,{scanResults:g,running:h,onDelete:j}):null,"kiro"===a?(0,d.jsx)(w,{scanResults:g}):null,l.refresh?(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"autorenew",disabled:h||!c?.length,onClick:()=>i("refresh").then(a=>a&&k?.()),title:"Perbarui access token semua akun provider ini tanpa login ulang (menu 6 skrip cline)",children:"Refresh token"}),(0,d.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Tanpa login ulang; token mati dilaporkan per akun."})]}):null,l.verify?(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"verified",disabled:h||!c?.length,onClick:()=>i("verify"),title:"Uji setiap key dengan inferensi nyata — 401/402/429 dibedakan (check_key_quota_live)",children:"Verifikasi key"}),(0,d.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Inferensi nyata per key: valid / ditolak / habis / laju."})]}):null,l.cleanup?(0,d.jsx)(y,{rows:c,running:h,onDelete:j}):null,l.blocked?(0,d.jsx)(z,{rows:c,running:h,onDelete:j}):null,l.patternDelete?(0,d.jsx)(A,{rows:e.length?e:c,running:h,onDelete:j}):null,l.expiryOps?(0,d.jsx)(B,{rows:c,running:h,runOp:i,onDelete:j,onChanged:k}):null,l.inactive?(0,d.jsx)(C,{rows:c,running:h,onDelete:j}):null,(0,d.jsx)(D,{providerId:a,accountsFile:b?.script?.accountsFile})]}):null}function r({info:a}){let b=a?.script,[c,g]=(0,e.useState)(!1),{copied:h,copy:i}=(0,n.C)();return b?(0,d.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",open:!0,children:[(0,d.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,d.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,d.jsxs)("ol",{className:"flex list-decimal flex-col gap-1 pl-5 text-[11px] text-text-muted",children:[(0,d.jsxs)("li",{children:["Buat berkas ",(0,d.jsx)("code",{className:"font-mono text-text-main",children:b.accountsFile})," di bawah (paste email + 1 password → Unduh) — bentuk ",(0,d.jsx)("code",{className:"font-mono text-text-main",children:b.format}),"."]}),(0,d.jsxs)("li",{children:["Jalankan di terminal, di folder scriptnya (",(0,d.jsx)("code",{className:"font-mono text-text-main",children:"C:\\Users\\Developer\\cliproxyapi"}),"):"]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 rounded-lg border border-border bg-surface px-2 py-1.5",children:[(0,d.jsx)("code",{className:"min-w-0 flex-1 break-all font-mono text-[11px] text-text-main",children:b.command}),(0,d.jsxs)("button",{type:"button",onClick:()=>i(b.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,d.jsx)("span",{className:"material-symbols-outlined text-[13px]","aria-hidden":"true",children:"script-cmd"===h?"check":"content_copy"}),"script-cmd"===h?"Tersalin":"Salin"]})]}),b.extra?(0,d.jsxs)("p",{className:"text-[11px] text-text-subtle",children:["Flag berguna: ",(0,d.jsx)("code",{className:"font-mono",children:b.extra})]}):null,(0,d.jsx)("ol",{className:"flex list-decimal flex-col gap-1 pl-5 text-[11px] text-text-muted",start:3,children:(0,d.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,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"refresh",onClick:()=>{window.location.reload(),g(!0)},children:c?"Memuat…":"Muat ulang"})})]})]}):null}function s({providerId:a,onChanged:b}){let[c,g]=(0,e.useState)(3),[h,i]=(0,e.useState)("idle"),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)([]),[o,p]=(0,e.useState)(0),[q,r]=(0,e.useState)(""),[t,u]=(0,e.useState)(()=>Date.now()),v=(0,e.useRef)(0),w=(0,e.useRef)(!1),x=(0,e.useRef)(null),{copied:y,copy:z}=(0,n.C)(),A=l.length+o+1,B=async()=>{let b=await fetch("/api/automation/device/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a})}),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c?.error||`HTTP ${b.status}`);let d=c.verificationUriComplete||c.verificationUri;return d&&window.open(d,"_blank","noopener,noreferrer"),{deviceCode:c.deviceCode,codeVerifier:c.codeVerifier,extraData:c.extraData,userCode:c.userCode,verificationUri:c.verificationUri,verificationUriComplete:c.verificationUriComplete,interval:c.interval||5,deadline:Date.now()+(c.expiresIn?1e3*c.expiresIn:9e5)}},C=(c,d)=>new Promise(e=>{let f=null,g=a=>{x.current&&clearTimeout(x.current),e(a)},h=async()=>{if(w.current||v.current!==c)return g("stopped");if(!f){try{f=await B()}catch(a){if(v.current!==c||w.current)return g("stopped");return r(a?.message||"Gagal meminta kode"),g("stopped")}if(v.current!==c||w.current)return g("stopped");k({...f,index:d}),r("")}let e={};try{let b=await fetch("/api/automation/device/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a,deviceCode:f.deviceCode,codeVerifier:f.codeVerifier,extraData:f.extraData})});e=await b.json().catch(()=>({}))}catch{if(v.current!==c||w.current)return g("stopped");x.current=setTimeout(h,5e3);return}return v.current!==c||w.current?g("stopped"):e.success?(m(a=>[...a,e.connection]),b?.(),g("ok")):e.pending?Date.now()>f.deadline?(r("Waktu habis — kode kedaluwarsa. Antrean berhenti di sini."),g("stopped")):void(x.current=setTimeout(h,1e3*(f.interval||5))):(r(e.errorDescription||e.error||"Gagal menukar token"),g("stopped"))};h()}),D=async()=>{let a=Math.max(1,Math.min(50,Number(c)||1)),b=v.current+1;v.current=b,w.current=!1,m([]),p(0),r(""),k(null),i("waiting");for(let c=0;c<a&&"ok"===await C(b,c+1);c++);k(null),i("done")},E="waiting"===h,F=j?.deadline?Math.max(0,Math.floor((j.deadline-t)/1e3)):0;return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Tambah bulk via device",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"sepenuhnya via web — kamu yang menyetujui di browser"})]}),"idle"===h||"done"===h?(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,d.jsx)("div",{className:"w-32",children:(0,d.jsx)(f.pd,{label:"Jumlah akun",type:"number",value:c,onChange:a=>g(a.target.value),disabled:E})}),(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"login",disabled:E,onClick:D,children:"Mulai antrean"}),l.length>0||o>0?(0,d.jsxs)("span",{className:"pb-2 text-[11px] tabular-nums text-text-muted",children:["Terakhir: ",l.length," tersimpan",o?`, ${o} dilewati`:"","."]}):null]}):null,q?(0,d.jsx)("p",{role:"alert",className:"text-[11px] font-medium text-error",children:q}):null,E&&j?(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-lg border border-border bg-surface p-3",children:[(0,d.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:["Akun ",j.index||A," — setujui di browser, lalu otomatis lanjut.",F>0?` Kode kedaluwarsa dalam ${Math.floor(F/60)}:${String(F%60).padStart(2,"0")}.`:""]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.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:j.userCode||"—"}),(0,d.jsxs)("button",{type:"button",onClick:()=>z(j.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,d.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"bulk-code"===y?"check":"content_copy"}),"bulk-code"===y?"Tersalin":"Salin"]}),j.verificationUri?(0,d.jsx)("a",{href:j.verificationUriComplete||j.verificationUri,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary underline decoration-dotted underline-offset-2",children:"Buka verifikasi"}):null]}),(0,d.jsxs)("p",{className:"flex items-center gap-2 text-[11px] text-text-muted",children:[(0,d.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-primary","aria-hidden":"true"}),"Menunggu persetujuan… (tab verifikasi sudah dibuka otomatis)"]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",onClick:()=>{v.current+=1,x.current&&clearTimeout(x.current),p(a=>a+1),k(null),r(""),(async()=>{let a=v.current,b=l.length+o+1;"ok"!==await C(a,b)&&(k(null),i("done"))})()},children:"Lewati akun ini"}),(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",onClick:()=>{w.current=!0,v.current+=1,x.current&&clearTimeout(x.current),k(null),i("done")},children:"Hentikan antrean"})]})]}):null,"done"!==h||E?null:(0,d.jsxs)("p",{className:"rounded-lg border border-success/20 bg-success/10 px-3 py-2 text-xs font-medium text-success",children:["Selesai: ",l.length," akun tersimpan",o?`, ${o} dilewati`:"",". Tabel di bawah sudah dimuat ulang."]})]})}function t({rows:a,running:b,runOp:c}){let[g,h]=(0,e.useState)(""),[i,j]=(0,e.useState)(""),k=(0,e.useMemo)(()=>g.trim()?function(a,b){let c=Array.isArray(a)?a:[],d=String(b||"").trim().toLowerCase();if(!d||"all"===d)return c;let e=new Set;for(let a of d.split(",").map(a=>a.trim()).filter(Boolean))if(a.includes("-")){let[b,d]=a.split("-",2).map(a=>Number(a.trim()));if(!Number.isFinite(b)||!Number.isFinite(d))continue;let f=Math.max(1,Math.min(b,d)),g=Math.min(c.length,Math.max(b,d));for(let a=f;a<=g;a++)e.add(a-1)}else{let b=Number(a);Number.isFinite(b)&&b>=1&&b<=c.length&&e.add(b-1)}return[...e].sort((a,b)=>a-b).map(a=>c[a])}(a,g):null,[a,g]),l=a=>{if(j(""),!g.trim())return void j("Isi dulu nomornya — kosong berarti semua (pakai tombol di atas).");let b=(k||[]).map(a=>a.id);b.length?c(a,{ids:b}):j("Tidak ada nomor valid yang cocok.")};return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Cek akun tertentu",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5 skrip: nomor, koma, rentang, atau all"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(f.pd,{value:g,onChange:a=>h(a.target.value),placeholder:"mis. 50 \xb7 1, 5, 12 \xb7 1-10 \xb7 all",disabled:b})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",disabled:b||!a?.length,onClick:()=>l("quota"),children:"Kuota pilihan"}),(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",disabled:b||!a?.length,onClick:()=>l("test"),children:"Tes pilihan"})]})]}),k?(0,d.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:[k.length," dari ",a.length," akun cocok."]}):null,i?(0,d.jsx)("p",{role:"alert",className:"text-[11px] font-medium text-error",children:i}):null]})}let u=[{value:"claude",label:"Claude & GPT 0%"},{value:"gemini",label:"Gemini 0%"},{value:"both",label:"Keduanya 0%"}];function v({scanResults:a,running:b,onDelete:c}){let[g,h]=(0,e.useState)("both"),i=(0,e.useMemo)(()=>(function(a,b){let c=[];for(let d of Array.isArray(a)?a:[]){if(!d)continue;let a=d.groups||{},e="number"==typeof a.claudeGpt&&a.claudeGpt<1,f="number"==typeof a.gemini&&a.gemini<1;("claude"===b?e:"gemini"===b?f:e&&f)&&c.push({...d,deleteReason:"claude"===b?"Claude & GPT habis (< 1%)":"gemini"===b?"Gemini habis (< 1%)":"Keduanya habis (< 1%)"})}return c})(a,g),[a,g]);if(!a?.length)return null;let j=u.find(a=>a.value===g)?.label||g;return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus kuota 0% per grup",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 7 skrip ag — dari hasil pindaian terakhir"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("div",{className:"flex gap-1",role:"group","aria-label":"Kriteria grup",children:u.map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>h(a.value),"aria-pressed":g===a.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 ${g===a.value?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:a.label},a.value))}),(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b||!i.length,onClick:()=>{confirm(`Hapus permanen ${i.length} akun (${j})?`)&&c(i.map(a=>a.id))},children:["Hapus ",i.length," akun"]})]})]})}function w({scanResults:a}){let b=(0,e.useMemo)(()=>{let b=(a||[]).filter(a=>a?.pool&&Number.isFinite(a.pool.total)&&a.pool.total>0);if(!b.length)return null;let c=b.reduce((a,b)=>a+b.pool.used,0),d=b.reduce((a,b)=>a+b.pool.total,0);return{used:c,total:d,remaining:Math.max(0,d-c),accounts:b.length}},[a]);if(!b)return null;let c=b.total>0?Math.round(b.remaining/b.total*100):0;return(0,d.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,d.jsx)("strong",{children:b.remaining.toLocaleString("en-US")})," / ",b.total.toLocaleString("en-US")," tersisa",(0,d.jsxs)("span",{className:"ml-2 text-text-muted",children:["(",c,"% \xb7 ",b.accounts," akun terbaca)"]})]})}let x=["mati","limit","error","expired"];function y({rows:a,running:b,onDelete:c}){let[g,h]=(0,e.useState)("mati"),i=(0,e.useMemo)(()=>(function(a,b,c=Date.now()){let d=[];for(let e of a||[])(function(a,b=Date.now()){if(!a)return null;let c=a.expiresAt?Date.parse(a.expiresAt):NaN;return Number.isFinite(c)&&c<=b?"expired":"invalid"===a.errorState?"mati":"rate_limited"===a.errorState?"limit":"transient"===a.errorState||"other"===a.errorState?"error":null})(e,c)===b&&d.push({...e,id:e.id,email:e.email,name:e.name,provider:o(e),state:b,deleteReason:p[b]||b});return d})(a,g),[a,g]);return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Bersihkan per kategori",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5 skrip cline — dibaca dari daftar akun"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("div",{className:"flex flex-wrap gap-1",role:"group","aria-label":"Kategori cline",children:x.map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>h(a),"aria-pressed":g===a,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 ${g===a?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:p[a]},a))}),(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b||!i.length,onClick:()=>{confirm(`Hapus permanen ${i.length} akun kategori ${p[g]}?`)&&c(i.map(a=>a.id))},children:["Hapus ",i.length," akun"]})]})]})}function z({rows:a,running:b,onDelete:c}){let g=(0,e.useMemo)(()=>(a||[]).filter(a=>{let b=String(a.lastError||"").toLowerCase();return/spending.?limit|personal-team-blocked|team.?blocked|\bblocked\b/.test(b)||"depleted"===a.errorState}),[a]);return g.length?(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus akun BLOCKED",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 6 skrip grok — tim diblokir / spending-limit / kuota habis"})]}),(0,d.jsx)("div",{children:(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b,onClick:()=>{confirm(`Hapus permanen ${g.length} akun BLOCKED?`)&&c(g.map(a=>a.id))},children:["Hapus ",g.length," akun"]})})]}):null}function A({rows:a,running:b,onDelete:c}){let[g,h]=(0,e.useState)(""),i=(0,e.useMemo)(()=>{let b=g.trim().toLowerCase();return b?(a||[]).filter(a=>[a.email,a.name,a.id].some(a=>String(a||"").toLowerCase().includes(b))):null},[a,g]);return a?.length?(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus by-pattern",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 8 skrip grok — substring email/nama"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(f.pd,{value:g,onChange:a=>h(a.target.value),placeholder:"mis. @gmaoiil.com",disabled:b})}),(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b||!i?.length,onClick:()=>{!i?.length||confirm(`Hapus permanen ${i.length} akun yang cocok "${g.trim()}"?`)&&(c(i.map(a=>a.id)),h(""))},children:["Hapus",i?.length?` ${i.length}`:""," akun"]})]}),i?(0,d.jsxs)("div",{className:"text-[11px] text-text-muted",children:[(0,d.jsxs)("p",{className:"tabular-nums",children:[i.length," cocok."]}),i.slice(0,10).map(a=>(0,d.jsx)("p",{className:"truncate font-mono",children:a.email||a.name||a.id},a.id)),i.length>10?(0,d.jsxs)("p",{children:["…dan ",i.length-10," lainnya."]}):null]}):null]}):null}function B({rows:a,running:b,runOp:c,onDelete:g,onChanged:h}){let[i,j]=(0,e.useState)(0),k=(0,e.useMemo)(()=>(function(a,{hoursAhead:b=0,nowMs:c=Date.now()}={}){let d=[];for(let e of a||[]){if(!e||!1===e.isActive)continue;let a=e.expiresAt??e?.data?.expiresAt??e?.providerSpecificData?.expiresAt;if(null==a||""===a||"None"===a||"null"===a)continue;let f=Date.parse(a);if(!Number.isFinite(f))continue;let g=f-c;g<=36e5*b&&d.push({...e,id:e.id,email:e.email,name:e.name,provider:o(e),state:g<=0?"expired":"expiring",expiresAt:new Date(f).toISOString(),remainingMs:g,deleteReason:g<=0?"Masa berlaku habis":"Segera kedaluwarsa"})}return d.sort((a,b)=>a.remainingMs-b.remainingMs),d})(a,{hoursAhead:Number(i)||0}),[a,i]);return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Kedaluwarsa",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5-6 skrip tokenharbor — gagal parse = permanen"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,d.jsx)("div",{className:"w-32",children:(0,d.jsx)(f.pd,{label:"Lihat N jam ke depan",type:"number",value:i,onChange:a=>j(a.target.value),disabled:b})}),(0,d.jsxs)("span",{className:"pb-2 text-[11px] tabular-nums text-text-muted",children:[k.length," akun",Number(i)>0?` (kedaluwarsa + ${i}j ke depan)`:" kedaluwarsa","."]})]}),k.length>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("ul",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:[k.slice(0,20).map(a=>(0,d.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px]",children:[(0,d.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:a.email||a.name||a.id}),(0,d.jsx)("span",{className:"shrink-0 tabular-nums text-text-muted",children:function(a){if(a<=0)return"kedaluwarsa";let b=Math.floor(a/6e4);if(b<60)return`${b}m lagi`;let c=Math.floor(b/60);return c<48?`${c}j lagi`:`${Math.floor(c/24)}h lagi`}(a.remainingMs)})]},a.id)),k.length>20?(0,d.jsxs)("li",{className:"text-[11px] text-text-subtle",children:["…dan ",k.length-20," lainnya."]}):null]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsxs)(f.$n,{size:"sm",variant:"secondary",icon:"pause_circle",disabled:b,onClick:()=>c("deactivate",{ids:k.map(a=>a.id)}).then(a=>a&&h?.()),title:"UPDATE isActive=0 — perilaku default skrip; baris tetap ada dan bisa diaktifkan lagi",children:["Nonaktifkan ",k.length]}),(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b,onClick:()=>{confirm(`Hapus permanen ${k.length} akun kedaluwarsa?`)&&g(k.map(a=>a.id))},title:"Hapus baris permanen — --delete-expired di skrip",children:["Hapus ",k.length]})]})]}):null]})}function C({rows:a,running:b,onDelete:c}){let[g,h]=(0,e.useState)(!1),i=(0,e.useMemo)(()=>(function(a){let b=[];for(let c of a||[]){if(!c||!1!==c.isActive)continue;let a=function(a){let b=String(a?.lastError||""),c=Number(a?.errorCode);if(/invalid_grant|revoked/i.test(b))return"invalid_grant";let d=/domain_dead:([^\s,;]+)/i.exec(b);return d?`domain_dead:${d[1]}`:401===c||/\b401\b/.test(b)?"auth_401":a?.testStatus==="error"||c>=400?"error_status":b?"lainnya":"tanpa_alasan"}(c);b.push({...c,id:c.id,email:c.email,name:c.name,provider:o(c),state:"inactive",inactiveReason:a,deleteReason:`Nonaktif (${a})`})}return b})(a),[a]),j=(0,e.useMemo)(()=>g?function(a){let b={};for(let c of a||[]){let a=String(c?.email||""),d=a.includes("@")?a.split("@").pop().toLowerCase():"(tanpa email)",e=b[d]||={domain:d,total:0,active:0,inactive:0};e.total++,!1===c.isActive?e.inactive++:e.active++}let c=Object.values(b).sort((a,b)=>b.total-a.total);for(let a of c)a.dead=a.total>0&&0===a.active;return c}(a):[],[g,a]);return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Akun nonaktif",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 12 skrip ag — dry-run dulu, hapus sesudahnya"})]}),(0,d.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:[i.length," nonaktif dari ",a?.length||0," akun. Alasan per akun terlihat di bawah."]}),i.length>0?(0,d.jsxs)("ul",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:[i.slice(0,20).map(a=>(0,d.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px]",children:[(0,d.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:a.email||a.name||a.id}),(0,d.jsx)("span",{className:"shrink-0 font-mono text-text-subtle",children:a.inactiveReason})]},a.id)),i.length>20?(0,d.jsxs)("li",{className:"text-[11px] text-text-subtle",children:["…dan ",i.length-20," lainnya."]}):null]}):null,(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",onClick:()=>h(a=>!a),"aria-expanded":g,children:g?"Sembunyikan":"Sebaran domain"}),(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b||!i.length,onClick:()=>{confirm(`Hapus permanen ${i.length} akun nonaktif?`)&&c(i.map(a=>a.id))},children:["Hapus ",i.length," nonaktif"]})]}),g?(0,d.jsx)("ul",{className:"flex flex-col gap-1",children:j.map(a=>(0,d.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px] tabular-nums",children:[(0,d.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:a.domain}),(0,d.jsxs)("span",{className:"shrink-0 text-text-muted",children:[a.total," akun \xb7 ",a.active," aktif",a.dead?" \xb7 domain mati total":""]})]},a.domain))}):null]})}function D({providerId:a,accountsFile:b}){let[c,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(""),j="cline"===a||"kiro"===a||"bai"===a?"|":":",k=(0,e.useMemo)(()=>{let a=new Set,b=[];for(let d of c.split("\n")){let c=d.trim();if(!c||!c.includes("@"))continue;let e=c.toLowerCase();a.has(e)||(a.add(e),b.push(`${c}${j}${h}`))}return b},[c,h,j]);return(0,d.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",children:[(0,d.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,d.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,d.jsxs)("p",{className:"text-[11px] text-text-muted",children:["Keluaran ",(0,d.jsxs)("code",{className:"font-mono",children:["email",j,"password"]})," per baris →"," ",(0,d.jsx)("code",{className:"font-mono",children:b||`accounts_${a||"bulk"}.txt`})," — bentuk yang dimakan skrip tambah-akun. Tidak dikirim ke mana pun; berkas dibuat di browser."]}),(0,d.jsx)("textarea",{value:c,onChange:a=>g(a.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,d.jsx)(f.pd,{label:"Satu password untuk semua",type:"text",value:h,onChange:a=>i(a.target.value),placeholder:"password seragam"}),(0,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsxs)(f.$n,{size:"sm",variant:"secondary",icon:"description",disabled:!k.length||!h,onClick:()=>{if(!k.length||!h)return;let c=new Blob([k.join("\n")+"\n"],{type:"text/plain; charset=utf-8"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,e.download=b||`accounts_${a||"bulk"}.txt`,document.body.appendChild(e),e.click(),document.body.removeChild(e),URL.revokeObjectURL(d)},children:["Unduh ",k.length," baris"]})})]})]})}let E=[{value:"all",label:"Semua"},{value:"active",label:"Aktif"},{value:"problem",label:"Bermasalah"}];function F({providerId:a,onBack:b}){let[c,g]=(0,e.useState)(null),[h,i]=(0,e.useState)(null),[k,n]=(0,e.useState)(""),[o,p]=(0,e.useState)("all"),[r,s]=(0,e.useState)(()=>new Set),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(""),[x,y]=(0,e.useState)(0),[z,A]=(0,e.useState)(null),B=function(){let[a,b]=(0,e.useState)(()=>null),[c,d]=(0,e.useState)({status:"idle",results:[],done:0,total:0});(0,e.useRef)(0);let f=(0,e.useCallback)((a,c={})=>{localStorage.setItem(j,a),d({id:a,status:"running",results:[],done:0,total:c.total??0,ok:0,failed:0,kind:c.kind??null,label:c.label??""}),b(b=>({id:a,seq:(b?.seq??0)+1}))},[]),g=(0,e.useCallback)(async()=>{c.id&&await fetch(`/api/automation/jobs/${c.id}`,{method:"DELETE"}).catch(()=>{})},[c.id]),h=(0,e.useCallback)(()=>{localStorage.removeItem(j),b(null),d({status:"idle",results:[],done:0,total:0})},[]);return{...c,watch:f,cancel:g,reset:h}}();(0,e.useCallback)(async()=>{let[b,c]=await Promise.all([fetch("/api/automation/overview",{cache:"no-store"}),fetch(`/api/automation/connections?provider=${encodeURIComponent(a)}&catalogueId=${encodeURIComponent(a)}`,{cache:"no-store"})]);if(!b.ok)throw Error(`HTTP ${b.status}`);if(!c.ok)throw Error(`HTTP ${c.status}`);let d=await b.json(),e=await c.json();g(d.providers?.find(b=>b.id===a)||null),i(e.connections||[])},[a]);let C=(0,e.useMemo)(()=>{let a={};for(let b of B.results||[])b?.id&&(a[b.id]=b);return a},[B.results]),D=(0,e.useMemo)(()=>{if(!h)return[];let a=k.trim().toLowerCase();return h.filter(b=>{if(a&&![b.email,b.name,b.id].some(b=>String(b||"").toLowerCase().includes(a)))return!1;let c=C[b.id];return"active"===o?"active"===b.status:"problem"!==o||c&&["depleted","critical","low"].includes(c.state)||"invalid"===b.errorState||"depleted"===b.errorState||"cooling"===b.status})},[h,k,o,C]),H=async(b,c={})=>{u(""),w("");let d=await fetch("/api/automation/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({op:b,provider:a,...c})}),e=await d.json().catch(()=>({}));return d.ok?(e.jobId&&B.watch(e.jobId,{total:e.total,kind:b}),e):(u(e?.error||`HTTP ${d.status}`),null)},I=async a=>{!a.length||await H("delete",{ids:a,reason:"manual"})&&(s(new Set),y(a=>a+1))},J=(0,e.useMemo)(()=>h?h.map(a=>({...a,...C[a.id]||{}})).filter(a=>"depleted"===a.state||"invalid"===a.errorState||"depleted"===a.errorState):[],[h,C]),K="running"===B.status;return t&&!h?(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",icon:"arrow_back",onClick:b,children:"Kembali"}),(0,d.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:t})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:(0,d.jsxs)("div",{className:"flex min-w-0 items-start gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:b,"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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"arrow_back"})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("h2",{className:"text-sm font-semibold text-text-main",children:[c?.label||a,(0,d.jsxs)("span",{className:"ml-2 font-normal tabular-nums text-text-muted",children:[h?.length??0," akun"]})]}),c?.note?(0,d.jsx)("p",{className:"mt-0.5 text-xs text-text-muted",children:c.note}):null]})]})}),v?(0,d.jsx)("p",{className:"rounded-lg border border-success/20 bg-success/10 px-3 py-2 text-xs font-medium text-success",children:v}):null,t?(0,d.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:t}):null,(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c?.kinds.quota?(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"data_usage",disabled:K||!h?.length,onClick:()=>H("quota"),children:"Cek kuota"}):null,c?.kinds.test?(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"network_check",disabled:K||!h?.length,onClick:()=>H("test"),children:"Tes koneksi"}):null,c?.kinds.prompt?(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"chat",disabled:!h?.length,onClick:()=>A(D[0]||h[0]),children:"Tes prompt"}):null,c?.kinds.calls==="device"?(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"login",onClick:()=>{b()},title:"Login device ada di tab Tambah via OAuth",children:"Login device"}):null,(0,d.jsxs)("a",{href:`/api/automation/generate-txt?provider=${encodeURIComponent(a)}`,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,d.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"description"}),"Generate TXT"]}),r.size>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[r.size," dipilih"]}),(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",onClick:()=>s(new Set),children:"Batal"}),(0,d.jsx)(f.$n,{size:"sm",variant:"danger",icon:"delete",disabled:K,onClick:()=>{confirm(`Hapus permanen ${r.size} akun? Tidak bisa dibatalkan.`)&&I([...r])},children:"Hapus"})]}):null]}),(0,d.jsx)(G,{providerId:a,info:c,onDone:a=>{w(a),y(a=>a+1)}}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-end",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(f.pd,{label:"Cari",value:k,onChange:a=>n(a.target.value),placeholder:"email, nama, atau id"})}),(0,d.jsx)("div",{className:"flex gap-1",children:E.map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>p(a.value),"aria-pressed":o===a.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 ${o===a.value?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:a.label},a.value))})]})]}),(0,d.jsx)(q,{providerId:a,info:c,rows:h||[],visible:D,scanResults:B.results||[],running:K,runOp:H,onDelete:I,onChanged:()=>y(a=>a+1)}),"idle"!==B.status?(0,d.jsx)(l,{job:B}):null,!K&&J.length>0?(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[14px] border border-warning/30 bg-warning/10 p-4",children:[(0,d.jsxs)("p",{className:"text-sm font-medium text-text-main",children:[J.length," akun layak dipertimbangkan untuk dihapus"]}),(0,d.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,d.jsx)("div",{children:(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",onClick:()=>{confirm(`Hapus permanen ${J.length} akun?`)&&I(J.map(a=>a.id))},children:["Hapus ",J.length," akun"]})})]}):null,(0,d.jsx)("div",{className:"overflow-x-auto rounded-[14px] border border-border bg-surface",children:(0,d.jsxs)("table",{className:"w-full text-left text-xs",children:[(0,d.jsxs)("caption",{className:"sr-only",children:["Akun ",c?.label||a]}),(0,d.jsx)("thead",{className:"bg-bg-subtle text-[10px] uppercase tracking-wide text-text-muted",children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{scope:"col",className:"w-8 px-3 py-2",children:(0,d.jsx)("input",{type:"checkbox","aria-label":"Pilih semua yang terlihat",checked:D.length>0&&r.size>=D.length,onChange:a=>s(a.target.checked?new Set(D.map(a=>a.id)):new Set),className:"size-3.5 accent-[var(--color-primary)]"})}),(0,d.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Akun"}),(0,d.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Status"}),(0,d.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Kuota"}),(0,d.jsx)("th",{scope:"col",className:"px-3 py-2 text-right font-medium",children:"Aksi"})]})}),(0,d.jsx)("tbody",{className:"divide-y divide-border-subtle",children:null===h?(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:5,className:"px-3 py-6 text-center text-text-muted",children:"Memuat…"})}):0===D.length?(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:5,className:"px-3 py-6 text-center text-text-muted",children:h.length?"Tidak ada akun yang cocok.":"Belum ada akun."})}):D.map(a=>{var b;let c=C[a.id];return(0,d.jsxs)("tr",{className:"transition-colors hover:bg-bg-hover",children:[(0,d.jsx)("td",{className:"px-3 py-2",children:(0,d.jsx)("input",{type:"checkbox","aria-label":`Pilih ${a.email||a.name||a.id}`,checked:r.has(a.id),onChange:()=>s(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c}),className:"size-3.5 accent-[var(--color-primary)]"})}),(0,d.jsxs)("td",{className:"px-3 py-2",children:[(0,d.jsx)("div",{className:"font-medium text-text-main",children:a.email||a.name||`${a.id.slice(0,8)}…`}),(0,d.jsx)("div",{className:"font-mono text-[10px] text-text-subtle",children:a.keyPreview||a.model||"—"})]}),(0,d.jsxs)("td",{className:"px-3 py-2",children:[(0,d.jsx)("span",{className:"active"===a.status?"text-success":"cooling"===a.status?"text-warning":"text-text-muted",children:"active"===a.status?"aktif":"cooling"===a.status?"cooldown":"nonaktif"}),a.errorReasonCode&&"request_too_large"!==a.errorState?(0,d.jsx)("div",{className:"max-w-[14rem] truncate text-[10px] text-text-subtle",title:String(a.lastError||""),children:a.errorReasonCode}):null]}),(0,d.jsx)("td",{className:"px-3 py-2 tabular-nums",children:c?.remaining!=null?(0,d.jsxs)("span",{className:"depleted"===c.state?"text-error":"low"===c.state?"text-warning":"text-success",children:[c.remaining,"%"]}):c?.state?(0,d.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"}[b=c.state]||b}):(0,d.jsx)("span",{className:"text-text-subtle",children:"—"})}),(0,d.jsxs)("td",{className:"px-3 py-2 text-right",children:[(0,d.jsx)("button",{type:"button",onClick:()=>A(a),"aria-label":`Tes prompt pada ${a.email||a.name||a.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,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"chat"})}),(0,d.jsx)("button",{type:"button",onClick:()=>{confirm(`Hapus ${a.email||a.name||a.id}?`)&&I([a.id])},"aria-label":`Hapus ${a.email||a.name||a.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,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"delete"})})]})]},a.id)})})]})}),(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:["Menampilkan ",D.length," dari ",h?.length??0," akun."]}),z?(0,d.jsx)(m,{connection:z,onClose:()=>A(null)}):null]})}function G({providerId:a,info:b,onDone:c}){let[g,h]=(0,e.useState)(""),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),m={antigravity:"email:refreshToken","grok-cli":"email:refreshToken",cline:"email:accessToken:refreshToken",freebuff:"email:accessToken",bai:"email:sk-...",tokenharbour:"email:thk_...",kiro:"email:refreshToken"}[a]||"email:token",n=async()=>{let b=g.split("\n").map(a=>a.trim()).filter(a=>a&&!a.startsWith("#"));if(b.length){j(!0),l("");try{let d=await fetch("/api/automation/import-lines",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a,lines:b})}),e=await d.json().catch(()=>({}));if(!d.ok)return void l(e?.error||`HTTP ${d.status}`);h(""),c(`${e.success} akun diimpor${e.skipped?`, ${e.skipped} dilewati (sudah ada)`:""}${e.failed?`, ${e.failed} gagal`:""}`)}catch(a){l(a.message||"Impor gagal")}finally{j(!1)}}},o=async a=>{let b=a.target.files?.[0];b&&(h(await b.text()),a.target.value="")};return(0,d.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",children:[(0,d.jsxs)("summary",{className:"cursor-pointer px-3 py-2 text-xs font-medium text-text-main",children:["Impor kredensial — bentuk ",(0,d.jsx)("code",{className:"font-mono",children:m})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,d.jsx)("textarea",{value:g,onChange:a=>h(a.target.value),disabled:i,spellCheck:!1,"aria-label":"Baris kredensial",placeholder:m,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"}),k?(0,d.jsx)("p",{role:"alert",className:"text-xs font-medium text-error",children:k}):null,(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",onClick:n,disabled:i||!g.trim(),loading:i,children:"Impor"}),(0,d.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,d.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"upload_file"}),"Pilih berkas",(0,d.jsx)("input",{type:"file",accept:".txt,.json,text/plain",onChange:o,className:"hidden"})]})]})]})]})}function H(){let[a,b]=(0,e.useState)(null),[c,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)("idle"),[l,m]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(""),[s,t]=(0,e.useState)(null),{copied:u,copy:v}=(0,n.C)(),w=a?.find(a=>a.id===c)||null,x=async()=>{if(c){k("starting"),r(""),t(null),m(null),p(null);try{let a=await fetch("/api/automation/device/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:c,startUrl:h||void 0})}),b=await a.json().catch(()=>({}));if(!a.ok){k("error"),r(b?.error||`HTTP ${a.status}`);return}m(b),k("waiting");let d=b.verificationUriComplete||b.verificationUri;d&&window.open(d,"_blank","noopener,noreferrer"),p({provider:c,deviceCode:b.deviceCode,codeVerifier:b.codeVerifier,extraData:b.extraData,interval:b.interval||5,deadline:Date.now()+(b.expiresIn?1e3*b.expiresIn:9e5)})}catch(a){k("error"),r(a.message||"Tidak bisa memulai alur")}}},y="starting"===j||"waiting"===j;return(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("label",{htmlFor:"automation-provider",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,d.jsx)("select",{id:"automation-provider",value:c,onChange:a=>g(a.target.value),disabled:y,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:(a||[]).map(a=>(0,d.jsx)("option",{value:a.id,children:a.label},a.id))})]}),w?.hint?(0,d.jsx)("p",{className:"text-xs text-text-muted",children:w.hint}):null,w?.needsStartUrl?(0,d.jsx)(f.pd,{label:"Start URL (IDC)",value:h,onChange:a=>i(a.target.value),placeholder:"https://d-xxxxxxxxxx.awsapps.com/start",hint:"Kosongkan kalau memakai AWS Builder ID biasa.",disabled:y}):null,(0,d.jsx)("div",{children:(0,d.jsx)(f.$n,{onClick:x,disabled:!c||y,loading:"starting"===j,children:"waiting"===j?"Menunggu persetujuan…":"Mulai"})})]}),q&&"error"===j?(0,d.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:q}):null,l&&"done"!==j?(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-text-main",children:"Kode verifikasi"}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.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:l.userCode||"—"}),(0,d.jsxs)("button",{type:"button",onClick:()=>v(l.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,d.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"userCode"===u?"check":"content_copy"}),"userCode"===u?"Tersalin":"Salin"]})]})]}),l.verificationUri?(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:["Buka"," ",(0,d.jsx)("a",{href:l.verificationUriComplete||l.verificationUri,target:"_blank",rel:"noopener noreferrer",className:"break-all text-primary underline decoration-dotted underline-offset-2",children:l.verificationUri})," ","lalu masukkan kode di atas."]}):null,"waiting"===j?(0,d.jsxs)("p",{className:"flex items-center gap-2 text-xs text-text-muted",children:[(0,d.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"===j&&s?(0,d.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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"check_circle"}),"Akun ",s.provider," tersimpan. Tambah lagi kapan saja, atau lihat di halaman Providers."]}):null]})}function I(){let[a,b]=(0,e.useState)(""),[c,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(""),j=async b=>{i(b);try{let c=new URLSearchParams({format:b});a&&c.set("provider",a);let d=await fetch(`/api/automation/export?${c.toString()}`);if(!d.ok)throw Error(`HTTP ${d.status}`);let e=await d.blob(),f=URL.createObjectURL(e),g=document.createElement("a");g.href=f;let h=d.headers.get("content-disposition")||"",i=/filename="([^"]+)"/.exec(h);g.download=i?.[1]||`9router-accounts.${"txt"===b?"txt":"json"}`,document.body.appendChild(g),g.click(),document.body.removeChild(g),URL.revokeObjectURL(f)}catch(a){alert(`Export gagal: ${a.message}`)}finally{i("")}};return(0,d.jsx)("div",{className:"flex flex-col gap-4",children:(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("label",{htmlFor:"automation-export-provider",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,d.jsxs)("select",{id:"automation-export-provider",value:a,onChange:a=>b(a.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,d.jsx)("option",{value:"",children:"Semua provider"}),c.map(a=>(0,d.jsx)("option",{value:a.id,children:a.label},a.id))]})]}),(0,d.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-warning/25 bg-warning/10 px-3 py-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[16px] text-warning","aria-hidden":"true",children:"warning"}),(0,d.jsxs)("p",{className:"text-xs text-text-main",children:["Berkasnya berisi ",(0,d.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,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(f.$n,{variant:"secondary",icon:"download",onClick:()=>j("json"),loading:"json"===h,disabled:!!h,children:"Unduh JSON"}),(0,d.jsx)(f.$n,{variant:"secondary",icon:"description",onClick:()=>j("txt"),loading:"txt"===h,disabled:!!h,children:"Unduh TXT"})]}),(0,d.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 J=[{value:"manage",label:"Kelola akun"},{value:"oauth",label:"Login device"},{value:"export",label:"Export semua"}];function K({onLock:a}){let[b,c]=(0,e.useState)("manage"),[g,i]=(0,e.useState)(null),[j,k]=(0,e.useState)(!1),l=async()=>{k(!0);try{await fetch("/api/automation/gate",{method:"DELETE"})}finally{a()}};return(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-5",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-lg font-semibold text-text-main",children:"Automation"}),(0,d.jsx)("p",{className:"mt-0.5 text-sm text-text-muted",children:"Kelola akun provider: kuota, tes koneksi, tes prompt, impor, dan export."})]}),(0,d.jsxs)("button",{type:"button",onClick:l,disabled:j,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,d.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"lock"}),(0,d.jsx)("span",{children:"Kunci lagi"})]})]}),(0,d.jsx)(f.Iz,{options:J,value:b,onChange:c,className:"w-full sm:w-auto"}),"manage"===b?g?(0,d.jsx)(F,{providerId:g,onBack:()=>i(null)}):(0,d.jsx)(h,{onPick:i}):null,"oauth"===b?(0,d.jsx)(H,{}):null,"export"===b?(0,d.jsx)(I,{}):null]})}function L(){let[a,b]=(0,e.useState)(null);return null===a?(0,d.jsxs)("div",{className:"flex flex-col gap-3 py-10","aria-busy":"true",children:[(0,d.jsx)("div",{className:"h-6 w-40 animate-pulse rounded-lg bg-border-subtle/60"}),(0,d.jsx)("div",{className:"h-24 w-full max-w-md animate-pulse rounded-[14px] bg-border-subtle/60"})]}):a?(0,d.jsx)(K,{onLock:()=>b(!1)}):(0,d.jsx)(g,{onUnlock:()=>b(!0)})}},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71553:a=>{"use strict";a.exports=require("node:dns/promises")},71622:a=>{"use strict";a.exports=import("open")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73289:(a,b,c)=>{Promise.resolve().then(c.bind(c,51559))},73429:a=>{"use strict";a.exports=require("node:util/types")},73496:a=>{"use strict";a.exports=require("http2")},74075:a=>{"use strict";a.exports=require("zlib")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},79646:a=>{"use strict";a.exports=require("child_process")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81630:a=>{"use strict";a.exports=require("http")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},83017:(a,b,c)=>{Promise.resolve().then(c.bind(c,99947))},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87997:a=>{"use strict";a.exports=require("node:timers")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},99947:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"C:\\\\Users\\\\Developer\\\\9router-fix\\\\src\\\\app\\\\(dashboard)\\\\dashboard\\\\automation\\\\page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Developer\\9router-fix\\src\\app\\(dashboard)\\dashboard\\automation\\page.js","default")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1260,2430,4613,4485,9555,4884,8967,6070,869,915,6457,4123,929,6777,412,2668],()=>b(b.s=33279));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=8593,a.ids=[8593],a.modules={643:a=>{"use strict";a.exports=require("node:perf_hooks")},1708:a=>{"use strict";a.exports=require("node:process")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},7066:a=>{"use strict";a.exports=require("node:tty")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{"use strict";a.exports=require("dns")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},32467:a=>{"use strict";a.exports=require("node:http2")},33279:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>w,handler:()=>y,routeModule:()=>x});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,57529))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),t=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),u={children:["",{children:["(dashboard)",{children:["dashboard",{children:["automation",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,99947))),"C:\\Users\\Developer\\9router-fix\\src\\app\\(dashboard)\\dashboard\\automation\\page.js"]}]},{"global-error":[t,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[s,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"C:\\Users\\Developer\\9router-fix\\src\\app\\(dashboard)\\layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"C:\\Users\\Developer\\9router-fix\\src\\app\\layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,v=(0,e.H)({tree:u,page:"/(dashboard)/dashboard/automation/page",pathname:"/dashboard/automation",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),w=v.__next_app__,x=v.routeModule,y=v.handler},33873:a=>{"use strict";a.exports=require("path")},34589:a=>{"use strict";a.exports=require("node:assert")},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40610:a=>{"use strict";a.exports=require("node:dns")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},51559:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>L});var d=c(48249),e=c(67484),f=c(50412);function g({onUnlock:a}){let[b,c]=(0,e.useState)(""),[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(0),n=async d=>{if(d.preventDefault(),b&&!j){k(!0),i("");try{let d=await fetch("/api/automation/gate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:b})}),e=await d.json().catch(()=>({}));if(!d.ok){i(e?.error||`Gagal membuka (HTTP ${d.status})`),c(""),m(a=>a+1);return}a()}catch(a){i(a.message||"Tidak bisa menghubungi server")}finally{k(!1)}}};return(0,d.jsxs)("div",{className:"mx-auto flex w-full max-w-md flex-col gap-4 py-10",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[22px] text-primary","aria-hidden":"true",children:"lock"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-lg font-semibold text-text-main",children:"Automation"}),(0,d.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,d.jsxs)("form",{onSubmit:n,className:"flex flex-col gap-3",children:[(0,d.jsx)(f.pd,{label:"Password",id:"automation-password",type:"password",value:b,onChange:a=>c(a.target.value),placeholder:"••••••••",autoComplete:"off",disabled:j,autoFocus:!0,"aria-invalid":h?"true":void 0,"aria-describedby":h?"automation-password-error":void 0},l),h?(0,d.jsx)("p",{id:"automation-password-error",role:"alert",className:"text-xs font-medium text-error",children:h}):null,(0,d.jsx)(f.$n,{type:"submit",disabled:j||!b,children:j?"Memeriksa…":"Buka"})]})]})}function h({onPick:a}){let[b,c]=(0,e.useState)(null),[f,g]=(0,e.useState)("");if(f)return(0,d.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:f});if(!b)return(0,d.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(a=>(0,d.jsx)("div",{className:"h-32 animate-pulse rounded-[14px] bg-border-subtle/60"},a))});let j=b.reduce((a,b)=>a+b.counts.total,0);return(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-text-main",children:"Pilih provider"}),(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:[j," akun di ",b.length," provider. Membuka salah satu akan menampilkan fitur yang tersedia untuknya."]})]}),(0,d.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:b.map(b=>(0,d.jsxs)("button",{type:"button",onClick:()=>a(b.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,d.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:"truncate text-sm font-semibold text-text-main",children:b.label}),(0,d.jsx)("div",{className:"truncate font-mono text-[10px] text-text-subtle",children:b.source})]}),(0,d.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,d.jsxs)("div",{className:"flex items-baseline gap-3",children:[(0,d.jsx)("span",{className:"tabular-nums text-2xl font-semibold text-text-main",children:b.counts.total}),(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"akun"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 text-xs",children:[(0,d.jsxs)("span",{className:"text-success",children:[b.counts.active," aktif"]}),b.counts.problem>0?(0,d.jsxs)("span",{className:"text-error",children:[b.counts.problem," bermasalah"]}):null,b.counts.unknown>0?(0,d.jsxs)("span",{className:"text-text-subtle",children:[b.counts.unknown," perlu ditinjau"]}):null]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-1",children:[b.kinds.quota?(0,d.jsx)(i,{children:"Cek kuota"}):null,b.kinds.test?(0,d.jsx)(i,{children:"Tes koneksi"}):null,b.kinds.prompt?(0,d.jsx)(i,{children:"Tes prompt"}):null,"device"===b.kinds.calls?(0,d.jsx)(i,{children:"Login device"}):null]})]},b.id))})]})}function i({children:a}){return(0,d.jsx)("span",{className:"rounded-md bg-bg-subtle px-1.5 py-0.5 text-[10px] font-medium text-text-muted",children:a})}let j="automation:activeJob",k={quota:"Cek kuota",test:"Test koneksi",delete:"Hapus akun",refresh:"Refresh token",verify:"Verifikasi key",deactivate:"Nonaktifkan akun"};function l({job:a}){if(!a||"idle"===a.status)return null;let b=a.total>0?Math.round(a.done/a.total*100):0,c="running"===a.status;return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,d.jsxs)("p",{className:"text-sm font-medium text-text-main",children:[k[a.kind]||a.label||"Memproses",(0,d.jsxs)("span",{className:"ml-2 tabular-nums text-text-muted",children:[a.done,"/",a.total]})]}),c?(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",onClick:a.cancel,children:"Hentikan"}):(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"cancelled"===a.status?"Dihentikan":"Selesai"})]}),(0,d.jsx)("div",{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":b,"aria-label":"Kemajuan",className:"h-1.5 w-full overflow-hidden rounded-full bg-surface-3",children:(0,d.jsx)("div",{className:"h-full rounded-full bg-primary transition-[width] duration-300 ease-out",style:{width:`${b}%`}})}),(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:[(0,d.jsxs)("span",{className:"text-success",children:[a.ok," berhasil"]}),a.failed>0?(0,d.jsxs)(d.Fragment,{children:[" \xb7 ",(0,d.jsxs)("span",{className:"text-error",children:[a.failed," gagal"]})]}):null,a.error?` \xb7 ${a.error}`:""]})]})}function m({connection:a,onClose:b}){let[c,g]=(0,e.useState)("Balas dalam satu kalimat singkat: siapa kamu dan model apa ini?"),[h,i]=(0,e.useState)(a?.model||""),[j,k]=(0,e.useState)(200),[l,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(""),s=async()=>{n(!0),r(""),p(null);try{let b=await fetch("/api/automation/test-prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({connectionId:a.id,prompt:c,model:h||void 0,maxTokens:Number(j)||200})}),d=await b.json().catch(()=>({}));if(!b.ok)return void r(d?.error||`HTTP ${b.status}`);p(d)}catch(a){r(a.message||"Permintaan gagal")}finally{n(!1)}};return(0,d.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:a=>{a.target===a.currentTarget&&b()},children:(0,d.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,d.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Tes prompt"}),(0,d.jsx)("p",{className:"mt-0.5 truncate font-mono text-xs text-text-muted",children:a.email||a.name||a.id})]}),(0,d.jsx)("button",{type:"button",onClick:b,"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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"close"})})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(f.pd,{label:"Model (opsional)",value:h,onChange:a=>i(a.target.value),placeholder:"kosongkan = model bawaan"})}),(0,d.jsx)("div",{className:"sm:w-32",children:(0,d.jsx)(f.pd,{label:"Max token",type:"number",value:j,onChange:a=>k(a.target.value)})})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("label",{htmlFor:"tp-prompt",className:"text-sm font-medium text-text-main",children:"Prompt"}),(0,d.jsx)("textarea",{id:"tp-prompt",value:c,onChange:a=>g(a.target.value),disabled:l,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,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(f.$n,{onClick:s,disabled:l||!c.trim(),loading:l,icon:"send",children:"Kirim"}),o?(0,d.jsxs)("span",{className:"tabular-nums text-xs text-text-muted",children:[o.elapsedMs," ms \xb7 ",o.servedModel||"—"]}):null]}),q?(0,d.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:q}):null,o&&!o.ok?(0,d.jsxs)("div",{className:"rounded-lg border border-error/20 bg-error/10 px-3 py-2",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-error",children:["HTTP ",o.status]}),(0,d.jsx)("p",{className:"mt-1 break-words text-xs text-text-main",children:o.error})]}):null,o?.ok?(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("div",{className:"whitespace-pre-wrap break-words rounded-[10px] border border-border bg-surface p-3 text-sm text-text-main",children:o.reply||"(balasan kosong)"}),o.usage?(0,d.jsx)("p",{className:"tabular-nums text-xs text-text-muted",children:[null!=o.usage.prompt_tokens?`${o.usage.prompt_tokens} in`:null,null!=o.usage.completion_tokens?`${o.usage.completion_tokens} out`:null].filter(Boolean).join(" \xb7 ")}):null]}):null]})})}var n=c(50377);function o(a){let b=a?.providerSpecificData?.nodeName;return b&&b!==a.provider&&!/^openai-compatible-chat-/.test(b)?b:a?.provider||a?.providerLabel||"?"}let p={mati:"MATI (kredensial ditolak)",limit:"LIMIT (429 laju)",error:"ERROR (jaringan/server)",expired:"EXPIRED (token kedaluwarsa)"};function q({providerId:a,info:b,rows:c=[],visible:e=[],scanResults:g=[],running:h,runOp:i,onDelete:j,onChanged:k}){let l=b?.kinds||{};return l.selective||l.refresh||l.verify||l.cleanup||l.patternDelete||l.blocked||l.expiryOps||l.inactive||l.deviceBulk||b?.script||"antigravity"===a||"kiro"===a?(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-text-subtle",children:["Operasi ",b?.label||a]}),b?.script?(0,d.jsx)(r,{info:b}):null,l.deviceBulk?(0,d.jsx)(s,{providerId:a,onChanged:k}):null,l.selective?(0,d.jsx)(t,{rows:e.length?e:c,running:h,runOp:i}):null,"antigravity"===a?(0,d.jsx)(v,{scanResults:g,running:h,onDelete:j}):null,"kiro"===a?(0,d.jsx)(w,{scanResults:g}):null,l.refresh?(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"autorenew",disabled:h||!c?.length,onClick:()=>i("refresh").then(a=>a&&k?.()),title:"Perbarui access token semua akun provider ini tanpa login ulang (menu 6 skrip cline)",children:"Refresh token"}),(0,d.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Tanpa login ulang; token mati dilaporkan per akun."})]}):null,l.verify?(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"verified",disabled:h||!c?.length,onClick:()=>i("verify"),title:"Uji setiap key dengan inferensi nyata — 401/402/429 dibedakan (check_key_quota_live)",children:"Verifikasi key"}),(0,d.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Inferensi nyata per key: valid / ditolak / habis / laju."})]}):null,l.cleanup?(0,d.jsx)(y,{rows:c,running:h,onDelete:j}):null,l.blocked?(0,d.jsx)(z,{rows:c,running:h,onDelete:j}):null,l.patternDelete?(0,d.jsx)(A,{rows:e.length?e:c,running:h,onDelete:j}):null,l.expiryOps?(0,d.jsx)(B,{rows:c,running:h,runOp:i,onDelete:j,onChanged:k}):null,l.inactive?(0,d.jsx)(C,{rows:c,running:h,onDelete:j}):null,(0,d.jsx)(D,{providerId:a,accountsFile:b?.script?.accountsFile})]}):null}function r({info:a}){let b=a?.script,[c,g]=(0,e.useState)(!1),{copied:h,copy:i}=(0,n.C)();return b?(0,d.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",open:!0,children:[(0,d.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,d.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,d.jsxs)("ol",{className:"flex list-decimal flex-col gap-1 pl-5 text-[11px] text-text-muted",children:[(0,d.jsxs)("li",{children:["Buat berkas ",(0,d.jsx)("code",{className:"font-mono text-text-main",children:b.accountsFile})," di bawah (paste email + 1 password → Unduh) — bentuk ",(0,d.jsx)("code",{className:"font-mono text-text-main",children:b.format}),"."]}),(0,d.jsxs)("li",{children:["Jalankan di terminal, di folder scriptnya (",(0,d.jsx)("code",{className:"font-mono text-text-main",children:"C:\\Users\\Developer\\cliproxyapi"}),"):"]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 rounded-lg border border-border bg-surface px-2 py-1.5",children:[(0,d.jsx)("code",{className:"min-w-0 flex-1 break-all font-mono text-[11px] text-text-main",children:b.command}),(0,d.jsxs)("button",{type:"button",onClick:()=>i(b.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,d.jsx)("span",{className:"material-symbols-outlined text-[13px]","aria-hidden":"true",children:"script-cmd"===h?"check":"content_copy"}),"script-cmd"===h?"Tersalin":"Salin"]})]}),b.extra?(0,d.jsxs)("p",{className:"text-[11px] text-text-subtle",children:["Flag berguna: ",(0,d.jsx)("code",{className:"font-mono",children:b.extra})]}):null,(0,d.jsx)("ol",{className:"flex list-decimal flex-col gap-1 pl-5 text-[11px] text-text-muted",start:3,children:(0,d.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,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"refresh",onClick:()=>{window.location.reload(),g(!0)},children:c?"Memuat…":"Muat ulang"})})]})]}):null}function s({providerId:a,onChanged:b}){let[c,g]=(0,e.useState)(3),[h,i]=(0,e.useState)("idle"),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)([]),[o,p]=(0,e.useState)(0),[q,r]=(0,e.useState)(""),[t,u]=(0,e.useState)(()=>Date.now()),v=(0,e.useRef)(0),w=(0,e.useRef)(!1),x=(0,e.useRef)(null),{copied:y,copy:z}=(0,n.C)(),A=l.length+o+1,B=async()=>{let b=await fetch("/api/automation/device/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a})}),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c?.error||`HTTP ${b.status}`);let d=c.verificationUriComplete||c.verificationUri;return d&&window.open(d,"_blank","noopener,noreferrer"),{deviceCode:c.deviceCode,codeVerifier:c.codeVerifier,extraData:c.extraData,userCode:c.userCode,verificationUri:c.verificationUri,verificationUriComplete:c.verificationUriComplete,interval:c.interval||5,deadline:Date.now()+(c.expiresIn?1e3*c.expiresIn:9e5)}},C=(c,d)=>new Promise(e=>{let f=null,g=a=>{x.current&&clearTimeout(x.current),e(a)},h=async()=>{if(w.current||v.current!==c)return g("stopped");if(!f){try{f=await B()}catch(a){if(v.current!==c||w.current)return g("stopped");return r(a?.message||"Gagal meminta kode"),g("stopped")}if(v.current!==c||w.current)return g("stopped");k({...f,index:d}),r("")}let e={};try{let b=await fetch("/api/automation/device/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a,deviceCode:f.deviceCode,codeVerifier:f.codeVerifier,extraData:f.extraData})});e=await b.json().catch(()=>({}))}catch{if(v.current!==c||w.current)return g("stopped");x.current=setTimeout(h,5e3);return}return v.current!==c||w.current?g("stopped"):e.success?(m(a=>[...a,e.connection]),b?.(),g("ok")):e.pending?Date.now()>f.deadline?(r("Waktu habis — kode kedaluwarsa. Antrean berhenti di sini."),g("stopped")):void(x.current=setTimeout(h,1e3*(f.interval||5))):(r(e.errorDescription||e.error||"Gagal menukar token"),g("stopped"))};h()}),D=async()=>{let a=Math.max(1,Math.min(50,Number(c)||1)),b=v.current+1;v.current=b,w.current=!1,m([]),p(0),r(""),k(null),i("waiting");for(let c=0;c<a&&"ok"===await C(b,c+1);c++);k(null),i("done")},E="waiting"===h,F=j?.deadline?Math.max(0,Math.floor((j.deadline-t)/1e3)):0;return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Tambah bulk via device",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"sepenuhnya via web — kamu yang menyetujui di browser"})]}),"idle"===h||"done"===h?(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,d.jsx)("div",{className:"w-32",children:(0,d.jsx)(f.pd,{label:"Jumlah akun",type:"number",value:c,onChange:a=>g(a.target.value),disabled:E})}),(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"login",disabled:E,onClick:D,children:"Mulai antrean"}),l.length>0||o>0?(0,d.jsxs)("span",{className:"pb-2 text-[11px] tabular-nums text-text-muted",children:["Terakhir: ",l.length," tersimpan",o?`, ${o} dilewati`:"","."]}):null]}):null,q?(0,d.jsx)("p",{role:"alert",className:"text-[11px] font-medium text-error",children:q}):null,E&&j?(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-lg border border-border bg-surface p-3",children:[(0,d.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:["Akun ",j.index||A," — setujui di browser, lalu otomatis lanjut.",F>0?` Kode kedaluwarsa dalam ${Math.floor(F/60)}:${String(F%60).padStart(2,"0")}.`:""]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.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:j.userCode||"—"}),(0,d.jsxs)("button",{type:"button",onClick:()=>z(j.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,d.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"bulk-code"===y?"check":"content_copy"}),"bulk-code"===y?"Tersalin":"Salin"]}),j.verificationUri?(0,d.jsx)("a",{href:j.verificationUriComplete||j.verificationUri,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary underline decoration-dotted underline-offset-2",children:"Buka verifikasi"}):null]}),(0,d.jsxs)("p",{className:"flex items-center gap-2 text-[11px] text-text-muted",children:[(0,d.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-primary","aria-hidden":"true"}),"Menunggu persetujuan… (tab verifikasi sudah dibuka otomatis)"]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",onClick:()=>{v.current+=1,x.current&&clearTimeout(x.current),p(a=>a+1),k(null),r(""),(async()=>{let a=v.current,b=l.length+o+1;"ok"!==await C(a,b)&&(k(null),i("done"))})()},children:"Lewati akun ini"}),(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",onClick:()=>{w.current=!0,v.current+=1,x.current&&clearTimeout(x.current),k(null),i("done")},children:"Hentikan antrean"})]})]}):null,"done"!==h||E?null:(0,d.jsxs)("p",{className:"rounded-lg border border-success/20 bg-success/10 px-3 py-2 text-xs font-medium text-success",children:["Selesai: ",l.length," akun tersimpan",o?`, ${o} dilewati`:"",". Tabel di bawah sudah dimuat ulang."]})]})}function t({rows:a,running:b,runOp:c}){let[g,h]=(0,e.useState)(""),[i,j]=(0,e.useState)(""),k=(0,e.useMemo)(()=>g.trim()?function(a,b){let c=Array.isArray(a)?a:[],d=String(b||"").trim().toLowerCase();if(!d||"all"===d)return c;let e=new Set;for(let a of d.split(",").map(a=>a.trim()).filter(Boolean))if(a.includes("-")){let[b,d]=a.split("-",2).map(a=>Number(a.trim()));if(!Number.isFinite(b)||!Number.isFinite(d))continue;let f=Math.max(1,Math.min(b,d)),g=Math.min(c.length,Math.max(b,d));for(let a=f;a<=g;a++)e.add(a-1)}else{let b=Number(a);Number.isFinite(b)&&b>=1&&b<=c.length&&e.add(b-1)}return[...e].sort((a,b)=>a-b).map(a=>c[a])}(a,g):null,[a,g]),l=a=>{if(j(""),!g.trim())return void j("Isi dulu nomornya — kosong berarti semua (pakai tombol di atas).");let b=(k||[]).map(a=>a.id);b.length?c(a,{ids:b}):j("Tidak ada nomor valid yang cocok.")};return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Cek akun tertentu",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5 skrip: nomor, koma, rentang, atau all"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(f.pd,{value:g,onChange:a=>h(a.target.value),placeholder:"mis. 50 \xb7 1, 5, 12 \xb7 1-10 \xb7 all",disabled:b})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",disabled:b||!a?.length,onClick:()=>l("quota"),children:"Kuota pilihan"}),(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",disabled:b||!a?.length,onClick:()=>l("test"),children:"Tes pilihan"})]})]}),k?(0,d.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:[k.length," dari ",a.length," akun cocok."]}):null,i?(0,d.jsx)("p",{role:"alert",className:"text-[11px] font-medium text-error",children:i}):null]})}let u=[{value:"claude",label:"Claude & GPT 0%"},{value:"gemini",label:"Gemini 0%"},{value:"both",label:"Keduanya 0%"}];function v({scanResults:a,running:b,onDelete:c}){let[g,h]=(0,e.useState)("both"),i=(0,e.useMemo)(()=>(function(a,b){let c=[];for(let d of Array.isArray(a)?a:[]){if(!d)continue;let a=d.groups||{},e="number"==typeof a.claudeGpt&&a.claudeGpt<1,f="number"==typeof a.gemini&&a.gemini<1;("claude"===b?e:"gemini"===b?f:e&&f)&&c.push({...d,deleteReason:"claude"===b?"Claude & GPT habis (< 1%)":"gemini"===b?"Gemini habis (< 1%)":"Keduanya habis (< 1%)"})}return c})(a,g),[a,g]);if(!a?.length)return null;let j=u.find(a=>a.value===g)?.label||g;return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus kuota 0% per grup",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 7 skrip ag — dari hasil pindaian terakhir"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("div",{className:"flex gap-1",role:"group","aria-label":"Kriteria grup",children:u.map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>h(a.value),"aria-pressed":g===a.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 ${g===a.value?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:a.label},a.value))}),(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b||!i.length,onClick:()=>{confirm(`Hapus permanen ${i.length} akun (${j})?`)&&c(i.map(a=>a.id))},children:["Hapus ",i.length," akun"]})]})]})}function w({scanResults:a}){let b=(0,e.useMemo)(()=>{let b=(a||[]).filter(a=>a?.pool&&Number.isFinite(a.pool.total)&&a.pool.total>0);if(!b.length)return null;let c=b.reduce((a,b)=>a+b.pool.used,0),d=b.reduce((a,b)=>a+b.pool.total,0);return{used:c,total:d,remaining:Math.max(0,d-c),accounts:b.length}},[a]);if(!b)return null;let c=b.total>0?Math.round(b.remaining/b.total*100):0;return(0,d.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,d.jsx)("strong",{children:b.remaining.toLocaleString("en-US")})," / ",b.total.toLocaleString("en-US")," tersisa",(0,d.jsxs)("span",{className:"ml-2 text-text-muted",children:["(",c,"% \xb7 ",b.accounts," akun terbaca)"]})]})}let x=["mati","limit","error","expired"];function y({rows:a,running:b,onDelete:c}){let[g,h]=(0,e.useState)("mati"),i=(0,e.useMemo)(()=>(function(a,b,c=Date.now()){let d=[];for(let e of a||[])(function(a,b=Date.now()){if(!a)return null;let c=a.expiresAt?Date.parse(a.expiresAt):NaN;return Number.isFinite(c)&&c<=b?"expired":"invalid"===a.errorState?"mati":"rate_limited"===a.errorState?"limit":"transient"===a.errorState||"other"===a.errorState?"error":null})(e,c)===b&&d.push({...e,id:e.id,email:e.email,name:e.name,provider:o(e),state:b,deleteReason:p[b]||b});return d})(a,g),[a,g]);return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Bersihkan per kategori",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5 skrip cline — dibaca dari daftar akun"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("div",{className:"flex flex-wrap gap-1",role:"group","aria-label":"Kategori cline",children:x.map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>h(a),"aria-pressed":g===a,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 ${g===a?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:p[a]},a))}),(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b||!i.length,onClick:()=>{confirm(`Hapus permanen ${i.length} akun kategori ${p[g]}?`)&&c(i.map(a=>a.id))},children:["Hapus ",i.length," akun"]})]})]})}function z({rows:a,running:b,onDelete:c}){let g=(0,e.useMemo)(()=>(a||[]).filter(a=>{let b=String(a.lastError||"").toLowerCase();return/spending.?limit|personal-team-blocked|team.?blocked|\bblocked\b/.test(b)||"depleted"===a.errorState}),[a]);return g.length?(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus akun BLOCKED",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 6 skrip grok — tim diblokir / spending-limit / kuota habis"})]}),(0,d.jsx)("div",{children:(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b,onClick:()=>{confirm(`Hapus permanen ${g.length} akun BLOCKED?`)&&c(g.map(a=>a.id))},children:["Hapus ",g.length," akun"]})})]}):null}function A({rows:a,running:b,onDelete:c}){let[g,h]=(0,e.useState)(""),i=(0,e.useMemo)(()=>{let b=g.trim().toLowerCase();return b?(a||[]).filter(a=>[a.email,a.name,a.id].some(a=>String(a||"").toLowerCase().includes(b))):null},[a,g]);return a?.length?(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Hapus by-pattern",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 8 skrip grok — substring email/nama"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(f.pd,{value:g,onChange:a=>h(a.target.value),placeholder:"mis. @gmaoiil.com",disabled:b})}),(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b||!i?.length,onClick:()=>{!i?.length||confirm(`Hapus permanen ${i.length} akun yang cocok "${g.trim()}"?`)&&(c(i.map(a=>a.id)),h(""))},children:["Hapus",i?.length?` ${i.length}`:""," akun"]})]}),i?(0,d.jsxs)("div",{className:"text-[11px] text-text-muted",children:[(0,d.jsxs)("p",{className:"tabular-nums",children:[i.length," cocok."]}),i.slice(0,10).map(a=>(0,d.jsx)("p",{className:"truncate font-mono",children:a.email||a.name||a.id},a.id)),i.length>10?(0,d.jsxs)("p",{children:["…dan ",i.length-10," lainnya."]}):null]}):null]}):null}function B({rows:a,running:b,runOp:c,onDelete:g,onChanged:h}){let[i,j]=(0,e.useState)(0),k=(0,e.useMemo)(()=>(function(a,{hoursAhead:b=0,nowMs:c=Date.now()}={}){let d=[];for(let e of a||[]){if(!e||!1===e.isActive)continue;let a=e.expiresAt??e?.data?.expiresAt??e?.providerSpecificData?.expiresAt;if(null==a||""===a||"None"===a||"null"===a)continue;let f=Date.parse(a);if(!Number.isFinite(f))continue;let g=f-c;g<=36e5*b&&d.push({...e,id:e.id,email:e.email,name:e.name,provider:o(e),state:g<=0?"expired":"expiring",expiresAt:new Date(f).toISOString(),remainingMs:g,deleteReason:g<=0?"Masa berlaku habis":"Segera kedaluwarsa"})}return d.sort((a,b)=>a.remainingMs-b.remainingMs),d})(a,{hoursAhead:Number(i)||0}),[a,i]);return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Kedaluwarsa",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 5-6 skrip tokenharbor — gagal parse = permanen"})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,d.jsx)("div",{className:"w-32",children:(0,d.jsx)(f.pd,{label:"Lihat N jam ke depan",type:"number",value:i,onChange:a=>j(a.target.value),disabled:b})}),(0,d.jsxs)("span",{className:"pb-2 text-[11px] tabular-nums text-text-muted",children:[k.length," akun",Number(i)>0?` (kedaluwarsa + ${i}j ke depan)`:" kedaluwarsa","."]})]}),k.length>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("ul",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:[k.slice(0,20).map(a=>(0,d.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px]",children:[(0,d.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:a.email||a.name||a.id}),(0,d.jsx)("span",{className:"shrink-0 tabular-nums text-text-muted",children:function(a){if(a<=0)return"kedaluwarsa";let b=Math.floor(a/6e4);if(b<60)return`${b}m lagi`;let c=Math.floor(b/60);return c<48?`${c}j lagi`:`${Math.floor(c/24)}h lagi`}(a.remainingMs)})]},a.id)),k.length>20?(0,d.jsxs)("li",{className:"text-[11px] text-text-subtle",children:["…dan ",k.length-20," lainnya."]}):null]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsxs)(f.$n,{size:"sm",variant:"secondary",icon:"pause_circle",disabled:b,onClick:()=>c("deactivate",{ids:k.map(a=>a.id)}).then(a=>a&&h?.()),title:"UPDATE isActive=0 — perilaku default skrip; baris tetap ada dan bisa diaktifkan lagi",children:["Nonaktifkan ",k.length]}),(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b,onClick:()=>{confirm(`Hapus permanen ${k.length} akun kedaluwarsa?`)&&g(k.map(a=>a.id))},title:"Hapus baris permanen — --delete-expired di skrip",children:["Hapus ",k.length]})]})]}):null]})}function C({rows:a,running:b,onDelete:c}){let[g,h]=(0,e.useState)(!1),i=(0,e.useMemo)(()=>(function(a){let b=[];for(let c of a||[]){if(!c||!1!==c.isActive)continue;let a=function(a){let b=String(a?.lastError||""),c=Number(a?.errorCode);if(/invalid_grant|revoked/i.test(b))return"invalid_grant";let d=/domain_dead:([^\s,;]+)/i.exec(b);return d?`domain_dead:${d[1]}`:401===c||/\b401\b/.test(b)?"auth_401":a?.testStatus==="error"||c>=400?"error_status":b?"lainnya":"tanpa_alasan"}(c);b.push({...c,id:c.id,email:c.email,name:c.name,provider:o(c),state:"inactive",inactiveReason:a,deleteReason:`Nonaktif (${a})`})}return b})(a),[a]),j=(0,e.useMemo)(()=>g?function(a){let b={};for(let c of a||[]){let a=String(c?.email||""),d=a.includes("@")?a.split("@").pop().toLowerCase():"(tanpa email)",e=b[d]||={domain:d,total:0,active:0,inactive:0};e.total++,!1===c.isActive?e.inactive++:e.active++}let c=Object.values(b).sort((a,b)=>b.total-a.total);for(let a of c)a.dead=a.total>0&&0===a.active;return c}(a):[],[g,a]);return(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[10px] border border-border-subtle bg-bg-subtle/50 p-3",children:[(0,d.jsxs)("p",{className:"text-xs font-medium text-text-main",children:["Akun nonaktif",(0,d.jsx)("span",{className:"ml-2 font-normal text-text-subtle",children:"menu 12 skrip ag — dry-run dulu, hapus sesudahnya"})]}),(0,d.jsxs)("p",{className:"text-[11px] tabular-nums text-text-muted",children:[i.length," nonaktif dari ",a?.length||0," akun. Alasan per akun terlihat di bawah."]}),i.length>0?(0,d.jsxs)("ul",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:[i.slice(0,20).map(a=>(0,d.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px]",children:[(0,d.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:a.email||a.name||a.id}),(0,d.jsx)("span",{className:"shrink-0 font-mono text-text-subtle",children:a.inactiveReason})]},a.id)),i.length>20?(0,d.jsxs)("li",{className:"text-[11px] text-text-subtle",children:["…dan ",i.length-20," lainnya."]}):null]}):null,(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",onClick:()=>h(a=>!a),"aria-expanded":g,children:g?"Sembunyikan":"Sebaran domain"}),(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",disabled:b||!i.length,onClick:()=>{confirm(`Hapus permanen ${i.length} akun nonaktif?`)&&c(i.map(a=>a.id))},children:["Hapus ",i.length," nonaktif"]})]}),g?(0,d.jsx)("ul",{className:"flex flex-col gap-1",children:j.map(a=>(0,d.jsxs)("li",{className:"flex items-baseline justify-between gap-2 text-[11px] tabular-nums",children:[(0,d.jsx)("span",{className:"min-w-0 truncate font-mono text-text-main",children:a.domain}),(0,d.jsxs)("span",{className:"shrink-0 text-text-muted",children:[a.total," akun \xb7 ",a.active," aktif",a.dead?" \xb7 domain mati total":""]})]},a.domain))}):null]})}function D({providerId:a,accountsFile:b}){let[c,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(""),j="cline"===a||"kiro"===a||"bai"===a?"|":":",k=(0,e.useMemo)(()=>{let a=new Set,b=[];for(let d of c.split("\n")){let c=d.trim();if(!c||!c.includes("@"))continue;let e=c.toLowerCase();a.has(e)||(a.add(e),b.push(`${c}${j}${h}`))}return b},[c,h,j]);return(0,d.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",children:[(0,d.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,d.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,d.jsxs)("p",{className:"text-[11px] text-text-muted",children:["Keluaran ",(0,d.jsxs)("code",{className:"font-mono",children:["email",j,"password"]})," per baris →"," ",(0,d.jsx)("code",{className:"font-mono",children:b||`accounts_${a||"bulk"}.txt`})," — bentuk yang dimakan skrip tambah-akun. Tidak dikirim ke mana pun; berkas dibuat di browser."]}),(0,d.jsx)("textarea",{value:c,onChange:a=>g(a.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,d.jsx)(f.pd,{label:"Satu password untuk semua",type:"text",value:h,onChange:a=>i(a.target.value),placeholder:"password seragam"}),(0,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsxs)(f.$n,{size:"sm",variant:"secondary",icon:"description",disabled:!k.length||!h,onClick:()=>{if(!k.length||!h)return;let c=new Blob([k.join("\n")+"\n"],{type:"text/plain; charset=utf-8"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,e.download=b||`accounts_${a||"bulk"}.txt`,document.body.appendChild(e),e.click(),document.body.removeChild(e),URL.revokeObjectURL(d)},children:["Unduh ",k.length," baris"]})})]})]})}let E=[{value:"all",label:"Semua"},{value:"active",label:"Aktif"},{value:"problem",label:"Bermasalah"}];function F({providerId:a,onBack:b}){let[c,g]=(0,e.useState)(null),[h,i]=(0,e.useState)(null),[k,n]=(0,e.useState)(""),[o,p]=(0,e.useState)("all"),[r,s]=(0,e.useState)(()=>new Set),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(""),[x,y]=(0,e.useState)(0),[z,A]=(0,e.useState)(null),B=function(){let[a,b]=(0,e.useState)(()=>null),[c,d]=(0,e.useState)({status:"idle",results:[],done:0,total:0});(0,e.useRef)(0);let f=(0,e.useCallback)((a,c={})=>{localStorage.setItem(j,a),d({id:a,status:"running",results:[],done:0,total:c.total??0,ok:0,failed:0,kind:c.kind??null,label:c.label??""}),b(b=>({id:a,seq:(b?.seq??0)+1}))},[]),g=(0,e.useCallback)(async()=>{c.id&&await fetch(`/api/automation/jobs/${c.id}`,{method:"DELETE"}).catch(()=>{})},[c.id]),h=(0,e.useCallback)(()=>{localStorage.removeItem(j),b(null),d({status:"idle",results:[],done:0,total:0})},[]);return{...c,watch:f,cancel:g,reset:h}}();(0,e.useCallback)(async()=>{let[b,c]=await Promise.all([fetch("/api/automation/overview",{cache:"no-store"}),fetch(`/api/automation/connections?provider=${encodeURIComponent(a)}&catalogueId=${encodeURIComponent(a)}`,{cache:"no-store"})]);if(!b.ok)throw Error(`HTTP ${b.status}`);if(!c.ok)throw Error(`HTTP ${c.status}`);let d=await b.json(),e=await c.json();g(d.providers?.find(b=>b.id===a)||null),i(e.connections||[])},[a]);let C=(0,e.useMemo)(()=>{let a={};for(let b of B.results||[])b?.id&&(a[b.id]=b);return a},[B.results]),D=(0,e.useMemo)(()=>{if(!h)return[];let a=k.trim().toLowerCase();return h.filter(b=>{if(a&&![b.email,b.name,b.id].some(b=>String(b||"").toLowerCase().includes(a)))return!1;let c=C[b.id];return"active"===o?"active"===b.status:"problem"!==o||c&&["depleted","critical","low"].includes(c.state)||"invalid"===b.errorState||"depleted"===b.errorState||"cooling"===b.status})},[h,k,o,C]),H=async(b,c={})=>{u(""),w("");let d=await fetch("/api/automation/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({op:b,provider:a,...c})}),e=await d.json().catch(()=>({}));return d.ok?(e.jobId&&B.watch(e.jobId,{total:e.total,kind:b}),e):(u(e?.error||`HTTP ${d.status}`),null)},I=async a=>{!a.length||await H("delete",{ids:a,reason:"manual"})&&(s(new Set),y(a=>a+1))},J=(0,e.useMemo)(()=>h?h.map(a=>({...a,...C[a.id]||{}})).filter(a=>"depleted"===a.state||"invalid"===a.errorState||"depleted"===a.errorState):[],[h,C]),K="running"===B.status;return t&&!h?(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",icon:"arrow_back",onClick:b,children:"Kembali"}),(0,d.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:t})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:(0,d.jsxs)("div",{className:"flex min-w-0 items-start gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:b,"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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"arrow_back"})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("h2",{className:"text-sm font-semibold text-text-main",children:[c?.label||a,(0,d.jsxs)("span",{className:"ml-2 font-normal tabular-nums text-text-muted",children:[h?.length??0," akun"]})]}),c?.note?(0,d.jsx)("p",{className:"mt-0.5 text-xs text-text-muted",children:c.note}):null]})]})}),v?(0,d.jsx)("p",{className:"rounded-lg border border-success/20 bg-success/10 px-3 py-2 text-xs font-medium text-success",children:v}):null,t?(0,d.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:t}):null,(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c?.kinds.quota?(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"data_usage",disabled:K||!h?.length,onClick:()=>H("quota"),children:"Cek kuota"}):null,c?.kinds.test?(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"network_check",disabled:K||!h?.length,onClick:()=>H("test"),children:"Tes koneksi"}):null,c?.kinds.prompt?(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"chat",disabled:!h?.length,onClick:()=>A(D[0]||h[0]),children:"Tes prompt"}):null,c?.kinds.calls==="device"?(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"login",onClick:()=>{b()},title:"Login device ada di tab Tambah via OAuth",children:"Login device"}):null,(0,d.jsxs)("a",{href:`/api/automation/generate-txt?provider=${encodeURIComponent(a)}`,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,d.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"description"}),"Generate TXT"]}),r.size>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[r.size," dipilih"]}),(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",onClick:()=>s(new Set),children:"Batal"}),(0,d.jsx)(f.$n,{size:"sm",variant:"danger",icon:"delete",disabled:K,onClick:()=>{confirm(`Hapus permanen ${r.size} akun? Tidak bisa dibatalkan.`)&&I([...r])},children:"Hapus"})]}):null]}),(0,d.jsx)(G,{providerId:a,info:c,onDone:a=>{w(a),y(a=>a+1)}}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-end",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(f.pd,{label:"Cari",value:k,onChange:a=>n(a.target.value),placeholder:"email, nama, atau id"})}),(0,d.jsx)("div",{className:"flex gap-1",children:E.map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>p(a.value),"aria-pressed":o===a.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 ${o===a.value?"bg-primary-strong text-white":"bg-surface-2 text-text-muted hover:text-text-main"}`,children:a.label},a.value))})]})]}),(0,d.jsx)(q,{providerId:a,info:c,rows:h||[],visible:D,scanResults:B.results||[],running:K,runOp:H,onDelete:I,onChanged:()=>y(a=>a+1)}),"idle"!==B.status?(0,d.jsx)(l,{job:B}):null,!K&&J.length>0?(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-[14px] border border-warning/30 bg-warning/10 p-4",children:[(0,d.jsxs)("p",{className:"text-sm font-medium text-text-main",children:[J.length," akun layak dipertimbangkan untuk dihapus"]}),(0,d.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,d.jsx)("div",{children:(0,d.jsxs)(f.$n,{size:"sm",variant:"danger",icon:"delete_sweep",onClick:()=>{confirm(`Hapus permanen ${J.length} akun?`)&&I(J.map(a=>a.id))},children:["Hapus ",J.length," akun"]})})]}):null,(0,d.jsx)("div",{className:"overflow-x-auto rounded-[14px] border border-border bg-surface",children:(0,d.jsxs)("table",{className:"w-full text-left text-xs",children:[(0,d.jsxs)("caption",{className:"sr-only",children:["Akun ",c?.label||a]}),(0,d.jsx)("thead",{className:"bg-bg-subtle text-[10px] uppercase tracking-wide text-text-muted",children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{scope:"col",className:"w-8 px-3 py-2",children:(0,d.jsx)("input",{type:"checkbox","aria-label":"Pilih semua yang terlihat",checked:D.length>0&&r.size>=D.length,onChange:a=>s(a.target.checked?new Set(D.map(a=>a.id)):new Set),className:"size-3.5 accent-[var(--color-primary)]"})}),(0,d.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Akun"}),(0,d.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Status"}),(0,d.jsx)("th",{scope:"col",className:"px-3 py-2 font-medium",children:"Kuota"}),(0,d.jsx)("th",{scope:"col",className:"px-3 py-2 text-right font-medium",children:"Aksi"})]})}),(0,d.jsx)("tbody",{className:"divide-y divide-border-subtle",children:null===h?(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:5,className:"px-3 py-6 text-center text-text-muted",children:"Memuat…"})}):0===D.length?(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:5,className:"px-3 py-6 text-center text-text-muted",children:h.length?"Tidak ada akun yang cocok.":"Belum ada akun."})}):D.map(a=>{var b;let c=C[a.id];return(0,d.jsxs)("tr",{className:"transition-colors hover:bg-bg-hover",children:[(0,d.jsx)("td",{className:"px-3 py-2",children:(0,d.jsx)("input",{type:"checkbox","aria-label":`Pilih ${a.email||a.name||a.id}`,checked:r.has(a.id),onChange:()=>s(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c}),className:"size-3.5 accent-[var(--color-primary)]"})}),(0,d.jsxs)("td",{className:"px-3 py-2",children:[(0,d.jsx)("div",{className:"font-medium text-text-main",children:a.email||a.name||`${a.id.slice(0,8)}…`}),(0,d.jsx)("div",{className:"font-mono text-[10px] text-text-subtle",children:a.keyPreview||a.model||"—"})]}),(0,d.jsxs)("td",{className:"px-3 py-2",children:[(0,d.jsx)("span",{className:"active"===a.status?"text-success":"cooling"===a.status?"text-warning":"text-text-muted",children:"active"===a.status?"aktif":"cooling"===a.status?"cooldown":"nonaktif"}),a.errorReasonCode&&"request_too_large"!==a.errorState?(0,d.jsx)("div",{className:"max-w-[14rem] truncate text-[10px] text-text-subtle",title:String(a.lastError||""),children:a.errorReasonCode}):null]}),(0,d.jsx)("td",{className:"px-3 py-2 tabular-nums",children:c?.remaining!=null?(0,d.jsxs)("span",{className:"depleted"===c.state?"text-error":"low"===c.state?"text-warning":"text-success",children:[c.remaining,"%"]}):c?.state?(0,d.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"}[b=c.state]||b}):(0,d.jsx)("span",{className:"text-text-subtle",children:"—"})}),(0,d.jsxs)("td",{className:"px-3 py-2 text-right",children:[(0,d.jsx)("button",{type:"button",onClick:()=>A(a),"aria-label":`Tes prompt pada ${a.email||a.name||a.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,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"chat"})}),(0,d.jsx)("button",{type:"button",onClick:()=>{confirm(`Hapus ${a.email||a.name||a.id}?`)&&I([a.id])},"aria-label":`Hapus ${a.email||a.name||a.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,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"delete"})})]})]},a.id)})})]})}),(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:["Menampilkan ",D.length," dari ",h?.length??0," akun."]}),z?(0,d.jsx)(m,{connection:z,onClose:()=>A(null)}):null]})}function G({providerId:a,info:b,onDone:c}){let[g,h]=(0,e.useState)(""),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),m={antigravity:"email:refreshToken","grok-cli":"email:refreshToken",cline:"email:accessToken:refreshToken",freebuff:"email:accessToken",bai:"email:sk-...",tokenharbour:"email:thk_...",kiro:"email:refreshToken"}[a]||"email:token",n=async()=>{let b=g.split("\n").map(a=>a.trim()).filter(a=>a&&!a.startsWith("#"));if(b.length){j(!0),l("");try{let d=await fetch("/api/automation/import-lines",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a,lines:b})}),e=await d.json().catch(()=>({}));if(!d.ok)return void l(e?.error||`HTTP ${d.status}`);h(""),c(`${e.success} akun diimpor${e.skipped?`, ${e.skipped} dilewati (sudah ada)`:""}${e.failed?`, ${e.failed} gagal`:""}`)}catch(a){l(a.message||"Impor gagal")}finally{j(!1)}}},o=async a=>{let b=a.target.files?.[0];b&&(h(await b.text()),a.target.value="")};return(0,d.jsxs)("details",{className:"rounded-[10px] border border-border-subtle bg-bg-subtle/50",children:[(0,d.jsxs)("summary",{className:"cursor-pointer px-3 py-2 text-xs font-medium text-text-main",children:["Impor kredensial — bentuk ",(0,d.jsx)("code",{className:"font-mono",children:m})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 px-3 pb-3",children:[(0,d.jsx)("textarea",{value:g,onChange:a=>h(a.target.value),disabled:i,spellCheck:!1,"aria-label":"Baris kredensial",placeholder:m,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"}),k?(0,d.jsx)("p",{role:"alert",className:"text-xs font-medium text-error",children:k}):null,(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",onClick:n,disabled:i||!g.trim(),loading:i,children:"Impor"}),(0,d.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,d.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"upload_file"}),"Pilih berkas",(0,d.jsx)("input",{type:"file",accept:".txt,.json,text/plain",onChange:o,className:"hidden"})]})]})]})]})}function H(){let[a,b]=(0,e.useState)(null),[c,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)("idle"),[l,m]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(""),[s,t]=(0,e.useState)(null),{copied:u,copy:v}=(0,n.C)(),w=a?.find(a=>a.id===c)||null,x=async()=>{if(c){k("starting"),r(""),t(null),m(null),p(null);try{let a=await fetch("/api/automation/device/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:c,startUrl:h||void 0})}),b=await a.json().catch(()=>({}));if(!a.ok){k("error"),r(b?.error||`HTTP ${a.status}`);return}m(b),k("waiting");let d=b.verificationUriComplete||b.verificationUri;d&&window.open(d,"_blank","noopener,noreferrer"),p({provider:c,deviceCode:b.deviceCode,codeVerifier:b.codeVerifier,extraData:b.extraData,interval:b.interval||5,deadline:Date.now()+(b.expiresIn?1e3*b.expiresIn:9e5)})}catch(a){k("error"),r(a.message||"Tidak bisa memulai alur")}}},y="starting"===j||"waiting"===j;return(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("label",{htmlFor:"automation-provider",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,d.jsx)("select",{id:"automation-provider",value:c,onChange:a=>g(a.target.value),disabled:y,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:(a||[]).map(a=>(0,d.jsx)("option",{value:a.id,children:a.label},a.id))})]}),w?.hint?(0,d.jsx)("p",{className:"text-xs text-text-muted",children:w.hint}):null,w?.needsStartUrl?(0,d.jsx)(f.pd,{label:"Start URL (IDC)",value:h,onChange:a=>i(a.target.value),placeholder:"https://d-xxxxxxxxxx.awsapps.com/start",hint:"Kosongkan kalau memakai AWS Builder ID biasa.",disabled:y}):null,(0,d.jsx)("div",{children:(0,d.jsx)(f.$n,{onClick:x,disabled:!c||y,loading:"starting"===j,children:"waiting"===j?"Menunggu persetujuan…":"Mulai"})})]}),q&&"error"===j?(0,d.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:q}):null,l&&"done"!==j?(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-text-main",children:"Kode verifikasi"}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.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:l.userCode||"—"}),(0,d.jsxs)("button",{type:"button",onClick:()=>v(l.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,d.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"userCode"===u?"check":"content_copy"}),"userCode"===u?"Tersalin":"Salin"]})]})]}),l.verificationUri?(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:["Buka"," ",(0,d.jsx)("a",{href:l.verificationUriComplete||l.verificationUri,target:"_blank",rel:"noopener noreferrer",className:"break-all text-primary underline decoration-dotted underline-offset-2",children:l.verificationUri})," ","lalu masukkan kode di atas."]}):null,"waiting"===j?(0,d.jsxs)("p",{className:"flex items-center gap-2 text-xs text-text-muted",children:[(0,d.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"===j&&s?(0,d.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,d.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:"check_circle"}),"Akun ",s.provider," tersimpan. Tambah lagi kapan saja, atau lihat di halaman Providers."]}):null]})}function I(){let[a,b]=(0,e.useState)(""),[c,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(""),j=async b=>{i(b);try{let c=new URLSearchParams({format:b});a&&c.set("provider",a);let d=await fetch(`/api/automation/export?${c.toString()}`);if(!d.ok)throw Error(`HTTP ${d.status}`);let e=await d.blob(),f=URL.createObjectURL(e),g=document.createElement("a");g.href=f;let h=d.headers.get("content-disposition")||"",i=/filename="([^"]+)"/.exec(h);g.download=i?.[1]||`9router-accounts.${"txt"===b?"txt":"json"}`,document.body.appendChild(g),g.click(),document.body.removeChild(g),URL.revokeObjectURL(f)}catch(a){alert(`Export gagal: ${a.message}`)}finally{i("")}};return(0,d.jsx)("div",{className:"flex flex-col gap-4",children:(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-[14px] border border-border bg-surface p-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("label",{htmlFor:"automation-export-provider",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,d.jsxs)("select",{id:"automation-export-provider",value:a,onChange:a=>b(a.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,d.jsx)("option",{value:"",children:"Semua provider"}),c.map(a=>(0,d.jsx)("option",{value:a.id,children:a.label},a.id))]})]}),(0,d.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-warning/25 bg-warning/10 px-3 py-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[16px] text-warning","aria-hidden":"true",children:"warning"}),(0,d.jsxs)("p",{className:"text-xs text-text-main",children:["Berkasnya berisi ",(0,d.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,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(f.$n,{variant:"secondary",icon:"download",onClick:()=>j("json"),loading:"json"===h,disabled:!!h,children:"Unduh JSON"}),(0,d.jsx)(f.$n,{variant:"secondary",icon:"description",onClick:()=>j("txt"),loading:"txt"===h,disabled:!!h,children:"Unduh TXT"})]}),(0,d.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 J=[{value:"manage",label:"Kelola akun"},{value:"oauth",label:"Login device"},{value:"export",label:"Export semua"}];function K({onLock:a}){let[b,c]=(0,e.useState)("manage"),[g,i]=(0,e.useState)(null),[j,k]=(0,e.useState)(!1),l=async()=>{k(!0);try{await fetch("/api/automation/gate",{method:"DELETE"})}finally{a()}};return(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-5",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-lg font-semibold text-text-main",children:"Automation"}),(0,d.jsx)("p",{className:"mt-0.5 text-sm text-text-muted",children:"Kelola akun provider: kuota, tes koneksi, tes prompt, impor, dan export."})]}),(0,d.jsxs)("button",{type:"button",onClick:l,disabled:j,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,d.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"lock"}),(0,d.jsx)("span",{children:"Kunci lagi"})]})]}),(0,d.jsx)(f.Iz,{options:J,value:b,onChange:c,className:"w-full sm:w-auto"}),"manage"===b?g?(0,d.jsx)(F,{providerId:g,onBack:()=>i(null)}):(0,d.jsx)(h,{onPick:i}):null,"oauth"===b?(0,d.jsx)(H,{}):null,"export"===b?(0,d.jsx)(I,{}):null]})}function L(){let[a,b]=(0,e.useState)(null);return null===a?(0,d.jsxs)("div",{className:"flex flex-col gap-3 py-10","aria-busy":"true",children:[(0,d.jsx)("div",{className:"h-6 w-40 animate-pulse rounded-lg bg-border-subtle/60"}),(0,d.jsx)("div",{className:"h-24 w-full max-w-md animate-pulse rounded-[14px] bg-border-subtle/60"})]}):a?(0,d.jsx)(K,{onLock:()=>b(!1)}):(0,d.jsx)(g,{onUnlock:()=>b(!0)})}},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71553:a=>{"use strict";a.exports=require("node:dns/promises")},71622:a=>{"use strict";a.exports=import("open")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73289:(a,b,c)=>{Promise.resolve().then(c.bind(c,51559))},73429:a=>{"use strict";a.exports=require("node:util/types")},73496:a=>{"use strict";a.exports=require("http2")},74075:a=>{"use strict";a.exports=require("zlib")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},79646:a=>{"use strict";a.exports=require("child_process")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81630:a=>{"use strict";a.exports=require("http")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},83017:(a,b,c)=>{Promise.resolve().then(c.bind(c,99947))},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87997:a=>{"use strict";a.exports=require("node:timers")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},99947:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"C:\\\\Users\\\\Developer\\\\9router-fix\\\\src\\\\app\\\\(dashboard)\\\\dashboard\\\\automation\\\\page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Developer\\9router-fix\\src\\app\\(dashboard)\\dashboard\\automation\\page.js","default")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1260,2430,4613,4485,9555,4884,8967,6070,869,915,6457,4123,8157,6777,412,2668],()=>b(b.s=33279));module.exports=c})();
|