omniroute 2.5.1 → 2.5.3
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/.env +122 -0
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +46 -46
- package/app/.next/build-manifest.json +3 -3
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/required-server-files.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/agents/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/agents/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +4 -4
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mcp/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/mcp/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/playground/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/.well-known/agent.json/route.js +1 -1
- package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/400/page.js +2 -2
- package/app/.next/server/app/400/page.js.nft.json +1 -1
- package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/401/page.js +2 -2
- package/app/.next/server/app/401/page.js.nft.json +1 -1
- package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/403/page.js +2 -2
- package/app/.next/server/app/403/page.js.nft.json +1 -1
- package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/408/page.js +2 -2
- package/app/.next/server/app/408/page.js.nft.json +1 -1
- package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/429/page.js +2 -2
- package/app/.next/server/app/429/page.js.nft.json +1 -1
- package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/500/page.js +2 -2
- package/app/.next/server/app/500/page.js.nft.json +1 -1
- package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/502/page.js +2 -2
- package/app/.next/server/app/502/page.js.nft.json +1 -1
- package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/503/page.js +2 -2
- package/app/.next/server/app/503/page.js.nft.json +1 -1
- package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page.js +3 -3
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +5 -5
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/a2a/route.js +2 -2
- package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/status/route.js +1 -1
- package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/[id]/route.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/route.js +1 -1
- package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/acp/agents/route.js +1 -1
- package/app/.next/server/app/api/acp/agents/route.js.nft.json +1 -1
- package/app/.next/server/app/api/acp/agents/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/login/route.js +1 -1
- package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/logout/route.js +1 -1
- package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/status/route.js +1 -1
- package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/route.js +1 -1
- package/app/.next/server/app/api/cache/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/stats/route.js +1 -1
- package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/status/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/status/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/auto/route.js +1 -1
- package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/test/route.js +1 -1
- package/app/.next/server/app/api/combos/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route.js.nft.json +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route.js.nft.json +1 -1
- package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route.js +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route.js.nft.json +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/route.js +1 -1
- package/app/.next/server/app/api/db-backups/route.js.nft.json +1 -1
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/route.js +1 -1
- package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/fallback/chains/route.js +2 -2
- package/app/.next/server/app/api/fallback/chains/route.js.nft.json +1 -1
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route.js +1 -1
- package/app/.next/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route.js +1 -1
- package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/logs/console/route.js +1 -1
- package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/audit/route.js +2 -2
- package/app/.next/server/app/api/mcp/audit/route.js.nft.json +1 -1
- package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/audit/stats/route.js +2 -2
- package/app/.next/server/app/api/mcp/audit/stats/route.js.nft.json +1 -1
- package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/sse/route.js +1 -1
- package/app/.next/server/app/api/mcp/sse/route.js.nft.json +1 -1
- package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/status/route.js +1 -1
- package/app/.next/server/app/api/mcp/status/route.js.nft.json +1 -1
- package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/stream/route.js +1 -1
- package/app/.next/server/app/api/mcp/stream/route.js.nft.json +1 -1
- package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/mcp/tools/route.js +1 -1
- package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -1
- package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/catalog/route.js +1 -1
- package/app/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/openrouter-catalog/route.js +1 -1
- package/app/.next/server/app/api/models/openrouter-catalog/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/openrouter-catalog/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/policies/route.js +2 -2
- package/app/.next/server/app/api/policies/route.js.nft.json +1 -1
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/models/route.js +1 -1
- package/app/.next/server/app/api/pricing/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/sync/route.js +1 -1
- package/app/.next/server/app/api/pricing/sync/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/sync/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-metrics/route.js +2 -2
- package/app/.next/server/app/api/provider-metrics/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route.js +1 -1
- package/app/.next/server/app/api/provider-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +2 -2
- package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/refresh/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/refresh/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/refresh/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limit/route.js +1 -1
- package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limits/route.js +1 -1
- package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
- package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route.js.nft.json +1 -1
- package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/route.js +1 -1
- package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/restart/route.js +1 -1
- package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sessions/route.js +1 -1
- package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/background-degradation/route.js +1 -1
- package/app/.next/server/app/api/settings/background-degradation/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/codex-service-tier/route.js +1 -1
- package/app/.next/server/app/api/settings/codex-service-tier/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/codex-service-tier/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/model-aliases/route.js +1 -1
- package/app/.next/server/app/api/settings/model-aliases/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/task-routing/route.js +1 -1
- package/app/.next/server/app/api/settings/task-routing/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/task-routing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/storage/health/route.js +1 -1
- package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route.js.nft.json +1 -1
- package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/token-health/route.js +1 -1
- package/app/.next/server/app/api/token-health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/detect/route.js +1 -1
- package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/history/route.js +1 -1
- package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route.js +1 -1
- package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/budget/route.js +2 -2
- package/app/.next/server/app/api/usage/budget/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/quota/route.js +1 -1
- package/app/.next/server/app/api/usage/quota/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/music/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/music/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/rerank/route.js +1 -1
- package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/route.js +1 -1
- package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs/page.js +3 -3
- package/app/.next/server/app/docs/page.js.nft.json +1 -1
- package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forbidden/page.js +2 -2
- package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page.js +2 -2
- package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page.js.nft.json +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/maintenance/page.js +2 -2
- package/app/.next/server/app/maintenance/page.js.nft.json +1 -1
- package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/offline/page.js +2 -2
- package/app/.next/server/app/offline/page.js.nft.json +1 -1
- package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page.js +2 -2
- package/app/.next/server/app/privacy/page.js.nft.json +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/status/page.js +2 -2
- package/app/.next/server/app/status/page.js.nft.json +1 -1
- package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms/page.js +2 -2
- package/app/.next/server/app/terms/page.js.nft.json +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +46 -46
- package/app/.next/server/chunks/1909.js +2 -0
- package/app/.next/server/chunks/242.js +1 -1
- package/app/.next/server/chunks/2910.js +3 -2
- package/app/.next/server/chunks/3648.js +2 -2
- package/app/.next/server/chunks/438.js +1 -1
- package/app/.next/server/chunks/4488.js +3 -2
- package/app/.next/server/chunks/5979.js +1 -1
- package/app/.next/server/chunks/6743.js +1 -1
- package/app/.next/server/chunks/7109.js +1 -1
- package/app/.next/server/chunks/7167.js +1 -0
- package/app/.next/server/chunks/7327.js +1 -1
- package/app/.next/server/chunks/8020.js +3 -3
- package/app/.next/server/chunks/9548.js +1 -1
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +4 -3
- package/app/.next/server/next-font-manifest.js +1 -1
- package/app/.next/server/next-font-manifest.json +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/{5846-6722250590122d8a.js → 5846-63e1f1f0bd63a6ad.js} +1 -1
- package/app/.next/static/chunks/{647-62acab8e8736396d.js → 647-bf8bc535ac3648d0.js} +2 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/a2a/page-ed1f5b1ae0e01c02.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/agents/{page-94aa33336637e74c.js → page-576b27a05c09fba5.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-6a2bb3ad980b05b9.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/{page-bef5c045e7eae657.js → page-6ab7701da3357bb9.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-8ee341b662a845dc.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-c9b98846b8479f3f.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/auto-combo/{page-fbf2315ef6ecc87a.js → page-799e2f96e9af3fd9.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-3c3f3b0b558e9302.js +15 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-3ed193e882fc0438.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/{page-7a233357dfbd2e05.js → page-8f6233f59f5277e9.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-8b96e2f6d76d6f2d.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/health/{page-66ee4e631429e0d8.js → page-1e1eb2f79d606ab2.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-ddce876357cb3ada.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/{page-f08daa44ccbeb258.js → page-2d456b7ddbf3d41e.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mcp/page-d9b5c3282ec5d809.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-5ed5bdc9e926936c.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/{page-d424641c7e428be9.js → page-5378e9473a20cd6a.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/{page-fc5b6d46662747df.js → page-799001b6cea7d5bc.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/playground/{page-6d988d37ce3b0e60.js → page-0fff47edc56250ea.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-389538ee27f0e405.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{error-0400f175dd1372fa.js → error-a5ae03ba05400b04.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/loading-7deaa9f550841465.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-3ef302da4b756e50.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{page-adbd858f2a6cd352.js → page-fbf74ae2f3206efe.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{error-c39d18f10fb7d3f6.js → error-ec9643134a96bbcd.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{loading-b5faf05c78a2cc54.js → loading-3519a633b514f31a.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-df62bcc49944269c.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/{page-0325206d05e6f375.js → page-aab023f14c6ff966.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-f761c3ff75d56636.js → page-8d6f629e0e29e796.js} +2 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-8c8f2d59d0cbb516.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/{layout-6d0afc53f5f2a538.js → layout-7ae0c66c22bee8a1.js} +1 -1
- package/app/.next/static/chunks/app/400/{page-3b77bf358909019a.js → page-3b9079ea400ca287.js} +1 -1
- package/app/.next/static/chunks/app/401/{page-3b77bf358909019a.js → page-3b9079ea400ca287.js} +1 -1
- package/app/.next/static/chunks/app/403/{page-3b77bf358909019a.js → page-3b9079ea400ca287.js} +1 -1
- package/app/.next/static/chunks/app/408/{page-3b77bf358909019a.js → page-3b9079ea400ca287.js} +1 -1
- package/app/.next/static/chunks/app/429/page-3b9079ea400ca287.js +1 -0
- package/app/.next/static/chunks/app/500/page-3b9079ea400ca287.js +1 -0
- package/app/.next/static/chunks/app/502/page-3b9079ea400ca287.js +1 -0
- package/app/.next/static/chunks/app/503/page-3b9079ea400ca287.js +1 -0
- package/app/.next/static/chunks/app/callback/{page-585a53f7dc6a30f1.js → page-0f0ebc0820dd18a5.js} +1 -1
- package/app/.next/static/chunks/app/docs/{page-9624e5fb8cabf7d8.js → page-dc88e0a01d291518.js} +1 -1
- package/app/.next/static/chunks/app/{error-f7f595c541537e63.js → error-32c03f14529d3920.js} +1 -1
- package/app/.next/static/chunks/app/forbidden/page-8d8e1709a1e32585.js +1 -0
- package/app/.next/static/chunks/app/forgot-password/page-d5c9b77748aa9deb.js +1 -0
- package/app/.next/static/chunks/app/global-error-5840b1caa830f2ec.js +1 -0
- package/app/.next/static/chunks/app/landing/page-8f652c1fbc33efd2.js +1 -0
- package/app/.next/static/chunks/app/{layout-108592eafb959363.js → layout-070972eb026af319.js} +1 -1
- package/app/.next/static/chunks/app/{loading-e063375d5b12a2f7.js → loading-da2f6e1471afc070.js} +1 -1
- package/app/.next/static/chunks/app/login/{page-cf6b82187b09a701.js → page-26d717c652d56032.js} +1 -1
- package/app/.next/static/chunks/app/maintenance/page-3b9079ea400ca287.js +1 -0
- package/app/.next/static/chunks/app/not-found-faf36d2a9a452506.js +1 -0
- package/app/.next/static/chunks/app/offline/page-bf68bf461af876a3.js +1 -0
- package/app/.next/static/chunks/app/privacy/{page-9624e5fb8cabf7d8.js → page-dc88e0a01d291518.js} +1 -1
- package/app/.next/static/chunks/app/status/page-29a433b40631ce12.js +1 -0
- package/app/.next/static/chunks/app/terms/{page-9624e5fb8cabf7d8.js → page-dc88e0a01d291518.js} +1 -1
- package/app/.next/static/chunks/{main-app-c9da11a8061df107.js → main-app-ae230f6bf51a5edb.js} +1 -1
- package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/app/package.json +1 -1
- package/app/server.js +1 -1
- package/package.json +1 -1
- package/app/.next/server/chunks/5248.js +0 -1
- package/app/.next/server/chunks/7889.js +0 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/a2a/page-43d6fa6b75cca497.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-49ae846d72948391.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-71f65a8c11e24ee8.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-e5bf8955e7b9a4f5.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-1d9c62ff735ac65a.js +0 -15
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-4e4d823fdc8705f5.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-81a6632af8c82919.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-5ace323bdf990976.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mcp/page-8e35334b9f393139.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-4e1629fc8404b3b9.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b4a67f078e2d5f8a.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/loading-9552383fd2e11282.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-d57908b59d4b482c.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-28ee6d0fc27b6ffe.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-9e20463252daf023.js +0 -1
- package/app/.next/static/chunks/app/429/page-3b77bf358909019a.js +0 -1
- package/app/.next/static/chunks/app/500/page-3b77bf358909019a.js +0 -1
- package/app/.next/static/chunks/app/502/page-3b77bf358909019a.js +0 -1
- package/app/.next/static/chunks/app/503/page-3b77bf358909019a.js +0 -1
- package/app/.next/static/chunks/app/forbidden/page-b33079c1573b0bfa.js +0 -1
- package/app/.next/static/chunks/app/forgot-password/page-90cd6259c75badfc.js +0 -1
- package/app/.next/static/chunks/app/global-error-1dfd1c91ad5199fe.js +0 -1
- package/app/.next/static/chunks/app/landing/page-90df98c27fe0b5d9.js +0 -1
- package/app/.next/static/chunks/app/maintenance/page-3b77bf358909019a.js +0 -1
- package/app/.next/static/chunks/app/not-found-511518956bcae7bc.js +0 -1
- package/app/.next/static/chunks/app/offline/page-9d6ea493783a0219.js +0 -1
- package/app/.next/static/chunks/app/status/page-4e5e9b5a513aa474.js +0 -1
- /package/app/.next/static/{whsp7HU8HFUikZQ7oSjYX → O9lSHUzWYvY1bYZSFuKAJ}/_buildManifest.js +0 -0
- /package/app/.next/static/{whsp7HU8HFUikZQ7oSjYX → O9lSHUzWYvY1bYZSFuKAJ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=7167,exports.ids=[7167],exports.modules={15102:(a,b,c)=>{c.d(b,{Uk:()=>f,bV:()=>e,lw:()=>g});let d={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"gpt-image-1",name:"GPT Image 1"},{id:"dall-e-3",name:"DALL-E 3"},{id:"dall-e-2",name:"DALL-E 2"}],supportedSizes:["1024x1024","1024x1792","1792x1024","256x256","512x512"]},xai:{id:"xai",baseUrl:"https://api.x.ai/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"grok-2-image-1212",name:"Grok 2 Image"}],supportedSizes:["1024x1024"]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/FLUX.1.1-pro",name:"FLUX 1.1 Pro"},{id:"black-forest-labs/FLUX.1-schnell-Free",name:"FLUX 1 Schnell (Free)"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["1024x1024","512x512"]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"accounts/fireworks/models/flux-1-dev-fp8",name:"FLUX 1 Dev FP8"},{id:"accounts/fireworks/models/stable-diffusion-xl-1024-v1-0",name:"SDXL 1024 v1.0"}],supportedSizes:["1024x1024","512x512"]},antigravity:{id:"antigravity",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"oauth",authHeader:"bearer",format:"gemini-image",models:[{id:"gemini-2.5-flash-preview-image-generation",name:"Gemini 2.5 Flash Image"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image Preview"}],supportedSizes:["1024x1024"]},nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/images/generations",fallbackUrl:"https://api.studio.nebius.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/flux-schnell",name:"FLUX.1 Schnell"},{id:"black-forest-labs/flux-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/image/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"SDXL1.0-base",name:"SDXL 1.0 Base"},{id:"SD2",name:"Stable Diffusion 2"},{id:"FLUX.1-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},nanobanana:{id:"nanobanana",baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",proUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate-pro",statusUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info",authType:"apikey",authHeader:"bearer",format:"nanobanana",models:[{id:"nanobanana-flash",name:"NanoBanana Flash (Gemini 2.5 Flash)"},{id:"nanobanana-pro",name:"NanoBanana Pro (Gemini 3 Pro)"}],supportedSizes:["1024x1024","1024x1280","1024x1536","1536x1024","1280x1024"]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860/sdapi/v1/txt2img",authType:"none",authHeader:"none",format:"sdwebui",models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["512x512","768x768","1024x1024"]},comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"flux-dev",name:"FLUX Dev"},{id:"sdxl",name:"SDXL"}],supportedSizes:["512x512","768x768","1024x1024"]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b,supportedSizes:c.supportedSizes});return a}},39548:(a,b,c)=>{c.d(b,{k:()=>g});var d=c(15102),e=c(19704),f=c(92310);async function g({body:a,credentials:b,log:c,resolvedProvider:e=null}){let f,g;if(e){f=e;let b=a.model||"";g=b.startsWith(f+"/")?b.slice(f.length+1):b}else{let b=(0,d.Uk)(a.model);f=b.provider,g=b.model}if(!f)return{success:!1,status:400,error:`Invalid image model: ${a.model}. Use format: provider/model`};let j=(0,d.bV)(f);if(!j){if(!e)return{success:!1,status:400,error:`Unknown image provider: ${f}`};c&&c.info("IMAGE",`Custom model ${f}/${g} — using OpenAI-compatible handler`);let d={id:f,baseUrl:b?.baseUrl||"https://generativelanguage.googleapis.com/v1beta/openai/images/generations",authType:"apikey",authHeader:"bearer",format:"openai"};return i({model:g,provider:f,providerConfig:d,body:a,credentials:b,log:c})}return"gemini-image"===j.format?h({model:g,providerConfig:j,body:a,credentials:b,log:c}):"hyperbolic"===j.format?k({model:g,provider:f,providerConfig:j,body:a,credentials:b,log:c}):"nanobanana"===j.format?l({model:g,provider:f,providerConfig:j,body:a,credentials:b,log:c}):"sdwebui"===j.format?o({model:g,provider:f,providerConfig:j,body:a,log:c}):"comfyui"===j.format?p({model:g,provider:f,providerConfig:j,body:a,log:c}):i({model:g,provider:f,providerConfig:j,body:a,credentials:b,log:c})}async function h({model:a,providerConfig:b,body:c,credentials:d,log:f}){let g=Date.now(),h=`${b.baseUrl}/${a}:generateContent`,i="antigravity",j={model:c.model,prompt:"string"==typeof c.prompt?c.prompt.slice(0,200):String(c.prompt??"").slice(0,200),size:c.size||"default",n:c.n||1},k={contents:[{parts:[{text:c.prompt}]}],generationConfig:{responseModalities:["TEXT","IMAGE"]}},l=d.accessToken||d.apiKey,m={"Content-Type":"application/json",Authorization:`Bearer ${l}`};if(f){let b="string"==typeof c.prompt?c.prompt.slice(0,60):String(c.prompt??"").slice(0,60);f.info("IMAGE",`antigravity/${a} (gemini) | prompt: "${b}..." | format: gemini-image`)}try{let b=await fetch(h,{method:"POST",headers:m,body:JSON.stringify(k)});if(!b.ok){let c=await b.text();return f&&f.error("IMAGE",`antigravity error ${b.status}: ${c.slice(0,200)}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:b.status,model:`antigravity/${a}`,provider:i,duration:Date.now()-g,error:c.slice(0,500),requestBody:j}).catch(()=>{}),{success:!1,status:b.status,error:c}}let d=await b.json(),l=[];for(let a of d.candidates||[]){let b=a.content?.parts||[];for(let a of b)a.inlineData&&l.push({b64_json:a.inlineData.data,revised_prompt:b.find(a=>a.text)?.text||c.prompt})}return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:200,model:`antigravity/${a}`,provider:i,duration:Date.now()-g,tokens:{prompt_tokens:0,completion_tokens:0},requestBody:j,responseBody:{images_count:l.length}}).catch(()=>{}),{success:!0,data:{created:Math.floor(Date.now()/1e3),data:l}}}catch(b){return f&&f.error("IMAGE",`antigravity fetch error: ${b.message}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:502,model:`antigravity/${a}`,provider:i,duration:Date.now()-g,error:b.message,requestBody:j}).catch(()=>{}),{success:!1,status:502,error:`Image provider error: ${b.message}`}}}async function i({model:a,provider:b,providerConfig:c,body:d,credentials:f,log:g}){let h=Date.now(),i={model:d.model,prompt:"string"==typeof d.prompt?d.prompt.slice(0,200):String(d.prompt??"").slice(0,200),size:d.size||"default",n:d.n||1,quality:d.quality||void 0},k={model:a,prompt:d.prompt};void 0!==d.n&&(k.n=d.n),void 0!==d.size&&(k.size=d.size),void 0!==d.quality&&(k.quality=d.quality),void 0!==d.response_format&&(k.response_format=d.response_format),void 0!==d.style&&(k.style=d.style);let l={"Content-Type":"application/json"},m=f.apiKey||f.accessToken;if("bearer"===c.authHeader?l.Authorization=`Bearer ${m}`:"x-api-key"===c.authHeader&&(l["x-api-key"]=m),g){let c="string"==typeof d.prompt?d.prompt.slice(0,60):String(d.prompt??"").slice(0,60);g.info("IMAGE",`${b}/${a} | prompt: "${c}..." | size: ${d.size||"default"}`)}let n=JSON.stringify(k),o=await j(c.baseUrl,l,n,b,g);return!o.success&&c.fallbackUrl&&[404,410,502,503].includes(o.status)&&(g&&g.info("IMAGE",`${b}: primary URL failed (${o.status}), trying fallback...`),o=await j(c.fallbackUrl,l,n,b,g)),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:o.status||(o.success?200:502),model:`${b}/${a}`,provider:b,duration:Date.now()-h,tokens:{prompt_tokens:0,completion_tokens:0},error:o.success?null:"string"==typeof o.error?o.error.slice(0,500):null,requestBody:i,responseBody:o.success?{images_count:o.data?.data?.length||0}:null}).catch(()=>{}),o}async function j(a,b,c,d,e){try{let f=await fetch(a,{method:"POST",headers:b,body:c});if(!f.ok){let a=await f.text();return e&&e.error("IMAGE",`${d} error ${f.status}: ${a.slice(0,200)}`),{success:!1,status:f.status,error:a}}let g=await f.json();return{success:!0,data:{created:g.created||Math.floor(Date.now()/1e3),data:g.data||[]}}}catch(a){return e&&e.error("IMAGE",`${d} fetch error: ${a.message}`),{success:!1,status:502,error:`Image provider error: ${a.message}`}}}async function k({model:a,provider:b,providerConfig:c,body:d,credentials:f,log:g}){let h=Date.now(),i=f.apiKey||f.accessToken,[j,k]=(d.size||"1024x1024").split("x").map(Number),l={model_name:a,prompt:d.prompt,height:k||1024,width:j||1024,backend:"auto"};if(g){let c=String(d.prompt??"").slice(0,60);g.info("IMAGE",`${b}/${a} (hyperbolic) | prompt: "${c}..."`)}try{let f=await fetch(c.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify(l)});if(!f.ok){let c=await f.text();return g&&g.error("IMAGE",`${b} error ${f.status}: ${c.slice(0,200)}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:f.status,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:c.slice(0,500)}).catch(()=>{}),{success:!1,status:f.status,error:c}}let j=((await f.json()).images||[]).map(a=>({b64_json:a.image,revised_prompt:d.prompt}));return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:200,model:`${b}/${a}`,provider:b,duration:Date.now()-h,responseBody:{images_count:j.length}}).catch(()=>{}),{success:!0,data:{created:Math.floor(Date.now()/1e3),data:j}}}catch(c){return g&&g.error("IMAGE",`${b} fetch error: ${c.message}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:502,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:c.message}).catch(()=>{}),{success:!1,status:502,error:`Image provider error: ${c.message}`}}}async function l({model:a,provider:b,providerConfig:c,body:d,credentials:f,log:g}){let h=Date.now(),i=f.apiKey||f.accessToken,j="nanobanana-pro"===a,k=j&&c.proUrl?c.proUrl:c.baseUrl,l=c.statusUrl,o="string"==typeof d.aspectRatio?d.aspectRatio:"string"==typeof d.aspect_ratio?d.aspect_ratio:function(a){if("string"!=typeof a)return null;let[b,c]=a.split("x"),d=Number(b),e=Number(c);if(!Number.isFinite(d)||!Number.isFinite(e)||d<=0||e<=0)return null;let f=(a,b)=>0===b?a:f(b,a%b),g=f(Math.round(d),Math.round(e));return`${Math.round(d/g)}:${Math.round(e/g)}`}(d.size)||"1:1",p="string"==typeof d.resolution?d.resolution:function(a){if("string"!=typeof a)return null;let[b,c]=a.split("x"),d=Number(b),e=Number(c);if(!Number.isFinite(d)||!Number.isFinite(e)||d<=0||e<=0)return null;let f=Math.max(d,e);return f<=1024?"1K":f<=2048?"2K":"4K"}(d.size)||"1K";"hd"===d.quality&&"1K"===p&&(p="2K");let q=j?{prompt:d.prompt,resolution:p,aspectRatio:o,...Array.isArray(d.imageUrls)?{imageUrls:d.imageUrls}:{}}:{prompt:d.prompt,type:Array.isArray(d.imageUrls)&&d.imageUrls.length>0?"IMAGETOIAMGE":"TEXTTOIAMGE",numImages:Number.isFinite(d.n)?Math.max(1,Number(d.n)):1,image_size:o,...Array.isArray(d.imageUrls)?{imageUrls:d.imageUrls}:{}};if(g){let c=String(d.prompt??"").slice(0,60);g.info("IMAGE",`${b}/${a} (nanobanana ${j?"pro":"flash"}) | prompt: "${c}..."`)}try{let c=await fetch(k,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify(q)});if(!c.ok){let d=await c.text();return g&&g.error("IMAGE",`${b} submit error ${c.status}: ${d.slice(0,200)}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:c.status,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:d.slice(0,500)}).catch(()=>{}),{success:!1,status:c.status,error:d}}let f=await c.json();if(f?.image||Array.isArray(f?.images)||Array.isArray(f?.data)||f?.data?.[0]?.url||f?.data?.[0]?.b64_json){let c=function(a,b){let c=[];if(a.image)c.push({b64_json:a.image,revised_prompt:b});else if(Array.isArray(a.images))for(let d of a.images)c.push({b64_json:"string"==typeof d?d:d?.image||d?.data,revised_prompt:b});else if(Array.isArray(a.data))for(let b of a.data)b&&c.push(b);return{data:c.filter(Boolean)}}(f,d.prompt);return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:200,model:`${b}/${a}`,provider:b,duration:Date.now()-h,responseBody:{images_count:c.data?.length||0,mode:"sync"}}).catch(()=>{}),{success:!0,data:{created:Math.floor(Date.now()/1e3),data:c.data}}}let j=f?.data?.taskId||f?.taskId;if(!j){let c=`NanoBanana submit did not return taskId: ${JSON.stringify(f).slice(0,400)}`;return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:502,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:c}).catch(()=>{}),{success:!1,status:502,error:c}}if(!l){let c="NanoBanana statusUrl is not configured";return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:500,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:c}).catch(()=>{}),{success:!1,status:500,error:c}}let o=n(d.timeout_ms,n(process.env.NANOBANANA_POLL_TIMEOUT_MS,12e4)),p=n(d.poll_interval_ms,n(process.env.NANOBANANA_POLL_INTERVAL_MS,2500)),r=null,s=Date.now()+o;for(;Date.now()<s;){let c=await fetch(`${l}?taskId=${encodeURIComponent(j)}`,{method:"GET",headers:{Authorization:`Bearer ${i}`}});if(!c.ok){let a=await c.text();return g&&g.error("IMAGE",`${b} poll error ${c.status}: ${a.slice(0,200)}`),{success:!1,status:c.status,error:a}}let f=await c.json(),k=f?.data||f;r=k;let n=Number(k?.successFlag);if(1===n){let c=await m(k,d,g);return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:200,model:`${b}/${a}`,provider:b,duration:Date.now()-h,responseBody:{images_count:c.length,mode:"async",taskId:j}}).catch(()=>{}),{success:!0,data:{created:Math.floor(Date.now()/1e3),data:c}}}if(2===n||3===n){let c=k?.errorMessage||`NanoBanana task failed (successFlag=${String(n)})`;return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:502,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:c.slice(0,500),responseBody:{taskId:j,successFlag:n,errorCode:k?.errorCode??null}}).catch(()=>{}),{success:!1,status:502,error:c}}await function(a){return new Promise(b=>setTimeout(b,a))}(p)}let t=`NanoBanana task timeout after ${o}ms (taskId=${j}, successFlag=${String(r?.successFlag??"unknown")})`;return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:504,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:t,responseBody:{taskId:j,lastSuccessFlag:r?.successFlag??null}}).catch(()=>{}),{success:!1,status:504,error:t}}catch(c){return g&&g.error("IMAGE",`${b} fetch error: ${c.message}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:502,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:c.message}).catch(()=>{}),{success:!1,status:502,error:`Image provider error: ${c.message}`}}}async function m(a,b,c){let d=a?.response||{},e=[d?.resultImageUrl,d?.originImageUrl,a?.resultImageUrl,a?.originImageUrl].filter(a=>"string"==typeof a&&a.length>0);if(Array.isArray(d?.resultImageUrls))for(let a of d.resultImageUrls)"string"==typeof a&&a.length>0&&e.push(a);let f=[d?.resultImageBase64,d?.resultImage,a?.resultImageBase64,a?.resultImage].filter(a=>"string"==typeof a&&a.length>0);if(Array.isArray(d?.resultImageBase64List))for(let a of d.resultImageBase64List)"string"==typeof a&&a.length>0&&f.push(a);if("b64_json"===b.response_format){if(f.length>0)return f.map(a=>({b64_json:a,revised_prompt:b.prompt}));if(e.length>0){let a=e[0],c=await fetch(a);if(!c.ok)throw Error(`Failed to fetch NanoBanana result image URL (${c.status})`);let d=await c.arrayBuffer();return[{b64_json:Buffer.from(d).toString("base64"),revised_prompt:b.prompt}]}}return e.length>0?e.map(a=>({url:a,revised_prompt:b.prompt})):f.length>0?f.map(a=>({b64_json:a,revised_prompt:b.prompt})):(c&&c.warn("IMAGE",`NanoBanana task completed without image payload: ${JSON.stringify(a).slice(0,240)}`),[])}function n(a,b){let c=Number(a);return!Number.isFinite(c)||c<=0?b:Math.floor(c)}async function o({model:a,provider:b,providerConfig:c,body:d,log:f}){let g=Date.now(),[h,i]=(d.size||"512x512").split("x").map(Number),j={prompt:d.prompt,negative_prompt:d.negative_prompt||"",width:h||512,height:i||512,steps:d.steps||20,cfg_scale:d.cfg_scale||7,sampler_name:d.sampler||"Euler a",batch_size:d.n||1,override_settings:{sd_model_checkpoint:a}};if(f){let c=String(d.prompt??"").slice(0,60);f.info("IMAGE",`${b}/${a} (sdwebui) | prompt: "${c}..."`)}try{let h=await fetch(c.baseUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j)});if(!h.ok){let c=await h.text();return f&&f.error("IMAGE",`${b} error ${h.status}: ${c.slice(0,200)}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:h.status,model:`${b}/${a}`,provider:b,duration:Date.now()-g,error:c.slice(0,500)}).catch(()=>{}),{success:!1,status:h.status,error:c}}let i=((await h.json()).images||[]).map(a=>({b64_json:a,revised_prompt:d.prompt}));return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:200,model:`${b}/${a}`,provider:b,duration:Date.now()-g,responseBody:{images_count:i.length}}).catch(()=>{}),{success:!0,data:{created:Math.floor(Date.now()/1e3),data:i}}}catch(c){return f&&f.error("IMAGE",`${b} sdwebui error: ${c.message}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:502,model:`${b}/${a}`,provider:b,duration:Date.now()-g,error:c.message}).catch(()=>{}),{success:!1,status:502,error:`Image provider error: ${c.message}`}}}async function p({model:a,provider:b,providerConfig:c,body:d,log:g}){let h=Date.now(),[i,j]=(d.size||"1024x1024").split("x").map(Number),k={3:{class_type:"KSampler",inputs:{seed:Math.floor(0x100000000*Math.random()),steps:d.steps||20,cfg:d.cfg_scale||7,sampler_name:"euler",scheduler:"normal",denoise:1,model:["4",0],positive:["6",0],negative:["7",0],latent_image:["5",0]}},4:{class_type:"CheckpointLoaderSimple",inputs:{ckpt_name:a}},5:{class_type:"EmptyLatentImage",inputs:{width:i||1024,height:j||1024,batch_size:d.n||1}},6:{class_type:"CLIPTextEncode",inputs:{text:d.prompt,clip:["4",1]}},7:{class_type:"CLIPTextEncode",inputs:{text:d.negative_prompt||"",clip:["4",1]}},8:{class_type:"VAEDecode",inputs:{samples:["3",0],vae:["4",2]}},9:{class_type:"SaveImage",inputs:{filename_prefix:"omniroute",images:["8",0]}}};if(g){let c=String(d.prompt??"").slice(0,60);g.info("IMAGE",`${b}/${a} (comfyui) | prompt: "${c}..."`)}try{let g=await (0,f.ep)(c.baseUrl,k),i=await (0,f.VA)(c.baseUrl,g),j=(0,f.AC)(i),l=[];for(let a of j){let b=await (0,f.Uh)(c.baseUrl,a.filename,a.subfolder,a.type),e=Buffer.from(b).toString("base64");l.push({b64_json:e,revised_prompt:d.prompt})}return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:200,model:`${b}/${a}`,provider:b,duration:Date.now()-h,responseBody:{images_count:l.length}}).catch(()=>{}),{success:!0,data:{created:Math.floor(Date.now()/1e3),data:l}}}catch(c){return g&&g.error("IMAGE",`${b} comfyui error: ${c.message}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:502,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:c.message}).catch(()=>{}),{success:!1,status:502,error:`Image provider error: ${c.message}`}}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=7327,exports.ids=[4755,7136,7327],exports.modules={21020:(a,b,c)=>{c.d(b,{Pt:()=>t,Tr:()=>u,c1:()=>r,kI:()=>v,vk:()=>s});var d=c(75585),e=c(82742),f=c(74163),g=c(27976),h=c(6689);function i(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function j(a){return"string"==typeof a&&a.trim().length>0?a:null}function k(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim().length>0){let c=Number(a);return Number.isFinite(c)?c:b}return b}function l(a){let b=i(a);return{id:j(b.id)||"",isActive:!0===b.isActive,rateLimitedUntil:j(b.rateLimitedUntil),testStatus:j(b.testStatus),apiKey:j(b.apiKey),accessToken:j(b.accessToken),refreshToken:j(b.refreshToken),tokenExpiresAt:j(b.tokenExpiresAt),expiresAt:j(b.expiresAt),projectId:j(b.projectId),providerSpecificData:i(b.providerSpecificData),lastUsedAt:j(b.lastUsedAt),consecutiveUseCount:k(b.consecutiveUseCount,0),priority:k(b.priority,999),lastError:j(b.lastError),errorCode:"string"==typeof b.errorCode||"number"==typeof b.errorCode?b.errorCode:null,backoffLevel:k(b.backoffLevel,0)}}function m(a,b){return"boolean"==typeof a?a:b}function n(a){if(!a)return null;let b=new Date(a).getTime();return!Number.isFinite(b)||b<=Date.now()?null:b}function o(a){return a.map(a=>({raw:a,ms:n(a)})).filter(a=>null!==a.ms).sort((a,b)=>a.ms-b.ms)[0]?.raw||null}let p=Promise.resolve(),q=new Map;async function r(a,b=null,c=null){let j,q=p;p=new Promise(a=>{j=a});try{let j;await q;let p=await (0,d.getProviderConnections)({provider:a,isActive:!0}),r=(Array.isArray(p)?p:[]).map(l).filter(a=>a.id.length>0);if(c&&c.length>0&&(r=r.filter(a=>c.includes(a.id))),g.debug("AUTH",`${a} | total connections: ${r.length}, excludeId: ${b||"none"}`),0===r.length){let b=await (0,d.getProviderConnections)({provider:a}),c=(Array.isArray(b)?b:[]).map(l).filter(a=>a.id.length>0);if(g.debug("AUTH",`${a} | all connections (incl inactive): ${c.length}`),c.length>0){let b=(0,f.UY)(c);if(b)return g.warn("AUTH",`${a} | all ${c.length} accounts rate limited (${(0,f.Qo)(b)})`),{allRateLimited:!0,retryAfter:b,retryAfterHuman:(0,f.Qo)(b)};g.warn("AUTH",`${a} | ${c.length} accounts found but none active`),c.forEach(a=>{g.debug("AUTH",` → ${a.id?.slice(0,8)} | isActive=${a.isActive} | rateLimitedUntil=${a.rateLimitedUntil||"none"} | testStatus=${a.testStatus}`)})}return g.warn("AUTH",`No credentials for ${a}`),null}let s=r.filter(a=>!(b&&a.id===b||(0,f.AO)(a.rateLimitedUntil)));if(g.debug("AUTH",`${a} | available: ${s.length}/${r.length}`),r.forEach(a=>{let c=b&&a.id===b,d=(0,f.AO)(a.rateLimitedUntil);(c||d)&&g.debug("AUTH",` → ${a.id?.slice(0,8)} | ${c?"excluded":""} ${d?`rateLimited until ${a.rateLimitedUntil}`:""}`)}),0===s.length){let b=(0,f.UY)(r);if(b){let c=r.filter(a=>a.rateLimitedUntil&&new Date(a.rateLimitedUntil).getTime()>Date.now()).sort((a,b)=>new Date(a.rateLimitedUntil||0).getTime()-new Date(b.rateLimitedUntil||0).getTime())[0];return g.warn("AUTH",`${a} | all ${r.length} active accounts rate limited (${(0,f.Qo)(b)}) | lastErrorCode=${c?.errorCode}, lastError=${c?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:b,retryAfterHuman:(0,f.Qo)(b),lastError:c?.lastError||null,lastErrorCode:c?.errorCode||null}}return g.warn("AUTH",`${a} | all ${r.length} accounts unavailable`),null}let t=s;if("codex"===a){let b=[];if(t=s.filter(a=>{var c;let d,f=(c=a.providerSpecificData,d=i(c.codexLimitPolicy),{use5h:m(d.use5h,!0),useWeekly:m(d.useWeekly,!0)}),g=f.use5h?(0,e.bQ)(a.id,"session",90):null,h=f.useWeekly?(0,e.bQ)(a.id,"weekly",90):null,j=[],k=[];if(f.use5h&&g?.reachedThreshold&&(j.push(`5h usage ${Math.round(g.usedPercentage)}%`),k.push(g.resetAt)),f.useWeekly&&h?.reachedThreshold&&(j.push(`weekly usage ${Math.round(h.usedPercentage)}%`),k.push(h.resetAt)),j.length>0){let c=o(k);return b.push({id:a.id,reasons:j,resetAt:c}),!1}return!0}),b.length>0&&g.info("AUTH",`${a} | quota policy filtered ${b.length} account(s): ${b.map(a=>`${a.id.slice(0,8)}(${a.reasons.join(", ")})`).join("; ")}`),0===t.length&&s.length>0){let a=o(b.map(a=>a.resetAt)),c=n(a),d=c?new Date(c).toISOString():new Date(Date.now()+3e5).toISOString();return{allRateLimited:!0,retryAfter:d,retryAfterHuman:(0,f.Qo)(d),lastError:"All Codex accounts reached configured quota threshold",lastErrorCode:429}}}let u=t.filter(a=>!(0,e.DC)(a.id)),v=t.filter(a=>(0,e.DC)(a.id)),w=u.length>0?[...u,...v]:t;v.length>0&&g.debug("AUTH",`${a} | quota-aware: ${u.length} with quota, ${v.length} exhausted`);let x=await (0,d.V7)(),y=x.fallbackStrategy||"fill-first";if("round-robin"===y){let c=k(x.stickyRoundRobinLimit,3);if(null!==b)j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0],g.info("AUTH",`${a} round-robin: FALLBACK MODE - excluded ${b?.slice(0,8)}..., picked LRU ${j.id?.slice(0,8)}...`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1});else{let b=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt).getTime()-new Date(a.lastUsedAt).getTime():-1:1:(a.priority||999)-(b.priority||999))[0],e=b?.consecutiveUseCount||0;b&&b.lastUsedAt&&e<c?(j=b,g.debug("AUTH",`${a} round-robin: staying with ${b.id?.slice(0,8)}... (count=${e}/${c})`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(j.consecutiveUseCount||0)+1})):(j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0],g.debug("AUTH",`${a} round-robin: switching to LRU ${j.id?.slice(0,8)}... (current count=${e} >= limit=${c} or no lastUsedAt)`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}}else if("p2c"===y)if(w.length<=2)j=w[0];else{let a=Math.floor(Math.random()*w.length),b=Math.floor(Math.random()*(w.length-1));b>=a&&b++;let c=w[a],d=w[b],e=(c.consecutiveUseCount||0)+10*!!c.lastError,f=(d.consecutiveUseCount||0)+10*!!d.lastError;j=e<=f?c:d}else if("random"===y){let a=Math.floor(Math.random()*w.length);j=w[a]}else if("least-used"===y)j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0];else if("cost-optimized"===y)j=[...w].sort((a,b)=>(a.priority||999)-(b.priority||999))[0];else if("strict-random"===y){let b=w.map(a=>a.id),c=(0,h.AN)(`conn:${a}`,b);j=w.find(a=>a.id===c)||w[0]}else j=w[0];return{apiKey:j.apiKey,accessToken:j.accessToken,refreshToken:j.refreshToken,expiresAt:j.tokenExpiresAt||j.expiresAt||null,projectId:j.projectId,copilotToken:"string"==typeof j.providerSpecificData.copilotToken?j.providerSpecificData.copilotToken:null,providerSpecificData:j.providerSpecificData,connectionId:j.id,testStatus:j.testStatus,lastError:j.lastError,rateLimitedUntil:j.rateLimitedUntil}}finally{j&&j()}}async function s(a,b,c,e=null,h=null){let i,j=q.get(a)||Promise.resolve();q.set(a,new Promise(a=>{i=a}));try{await j;let i=await (0,d.getProviderConnections)({provider:e}),k=(Array.isArray(i)?i:[]).map(l).filter(a=>a.id.length>0).find(b=>b.id===a),m=k?.backoffLevel||0;if(k?.rateLimitedUntil&&new Date(k.rateLimitedUntil).getTime()>Date.now())return g.info("AUTH",`${a.slice(0,8)} already marked unavailable (until ${k.rateLimitedUntil}), skipping duplicate mark`),{shouldFallback:!0,cooldownMs:new Date(k.rateLimitedUntil).getTime()-Date.now()};let{shouldFallback:n,cooldownMs:o,newBackoffLevel:p,reason:q}=(0,f.hk)(b,c,m,h,e);if(!n)return{shouldFallback:!1,cooldownMs:0};let r=(0,f.vp)(o),s="string"==typeof c?c.slice(0,100):"Provider error";return await (0,d.rj)(a,{rateLimitedUntil:r,testStatus:"unavailable",lastError:s,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:p??m}),e&&h&&o>0&&(0,f.R7)(e,a,h,q||"unknown",o),e&&b&&s&&console.error(`❌ ${e} [${b}]: ${s}`),{shouldFallback:!0,cooldownMs:o}}finally{i&&i(),q.delete(a)}}async function t(a,b){("unavailable"===b.testStatus||b.lastError||b.rateLimitedUntil)&&(await (0,d.rj)(a,{testStatus:"active",lastError:null,lastErrorAt:null,rateLimitedUntil:null,backoffLevel:0}),g.info("AUTH",`Account ${a.slice(0,8)} error cleared`))}function u(a){let b=a.headers.get("Authorization");return b?.startsWith("Bearer ")?b.slice(7):null}async function v(a){return!!a&&await (0,d.ek)(a)}},27976:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>m,error:()=>p,info:()=>n,maskKey:()=>k.s9,request:()=>q,response:()=>r,stream:()=>s,warn:()=>o});var d=c(74552),e=c.n(d),f=c(33873),g=c(29021);function h(){let a="false"!==process.env.LOG_TO_FILE,b=process.env.LOG_FILE_PATH||(0,f.join)(process.cwd(),"logs/application/app.log");return{logToFile:a,logFilePath:b,maxFileSize:function(a){if(!a)return 0x3200000;let b=a.match(/^(\d+)\s*(k|m|g|kb|mb|gb)?$/i);if(!b)return 0x3200000;let c=parseInt(b[1],10);switch((b[2]||"").toLowerCase()){case"k":case"kb":return 1024*c;case"m":case"mb":return 1024*c*1024;case"g":case"gb":return 1024*c*1048576;default:return c}}(process.env.LOG_MAX_FILE_SIZE),retentionDays:parseInt(process.env.LOG_RETENTION_DAYS||String(7),10)}}let i={level:process.env.LOG_LEVEL||"info",base:{service:"omniroute"},timestamp:e().stdTimeFunctions.isoTime,formatters:{level:a=>({level:a})}},j=function(){let a=h(),b=i.level||"info";if(a.logToFile)try{let d=h();if(d.logToFile){var c;let a;c=d.logFilePath,a=(0,f.dirname)(c),(0,g.existsSync)(a)||(0,g.mkdirSync)(a,{recursive:!0}),function(a,b){try{if(!(0,g.existsSync)(a)||(0,g.statSync)(a).size<b)return;let c=(0,f.dirname)(a),d=(0,f.extname)(a),e=(0,f.basename)(a,d),h=new Date,i=`${h.getFullYear()}-${String(h.getMonth()+1).padStart(2,"0")}-${String(h.getDate()).padStart(2,"0")}_${String(h.getHours()).padStart(2,"0")}${String(h.getMinutes()).padStart(2,"0")}${String(h.getSeconds()).padStart(2,"0")}`,j=(0,f.join)(c,`${e}.${i}${d}`);(0,g.renameSync)(a,j)}catch{}}(d.logFilePath,d.maxFileSize),function(a,b){try{let c=(0,f.dirname)(a);if(!(0,g.existsSync)(c))return;let d=(0,f.extname)(a),e=(0,f.basename)(a,d),h=(0,g.readdirSync)(c),i=Date.now()-24*b*36e5;for(let b of h)if(b.startsWith(e+".")&&b.endsWith(d)&&b!==(0,f.basename)(a)){let a=(0,f.join)(c,b);try{(0,g.statSync)(a).mtimeMs<i&&(0,g.unlinkSync)(a)}catch{}}}catch{}}(d.logFilePath,d.retentionDays)}let j=(0,f.resolve)(a.logFilePath);return e()({...i,transport:{targets:[{target:"pino/file",options:{destination:1},level:b},{target:"pino/file",options:{destination:j,mkdir:!0},level:b}]}})}catch(c){console.warn("[logger] Failed to set up file transport, attempting sync fallback...",c?.message||c);try{let c=(0,f.resolve)(a.logFilePath),d=e().destination({dest:c,mkdir:!0,sync:!0});return e()(i,e().multistream([{stream:process.stdout,level:b},{stream:d,level:b}]))}catch(a){console.warn("[logger] Sync fallback also failed, falling back to console only",a?.message||a)}}return e()(i)}();var k=c(89794);let l=j.child({module:"sse"});function m(a,b,c){l.debug({tag:a,...t(c)},b)}function n(a,b,c){l.info({tag:a,...t(c)},b)}function o(a,b,c){l.warn({tag:a,...t(c)},b)}function p(a,b,c){l.error({tag:a,...t(c)},b)}function q(a,b,c){l.info({tag:"HTTP",method:a,path:b,...t(c)},`📥 ${a} ${b}`)}function r(a,b,c){l[a<400?"info":"error"]({tag:"HTTP",status:a,duration:b,...t(c)},`📤 ${a} (${b}ms)`)}function s(a,b){l.debug({tag:"STREAM",event:a,...t(b)},`🌊 ${a}`)}function t(a){return a?"string"==typeof a?{detail:a}:"object"==typeof a?a:{detail:String(a)}:{}}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},70884:(a,b,c)=>{c.d(b,{S:()=>j});var d=c(21020),e=c(75585),f=c(78790),g=c(71861),h=c(60293),i=c(27976);async function j(a,b){let c=(0,d.Tr)(a);if(!c)return{apiKey:null,apiKeyInfo:null,rejection:null};let j=null;try{j=await (0,e.v9)(c)}catch(a){return i.error("API_POLICY","Failed to fetch API key metadata. Request blocked.",{error:a}),{apiKey:c,apiKeyInfo:null,rejection:(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,"API key policy unavailable")}}if(!j)return{apiKey:c,apiKeyInfo:null,rejection:null};if(!1===j.isActive)return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,"This API key is disabled")};if(j.accessSchedule&&j.accessSchedule.enabled&&!function(a){let b,c;if(!a.enabled)return!0;let d=new Date;try{b=new Intl.DateTimeFormat("en-US",{timeZone:a.tz,hour:"2-digit",minute:"2-digit",hour12:!1}).format(d)}catch{return!0}let[e,f]=b.replace(/^24:/,"00:").split(":").map(Number),g=60*e+f;try{c=new Intl.DateTimeFormat("en-US",{timeZone:a.tz,weekday:"short"}).format(d)}catch{return!0}let h={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6}[c]??d.getDay();if(!a.days.includes(h))return!1;let[i,j]=a.from.split(":").map(Number),[k,l]=a.until.split(":").map(Number),m=60*i+j,n=60*k+l;return n<m?g>=m||g<n:g>=m&&g<n}(j.accessSchedule)){let{from:a,until:b,tz:d}=j.accessSchedule;return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,`Access denied outside allowed hours (${a}–${b} ${d})`)}}if(b&&j.allowedModels&&j.allowedModels.length>0&&!await (0,e.Oo)(c,b))return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,`Model "${b}" is not allowed for this API key`)};if(j.id)try{let a=(0,f.Ik)(j.id);if(!a.allowed)return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.RATE_LIMITED,a.reason||"Budget limit exceeded")}}catch(a){return i.error("API_POLICY","Budget check failed. Request blocked.",{error:a}),{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,"Budget policy unavailable")}}return{apiKey:c,apiKeyInfo:j,rejection:null}}},78790:(a,b,c)=>{c.d(b,{Ik:()=>j,n5:()=>i,qV:()=>g,uN:()=>k});var d=c(97917);function e(a){if(!Array.isArray(a))return[];let b=[];for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c))continue;let a="number"==typeof c.cost?c.cost:Number(c.cost??0),d="number"==typeof c.timestamp?c.timestamp:Number(c.timestamp??0);Number.isFinite(a)&&Number.isFinite(d)&&b.push({cost:a,timestamp:d})}return b}let f=new Map;function g(a,b){let c={dailyLimitUsd:b.dailyLimitUsd,monthlyLimitUsd:b.monthlyLimitUsd||0,warningThreshold:b.warningThreshold??.8};f.set(a,c);try{(0,d.zd)(a,c)}catch{}}function h(a){if(f.has(a))return f.get(a);try{let b=(0,d.io)(a);if(b)return f.set(a,b),b}catch{}return null}function i(a,b){let c=Date.now();try{(0,d.tv)(a,b,c)}catch{}}function j(a,b=0){let c=h(a);if(!c)return{allowed:!0,dailyUsed:0,dailyLimit:0,warningReached:!1};let f=function(a){let b=new Date;b.setHours(0,0,0,0);let c=b.getTime();try{return e((0,d.qA)(a,c)).reduce((a,b)=>a+b.cost,0)}catch{return 0}}(a),g=f+b,i=g>=c.dailyLimitUsd*c.warningThreshold;return g>c.dailyLimitUsd?{allowed:!1,reason:`Daily budget exceeded: $${g.toFixed(4)} / $${c.dailyLimitUsd.toFixed(2)}`,dailyUsed:f,dailyLimit:c.dailyLimitUsd,warningReached:!0}:{allowed:!0,dailyUsed:f,dailyLimit:c.dailyLimitUsd,warningReached:i}}function k(a){let b=new Date,c=new Date(b);c.setHours(0,0,0,0);let f=new Date(b.getFullYear(),b.getMonth(),1);try{let b=e((0,d.qA)(a,c.getTime())),g=e((0,d.qA)(a,f.getTime())),i=b.reduce((a,b)=>a+b.cost,0),j=g.reduce((a,b)=>a+b.cost,0);return{dailyTotal:i,monthlyTotal:j,totalEntries:g.length,budget:h(a)}}catch{return{dailyTotal:0,monthlyTotal:0,totalEntries:0,budget:h(a)}}}},92556:(a,b,c)=>{c.d(b,{$N:()=>e,J5:()=>d});let d=process.env.CORS_ORIGIN||"*",e={"Access-Control-Allow-Origin":d,"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, x-api-key, anthropic-version"}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
|
|
1
|
+
"use strict";exports.id=7327,exports.ids=[4755,7136,7327],exports.modules={21020:(a,b,c)=>{c.d(b,{Pt:()=>t,Tr:()=>v,c1:()=>r,hp:()=>u,kI:()=>w,vk:()=>s});var d=c(75585),e=c(82742),f=c(74163),g=c(27976),h=c(6689);function i(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function j(a){return"string"==typeof a&&a.trim().length>0?a:null}function k(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim().length>0){let c=Number(a);return Number.isFinite(c)?c:b}return b}function l(a){let b=i(a);return{id:j(b.id)||"",isActive:!0===b.isActive,rateLimitedUntil:j(b.rateLimitedUntil),testStatus:j(b.testStatus),apiKey:j(b.apiKey),accessToken:j(b.accessToken),refreshToken:j(b.refreshToken),tokenExpiresAt:j(b.tokenExpiresAt),expiresAt:j(b.expiresAt),projectId:j(b.projectId),providerSpecificData:i(b.providerSpecificData),lastUsedAt:j(b.lastUsedAt),consecutiveUseCount:k(b.consecutiveUseCount,0),priority:k(b.priority,999),lastError:j(b.lastError),lastErrorType:j(b.lastErrorType),lastErrorSource:j(b.lastErrorSource),errorCode:"string"==typeof b.errorCode||"number"==typeof b.errorCode?b.errorCode:null,backoffLevel:k(b.backoffLevel,0)}}function m(a,b){return"boolean"==typeof a?a:b}function n(a){if(!a)return null;let b=new Date(a).getTime();return!Number.isFinite(b)||b<=Date.now()?null:b}function o(a){return a.map(a=>({raw:a,ms:n(a)})).filter(a=>null!==a.ms).sort((a,b)=>a.ms-b.ms)[0]?.raw||null}let p=Promise.resolve(),q=new Map;async function r(a,b=null,c=null){let j,q=p;p=new Promise(a=>{j=a});try{let j;await q;let p=await (0,d.getProviderConnections)({provider:a,isActive:!0}),r=(Array.isArray(p)?p:[]).map(l).filter(a=>a.id.length>0);if(c&&c.length>0&&(r=r.filter(a=>c.includes(a.id))),g.debug("AUTH",`${a} | total connections: ${r.length}, excludeId: ${b||"none"}`),0===r.length){let b=await (0,d.getProviderConnections)({provider:a}),c=(Array.isArray(b)?b:[]).map(l).filter(a=>a.id.length>0);if(g.debug("AUTH",`${a} | all connections (incl inactive): ${c.length}`),c.length>0){let b=(0,f.UY)(c);if(b)return g.warn("AUTH",`${a} | all ${c.length} accounts rate limited (${(0,f.Qo)(b)})`),{allRateLimited:!0,retryAfter:b,retryAfterHuman:(0,f.Qo)(b)};g.warn("AUTH",`${a} | ${c.length} accounts found but none active`),c.forEach(a=>{g.debug("AUTH",` → ${a.id?.slice(0,8)} | isActive=${a.isActive} | rateLimitedUntil=${a.rateLimitedUntil||"none"} | testStatus=${a.testStatus}`)})}return g.warn("AUTH",`No credentials for ${a}`),null}let s=r.filter(a=>!(b&&a.id===b||(0,f.AO)(a.rateLimitedUntil)));if(g.debug("AUTH",`${a} | available: ${s.length}/${r.length}`),r.forEach(a=>{let c=b&&a.id===b,d=(0,f.AO)(a.rateLimitedUntil);(c||d)&&g.debug("AUTH",` → ${a.id?.slice(0,8)} | ${c?"excluded":""} ${d?`rateLimited until ${a.rateLimitedUntil}`:""}`)}),0===s.length){let b=(0,f.UY)(r);if(b){let c=r.filter(a=>a.rateLimitedUntil&&new Date(a.rateLimitedUntil).getTime()>Date.now()).sort((a,b)=>new Date(a.rateLimitedUntil||0).getTime()-new Date(b.rateLimitedUntil||0).getTime())[0];return g.warn("AUTH",`${a} | all ${r.length} active accounts rate limited (${(0,f.Qo)(b)}) | lastErrorCode=${c?.errorCode}, lastError=${c?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:b,retryAfterHuman:(0,f.Qo)(b),lastError:c?.lastError||null,lastErrorCode:c?.errorCode||null}}return g.warn("AUTH",`${a} | all ${r.length} accounts unavailable`),null}let t=s;if("codex"===a){let b=[];if(t=s.filter(a=>{var c;let d,f=(c=a.providerSpecificData,d=i(c.codexLimitPolicy),{use5h:m(d.use5h,!0),useWeekly:m(d.useWeekly,!0)}),g=f.use5h?(0,e.bQ)(a.id,"session",90):null,h=f.useWeekly?(0,e.bQ)(a.id,"weekly",90):null,j=[],k=[];if(f.use5h&&g?.reachedThreshold&&(j.push(`5h usage ${Math.round(g.usedPercentage)}%`),k.push(g.resetAt)),f.useWeekly&&h?.reachedThreshold&&(j.push(`weekly usage ${Math.round(h.usedPercentage)}%`),k.push(h.resetAt)),j.length>0){let c=o(k);return b.push({id:a.id,reasons:j,resetAt:c}),!1}return!0}),b.length>0&&g.info("AUTH",`${a} | quota policy filtered ${b.length} account(s): ${b.map(a=>`${a.id.slice(0,8)}(${a.reasons.join(", ")})`).join("; ")}`),0===t.length&&s.length>0){let a=o(b.map(a=>a.resetAt)),c=n(a),d=c?new Date(c).toISOString():new Date(Date.now()+3e5).toISOString();return{allRateLimited:!0,retryAfter:d,retryAfterHuman:(0,f.Qo)(d),lastError:"All Codex accounts reached configured quota threshold",lastErrorCode:429}}}let u=t.filter(a=>!(0,e.DC)(a.id)),v=t.filter(a=>(0,e.DC)(a.id)),w=u.length>0?[...u,...v]:t;v.length>0&&g.debug("AUTH",`${a} | quota-aware: ${u.length} with quota, ${v.length} exhausted`);let x=await (0,d.V7)(),y=x.fallbackStrategy||"fill-first";if("round-robin"===y){let c=k(x.stickyRoundRobinLimit,3);if(null!==b)j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0],g.info("AUTH",`${a} round-robin: FALLBACK MODE - excluded ${b?.slice(0,8)}..., picked LRU ${j.id?.slice(0,8)}...`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1});else{let b=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt).getTime()-new Date(a.lastUsedAt).getTime():-1:1:(a.priority||999)-(b.priority||999))[0],e=b?.consecutiveUseCount||0;b&&b.lastUsedAt&&e<c?(j=b,g.debug("AUTH",`${a} round-robin: staying with ${b.id?.slice(0,8)}... (count=${e}/${c})`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(j.consecutiveUseCount||0)+1})):(j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0],g.debug("AUTH",`${a} round-robin: switching to LRU ${j.id?.slice(0,8)}... (current count=${e} >= limit=${c} or no lastUsedAt)`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}}else if("p2c"===y)if(w.length<=2)j=w[0];else{let a=Math.floor(Math.random()*w.length),b=Math.floor(Math.random()*(w.length-1));b>=a&&b++;let c=w[a],d=w[b],e=(c.consecutiveUseCount||0)+10*!!c.lastError,f=(d.consecutiveUseCount||0)+10*!!d.lastError;j=e<=f?c:d}else if("random"===y){let a=Math.floor(Math.random()*w.length);j=w[a]}else if("least-used"===y)j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0];else if("cost-optimized"===y)j=[...w].sort((a,b)=>(a.priority||999)-(b.priority||999))[0];else if("strict-random"===y){let b=w.map(a=>a.id),c=(0,h.AN)(`conn:${a}`,b);j=w.find(a=>a.id===c)||w[0]}else j=w[0];return{apiKey:j.apiKey,accessToken:j.accessToken,refreshToken:j.refreshToken,expiresAt:j.tokenExpiresAt||j.expiresAt||null,projectId:j.projectId,copilotToken:"string"==typeof j.providerSpecificData.copilotToken?j.providerSpecificData.copilotToken:null,providerSpecificData:j.providerSpecificData,connectionId:j.id,testStatus:j.testStatus,lastError:j.lastError,lastErrorType:j.lastErrorType,lastErrorSource:j.lastErrorSource,errorCode:j.errorCode,rateLimitedUntil:j.rateLimitedUntil}}finally{j&&j()}}async function s(a,b,c,e=null,h=null){let i,j=q.get(a)||Promise.resolve();q.set(a,new Promise(a=>{i=a}));try{await j;let i=await (0,d.getProviderConnections)({provider:e}),k=(Array.isArray(i)?i:[]).map(l).filter(a=>a.id.length>0).find(b=>b.id===a),m=k?.backoffLevel||0;if(k?.rateLimitedUntil&&new Date(k.rateLimitedUntil).getTime()>Date.now())return g.info("AUTH",`${a.slice(0,8)} already marked unavailable (until ${k.rateLimitedUntil}), skipping duplicate mark`),{shouldFallback:!0,cooldownMs:new Date(k.rateLimitedUntil).getTime()-Date.now()};let{shouldFallback:n,cooldownMs:o,newBackoffLevel:p,reason:q}=(0,f.hk)(b,c,m,h,e);if(!n)return{shouldFallback:!1,cooldownMs:0};let r=(0,f.vp)(o),s="string"==typeof c?c.slice(0,100):"Provider error";return await (0,d.rj)(a,{rateLimitedUntil:r,testStatus:"unavailable",lastError:s,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:p??m}),e&&h&&o>0&&(0,f.R7)(e,a,h,q||"unknown",o),e&&b&&s&&console.error(`❌ ${e} [${b}]: ${s}`),{shouldFallback:!0,cooldownMs:o}}finally{i&&i(),q.delete(a)}}async function t(a,b){(b.testStatus&&"active"!==b.testStatus||b.lastError||b.rateLimitedUntil||b.errorCode||b.lastErrorType||b.lastErrorSource)&&(await (0,d.rj)(a,{testStatus:"active",lastError:null,lastErrorAt:null,lastErrorType:null,lastErrorSource:null,errorCode:null,rateLimitedUntil:null,backoffLevel:0}),g.info("AUTH",`Account ${a.slice(0,8)} error cleared`))}async function u(a){a?.connectionId&&await t(a.connectionId,a)}function v(a){let b=a.headers.get("Authorization");return b?.startsWith("Bearer ")?b.slice(7):null}async function w(a){return!!a&&await (0,d.ek)(a)}},27976:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>m,error:()=>p,info:()=>n,maskKey:()=>k.s9,request:()=>q,response:()=>r,stream:()=>s,warn:()=>o});var d=c(74552),e=c.n(d),f=c(33873),g=c(29021);function h(){let a="false"!==process.env.LOG_TO_FILE,b=process.env.LOG_FILE_PATH||(0,f.join)(process.cwd(),"logs/application/app.log");return{logToFile:a,logFilePath:b,maxFileSize:function(a){if(!a)return 0x3200000;let b=a.match(/^(\d+)\s*(k|m|g|kb|mb|gb)?$/i);if(!b)return 0x3200000;let c=parseInt(b[1],10);switch((b[2]||"").toLowerCase()){case"k":case"kb":return 1024*c;case"m":case"mb":return 1024*c*1024;case"g":case"gb":return 1024*c*1048576;default:return c}}(process.env.LOG_MAX_FILE_SIZE),retentionDays:parseInt(process.env.LOG_RETENTION_DAYS||String(7),10)}}let i={level:process.env.LOG_LEVEL||"info",base:{service:"omniroute"},timestamp:e().stdTimeFunctions.isoTime,formatters:{level:a=>({level:a})}},j=function(){let a=h(),b=i.level||"info";if(a.logToFile)try{let d=h();if(d.logToFile){var c;let a;c=d.logFilePath,a=(0,f.dirname)(c),(0,g.existsSync)(a)||(0,g.mkdirSync)(a,{recursive:!0}),function(a,b){try{if(!(0,g.existsSync)(a)||(0,g.statSync)(a).size<b)return;let c=(0,f.dirname)(a),d=(0,f.extname)(a),e=(0,f.basename)(a,d),h=new Date,i=`${h.getFullYear()}-${String(h.getMonth()+1).padStart(2,"0")}-${String(h.getDate()).padStart(2,"0")}_${String(h.getHours()).padStart(2,"0")}${String(h.getMinutes()).padStart(2,"0")}${String(h.getSeconds()).padStart(2,"0")}`,j=(0,f.join)(c,`${e}.${i}${d}`);(0,g.renameSync)(a,j)}catch{}}(d.logFilePath,d.maxFileSize),function(a,b){try{let c=(0,f.dirname)(a);if(!(0,g.existsSync)(c))return;let d=(0,f.extname)(a),e=(0,f.basename)(a,d),h=(0,g.readdirSync)(c),i=Date.now()-24*b*36e5;for(let b of h)if(b.startsWith(e+".")&&b.endsWith(d)&&b!==(0,f.basename)(a)){let a=(0,f.join)(c,b);try{(0,g.statSync)(a).mtimeMs<i&&(0,g.unlinkSync)(a)}catch{}}}catch{}}(d.logFilePath,d.retentionDays)}let j=(0,f.resolve)(a.logFilePath);return e()({...i,transport:{targets:[{target:"pino/file",options:{destination:1},level:b},{target:"pino/file",options:{destination:j,mkdir:!0},level:b}]}})}catch(c){console.warn("[logger] Failed to set up file transport, attempting sync fallback...",c?.message||c);try{let c=(0,f.resolve)(a.logFilePath),d=e().destination({dest:c,mkdir:!0,sync:!0});return e()(i,e().multistream([{stream:process.stdout,level:b},{stream:d,level:b}]))}catch(a){console.warn("[logger] Sync fallback also failed, falling back to console only",a?.message||a)}}return e()(i)}();var k=c(89794);let l=j.child({module:"sse"});function m(a,b,c){l.debug({tag:a,...t(c)},b)}function n(a,b,c){l.info({tag:a,...t(c)},b)}function o(a,b,c){l.warn({tag:a,...t(c)},b)}function p(a,b,c){l.error({tag:a,...t(c)},b)}function q(a,b,c){l.info({tag:"HTTP",method:a,path:b,...t(c)},`📥 ${a} ${b}`)}function r(a,b,c){l[a<400?"info":"error"]({tag:"HTTP",status:a,duration:b,...t(c)},`📤 ${a} (${b}ms)`)}function s(a,b){l.debug({tag:"STREAM",event:a,...t(b)},`🌊 ${a}`)}function t(a){return a?"string"==typeof a?{detail:a}:"object"==typeof a?a:{detail:String(a)}:{}}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},70884:(a,b,c)=>{c.d(b,{S:()=>j});var d=c(21020),e=c(75585),f=c(78790),g=c(71861),h=c(60293),i=c(27976);async function j(a,b){let c=(0,d.Tr)(a);if(!c)return{apiKey:null,apiKeyInfo:null,rejection:null};let j=null;try{j=await (0,e.v9)(c)}catch(a){return i.error("API_POLICY","Failed to fetch API key metadata. Request blocked.",{error:a}),{apiKey:c,apiKeyInfo:null,rejection:(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,"API key policy unavailable")}}if(!j)return{apiKey:c,apiKeyInfo:null,rejection:null};if(!1===j.isActive)return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,"This API key is disabled")};if(j.accessSchedule&&j.accessSchedule.enabled&&!function(a){let b,c;if(!a.enabled)return!0;let d=new Date;try{b=new Intl.DateTimeFormat("en-US",{timeZone:a.tz,hour:"2-digit",minute:"2-digit",hour12:!1}).format(d)}catch{return!0}let[e,f]=b.replace(/^24:/,"00:").split(":").map(Number),g=60*e+f;try{c=new Intl.DateTimeFormat("en-US",{timeZone:a.tz,weekday:"short"}).format(d)}catch{return!0}let h={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6}[c]??d.getDay();if(!a.days.includes(h))return!1;let[i,j]=a.from.split(":").map(Number),[k,l]=a.until.split(":").map(Number),m=60*i+j,n=60*k+l;return n<m?g>=m||g<n:g>=m&&g<n}(j.accessSchedule)){let{from:a,until:b,tz:d}=j.accessSchedule;return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,`Access denied outside allowed hours (${a}–${b} ${d})`)}}if(b&&j.allowedModels&&j.allowedModels.length>0&&!await (0,e.Oo)(c,b))return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,`Model "${b}" is not allowed for this API key`)};if(j.id)try{let a=(0,f.Ik)(j.id);if(!a.allowed)return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.RATE_LIMITED,a.reason||"Budget limit exceeded")}}catch(a){return i.error("API_POLICY","Budget check failed. Request blocked.",{error:a}),{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,"Budget policy unavailable")}}return{apiKey:c,apiKeyInfo:j,rejection:null}}},78790:(a,b,c)=>{c.d(b,{Ik:()=>j,n5:()=>i,qV:()=>g,uN:()=>k});var d=c(97917);function e(a){if(!Array.isArray(a))return[];let b=[];for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c))continue;let a="number"==typeof c.cost?c.cost:Number(c.cost??0),d="number"==typeof c.timestamp?c.timestamp:Number(c.timestamp??0);Number.isFinite(a)&&Number.isFinite(d)&&b.push({cost:a,timestamp:d})}return b}let f=new Map;function g(a,b){let c={dailyLimitUsd:b.dailyLimitUsd,monthlyLimitUsd:b.monthlyLimitUsd||0,warningThreshold:b.warningThreshold??.8};f.set(a,c);try{(0,d.zd)(a,c)}catch{}}function h(a){if(f.has(a))return f.get(a);try{let b=(0,d.io)(a);if(b)return f.set(a,b),b}catch{}return null}function i(a,b){let c=Date.now();try{(0,d.tv)(a,b,c)}catch{}}function j(a,b=0){let c=h(a);if(!c)return{allowed:!0,dailyUsed:0,dailyLimit:0,warningReached:!1};let f=function(a){let b=new Date;b.setHours(0,0,0,0);let c=b.getTime();try{return e((0,d.qA)(a,c)).reduce((a,b)=>a+b.cost,0)}catch{return 0}}(a),g=f+b,i=g>=c.dailyLimitUsd*c.warningThreshold;return g>c.dailyLimitUsd?{allowed:!1,reason:`Daily budget exceeded: $${g.toFixed(4)} / $${c.dailyLimitUsd.toFixed(2)}`,dailyUsed:f,dailyLimit:c.dailyLimitUsd,warningReached:!0}:{allowed:!0,dailyUsed:f,dailyLimit:c.dailyLimitUsd,warningReached:i}}function k(a){let b=new Date,c=new Date(b);c.setHours(0,0,0,0);let f=new Date(b.getFullYear(),b.getMonth(),1);try{let b=e((0,d.qA)(a,c.getTime())),g=e((0,d.qA)(a,f.getTime())),i=b.reduce((a,b)=>a+b.cost,0),j=g.reduce((a,b)=>a+b.cost,0);return{dailyTotal:i,monthlyTotal:j,totalEntries:g.length,budget:h(a)}}catch{return{dailyTotal:0,monthlyTotal:0,totalEntries:0,budget:h(a)}}}},92556:(a,b,c)=>{c.d(b,{$N:()=>e,J5:()=>d});let d=process.env.CORS_ORIGIN||"*",e={"Access-Control-Allow-Origin":d,"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, x-api-key, anthropic-version"}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
|