omniroute 2.8.5 → 2.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/503/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 +1 -1
- package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.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 +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page_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/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/cli-tools/antigravity-mitm/alias/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +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/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/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/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/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/route.js +1 -1
- package/app/.next/server/app/api/combos/route.js.nft.json +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/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/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/route.js +1 -1
- package/app/.next/server/app/api/db-backups/route.js.nft.json +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/route.js +1 -1
- package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next/server/app/api/logs/detail/route.js +1 -1
- package/app/.next/server/app/api/logs/detail/route.js.nft.json +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/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/route.js +1 -1
- package/app/.next/server/app/api/models/route.js.nft.json +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/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/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/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/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/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/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/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/route.js +1 -1
- package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-models/route.js +2 -2
- package/app/.next/server/app/api/provider-models/route.js.nft.json +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/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js.nft.json +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]/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]/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]/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/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/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +2 -2
- package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +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/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/resilience/route.js +1 -1
- package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
- package/app/.next/server/app/api/search/providers/route.js +1 -1
- package/app/.next/server/app/api/search/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/search/stats/route.js +1 -1
- package/app/.next/server/app/api/search/stats/route.js.nft.json +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/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/proxies/assignments/route.js +2 -2
- package/app/.next/server/app/api/settings/proxies/bulk-assign/route.js +2 -2
- package/app/.next/server/app/api/settings/proxies/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route.js +2 -2
- 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/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js.nft.json +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/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/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/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/system/version/route.js +1 -1
- package/app/.next/server/app/api/system/version/route.js.nft.json +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/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/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/v1/embeddings/route.js +7 -6
- package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/management/proxies/assignments/route.js +1 -1
- package/app/.next/server/app/api/v1/management/proxies/assignments/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/management/proxies/bulk-assign/route.js +1 -1
- package/app/.next/server/app/api/v1/management/proxies/bulk-assign/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/management/proxies/health/route.js +1 -1
- package/app/.next/server/app/api/v1/management/proxies/health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/management/proxies/route.js +1 -1
- package/app/.next/server/app/api/v1/management/proxies/route.js.nft.json +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/route.js +1 -1
- package/app/.next/server/app/api/v1/route.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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__007da72e._.js +3 -0
- package/app/.next/server/chunks/[root-of-the-server]__09c944b3._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__784fb7c5._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__7d9b23e7._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__80e3bfc3._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__84e445b2._.js +2 -2
- package/app/.next/server/chunks/[root-of-the-server]__92cb0def._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__a630d6ef._.js +5 -5
- package/app/.next/server/chunks/[root-of-the-server]__c8e3c8a9._.js +50 -0
- package/app/.next/server/chunks/[root-of-the-server]__d4563e10._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__db2f9fe0._.js +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__e27a89bd._.js +1 -1
- package/app/.next/server/chunks/_05c48915._.js +1 -1
- package/app/.next/server/chunks/_1244636c._.js +2 -2
- package/app/.next/server/chunks/_14963fed._.js +1 -1
- package/app/.next/server/chunks/_1717e651._.js +1 -1
- package/app/.next/server/chunks/_2115d8de._.js +1 -1
- package/app/.next/server/chunks/_3ac953eb._.js +1 -1
- package/app/.next/server/chunks/_4b8fd853._.js +1 -1
- package/app/.next/server/chunks/_5677b5e2._.js +1 -1
- package/app/.next/server/chunks/_5bbb2e7a._.js +1 -1
- package/app/.next/server/chunks/_68683848._.js +1 -1
- package/app/.next/server/chunks/_b39b1914._.js +3 -0
- package/app/.next/server/chunks/_c05b9de3._.js +1 -1
- package/app/.next/server/chunks/_c795fc74._.js +1 -1
- package/app/.next/server/chunks/_ee7b7859._.js +1 -1
- package/app/.next/server/chunks/_ee9b677b._.js +1 -1
- package/app/.next/server/chunks/open-sse_translator_index_ts_f5fd0821._.js +2 -2
- package/app/.next/server/chunks/src_lib_localDb_ts_83220848._.js +1 -1
- package/app/.next/server/chunks/src_shared_validation_schemas_ts_4e63863a._.js +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__9affb65e._.js +1 -1
- package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
- package/app/.next/server/chunks/ssr/src_9197fb9b._.js +1 -1
- package/app/.next/server/chunks/ssr/src_d3225e36._.js +1 -1
- package/app/.next/server/chunks/ssr/src_i18n_messages_en_json_c3d5c412._.js +1 -1
- package/app/.next/server/chunks/ssr/src_i18n_messages_zh-CN_json_f4112d90._.js +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/1042694db0c08f1f.css +1 -0
- package/app/.next/static/chunks/{ec1938d17386c6db.js → 34569b4e9d93c0ad.js} +2 -2
- package/app/.next/static/chunks/{d9a70775eb233dc3.js → 53e0c73d409ce003.js} +1 -1
- package/app/.next/static/chunks/91761ba00c702cff.js +1 -0
- package/app/CHANGELOG.md +50 -0
- package/app/docs/openapi.yaml +1 -1
- package/app/open-sse/handlers/chatCore.ts +6 -2
- package/app/open-sse/services/rateLimitManager.ts +10 -5
- package/app/open-sse/services/roleNormalizer.ts +14 -19
- package/app/open-sse/translator/index.ts +27 -3
- package/app/package-lock.json +2 -2
- package/app/package.json +1 -1
- package/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.tsx +12 -0
- package/app/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.tsx +5 -5
- package/app/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +381 -62
- package/app/src/app/api/provider-models/route.ts +47 -6
- package/app/src/app/api/v1/embeddings/route.ts +33 -3
- package/app/src/i18n/messages/en.json +10 -0
- package/app/src/i18n/messages/zh-CN.json +10 -0
- package/app/src/lib/db/models.ts +130 -13
- package/app/src/lib/localDb.ts +5 -0
- package/app/src/shared/validation/schemas.ts +1 -0
- package/package.json +1 -1
- package/app/.next/server/chunks/[root-of-the-server]__3972de72._.js +0 -50
- package/app/.next/server/chunks/[root-of-the-server]__6b56b04f._.js +0 -3
- package/app/.next/static/chunks/af071ff826ecff1b.css +0 -1
- package/app/.next/static/chunks/d19ab4efcaddd1db.js +0 -1
- /package/app/.next/static/{coLESPH6_RrEzzULWq8F5 → zi0Yj1AW2_CKS-WmB5ZUc}/_buildManifest.js +0 -0
- /package/app/.next/static/{coLESPH6_RrEzzULWq8F5 → zi0Yj1AW2_CKS-WmB5ZUc}/_clientMiddlewareManifest.json +0 -0
- /package/app/.next/static/{coLESPH6_RrEzzULWq8F5 → zi0Yj1AW2_CKS-WmB5ZUc}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},442315,(e,t,r)=>{"use strict";t.exports=e.r(918622)},347540,(e,t,r)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].React},819481,(e,t,r)=>{"use strict";var n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a={},c={RequestCookies:()=>y,ResponseCookies:()=>f,parseCookie:()=>p,parseSetCookie:()=>u,stringifyCookie:()=>d};for(var l in c)n(a,l,{get:c[l],enumerable:!0});function d(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function p(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,s]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=s?s:"true"))}catch{}}return t}function u(e){if(!e)return;let[[t,r],...n]=p(e),{domain:s,expires:o,httponly:i,maxage:a,path:c,samesite:l,secure:d,partitioned:u,priority:y}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var f,g,v={name:t,value:decodeURIComponent(r),domain:s,...o&&{expires:new Date(o)},...i&&{httpOnly:!0},..."string"==typeof a&&{maxAge:Number(a)},path:c,...l&&{sameSite:m.includes(f=(f=l).toLowerCase())?f:void 0},...d&&{secure:!0},...y&&{priority:h.includes(g=(g=y).toLowerCase())?g:void 0},...u&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of o(t))i.call(e,r)||void 0===r||n(e,r,{get:()=>t[r],enumerable:!(a=s(t,r))||a.enumerable});return e})(n({},"__esModule",{value:!0}),a);var m=["strict","lax","none"],h=["low","medium","high"],y=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of p(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>d(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>d(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},f=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const s=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(s)?s:function(e){if(!e)return[];var t,r,n,s,o,i=[],a=0;function c(){for(;a<e.length&&/\s/.test(e.charAt(a));)a+=1;return a<e.length}for(;a<e.length;){for(t=a,o=!1;c();)if(","===(r=e.charAt(a))){for(n=a,a+=1,c(),s=a;a<e.length&&"="!==(r=e.charAt(a))&&";"!==r&&","!==r;)a+=1;a<e.length&&"="===e.charAt(a)?(o=!0,a=s,i.push(e.substring(t,n)),t=a):a=n+1}else a+=1;(!o||a>=e.length)&&i.push(e.substring(t,e.length))}return i}(s)){const t=u(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,s=this._parsed;return s.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=d(r);t.append("set-cookie",e)}}(s,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(d).join("; ")}}},804730,e=>{e.v({name:"omniroute",version:"2.8.5",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"next build","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"npx c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",zod:"^4.3.6",zustand:"^5.0.10","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"16.1.6",husky:"^9.1.7","lint-staged":"^16.2.7",prettier:"^3.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]}})},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},663370,632802,e=>{"use strict";let t=new TextEncoder,r=new TextDecoder;function n(...e){let t=new Uint8Array(e.reduce((e,{length:t})=>e+t,0)),r=0;for(let n of e)t.set(n,r),r+=n.length;return t}function s(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n>127)throw TypeError("non-ASCII string encountered in encode()");t[r]=n}return t}function o(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64("string"==typeof e?e:r.decode(e),{alphabet:"base64url"});let t=e;t instanceof Uint8Array&&(t=r.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/");try{var n=t;if(Uint8Array.fromBase64)return Uint8Array.fromBase64(n);let e=atob(n),r=new Uint8Array(e.length);for(let t=0;t<e.length;t++)r[t]=e.charCodeAt(t);return r}catch{throw TypeError("The input to be decoded is not correctly encoded.")}}function i(e){let r=e;return("string"==typeof r&&(r=t.encode(r)),Uint8Array.prototype.toBase64)?r.toBase64({alphabet:"base64url",omitPadding:!0}):(function(e){if(Uint8Array.prototype.toBase64)return e.toBase64();let t=[];for(let r=0;r<e.length;r+=32768)t.push(String.fromCharCode.apply(null,e.subarray(r,r+32768)));return btoa(t.join(""))})(r).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}e.s(["concat",()=>n,"decoder",0,r,"encode",()=>s,"encoder",0,t],632802),e.s(["decode",()=>o,"encode",()=>i],663370)},865466,e=>{"use strict";class t extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class r extends t{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}}class n extends t{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}}class s extends t{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class o extends t{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class i extends t{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class a extends t{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class c extends t{[Symbol.asyncIterator];static code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";constructor(e="multiple matching keys found in the JSON Web Key Set",t){super(e,t)}}class l extends t{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(e="signature verification failed",t){super(e,t)}}e.s(["JOSEAlgNotAllowed",()=>s,"JOSENotSupported",()=>o,"JWSInvalid",()=>i,"JWSSignatureVerificationFailed",()=>l,"JWTClaimValidationFailed",()=>r,"JWTExpired",()=>n,"JWTInvalid",()=>a])},177278,e=>{"use strict";function t(e){if("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function r(...e){let t,n=e.filter(Boolean);if(0===n.length||1===n.length)return!0;for(let e of n){let r=Object.keys(e);if(!t||0===t.size){t=new Set(r);continue}for(let e of r){if(t.has(e))return!1;t.add(e)}}return!0}e.s(["isDisjoint",()=>r,"isJWK",0,e=>t(e)&&"string"==typeof e.kty,"isObject",()=>t,"isPrivateJWK",0,e=>"oct"!==e.kty&&("AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d),"isPublicJWK",0,e=>"oct"!==e.kty&&void 0===e.d&&void 0===e.priv,"isSecretJWK",0,e=>"oct"===e.kty&&"string"==typeof e.k])},709939,e=>{"use strict";var t=e.i(663370),r=e.i(293233),n=e.i(865466),s=e.i(632802),o=e.i(913658),i=e.i(177278),a=e.i(48215),c=e.i(252665),l=e.i(18083);async function d(e,d,p){if(!(0,i.isObject)(e))throw new n.JWSInvalid("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new n.JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new n.JWSInvalid("JWS Protected Header incorrect type");if(void 0===e.payload)throw new n.JWSInvalid("JWS Payload missing");if("string"!=typeof e.signature)throw new n.JWSInvalid("JWS Signature missing or incorrect type");if(void 0!==e.header&&!(0,i.isObject)(e.header))throw new n.JWSInvalid("JWS Unprotected Header incorrect type");let u={};if(e.protected)try{let r=(0,t.decode)(e.protected);u=JSON.parse(s.decoder.decode(r))}catch{throw new n.JWSInvalid("JWS Protected Header is invalid")}if(!(0,i.isDisjoint)(u,e.header))throw new n.JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let m={...u,...e.header},h=(0,c.validateCrit)(n.JWSInvalid,new Map([["b64",!0]]),p?.crit,u,m),y=!0;if(h.has("b64")&&"boolean"!=typeof(y=u.b64))throw new n.JWSInvalid('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:f}=m;if("string"!=typeof f||!f)throw new n.JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');let g=p&&function(e,t){if(void 0!==t&&(!Array.isArray(t)||t.some(e=>"string"!=typeof e)))throw TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)}("algorithms",p.algorithms);if(g&&!g.has(f))throw new n.JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');if(y){if("string"!=typeof e.payload)throw new n.JWSInvalid("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new n.JWSInvalid("JWS Payload must be a string or an Uint8Array instance");let v=!1;"function"==typeof d&&(d=await d(u,e),v=!0),(0,a.checkKeyType)(f,d,"verify");let w=(0,s.concat)(void 0!==e.protected?(0,s.encode)(e.protected):new Uint8Array,(0,s.encode)("."),"string"==typeof e.payload?y?(0,s.encode)(e.payload):s.encoder.encode(e.payload):e.payload),x=(0,o.decodeBase64url)(e.signature,"signature",n.JWSInvalid),b=await (0,l.normalizeKey)(d,f);if(!await (0,r.verify)(f,b,x,w))throw new n.JWSSignatureVerificationFailed;let _={payload:y?(0,o.decodeBase64url)(e.payload,"payload",n.JWSInvalid):"string"==typeof e.payload?s.encoder.encode(e.payload):e.payload};return(void 0!==e.protected&&(_.protectedHeader=u),void 0!==e.header&&(_.unprotectedHeader=e.header),v)?{..._,key:b}:_}async function p(e,t,r){if(e instanceof Uint8Array&&(e=s.decoder.decode(e)),"string"!=typeof e)throw new n.JWSInvalid("Compact JWS must be a string or Uint8Array");let{0:o,1:i,2:a,length:c}=e.split(".");if(3!==c)throw new n.JWSInvalid("Invalid Compact JWS");let l=await d({payload:i,protected:o,signature:a},t,r),p={payload:l.payload,protectedHeader:l.protectedHeader};return"function"==typeof t?{...p,key:l.key}:p}var u=e.i(224472);async function m(e,t,r){let s=await p(e,t,r);if(s.protectedHeader.crit?.includes("b64")&&!1===s.protectedHeader.b64)throw new n.JWTInvalid("JWTs MUST NOT use unencoded payload");let o={payload:(0,u.validateClaimsSet)(s.protectedHeader,s.payload,r),protectedHeader:s.protectedHeader};return"function"==typeof t?{...o,key:s.key}:o}e.s(["jwtVerify",()=>m],709939)},235328,e=>{"use strict";var t=e.i(709939),r=e.i(493458);e.i(245272);var n=e.i(548941);async function s(n){let s=n.headers.get("authorization");if(s?.startsWith("Bearer ")){let t=s.slice(7);try{let{validateApiKey:r}=await e.A(734680);if(await r(t))return!0}catch{}}if(process.env.JWT_SECRET)try{let e=await (0,r.cookies)(),n=e.get("auth_token")?.value;if(n){let e=new TextEncoder().encode(process.env.JWT_SECRET);return await (0,t.jwtVerify)(n,e),!0}}catch{}return!1}async function o(){try{let e=await (0,n.getSettings)();if(!1===e.requireLogin||!e.password&&!process.env.INITIAL_PASSWORD)return!1;return!0}catch{return!0}}e.s(["isAuthRequired",()=>o,"isAuthenticated",()=>s])},526346,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),s=e.i(759756),o=e.i(561916),i=e.i(174677),a=e.i(869741),c=e.i(316795),l=e.i(487718),d=e.i(995169),p=e.i(47587),u=e.i(666012),m=e.i(570101),h=e.i(626937),y=e.i(10372),f=e.i(193695);e.i(52474);var g=e.i(600220),v=e.i(89171),w=e.i(233405),x=e.i(224361),b=e.i(235328);let _=(0,x.promisify)(w.execFile);async function R(){try{let{stdout:e}=await _("npm",["info","omniroute","version","--json"],{timeout:1e4}),t=JSON.parse(e.trim());return"string"==typeof t?t:null}catch{return null}}function S(){try{return e.r(804730).version}catch{return"unknown"}}function A(e,t){if(!e)return!1;let r=e=>e.split(".").map(Number),[n,s,o]=r(e),[i,a,c]=r(t);return n!==i?n>i:s!==a?s>a:o>c}async function E(e){if(!(0,b.isAuthenticated)(e))return v.NextResponse.json({error:"Unauthorized"},{status:401});let t=S(),r=await R(),n=A(r,t);return v.NextResponse.json({current:t,latest:r??"unavailable",updateAvailable:n,channel:"npm"})}async function j(e){if(!(0,b.isAuthenticated)(e))return v.NextResponse.json({error:"Unauthorized"},{status:401});let t=S(),r=await R();return r?A(r,t)?((async()=>{try{await _("npm",["install","-g",`omniroute@${r}`,"--ignore-scripts"],{timeout:3e5}),await _("pm2",["restart","omniroute"]).catch(()=>null),console.log(`[AutoUpdate] Successfully updated to v${r}`)}catch(e){console.error("[AutoUpdate] Update failed:",e)}})(),v.NextResponse.json({success:!0,message:`Update to v${r} started. Restarting in ~30 seconds.`,from:t,to:r})):v.NextResponse.json({success:!1,error:`Already on latest version (${t})`,current:t,latest:r}):v.NextResponse.json({success:!1,error:"Could not reach npm registry"},{status:503})}e.s(["GET",()=>E,"POST",()=>j,"dynamic",0,"force-dynamic"],550560);var I=e.i(550560);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/system/version/route",pathname:"/api/system/version",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/system/version/route.ts",nextConfigOutput:"standalone",userland:I}),{workAsyncStorage:O,workUnitAsyncStorage:C,serverHooks:T}=k;function J(){return(0,n.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:C})}async function W(e,t,n){k.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/system/version/route";v=v.replace(/\/index$/,"")||"/";let w=await k.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:x,params:b,nextConfig:_,parsedUrl:R,isDraftMode:S,prerenderManifest:A,routerServerContext:E,isOnDemandRevalidate:j,revalidateOnlyGenerated:I,resolvedPathname:O,clientReferenceManifest:C,serverActionsManifest:T}=w,J=(0,a.normalizeAppPath)(v),W=!!(A.dynamicRoutes[J]||A.routes[O]),P=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,R,!1):t.end("This page could not be found"),null);if(W&&!S){let e=!!A.routes[O],t=A.dynamicRoutes[J];if(t&&!1===t.fallback&&!e){if(_.experimental.adapterPath)return await P();throw new f.NoFallbackError}}let N=null;!W||k.isDev||S||(N="/index"===(N=O)?"/":N);let U=!0===k.isDev||!W,D=W&&!U;T&&C&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:C,serverActionsManifest:T});let H=e.method||"GET",L=(0,o.getTracer)(),q=L.getActiveScopeSpan(),$={params:b,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:_.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>k.onRequestError(e,t,n,s,E)},sharedContext:{buildId:x}},M=new c.NodeNextRequest(e),F=new c.NodeNextResponse(t),K=l.NextRequestAdapter.fromNodeNextRequest(M,(0,l.signalFromNodeResponse)(t));try{let i=async e=>k.handle(K,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${v}`)}),a=!!(0,s.getRequestMeta)(e,"minimalMode"),c=async s=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!a&&j&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(s);e.fetchMetrics=$.renderOpts.fetchMetrics;let c=$.renderOpts.pendingWaitUntil;c&&n.waitUntil&&(n.waitUntil(c),c=void 0);let l=$.renderOpts.collectedTags;if(!W)return await (0,u.sendResponse)(M,F,o,$.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,E),t}},d=await k.handleResponse({req:e,nextConfig:_,cacheKey:N,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:a});if(!W)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});a||t.setHeader("x-nextjs-cache",j?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return a&&W||f.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,u.sendResponse)(M,F,new Response(d.value.body,{headers:f,status:d.value.status||200})),null};q?await c(q):await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${H} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},c))}catch(t){if(t instanceof f.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,E),W)throw t;return await (0,u.sendResponse)(M,F,new Response(null,{status:500})),null}}e.s(["handler",()=>W,"patchFetch",()=>J,"routeModule",()=>k,"serverHooks",()=>T,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>C],526346)},606102,e=>{e.v(e=>Promise.resolve().then(()=>e(548941)))},789543,e=>{e.v(e=>Promise.resolve().then(()=>e(385498)))},579042,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_utils_apiKey_ts_fa113e09._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_65de0558._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},734680,e=>{e.v(e=>Promise.resolve().then(()=>e(125852)))}];
|
|
1
|
+
module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},442315,(e,t,r)=>{"use strict";t.exports=e.r(918622)},347540,(e,t,r)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].React},819481,(e,t,r)=>{"use strict";var n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a={},c={RequestCookies:()=>y,ResponseCookies:()=>f,parseCookie:()=>p,parseSetCookie:()=>u,stringifyCookie:()=>d};for(var l in c)n(a,l,{get:c[l],enumerable:!0});function d(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function p(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,s]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=s?s:"true"))}catch{}}return t}function u(e){if(!e)return;let[[t,r],...n]=p(e),{domain:s,expires:o,httponly:i,maxage:a,path:c,samesite:l,secure:d,partitioned:u,priority:y}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var f,g,v={name:t,value:decodeURIComponent(r),domain:s,...o&&{expires:new Date(o)},...i&&{httpOnly:!0},..."string"==typeof a&&{maxAge:Number(a)},path:c,...l&&{sameSite:m.includes(f=(f=l).toLowerCase())?f:void 0},...d&&{secure:!0},...y&&{priority:h.includes(g=(g=y).toLowerCase())?g:void 0},...u&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of o(t))i.call(e,r)||void 0===r||n(e,r,{get:()=>t[r],enumerable:!(a=s(t,r))||a.enumerable});return e})(n({},"__esModule",{value:!0}),a);var m=["strict","lax","none"],h=["low","medium","high"],y=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of p(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>d(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>d(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},f=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const s=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(s)?s:function(e){if(!e)return[];var t,r,n,s,o,i=[],a=0;function c(){for(;a<e.length&&/\s/.test(e.charAt(a));)a+=1;return a<e.length}for(;a<e.length;){for(t=a,o=!1;c();)if(","===(r=e.charAt(a))){for(n=a,a+=1,c(),s=a;a<e.length&&"="!==(r=e.charAt(a))&&";"!==r&&","!==r;)a+=1;a<e.length&&"="===e.charAt(a)?(o=!0,a=s,i.push(e.substring(t,n)),t=a):a=n+1}else a+=1;(!o||a>=e.length)&&i.push(e.substring(t,e.length))}return i}(s)){const t=u(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,s=this._parsed;return s.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=d(r);t.append("set-cookie",e)}}(s,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(d).join("; ")}}},804730,e=>{e.v({name:"omniroute",version:"2.8.7",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"next build","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"npx c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",zod:"^4.3.6",zustand:"^5.0.10","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"16.1.6",husky:"^9.1.7","lint-staged":"^16.2.7",prettier:"^3.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]}})},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},663370,632802,e=>{"use strict";let t=new TextEncoder,r=new TextDecoder;function n(...e){let t=new Uint8Array(e.reduce((e,{length:t})=>e+t,0)),r=0;for(let n of e)t.set(n,r),r+=n.length;return t}function s(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if(n>127)throw TypeError("non-ASCII string encountered in encode()");t[r]=n}return t}function o(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64("string"==typeof e?e:r.decode(e),{alphabet:"base64url"});let t=e;t instanceof Uint8Array&&(t=r.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/");try{var n=t;if(Uint8Array.fromBase64)return Uint8Array.fromBase64(n);let e=atob(n),r=new Uint8Array(e.length);for(let t=0;t<e.length;t++)r[t]=e.charCodeAt(t);return r}catch{throw TypeError("The input to be decoded is not correctly encoded.")}}function i(e){let r=e;return("string"==typeof r&&(r=t.encode(r)),Uint8Array.prototype.toBase64)?r.toBase64({alphabet:"base64url",omitPadding:!0}):(function(e){if(Uint8Array.prototype.toBase64)return e.toBase64();let t=[];for(let r=0;r<e.length;r+=32768)t.push(String.fromCharCode.apply(null,e.subarray(r,r+32768)));return btoa(t.join(""))})(r).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}e.s(["concat",()=>n,"decoder",0,r,"encode",()=>s,"encoder",0,t],632802),e.s(["decode",()=>o,"encode",()=>i],663370)},865466,e=>{"use strict";class t extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class r extends t{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}}class n extends t{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(e,t,r="unspecified",n="unspecified"){super(e,{cause:{claim:r,reason:n,payload:t}}),this.claim=r,this.reason=n,this.payload=t}}class s extends t{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class o extends t{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class i extends t{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class a extends t{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class c extends t{[Symbol.asyncIterator];static code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";constructor(e="multiple matching keys found in the JSON Web Key Set",t){super(e,t)}}class l extends t{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(e="signature verification failed",t){super(e,t)}}e.s(["JOSEAlgNotAllowed",()=>s,"JOSENotSupported",()=>o,"JWSInvalid",()=>i,"JWSSignatureVerificationFailed",()=>l,"JWTClaimValidationFailed",()=>r,"JWTExpired",()=>n,"JWTInvalid",()=>a])},177278,e=>{"use strict";function t(e){if("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e))return!1;if(null===Object.getPrototypeOf(e))return!0;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function r(...e){let t,n=e.filter(Boolean);if(0===n.length||1===n.length)return!0;for(let e of n){let r=Object.keys(e);if(!t||0===t.size){t=new Set(r);continue}for(let e of r){if(t.has(e))return!1;t.add(e)}}return!0}e.s(["isDisjoint",()=>r,"isJWK",0,e=>t(e)&&"string"==typeof e.kty,"isObject",()=>t,"isPrivateJWK",0,e=>"oct"!==e.kty&&("AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d),"isPublicJWK",0,e=>"oct"!==e.kty&&void 0===e.d&&void 0===e.priv,"isSecretJWK",0,e=>"oct"===e.kty&&"string"==typeof e.k])},709939,e=>{"use strict";var t=e.i(663370),r=e.i(293233),n=e.i(865466),s=e.i(632802),o=e.i(913658),i=e.i(177278),a=e.i(48215),c=e.i(252665),l=e.i(18083);async function d(e,d,p){if(!(0,i.isObject)(e))throw new n.JWSInvalid("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new n.JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new n.JWSInvalid("JWS Protected Header incorrect type");if(void 0===e.payload)throw new n.JWSInvalid("JWS Payload missing");if("string"!=typeof e.signature)throw new n.JWSInvalid("JWS Signature missing or incorrect type");if(void 0!==e.header&&!(0,i.isObject)(e.header))throw new n.JWSInvalid("JWS Unprotected Header incorrect type");let u={};if(e.protected)try{let r=(0,t.decode)(e.protected);u=JSON.parse(s.decoder.decode(r))}catch{throw new n.JWSInvalid("JWS Protected Header is invalid")}if(!(0,i.isDisjoint)(u,e.header))throw new n.JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let m={...u,...e.header},h=(0,c.validateCrit)(n.JWSInvalid,new Map([["b64",!0]]),p?.crit,u,m),y=!0;if(h.has("b64")&&"boolean"!=typeof(y=u.b64))throw new n.JWSInvalid('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:f}=m;if("string"!=typeof f||!f)throw new n.JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');let g=p&&function(e,t){if(void 0!==t&&(!Array.isArray(t)||t.some(e=>"string"!=typeof e)))throw TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)}("algorithms",p.algorithms);if(g&&!g.has(f))throw new n.JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter value not allowed');if(y){if("string"!=typeof e.payload)throw new n.JWSInvalid("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new n.JWSInvalid("JWS Payload must be a string or an Uint8Array instance");let v=!1;"function"==typeof d&&(d=await d(u,e),v=!0),(0,a.checkKeyType)(f,d,"verify");let w=(0,s.concat)(void 0!==e.protected?(0,s.encode)(e.protected):new Uint8Array,(0,s.encode)("."),"string"==typeof e.payload?y?(0,s.encode)(e.payload):s.encoder.encode(e.payload):e.payload),x=(0,o.decodeBase64url)(e.signature,"signature",n.JWSInvalid),b=await (0,l.normalizeKey)(d,f);if(!await (0,r.verify)(f,b,x,w))throw new n.JWSSignatureVerificationFailed;let _={payload:y?(0,o.decodeBase64url)(e.payload,"payload",n.JWSInvalid):"string"==typeof e.payload?s.encoder.encode(e.payload):e.payload};return(void 0!==e.protected&&(_.protectedHeader=u),void 0!==e.header&&(_.unprotectedHeader=e.header),v)?{..._,key:b}:_}async function p(e,t,r){if(e instanceof Uint8Array&&(e=s.decoder.decode(e)),"string"!=typeof e)throw new n.JWSInvalid("Compact JWS must be a string or Uint8Array");let{0:o,1:i,2:a,length:c}=e.split(".");if(3!==c)throw new n.JWSInvalid("Invalid Compact JWS");let l=await d({payload:i,protected:o,signature:a},t,r),p={payload:l.payload,protectedHeader:l.protectedHeader};return"function"==typeof t?{...p,key:l.key}:p}var u=e.i(224472);async function m(e,t,r){let s=await p(e,t,r);if(s.protectedHeader.crit?.includes("b64")&&!1===s.protectedHeader.b64)throw new n.JWTInvalid("JWTs MUST NOT use unencoded payload");let o={payload:(0,u.validateClaimsSet)(s.protectedHeader,s.payload,r),protectedHeader:s.protectedHeader};return"function"==typeof t?{...o,key:s.key}:o}e.s(["jwtVerify",()=>m],709939)},235328,e=>{"use strict";var t=e.i(709939),r=e.i(493458);e.i(245272);var n=e.i(548941);async function s(n){let s=n.headers.get("authorization");if(s?.startsWith("Bearer ")){let t=s.slice(7);try{let{validateApiKey:r}=await e.A(734680);if(await r(t))return!0}catch{}}if(process.env.JWT_SECRET)try{let e=await (0,r.cookies)(),n=e.get("auth_token")?.value;if(n){let e=new TextEncoder().encode(process.env.JWT_SECRET);return await (0,t.jwtVerify)(n,e),!0}}catch{}return!1}async function o(){try{let e=await (0,n.getSettings)();if(!1===e.requireLogin||!e.password&&!process.env.INITIAL_PASSWORD)return!1;return!0}catch{return!0}}e.s(["isAuthRequired",()=>o,"isAuthenticated",()=>s])},526346,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),s=e.i(759756),o=e.i(561916),i=e.i(174677),a=e.i(869741),c=e.i(316795),l=e.i(487718),d=e.i(995169),p=e.i(47587),u=e.i(666012),m=e.i(570101),h=e.i(626937),y=e.i(10372),f=e.i(193695);e.i(52474);var g=e.i(600220),v=e.i(89171),w=e.i(233405),x=e.i(224361),b=e.i(235328);let _=(0,x.promisify)(w.execFile);async function R(){try{let{stdout:e}=await _("npm",["info","omniroute","version","--json"],{timeout:1e4}),t=JSON.parse(e.trim());return"string"==typeof t?t:null}catch{return null}}function S(){try{return e.r(804730).version}catch{return"unknown"}}function A(e,t){if(!e)return!1;let r=e=>e.split(".").map(Number),[n,s,o]=r(e),[i,a,c]=r(t);return n!==i?n>i:s!==a?s>a:o>c}async function E(e){if(!(0,b.isAuthenticated)(e))return v.NextResponse.json({error:"Unauthorized"},{status:401});let t=S(),r=await R(),n=A(r,t);return v.NextResponse.json({current:t,latest:r??"unavailable",updateAvailable:n,channel:"npm"})}async function j(e){if(!(0,b.isAuthenticated)(e))return v.NextResponse.json({error:"Unauthorized"},{status:401});let t=S(),r=await R();return r?A(r,t)?((async()=>{try{await _("npm",["install","-g",`omniroute@${r}`,"--ignore-scripts"],{timeout:3e5}),await _("pm2",["restart","omniroute"]).catch(()=>null),console.log(`[AutoUpdate] Successfully updated to v${r}`)}catch(e){console.error("[AutoUpdate] Update failed:",e)}})(),v.NextResponse.json({success:!0,message:`Update to v${r} started. Restarting in ~30 seconds.`,from:t,to:r})):v.NextResponse.json({success:!1,error:`Already on latest version (${t})`,current:t,latest:r}):v.NextResponse.json({success:!1,error:"Could not reach npm registry"},{status:503})}e.s(["GET",()=>E,"POST",()=>j,"dynamic",0,"force-dynamic"],550560);var I=e.i(550560);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/system/version/route",pathname:"/api/system/version",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/system/version/route.ts",nextConfigOutput:"standalone",userland:I}),{workAsyncStorage:O,workUnitAsyncStorage:C,serverHooks:T}=k;function J(){return(0,n.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:C})}async function W(e,t,n){k.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/system/version/route";v=v.replace(/\/index$/,"")||"/";let w=await k.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:x,params:b,nextConfig:_,parsedUrl:R,isDraftMode:S,prerenderManifest:A,routerServerContext:E,isOnDemandRevalidate:j,revalidateOnlyGenerated:I,resolvedPathname:O,clientReferenceManifest:C,serverActionsManifest:T}=w,J=(0,a.normalizeAppPath)(v),W=!!(A.dynamicRoutes[J]||A.routes[O]),P=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,R,!1):t.end("This page could not be found"),null);if(W&&!S){let e=!!A.routes[O],t=A.dynamicRoutes[J];if(t&&!1===t.fallback&&!e){if(_.experimental.adapterPath)return await P();throw new f.NoFallbackError}}let N=null;!W||k.isDev||S||(N="/index"===(N=O)?"/":N);let U=!0===k.isDev||!W,D=W&&!U;T&&C&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:C,serverActionsManifest:T});let H=e.method||"GET",L=(0,o.getTracer)(),q=L.getActiveScopeSpan(),$={params:b,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:_.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>k.onRequestError(e,t,n,s,E)},sharedContext:{buildId:x}},M=new c.NodeNextRequest(e),F=new c.NodeNextResponse(t),K=l.NextRequestAdapter.fromNodeNextRequest(M,(0,l.signalFromNodeResponse)(t));try{let i=async e=>k.handle(K,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${v}`)}),a=!!(0,s.getRequestMeta)(e,"minimalMode"),c=async s=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!a&&j&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(s);e.fetchMetrics=$.renderOpts.fetchMetrics;let c=$.renderOpts.pendingWaitUntil;c&&n.waitUntil&&(n.waitUntil(c),c=void 0);let l=$.renderOpts.collectedTags;if(!W)return await (0,u.sendResponse)(M,F,o,$.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,E),t}},d=await k.handleResponse({req:e,nextConfig:_,cacheKey:N,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:a});if(!W)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});a||t.setHeader("x-nextjs-cache",j?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return a&&W||f.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,u.sendResponse)(M,F,new Response(d.value.body,{headers:f,status:d.value.status||200})),null};q?await c(q):await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${H} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},c))}catch(t){if(t instanceof f.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,E),W)throw t;return await (0,u.sendResponse)(M,F,new Response(null,{status:500})),null}}e.s(["handler",()=>W,"patchFetch",()=>J,"routeModule",()=>k,"serverHooks",()=>T,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>C],526346)},606102,e=>{e.v(e=>Promise.resolve().then(()=>e(548941)))},789543,e=>{e.v(e=>Promise.resolve().then(()=>e(385498)))},579042,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_utils_apiKey_ts_fa113e09._.js"].map(t=>e.l(t))).then(()=>t(65448)))},49794,e=>{e.v(t=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_65de0558._.js"].map(t=>e.l(t))).then(()=>t(404503)))},386305,e=>{e.v(e=>Promise.resolve().then(()=>e(878947)))},734680,e=>{e.v(e=>Promise.resolve().then(()=>e(125852)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__db2f9fe0._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
module.exports=[814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},442315,(e,t,r)=>{"use strict";t.exports=e.r(918622)},347540,(e,t,r)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].React},819481,(e,t,r)=>{"use strict";var n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,i={},l={RequestCookies:()=>f,ResponseCookies:()=>g,parseCookie:()=>c,parseSetCookie:()=>p,stringifyCookie:()=>d};for(var u in l)n(i,u,{get:l[u],enumerable:!0});function d(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function c(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function p(e){if(!e)return;let[[t,r],...n]=c(e),{domain:a,expires:o,httponly:s,maxage:i,path:l,samesite:u,secure:d,partitioned:p,priority:f}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,v={name:t,value:decodeURIComponent(r),domain:a,...o&&{expires:new Date(o)},...s&&{httpOnly:!0},..."string"==typeof i&&{maxAge:Number(i)},path:l,...u&&{sameSite:m.includes(g=(g=u).toLowerCase())?g:void 0},...d&&{secure:!0},...f&&{priority:h.includes(y=(y=f).toLowerCase())?y:void 0},...p&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}t.exports=((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of o(t))s.call(e,r)||void 0===r||n(e,r,{get:()=>t[r],enumerable:!(i=a(t,r))||i.enumerable});return e})(n({},"__esModule",{value:!0}),i);var m=["strict","lax","none"],h=["low","medium","high"],f=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of c(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>d(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>d(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,o,s=[],i=0;function l(){for(;i<e.length&&/\s/.test(e.charAt(i));)i+=1;return i<e.length}for(;i<e.length;){for(t=i,o=!1;l();)if(","===(r=e.charAt(i))){for(n=i,i+=1,l(),a=i;i<e.length&&"="!==(r=e.charAt(i))&&";"!==r&&","!==r;)i+=1;i<e.length&&"="===e.charAt(i)?(o=!0,i=a,s.push(e.substring(t,n)),t=i):i=n+1}else i+=1;(!o||i>=e.length)&&s.push(e.substring(t,e.length))}return s}(a)){const t=p(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=d(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(d).join("; ")}}},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},266240,e=>{"use strict";var t=e.i(924868),r=e.i(446786),n=e.i(814747),a=e.i(233405);let o=new Set(["auto","host","container"]),s=new Set(["0","false","no","off"]),i={claude:{defaultCommand:"claude",envBinKey:"CLI_CLAUDE_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{settings:".claude/settings.json"}},codex:{defaultCommand:"codex",envBinKey:"CLI_CODEX_BIN",requiresBinary:!0,healthcheckTimeoutMs:4e3,paths:{config:".codex/config.toml",auth:".codex/auth.json"}},droid:{defaultCommand:"droid",envBinKey:"CLI_DROID_BIN",requiresBinary:!0,healthcheckTimeoutMs:8e3,paths:{settings:".factory/settings.json"}},openclaw:{defaultCommand:"openclaw",envBinKey:"CLI_OPENCLAW_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{settings:".openclaw/openclaw.json"}},cursor:{defaultCommands:["agent","cursor"],envBinKey:"CLI_CURSOR_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".cursor/cli-config.json",auth:".config/cursor/auth.json",state:".cursor/agent-cli-state.json"}},cline:{defaultCommand:"cline",envBinKey:"CLI_CLINE_BIN",requiresBinary:!0,healthcheckTimeoutMs:12e3,paths:{globalState:".cline/data/globalState.json",secrets:".cline/data/secrets.json"}},kilo:{defaultCommand:"kilocode",envBinKey:"CLI_KILO_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{auth:".local/share/kilo/auth.json"}},continue:{defaultCommand:null,envBinKey:"CLI_CONTINUE_BIN",requiresBinary:!1,healthcheckTimeoutMs:15e3,paths:{settings:".continue/config.json"}},opencode:{defaultCommand:"opencode",envBinKey:"CLI_OPENCODE_BIN",requiresBinary:!0,healthcheckTimeoutMs:15e3,paths:{config:".config/opencode/config.toml"}}},l=(e,t,{env:r,timeoutMs:n=3e3}={})=>new Promise(o=>{let s="",i="",l=!1,u=!1,d=(0,a.spawn)(e,t,{env:r,stdio:["ignore","pipe","pipe"],..."win32"===process.platform?"TURBOPACK unreachable":{}}),c=setTimeout(()=>{l=!0,d.kill("SIGKILL")},n),p=e=>{u||(u=!0,clearTimeout(c),o(e))};d.stdout.on("data",e=>{s+=e.toString()}),d.stderr.on("data",e=>{i+=e.toString()}),d.on("error",e=>{p({ok:!1,code:null,stdout:s.trim(),stderr:i.trim(),timedOut:l,error:e?.message||"spawn_error"})}),d.on("close",e=>{p({ok:!l&&0===e,code:e,stdout:s.trim(),stderr:i.trim(),timedOut:l,error:l?"timeout":null})})}),u=["&","|",";","<",">","(",")","`","$","^","%","!"],d=async e=>{if(!(!(!e||!n.default.isAbsolute(e)||u.some(t=>e.includes(t)))&&1))return{installed:!1,commandPath:null,reason:"unsafe_path"};try{await t.default.access(e,t.default.constants.F_OK)}catch{return{installed:!1,commandPath:null,reason:"not_found"}}try{return await t.default.access(e,t.default.constants.X_OK),{installed:!0,commandPath:e,reason:null}}catch{return{installed:!0,commandPath:e,reason:"not_executable"}}},c=async(e,t)=>{if(!e)return{installed:!1,commandPath:null,reason:"missing_command"};if(e.includes("/")||e.includes("\\"))return d(e);process.platform;let r=await l("sh",["-c",'command -v -- "$1"',"sh",e],{env:t,timeoutMs:3e3});if(!r.ok||!r.stdout)return{installed:!1,commandPath:null,reason:"not_found"};let n=r.stdout.split(/\r?\n/).map(e=>e.trim()).find(Boolean)||null;return{installed:!!n,commandPath:n,reason:n?null:"not_found"}},p=async(e,t)=>{if(!Array.isArray(e)||0===e.length)return{command:null,installed:!1,commandPath:null,reason:"missing_command"};for(let r of e){let e=await c(r,t);if(e.installed||"not_found"!==e.reason)return{command:r,...e}}return{command:e[0],installed:!1,commandPath:null,reason:"not_found"}},m=async(e,t,r=4e3)=>{for(let n of[["--version"],["-v"]])if((await l(e,n,{env:t,timeoutMs:r})).ok)return{runnable:!0,reason:null};return{runnable:!1,reason:"healthcheck_failed"}},h=e=>{let t=i[e];if(!t)return null;let a=String(process.env.CLI_CONFIG_HOME||"").trim()||r.default.homedir();return Object.fromEntries(Object.entries(t.paths).map(([e,t])=>[e,n.default.join(a,t)]))},f=async e=>{let t,r,a,s=i[e],l=(t=String(process.env.CLI_MODE||"auto").trim().toLowerCase(),o.has(t)?t:"auto");if(!s)return{installed:!1,runnable:!1,command:null,commandPath:null,reason:"unknown_tool",runtimeMode:l,requiresBinary:!1};let u=(r={...process.env},(a=String(process.env.CLI_EXTRA_PATHS||"").split(n.default.delimiter).map(e=>e.trim()).filter(Boolean)).length>0&&(r.PATH=[...a,r.PATH||""].filter(Boolean).join(n.default.delimiter)),r),d=(e=>{let t=i[e];if(!t)return[];let r=String(process.env[t.envBinKey]||"").trim();return r?[r]:Array.isArray(t.defaultCommands)&&t.defaultCommands.length>0?t.defaultCommands.filter(Boolean):t.defaultCommand?[t.defaultCommand]:[]})(e),c=!1!==s.requiresBinary;if(!c&&0===d.length)return{installed:!0,runnable:!0,command:null,commandPath:null,reason:"not_required",runtimeMode:l,requiresBinary:c};let h=await p(d,u),f=h.command;if(!h.installed)return{installed:!1,runnable:!1,command:f,commandPath:null,reason:h.reason||"not_found",runtimeMode:l,requiresBinary:c};if("not_executable"===h.reason)return{installed:!0,runnable:!1,command:f,commandPath:h.commandPath,reason:"not_executable",runtimeMode:l,requiresBinary:c};let g=await m(h.commandPath,u,Number(s.healthcheckTimeoutMs||4e3));return{installed:!0,runnable:g.runnable,command:f,commandPath:h.commandPath,reason:g.reason,runtimeMode:l,requiresBinary:c}},g=Object.keys(i);e.s(["CLI_TOOL_IDS",0,g,"ensureCliConfigWriteAllowed",0,()=>((e,t=!0)=>null==e||""===e?t:!s.has(String(e).trim().toLowerCase()))(process.env.CLI_ALLOW_CONFIG_WRITES,!0)?null:"CLI config writes are disabled (CLI_ALLOW_CONFIG_WRITES=false)","getCliConfigPaths",0,h,"getCliPrimaryConfigPath",0,e=>{let t=h(e);if(!t)return null;let r=Object.keys(t)[0];return r?t[r]:null},"getCliRuntimeStatus",0,f])},997953,(e,t,r)=>{"use strict";t.exports=e.r(442315).vendored["react-rsc"].ReactServerDOMTurbopackServer},745015,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"registerServerReference",{enumerable:!0,get:function(){return n.registerServerReference}});let n=e.r(997953)},195975,(e,t,r)=>{"use strict";function n(e){for(let t=0;t<e.length;t++){let r=e[t];if("function"!=typeof r)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof r}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureServerEntryExports",{enumerable:!0,get:function(){return n}})},653870,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),a=e.i(759756),o=e.i(561916),s=e.i(174677),i=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),m=e.i(570101),h=e.i(626937),f=e.i(10372),g=e.i(193695);e.i(52474);var y=e.i(600220),v=e.i(745015),C=e.i(89171),x=e.i(266240);async function _(e,{params:t}){try{let{toolId:e}=await t,r=String(e||"").trim().toLowerCase();if(!x.CLI_TOOL_IDS.includes(r))return C.NextResponse.json({error:"Unsupported CLI tool"},{status:404});let n=await (0,x.getCliRuntimeStatus)(r);return C.NextResponse.json({...n,toolId:r,configPath:(0,x.getCliPrimaryConfigPath)(r),message:"not_required"===n.reason?"This integration is guide-based and does not require a local CLI binary":n.installed&&n.runnable?"CLI detected and runnable":n.installed?"CLI detected but not runnable":"CLI not detected"})}catch(e){return console.log("Error checking CLI runtime:",e),C.NextResponse.json({error:"Failed to check CLI runtime"},{status:500})}}(0,e.i(195975).ensureServerEntryExports)([_]),(0,v.registerServerReference)(_,"
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureServerEntryExports",{enumerable:!0,get:function(){return n}})},653870,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),a=e.i(759756),o=e.i(561916),s=e.i(174677),i=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),m=e.i(570101),h=e.i(626937),f=e.i(10372),g=e.i(193695);e.i(52474);var y=e.i(600220),v=e.i(745015),C=e.i(89171),x=e.i(266240);async function _(e,{params:t}){try{let{toolId:e}=await t,r=String(e||"").trim().toLowerCase();if(!x.CLI_TOOL_IDS.includes(r))return C.NextResponse.json({error:"Unsupported CLI tool"},{status:404});let n=await (0,x.getCliRuntimeStatus)(r);return C.NextResponse.json({...n,toolId:r,configPath:(0,x.getCliPrimaryConfigPath)(r),message:"not_required"===n.reason?"This integration is guide-based and does not require a local CLI binary":n.installed&&n.runnable?"CLI detected and runnable":n.installed?"CLI detected but not runnable":"CLI not detected"})}catch(e){return console.log("Error checking CLI runtime:",e),C.NextResponse.json({error:"Failed to check CLI runtime"},{status:500})}}(0,e.i(195975).ensureServerEntryExports)([_]),(0,v.registerServerReference)(_,"60f87a495acf8465e9f0d2083bd01898de347592b7",null),e.s(["GET",()=>_],735115);var b=e.i(735115);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-tools/runtime/[toolId]/route",pathname:"/api/cli-tools/runtime/[toolId]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/runtime/[toolId]/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:w,workUnitAsyncStorage:O,serverHooks:I}=R;function E(){return(0,n.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:O})}async function A(e,t,n){R.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/cli-tools/runtime/[toolId]/route";v=v.replace(/\/index$/,"")||"/";let C=await R.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!C)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:x,params:_,nextConfig:b,parsedUrl:w,isDraftMode:O,prerenderManifest:I,routerServerContext:E,isOnDemandRevalidate:A,revalidateOnlyGenerated:S,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:j}=C,T=(0,i.normalizeAppPath)(v),N=!!(I.dynamicRoutes[T]||I.routes[P]),L=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,w,!1):t.end("This page could not be found"),null);if(N&&!O){let e=!!I.routes[P],t=I.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await L();throw new g.NoFallbackError}}let B=null;!N||R.isDev||O||(B="/index"===(B=P)?"/":B);let q=!0===R.isDev||!N,M=N&&!q;j&&k&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:k,serverActionsManifest:j});let D=e.method||"GET",U=(0,o.getTracer)(),$=U.getActiveScopeSpan(),K={params:_,prerenderManifest:I,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>R.onRequestError(e,t,n,a,E)},sharedContext:{buildId:x}},H=new l.NodeNextRequest(e),F=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(H,(0,u.signalFromNodeResponse)(t));try{let s=async e=>R.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${D} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${v}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&A&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(a);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(H,F,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:A})},!1,E),t}},d=await R.handleResponse({req:e,nextConfig:b,cacheKey:B,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:S,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:i});if(!N)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",A?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&N||g.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(H,F,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};$?await l($):await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:A})},!1,E),N)throw t;return await (0,p.sendResponse)(H,F,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>E,"routeModule",()=>R,"serverHooks",()=>I,"workAsyncStorage",()=>w,"workUnitAsyncStorage",()=>O],653870)}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=%5Broot-of-the-server%5D__e27a89bd._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[467388,e=>e.a(async(t,a)=>{try{var n=e.i(745015),r=e.i(89171),i=e.i(924868),o=e.i(814747),l=e.i(446786),s=e.i(266240),d=e.i(841788),c=e.i(197892),u=e.i(676088),p=e.i(200392),f=e.i(195975),h=t([u,p]);[u,p]=h.then?(await h)():h;let v=o.default.join(l.default.homedir(),".cline","data"),w=o.default.join(v,"globalState.json"),A=o.default.join(v,"secrets.json"),y=async()=>{try{let e=await i.default.readFile(w,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return null;throw e}},E=async()=>{try{let e=await i.default.readFile(A,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return{};throw e}};async function g(){try{let e=await (0,s.getCliRuntimeStatus)("cline");if(!e.installed||!e.runnable)return r.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Cline CLI is installed but not runnable":"Cline CLI is not installed"});let t=await y();return await E(),r.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:{actModeApiProvider:t?.actModeApiProvider,planModeApiProvider:t?.planModeApiProvider,openAiBaseUrl:t?.openAiBaseUrl,openAiModelId:t?.openAiModelId,planModeOpenAiModelId:t?.planModeOpenAiModelId},hasOmniRoute:(e=>{if(!e)return!1;let t="openai"===e.actModeApiProvider||"openai"===e.planModeApiProvider,a=e.openAiBaseUrl||"";return t&&(a.includes("localhost")||a.includes("127.0.0.1")||a.includes("omniroute"))})(t),globalStatePath:w,secretsPath:A})}catch(e){return console.log("Error checking cline settings:",e),r.NextResponse.json({error:"Failed to check cline settings"},{status:500})}}async function R(e){let t;try{t=await e.json()}catch{return r.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,s.ensureCliConfigWriteAllowed)();if(e)return r.NextResponse.json({error:e},{status:403});let a=(0,p.validateBody)(u.cliModelConfigSchema,t);if((0,p.isValidationFailure)(a))return r.NextResponse.json({error:a.error},{status:400});let{baseUrl:n,apiKey:o,model:l}=a.data;await i.default.mkdir(v,{recursive:!0}),await (0,d.createBackup)("cline",w),await (0,d.createBackup)("cline",A);let f={};try{let e=await i.default.readFile(w,"utf-8");f=JSON.parse(e)}catch{}let h=n.endsWith("/v1")?n.slice(0,-3):n;f.actModeApiProvider="openai",f.planModeApiProvider="openai",f.openAiBaseUrl=h,f.openAiModelId=l,f.planModeOpenAiModelId=l,await i.default.writeFile(w,JSON.stringify(f,null,2));let g={};try{let e=await i.default.readFile(A,"utf-8");g=JSON.parse(e)}catch{}g.openAiApiKey=o||"sk_omniroute",await i.default.writeFile(A,JSON.stringify(g,null,2));try{(0,c.saveCliToolLastConfigured)("cline")}catch{}return r.NextResponse.json({success:!0,message:"Cline settings applied successfully!",globalStatePath:w})}catch(e){return console.log("Error updating cline settings:",e),r.NextResponse.json({error:"Failed to update cline settings"},{status:500})}}async function m(){try{let e=(0,s.ensureCliConfigWriteAllowed)();if(e)return r.NextResponse.json({error:e},{status:403});await (0,d.createBackup)("cline",w),await (0,d.createBackup)("cline",A);let t={};try{let e=await i.default.readFile(w,"utf-8");t=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return r.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}"openai"===t.actModeApiProvider&&(delete t.openAiBaseUrl,delete t.openAiModelId,delete t.planModeOpenAiModelId,t.actModeApiProvider="cline",t.planModeApiProvider="cline"),await i.default.writeFile(w,JSON.stringify(t,null,2));let a={};try{let e=await i.default.readFile(A,"utf-8");a=JSON.parse(e)}catch{}delete a.openAiApiKey,await i.default.writeFile(A,JSON.stringify(a,null,2));try{(0,c.deleteCliToolLastConfigured)("cline")}catch{}return r.NextResponse.json({success:!0,message:"OmniRoute settings removed from Cline"})}catch(e){return console.log("Error resetting cline settings:",e),r.NextResponse.json({error:"Failed to reset cline settings"},{status:500})}}(0,f.ensureServerEntryExports)([g,R,m]),(0,n.registerServerReference)(g,"00d52cd533a978d911fc41c0fa263889e8528962f4",null),(0,n.registerServerReference)(R,"40286e8bb96ce6a11db7fc1bf16ac6363a74f603c8",null),(0,n.registerServerReference)(m,"00f6f6869578564889290a6e1f7796bb6759e68ca0",null),e.s(["DELETE",()=>m,"GET",()=>g,"POST",()=>R]),a()}catch(e){a(e)}},!1),169552,e=>e.a(async(t,a)=>{try{var n=e.i(747909),r=e.i(174017),i=e.i(996250),o=e.i(759756),l=e.i(561916),s=e.i(174677),d=e.i(869741),c=e.i(316795),u=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),g=e.i(570101),R=e.i(626937),m=e.i(10372),v=e.i(193695);e.i(52474);var w=e.i(600220),A=e.i(467388),y=t([A]);[A]=y.then?(await y)():y;let C=new n.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-tools/cline-settings/route",pathname:"/api/cli-tools/cline-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/cline-settings/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:x,workUnitAsyncStorage:O,serverHooks:P}=C;function E(){return(0,i.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:O})}async function N(e,t,a){C.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/cli-tools/cline-settings/route";n=n.replace(/\/index$/,"")||"/";let i=await C.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:A,params:y,nextConfig:E,parsedUrl:N,isDraftMode:x,prerenderManifest:O,routerServerContext:P,isOnDemandRevalidate:b,revalidateOnlyGenerated:M,resolvedPathname:S,clientReferenceManifest:T,serverActionsManifest:I}=i,j=(0,d.normalizeAppPath)(n),F=!!(O.dynamicRoutes[j]||O.routes[S]),k=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,N,!1):t.end("This page could not be found"),null);if(F&&!x){let e=!!O.routes[S],t=O.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await k();throw new v.NoFallbackError}}let U=null;!F||C.isDev||x||(U=S,U="/index"===U?"/":U);let _=!0===C.isDev||!F,H=F&&!_;I&&T&&(0,s.setManifestsSingleton)({page:n,clientReferenceManifest:T,serverActionsManifest:I});let q=e.method||"GET",B=(0,l.getTracer)(),D=B.getActiveScopeSpan(),J={params:y,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:_,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,r)=>C.onRequestError(e,t,n,r,P)},sharedContext:{buildId:A}},K=new c.NodeNextRequest(e),L=new c.NodeNextResponse(t),$=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let i=async e=>C.handle($,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=B.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${q} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${n}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var l,d;let c=async({previousCacheEntry:r})=>{try{if(!s&&b&&M&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(o);e.fetchMetrics=J.renderOpts.fetchMetrics;let l=J.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=J.renderOpts.collectedTags;if(!F)return await (0,h.sendResponse)(K,L,n,J.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,r=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,P),t}},u=await C.handleResponse({req:e,nextConfig:E,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:M,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:s});if(!F)return null;if((null==u||null==(l=u.value)?void 0:l.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(d=u.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",b?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return s&&F||p.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,R.getCacheControlHeader)(u.cacheControl)),await (0,h.sendResponse)(K,L,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};D?await d(D):await B.withPropagatedContext(e.headers,()=>B.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${n}`,kind:l.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},d))}catch(t){if(t instanceof v.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,P),F)throw t;return await (0,h.sendResponse)(K,L,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>E,"routeModule",()=>C,"serverHooks",()=>P,"workAsyncStorage",()=>x,"workUnitAsyncStorage",()=>O]),a()}catch(e){a(e)}},!1)];
|
|
1
|
+
module.exports=[467388,e=>e.a(async(t,a)=>{try{var n=e.i(745015),r=e.i(89171),i=e.i(924868),o=e.i(814747),l=e.i(446786),s=e.i(266240),d=e.i(841788),u=e.i(197892),c=e.i(676088),p=e.i(200392),f=e.i(195975),h=t([c,p]);[c,p]=h.then?(await h)():h;let v=o.default.join(l.default.homedir(),".cline","data"),w=o.default.join(v,"globalState.json"),A=o.default.join(v,"secrets.json"),y=async()=>{try{let e=await i.default.readFile(w,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return null;throw e}},E=async()=>{try{let e=await i.default.readFile(A,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return{};throw e}};async function g(){try{let e=await (0,s.getCliRuntimeStatus)("cline");if(!e.installed||!e.runnable)return r.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Cline CLI is installed but not runnable":"Cline CLI is not installed"});let t=await y();return await E(),r.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:{actModeApiProvider:t?.actModeApiProvider,planModeApiProvider:t?.planModeApiProvider,openAiBaseUrl:t?.openAiBaseUrl,openAiModelId:t?.openAiModelId,planModeOpenAiModelId:t?.planModeOpenAiModelId},hasOmniRoute:(e=>{if(!e)return!1;let t="openai"===e.actModeApiProvider||"openai"===e.planModeApiProvider,a=e.openAiBaseUrl||"";return t&&(a.includes("localhost")||a.includes("127.0.0.1")||a.includes("omniroute"))})(t),globalStatePath:w,secretsPath:A})}catch(e){return console.log("Error checking cline settings:",e),r.NextResponse.json({error:"Failed to check cline settings"},{status:500})}}async function R(e){let t;try{t=await e.json()}catch{return r.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,s.ensureCliConfigWriteAllowed)();if(e)return r.NextResponse.json({error:e},{status:403});let a=(0,p.validateBody)(c.cliModelConfigSchema,t);if((0,p.isValidationFailure)(a))return r.NextResponse.json({error:a.error},{status:400});let{baseUrl:n,apiKey:o,model:l}=a.data;await i.default.mkdir(v,{recursive:!0}),await (0,d.createBackup)("cline",w),await (0,d.createBackup)("cline",A);let f={};try{let e=await i.default.readFile(w,"utf-8");f=JSON.parse(e)}catch{}let h=n.endsWith("/v1")?n.slice(0,-3):n;f.actModeApiProvider="openai",f.planModeApiProvider="openai",f.openAiBaseUrl=h,f.openAiModelId=l,f.planModeOpenAiModelId=l,await i.default.writeFile(w,JSON.stringify(f,null,2));let g={};try{let e=await i.default.readFile(A,"utf-8");g=JSON.parse(e)}catch{}g.openAiApiKey=o||"sk_omniroute",await i.default.writeFile(A,JSON.stringify(g,null,2));try{(0,u.saveCliToolLastConfigured)("cline")}catch{}return r.NextResponse.json({success:!0,message:"Cline settings applied successfully!",globalStatePath:w})}catch(e){return console.log("Error updating cline settings:",e),r.NextResponse.json({error:"Failed to update cline settings"},{status:500})}}async function m(){try{let e=(0,s.ensureCliConfigWriteAllowed)();if(e)return r.NextResponse.json({error:e},{status:403});await (0,d.createBackup)("cline",w),await (0,d.createBackup)("cline",A);let t={};try{let e=await i.default.readFile(w,"utf-8");t=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return r.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}"openai"===t.actModeApiProvider&&(delete t.openAiBaseUrl,delete t.openAiModelId,delete t.planModeOpenAiModelId,t.actModeApiProvider="cline",t.planModeApiProvider="cline"),await i.default.writeFile(w,JSON.stringify(t,null,2));let a={};try{let e=await i.default.readFile(A,"utf-8");a=JSON.parse(e)}catch{}delete a.openAiApiKey,await i.default.writeFile(A,JSON.stringify(a,null,2));try{(0,u.deleteCliToolLastConfigured)("cline")}catch{}return r.NextResponse.json({success:!0,message:"OmniRoute settings removed from Cline"})}catch(e){return console.log("Error resetting cline settings:",e),r.NextResponse.json({error:"Failed to reset cline settings"},{status:500})}}(0,f.ensureServerEntryExports)([g,R,m]),(0,n.registerServerReference)(g,"009ffe260377af01ea374d8feb0ec84502f96ff564",null),(0,n.registerServerReference)(R,"40aafd89f959f7dee9511dd2f10d749379cb3109b8",null),(0,n.registerServerReference)(m,"000a73ced861a99d91e0543b002b9fcff8bbf23dfa",null),e.s(["DELETE",()=>m,"GET",()=>g,"POST",()=>R]),a()}catch(e){a(e)}},!1),169552,e=>e.a(async(t,a)=>{try{var n=e.i(747909),r=e.i(174017),i=e.i(996250),o=e.i(759756),l=e.i(561916),s=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),g=e.i(570101),R=e.i(626937),m=e.i(10372),v=e.i(193695);e.i(52474);var w=e.i(600220),A=e.i(467388),y=t([A]);[A]=y.then?(await y)():y;let C=new n.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/cli-tools/cline-settings/route",pathname:"/api/cli-tools/cline-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/cline-settings/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:x,workUnitAsyncStorage:O,serverHooks:P}=C;function E(){return(0,i.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:O})}async function N(e,t,a){C.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/cli-tools/cline-settings/route";n=n.replace(/\/index$/,"")||"/";let i=await C.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:A,params:y,nextConfig:E,parsedUrl:N,isDraftMode:x,prerenderManifest:O,routerServerContext:P,isOnDemandRevalidate:b,revalidateOnlyGenerated:M,resolvedPathname:S,clientReferenceManifest:T,serverActionsManifest:I}=i,j=(0,d.normalizeAppPath)(n),F=!!(O.dynamicRoutes[j]||O.routes[S]),k=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,N,!1):t.end("This page could not be found"),null);if(F&&!x){let e=!!O.routes[S],t=O.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await k();throw new v.NoFallbackError}}let U=null;!F||C.isDev||x||(U=S,U="/index"===U?"/":U);let _=!0===C.isDev||!F,H=F&&!_;I&&T&&(0,s.setManifestsSingleton)({page:n,clientReferenceManifest:T,serverActionsManifest:I});let q=e.method||"GET",B=(0,l.getTracer)(),D=B.getActiveScopeSpan(),J={params:y,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:_,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,r)=>C.onRequestError(e,t,n,r,P)},sharedContext:{buildId:A}},K=new u.NodeNextRequest(e),L=new u.NodeNextResponse(t),$=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let i=async e=>C.handle($,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=B.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${q} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${n}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var l,d;let u=async({previousCacheEntry:r})=>{try{if(!s&&b&&M&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(o);e.fetchMetrics=J.renderOpts.fetchMetrics;let l=J.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=J.renderOpts.collectedTags;if(!F)return await (0,h.sendResponse)(K,L,n,J.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,r=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,P),t}},c=await C.handleResponse({req:e,nextConfig:E,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:M,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:s});if(!F)return null;if((null==c||null==(l=c.value)?void 0:l.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",b?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&F||p.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,R.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(K,L,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};D?await d(D):await B.withPropagatedContext(e.headers,()=>B.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${n}`,kind:l.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},d))}catch(t){if(t instanceof v.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:b})},!1,P),F)throw t;return await (0,h.sendResponse)(K,L,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>E,"routeModule",()=>C,"serverHooks",()=>P,"workAsyncStorage",()=>x,"workUnitAsyncStorage",()=>O]),a()}catch(e){a(e)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_05c48915._.js.map
|
|
@@ -15,7 +15,7 @@ data: ${JSON.stringify({tokens_generated:s,elapsed_ms:Date.now()-a})}
|
|
|
15
15
|
`;try{t.enqueue(i.encode(e))}catch{clearInterval(o)}},e),n?.addEventListener("abort",()=>{clearInterval(o)},{once:!0})},transform(e,t){let n=("string"==typeof e?e:new TextDecoder().decode(e)).split("\n").filter(e=>e.startsWith("data: "));s+=n.length,t.enqueue(e)},flush(){if(clearInterval(o),r)try{let e=`event: progress
|
|
16
16
|
data: ${JSON.stringify({tokens_generated:s,elapsed_ms:Date.now()-a,done:!0})}
|
|
17
17
|
|
|
18
|
-
`;r.enqueue(i.encode(e))}catch{}}})}function n(e){return!!e&&"true"===("function"==typeof e.get?t=>e.get(t):t=>e[t])("x-omniroute-progress")}e.s(["createProgressTransform",()=>t,"wantsProgress",()=>n])},578172,e=>{"use strict";let t={"gemini-3-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3.1-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-preview":["gemini-3.1-pro-preview","gemini-3-pro-high","gemini-3.1-pro-high","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-preview":["gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-high":["gemini-3.1-pro-high","gemini-3-pro-preview","gemini-3.1-pro-preview","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-high":["gemini-3-pro-high","gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-2.5-pro":["gemini-2.5-pro-preview-06-05","gemini-2.5-pro-exp-03-25"],"gemini-2.5-pro-preview-06-05":["gemini-2.5-pro","gemini-2.5-pro-exp-03-25"],"claude-opus-4-6":["claude-opus-4-6-thinking","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6-thinking":["claude-opus-4-6","claude-opus-4-5-20251101"],"claude-sonnet-4-6":["claude-sonnet-4-5-20250929","claude-sonnet-4-20250514"],"claude-sonnet-4-5-20250929":["claude-sonnet-4-6","claude-sonnet-4-20250514"],"gpt-5":["gpt-5-mini","gpt-4o"],"gpt-5.1":["gpt-5.1-mini","gpt-5","gpt-4o"]},n=["model not found","model_not_found","model not available","model is not available","no such model","unsupported model","unknown model","this model does not exist","invalid model","model not supported","does not support","not enabled for","access to model"];function o(e,t){if(404===e)return!0;if(400!==e&&403!==e)return!1;let o=t.toLowerCase();return n.some(e=>o.includes(e))}function r(e,n){let o=t[e];if(!o)return null;for(let e of o)if(!n.has(e))return e;return null}e.s(["getNextFamilyFallback",()=>r,"isModelUnavailableError",()=>o])},167389,e=>{"use strict";let t={enabled:!0,provider:"nvidia",model:"openai/gpt-oss-120b",triggerOn402:!0,triggerOnBudgetKeywords:!0,budgetKeywords:["insufficient funds","insufficient_funds","budget exceeded","budget_exceeded","quota exceeded","quota_exceeded","billing","payment required","out of credits","no credits","credit limit","spending limit","saldo insuficiente","limite de gastos","cota excedida"],skipForToolRequests:!0,maxOutputTokens:4096};function n(e,o,r,s=t){if(!s.enabled)return{shouldFallback:!1,reason:"emergency fallback disabled"};if(s.skipForToolRequests&&r)return{shouldFallback:!1,reason:"skipped: request has tools"};if(s.triggerOn402&&402===e)return{shouldFallback:!0,reason:`HTTP 402 → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens};if(s.triggerOnBudgetKeywords&&o){let e=o.toLowerCase(),t=s.budgetKeywords.find(t=>e.includes(t.toLowerCase()));if(t)return{shouldFallback:!0,reason:`Budget error detected ('${t}') → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens}}return{shouldFallback:!1,reason:"no budget error detected"}}function o(e){return!0===e.shouldFallback}e.s(["EMERGENCY_FALLBACK_CONFIG",0,t,"isFallbackDecision",()=>o,"shouldUseFallback",()=>n])},284948,e=>e.a(async(t,n)=>{try{var o=e.i(731664),r=e.i(85713),s=e.i(352812),a=e.i(496727),i=e.i(949756),l=e.i(954372),c=e.i(719485),u=e.i(928602),d=e.i(54092),p=e.i(878947),g=e.i(705765),m=e.i(828059),f=e.i(719201),h=e.i(16023),_=e.i(688828);e.i(312125);var y=e.i(400722),A=e.i(397506)
|
|
19
|
-
${t}`}]:[]}return N?.debug?.("CONTENT",`Dropped unsupported content part type="${e.type}"`),[]}));let t=(0,T.getModelNormalizeToolCallId)(J||"",V||"");ep=(0,s.translateRequest)(et,ec,V,ep,eu,n,J,ed,{normalizeToolCallId:t})}}catch(s){let e=Number(s?.statusCode),t=Number.isInteger(e)&&e>=400&&e<=599?e:h.HTTP_STATUS.SERVER_ERROR,n=s?.message||"Invalid request",r="string"==typeof s?.errorType?s.errorType:null;if(N?.warn?.("TRANSLATE",`Request translation failed: ${n}`),r)return{success:!1,status:t,error:n,response:new Response(JSON.stringify({error:{message:n,type:r,code:r}}),{status:t,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()}})};return(0,f.createErrorResult)(t,n)}let em=ep._toolNameMap;delete ep._toolNameMap,delete ep._disableToolPrefix,ep.model=ei;let ef=(0,m.getUnsupportedParams)(J,V);if(ef.length>0){let e=[];for(let t of ef)Object.hasOwn(ep,t)&&(e.push(t),delete ep[t]);e.length>0&&N?.warn?.("PARAMS",`Stripped unsupported params for ${V}: ${e.join(", ")}`)}let eh=(0,k.getExecutor)(J),e_=()=>er?{...n,requestEndpointPath:en}:n,ey=(0,c.createStreamController)({onDisconnect:D,log:N,provider:J,model:V}),eA={...ep,model:`${J}/${V}`},eT=(0,$.shouldDeduplicate)(eA),ek=eT?(0,$.computeRequestHash)(eA):null,eS=async(e=ei,t=!1)=>{let n=async()=>{let t=ep.model===e?ep:{...ep,model:e},n=await (0,w.withRateLimit)(J,F,e,()=>eh.execute({model:e,body:t,stream:eu,credentials:e_(),signal:ey.signal,log:N,extendedContext:z}));if(eu)return n;let o=n.response.status,r=n.response.statusText,s=Array.from(n.response.headers.entries()),a=await n.response.text();return{...n,response:new Response(a,{status:o,statusText:r,headers:s})}};if(t&&eT&&ek){let e=await (0,$.deduplicate)(ek,n);return e.wasDeduplicated&&N?.debug?.("DEDUP",`Joined in-flight request hash=${ek}`),e.result}return n()};(0,y.trackPendingRequest)(V,J,F,!0);let eE=new Set([ei]),eR=ei;(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:"PENDING"}).catch(()=>{});let ev=ep.messages?.length||ep.contents?.length||ep.request?.contents?.length||0;N?.debug?.("REQUEST",`${J.toUpperCase()} | ${V} | ${ev} msgs`);try{let e=await eS(ei,!0);B=e.response,H=e.url,K=e.headers,W=e.transformedBody,ed.logTargetRequest(H,K,W),(0,w.updateFromHeaders)(J,F,B.headers,B.status,V)}catch(n){if((0,y.trackPendingRequest)(V,J,F,!1),(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY,model:V,provider:J,connectionId:F,duration:Date.now()-Z,requestBody:e,error:n.message,sourceFormat:et,targetFormat:ec,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{}),"AbortError"===n.name)return ey.handleError(n),(0,f.createErrorResult)(499,"Request aborted");Q(h.HTTP_STATUS.BAD_GATEWAY,n?.name||"upstream_error");let t=(0,f.formatProviderError)(n,J,V,h.HTTP_STATUS.BAD_GATEWAY);return console.log(`${l.COLORS.red}[ERROR] ${t}${l.COLORS.reset}`),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,t)}if(B.status===h.HTTP_STATUS.UNAUTHORIZED||B.status===h.HTTP_STATUS.FORBIDDEN){let e=await (0,u.refreshWithRetry)(()=>eh.refreshCredentials(n,N),3,N);if(e?.accessToken||e?.copilotToken){N?.info?.("TOKEN",`${J.toUpperCase()} | refreshed`),Object.assign(n,e),P&&e&&await P(e);try{let e=await eh.execute({model:V,body:ep,stream:eu,credentials:e_(),signal:ey.signal,log:N,extendedContext:z});e.response.ok&&(B=e.response,H=e.url)}catch(e){N?.warn?.("TOKEN",`${J.toUpperCase()} | retry after refresh failed`)}}else N?.warn?.("TOKEN",`${J.toUpperCase()} | refresh failed`)}if(!B.ok){(0,y.trackPendingRequest)(V,J,F,!1);let{statusCode:t,message:o,retryAfterMs:r}=await (0,f.parseUpstreamError)(B,J);(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${t}`}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:t,model:V,provider:J,connectionId:F,duration:Date.now()-Z,requestBody:e,error:o,sourceFormat:et,targetFormat:ec,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{});let s=(0,f.formatProviderError)(Error(o),J,V,t);if(console.log(`${l.COLORS.red}[ERROR] ${s}${l.COLORS.reset}`),r&&"antigravity"===J){let e=Math.ceil(r/1e3);N?.debug?.("RETRY",`Antigravity quota reset in ${e}s (${r}ms)`)}if(ed.logError(Error(o),W||ep),(0,w.updateFromHeaders)(J,F,B.headers,t,V),!(0,O.isModelUnavailableError)(t,o))return Q(t,`upstream_${t}`),(0,f.createErrorResult)(t,s,r);{let e=(0,O.getNextFamilyFallback)(eR,eE);if(!e)return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r);eE.add(e),eR=e,ep.model=e,N?.info?.("MODEL_FALLBACK",`${V} unavailable (${t}) → trying ${e}`);try{let n=await eS(e,!1);if(!n.response.ok)return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r);B=n.response,H=n.url,K=n.headers,W=n.transformedBody,N?.info?.("MODEL_FALLBACK",`Serving ${e} as fallback for ${V}`)}catch{return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r)}}let a=Array.isArray(ep.tools)&&ep.tools.length>0;if(!eu){let e=(0,x.shouldUseFallback)(t,o,a,x.EMERGENCY_FALLBACK_CONFIG);if((0,x.isFallbackDecision)(e)){N?.info?.("EMERGENCY_FALLBACK",e.reason);try{let t=(0,k.getExecutor)(e.provider),o=await t.execute({model:e.model,body:{...ep,model:e.model,max_tokens:Math.min("number"==typeof ep.max_tokens?ep.max_tokens:e.maxOutputTokens,e.maxOutputTokens)},stream:!1,credentials:n,signal:ey.signal,log:N,extendedContext:z});o.response.ok?(B=o.response,N?.info?.("EMERGENCY_FALLBACK",`Serving ${e.provider}/${e.model} as budget fallback for ${J}/${V}`)):N?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback also failed (${o.response.status})`)}catch(e){N?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback error: ${e?.message}`)}}}}if(!eu){let t;(0,y.trackPendingRequest)(V,J,F,!1);let n=(B.headers.get("content-type")||"").toLowerCase(),r=await B.text();if(n.includes("text/event-stream")||/(^|\n)\s*(event|data):/m.test(r)){let e=ec===a.FORMATS.OPENAI_RESPONSES?(0,R.parseSSEToResponsesOutput)(r,V):(0,R.parseSSEToOpenAIResponse)(r,V);if(!e)return(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),Q(h.HTTP_STATUS.BAD_GATEWAY,"invalid_sse_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid SSE response for non-streaming request");t=e}else try{t=r?JSON.parse(r):{}}catch{return(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),Q(h.HTTP_STATUS.BAD_GATEWAY,"invalid_json_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid JSON response from provider")}U&&await U();let i=(0,E.extractUsageFromResponse)(t,J);if((0,y.appendRequestLog)({model:V,provider:J,connectionId:F,tokens:i,status:"200 OK"}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:200,model:V,provider:J,connectionId:F,duration:Date.now()-Z,tokens:i,requestBody:e,responseBody:t,sourceFormat:et,targetFormat:ec,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{}),i&&"object"==typeof i){let e=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}] 📊 [USAGE] ${J.toUpperCase()} | in=${i?.prompt_tokens||0} | out=${i?.completion_tokens||0}${F?` | account=${F.slice(0,8)}...`:""}`;console.log(`${l.COLORS.green}${e}${l.COLORS.reset}`),(0,y.saveRequestUsage)({provider:J||"unknown",model:V||"unknown",tokens:i,status:"200",success:!0,latencyMs:Date.now()-Z,timeToFirstTokenMs:Date.now()-Z,errorCode:null,timestamp:new Date().toISOString(),connectionId:F||void 0,apiKeyId:L?.id||void 0,apiKeyName:L?.name||void 0}).catch(e=>{console.error("Failed to save usage stats:",e.message)})}let c=(0,s.needsTranslation)(ec,et)?(0,S.translateNonStreamingResponse)(t,ec,et):t;if(et===a.FORMATS.OPENAI&&(c=(0,v.sanitizeOpenAIResponse)(c)),c?.usage){let e=(0,l.addBufferToUsage)(c.usage);c.usage=(0,l.filterUsageForFormat)(e,et)}else{let t=JSON.stringify(c?.choices?.[0]?.message?.content||"").length;if(t>0){let n=(0,l.estimateUsage)(e,t,et);c.usage=(0,l.filterUsageForFormat)(n,et)}}if((0,C.isCacheable)(e,M?.headers)){let t=(0,C.generateSignature)(V,e.messages,e.temperature,e.top_p),n=i?.prompt_tokens+i?.completion_tokens||0;(0,C.setCachedResponse)(t,V,c,n),N?.debug?.("CACHE",`Stored response for ${V} (${n} tokens)`)}return(0,b.saveIdempotency)(X,c,200),{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Cache":"MISS"}})}}U&&await U();let ew={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()},eC=({status:t,usage:n,responseBody:o})=>{(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:t||200,model:V,provider:J,connectionId:F,duration:Date.now()-Z,tokens:n||{},requestBody:e,responseBody:o??void 0,sourceFormat:et,targetFormat:ec,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{})},eb=j?.toLowerCase().includes("droid")||j?.toLowerCase().includes("codex-cli");if("codex"!==J||ec!==a.FORMATS.OPENAI_RESPONSES||et!==a.FORMATS.OPENAI||eo||eb?(0,s.needsTranslation)(ec,et)?(N?.debug?.("STREAM",`Translation mode: ${ec} → ${et}`),G=(0,i.createSSETransformStreamWithLogger)(ec,et,J,ed,em,V,F,e,eC,L)):(N?.debug?.("STREAM","Standard passthrough mode"),G=(0,i.createPassthroughStreamWithLogger)(J,ed,V,F,e,eC,L)):(N?.debug?.("STREAM",`Codex translation mode: openai-responses → openai`),G=(0,i.createSSETransformStreamWithLogger)("openai-responses","openai",J,ed,em,V,F,e,eC,L)),(0,I.wantsProgress)(M?.headers)){let e=(0,I.createProgressTransform)({signal:ey.signal});Y=(0,c.pipeWithDisconnect)(B,G,ey).pipeThrough(e),ew["X-OmniRoute-Progress"]="enabled"}else Y=(0,c.pipeWithDisconnect)(B,G,ey);return{success:!0,response:new Response(Y,{headers:ew})}}[k]=N.then?(await N)():N,e.s(["handleChatCore",()=>P]),n()}catch(e){n(e)}},!1),485641,e=>{"use strict";let t=[{name:"system_override",pattern:/\b(ignore|disregard|forget)\s+(all\s+)?(previous|prior|above|earlier)\s+(instructions?|prompts?|rules?|context)/i,severity:"high"},{name:"role_hijack",pattern:/\b(you\s+are\s+now|act\s+as\s+if|pretend\s+(to\s+be|you\s+are)|from\s+now\s+on\s+you\s+are)\b/i,severity:"medium"},{name:"system_prompt_leak",pattern:/\b(reveal|show|display|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions?|initial\s+prompt|hidden\s+prompt)/i,severity:"high"},{name:"delimiter_injection",pattern:/(\[SYSTEM\]|\[INST\]|<<SYS>>|<\|im_start\|>|<\|system\|>|<\|user\|>)/i,severity:"high"},{name:"jailbreak_dan",pattern:/\b(DAN|do\s+anything\s+now|jailbreak|developer\s+mode|enable\s+developer)\b/i,severity:"medium"},{name:"encoding_evasion",pattern:/\b(base64\s+decode|rot13|hex\s+decode|unicode\s+escape)\b.*\b(instruction|prompt|command)\b/i,severity:"medium"}],n=[{name:"email",pattern:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"[EMAIL_REDACTED]"},{name:"cpf",pattern:/\b\d{3}\.\d{3}\.\d{3}-\d{2}\b/g,replacement:"[CPF_REDACTED]"},{name:"cnpj",pattern:/\b\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}\b/g,replacement:"[CNPJ_REDACTED]"},{name:"credit_card",pattern:/\b(?:\d{4}[-\s]?){3}\d{4}\b/g,replacement:"[CARD_REDACTED]"},{name:"phone_br",pattern:/\b\(?\d{2}\)?\s?\d{4,5}-?\d{4}\b/g,replacement:"[PHONE_REDACTED]"},{name:"ssn_us",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"[SSN_REDACTED]"}];function o(e,t=!1){let r=[],s=e;for(let o of n){let n=e.match(o.pattern);n&&n.length>0&&(r.push({type:o.name,count:n.length}),t&&(s=s.replace(o.pattern,o.replacement)))}return{text:s,detections:r}}function r(e,n=console){let s={enabled:"false"!==process.env.INPUT_SANITIZER_ENABLED,mode:process.env.INPUT_SANITIZER_MODE||"warn",piiRedaction:"true"===process.env.PII_REDACTION_ENABLED},a={blocked:!1,modified:!1,detections:[],piiDetections:[],sanitizedBody:null};if(!s.enabled)return a;let i=(function(e){let t=[];for(let n of e.messages||e.input||[])if("string"==typeof n)t.push(n);else if("string"==typeof n.content)t.push(n.content);else if(Array.isArray(n.content))for(let e of n.content)"string"==typeof e?t.push(e):e.text&&t.push(e.text);if("string"==typeof e.system)t.push(e.system);else if(Array.isArray(e.system))for(let n of e.system)"string"==typeof n?t.push(n):n.text&&t.push(n.text);return t})(e).join("\n"),l=function(e){let n=[];for(let o of t){let t=e.match(o.pattern);t&&n.push({pattern:o.name,severity:o.severity,match:t[0].slice(0,50)})}return n}(i);if(l.length>0){a.detections=l;let e=l.filter(e=>"high"===e.severity),t=e.length>0?"warn":"info";if(n[t]&&n[t](`[SANITIZER] Prompt injection detected: ${l.map(e=>e.pattern).join(", ")}`),"block"===s.mode&&e.length>0)return a.blocked=!0,a}if(s.piiRedaction){let t=o(i,"redact"===s.mode);a.piiDetections=t.detections,t.detections.length>0&&(n.warn?.(`[SANITIZER] PII detected: ${t.detections.map(e=>`${e.type}(${e.count})`).join(", ")}`),"redact"===s.mode&&(a.sanitizedBody=function(e){let t=JSON.parse(JSON.stringify(e));for(let e of t.messages||t.input||[])if("string"==typeof e.content)e.content=o(e.content,!0).text;else if(Array.isArray(e.content))for(let t of e.content)if("string"==typeof t){let n=e.content.indexOf(t);e.content[n]=o(t,!0).text}else t.text&&(t.text=o(t.text,!0).text);return"string"==typeof t.system&&(t.system=o(t.system,!0).text),t}(e),a.modified=!0))}return a}e.s(["sanitizeRequest",()=>r])},577122,e=>{"use strict";var t=e.i(478500),n=e.i(254799);function o(){return(0,n.randomUUID)()}new t.AsyncLocalStorage,e.s(["generateRequestId",()=>o])},311250,e=>e.a(async(t,n)=>{try{var o=e.i(287726),r=e.i(192408),s=e.i(85713),a=e.i(284948),i=e.i(719201),l=e.i(928041),c=e.i(16023),u=e.i(878947),d=e.i(444675);e.i(706901);var p=e.i(249157),g=e.i(496973);e.i(245272);var m=e.i(548941),f=e.i(151205),h=e.i(496928),_=e.i(21245),y=e.i(485641),A=e.i(260222),T=e.i(982392),k=e.i(25687),S=e.i(454925),E=e.i(577122),R=e.i(362225),v=e.i(478847),w=e.i(852705),C=e.i(167389),b=t([a]);async function I(e,t=null){let n,s=(0,E.generateRequestId)(),a=new S.RequestTelemetry(s);try{a.startPhase("parse"),n=await e.json(),a.endPhase()}catch{return p.warn("CHAT","Invalid JSON body"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid JSON body")}a.startPhase("validate");let u=(0,y.sanitizeRequest)(n,p);if(u.blocked)return p.warn("SANITIZER","Request blocked due to prompt injection",{detections:u.detections}),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Request rejected: suspicious content detected");u.modified&&u.sanitizedBody&&(n=u.sanitizedBody),a.endPhase(),(e.headers.get("accept")||"").includes("text/event-stream")&&void 0===n.stream&&(n={...n,stream:!0},p.debug("STREAM","Accept: text/event-stream header → overriding stream=true (body had no stream field)")),t||(t={endpoint:new URL(e.url).pathname,body:n,headers:Object.fromEntries(e.headers.entries())});let d=new URL(e.url),g=n.model,h=n.messages?.length||n.input?.length||0,_=n.tools?.length||0,A=n.reasoning_effort||n.reasoning?.effort||null;p.request("POST",`${d.pathname} | ${g} | ${h} msgs${_?` | ${_} tools`:""}${A?` | effort=${A}`:""}`);let k=e.headers.get("Authorization"),R=(0,o.extractApiKey)(e);k&&R?p.debug("AUTH",`API Key: ${p.maskKey(R)}`):p.debug("AUTH","No API key provided (local mode)");let C=e.headers?.get?.("x-internal-test")==="combo-health-check";if("true"!==process.env.REQUIRE_API_KEY||C){if(R&&!C&&!await (0,o.isValidApiKey)(R))return p.warn("AUTH","API key not found or invalid (must be created in API Manager)"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}else{if(!R)return p.warn("AUTH","Missing API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Missing API key");if(!await (0,o.isValidApiKey)(R))return p.warn("AUTH","Invalid API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}if(!g)return p.warn("CHAT","Missing model"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Missing model");a.startPhase("policy");let b=await (0,v.enforceApiKeyPolicy)(e,g);if(b.rejection)return p.warn("POLICY",`API key policy rejected: ${g} (key=${b.apiKeyInfo?.id||"unknown"})`),b.rejection;let $=b.apiKeyInfo;a.endPhase();let x=g;if((0,w.getTaskRoutingConfig)().enabled){a.startPhase("task-route");let e=(0,w.applyTaskAwareRouting)(g,n);e.wasRouted?(x=e.model,n={...n,model:e.model},p.info("T05",`Task-Aware: detected="${e.taskType}" → model override: ${g} → ${e.model}`)):"chat"!==e.taskType&&p.debug("T05",`Task-Aware: detected="${e.taskType}" (no override configured)`),e.taskType,e.wasRouted,a.endPhase()}a.startPhase("resolve");let N=await (0,r.getCombo)(x);if(N){p.info("CHAT",`Combo "${g}" [${N.strategy||"priority"}] with ${N.models.length} models`);let s=async e=>{let t=await (0,r.getModelInfo)(e),n=t.provider;if(!n)return!0;if(!(0,T.isModelAvailable)(n,t.model||e))return p.debug("AVAILABILITY",`${n}/${t.model} in cooldown, skipping`),!1;let s=await (0,o.getProviderCredentials)(n,null,$?.allowedConnections??null);return!!s&&!s.allRateLimited},[i,c]=await Promise.all([(0,m.getSettings)().catch(()=>({})),(0,f.getCombos)().catch(()=>[])]);a.endPhase();let u=await l.handleComboChat({body:n,combo:N,handleSingleModel:(n,o)=>O(n,o,t,e,N.name,$,a),isModelAvailable:s,log:p,settings:i,allCombos:c});return(0,S.recordTelemetry)(a),u}a.endPhase();let P=await O(n,g,t,e,null,$,a);return(0,S.recordTelemetry)(a),P}async function O(e,t,n=null,r=null,s=null,a=null,l=null,u={}){var d,m;let f=await $(t,e);if(f.error)return f.error;let{provider:y,model:S,sourceFormat:E,targetFormat:v,extendedContext:w}=f,b=(d=y,m=S,(0,T.isModelAvailable)(d,m)?(0,A.getCircuitBreaker)(d,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}).canExecute()?null:(p.warn("CIRCUIT",`Circuit breaker OPEN for ${d}, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${d} circuit breaker is open`,30)):(p.warn("AVAILABILITY",`${d}/${m} is in cooldown, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Model ${d}/${m} is temporarily unavailable (cooldown)`,30)));if(b)return b;let I=(0,A.getCircuitBreaker)(y,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}),P=r?.headers?.get("user-agent")||"",U=null,D=null,M=null;for(;;){let t=await (0,o.getProviderCredentials)(y,U,a?.allowedConnections??null);if(!t||t.allRateLimited)return(429===M||503===M)&&((0,T.setModelUnavailable)(y,S,6e4,`HTTP ${M}`),p.info("AVAILABILITY",`${y}/${S} marked unavailable — all accounts exhausted (HTTP ${M})`)),function(e,t,n,o,r,s){if(e?.allRateLimited){let t=r||e.lastError||"Unavailable",a=s||Number(e.lastErrorCode)||c.HTTP_STATUS.SERVICE_UNAVAILABLE;return p.warn("CHAT",`[${n}/${o}] ${t} (${e.retryAfterHuman})`),(0,i.unavailableResponse)(a,`[${n}/${o}] ${t}`,e.retryAfter,e.retryAfterHuman)}return t?(p.warn("CHAT","No more accounts available",{provider:n}),(0,i.errorResponse)(s||c.HTTP_STATUS.SERVICE_UNAVAILABLE,r||"All accounts unavailable")):(p.error("AUTH",`No credentials for provider: ${n}`),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,`No credentials for provider: ${n}`))}(t,U,y,S,D,M);let d=t.connectionId.slice(0,8);p.info("AUTH",`Using ${y} account: ${d}...`);let m=await (0,g.checkAndRefreshToken)(y,t),f=await N(t.connectionId),A=Date.now();l&&l.startPhase("connect");let{result:b,tlsFingerprintUsed:$}=await x({breaker:I,body:e,provider:y,model:S,refreshedCredentials:m,proxyInfo:f,log:p,clientRawRequest:n,credentials:t,apiKeyInfo:a,userAgent:P,comboName:s,extendedContext:w});l&&l.endPhase();let F=Date.now()-A;if(function({result:e,proxyInfo:t,proxyLatency:n,provider:o,model:r,sourceFormat:s,targetFormat:a,credentials:i,comboName:l,clientRawRequest:c,tlsFingerprintUsed:u=!1}){try{(0,h.logProxyEvent)({status:e.success?"success":408===e.status||504===e.status?"timeout":"error",proxy:t?.proxy||null,level:t?.level||"direct",levelId:t?.levelId||null,provider:o,targetUrl:`${o}/${r}`,latencyMs:n,error:e.success?null:e.error||null,connectionId:i.connectionId,comboId:l||null,account:i.connectionId?.slice(0,8)||null,tlsFingerprint:u})}catch{}try{(0,_.logTranslationEvent)({provider:o,model:r,sourceFormat:s,targetFormat:a,status:e.success?"success":"error",statusCode:e.success?200:e.status||500,latency:n,endpoint:c?.endpoint||"/v1/chat/completions",connectionId:i.connectionId||null,comboName:l||null})}catch{}}({result:b,proxyInfo:f,proxyLatency:F,provider:y,model:S,sourceFormat:E,targetFormat:v,credentials:t,comboName:s,clientRawRequest:n,tlsFingerprintUsed:$}),b.success)return(0,T.clearModelUnavailability)(y,S),function(e,t){if(e?.id)try{let n=t.usage||{},o=((n.prompt_tokens||0)+(n.completion_tokens||0))*1e-6;o>0&&(0,R.recordCost)(e.id,o)}catch{}}(a,b),l&&l.startPhase("finalize"),l&&l.endPhase(),b.response;if(!u.emergencyFallbackTried){let t=(0,C.shouldUseFallback)(Number(b.status||0),String(b.error||""),Array.isArray(e?.tools)&&e.tools.length>0);if((0,C.isFallbackDecision)(t)){let o=`${t.provider}/${t.model}`,i=`${y}/${S}`;if(o!==i){let c={...e,model:o},d=Math.min(Number(c.max_tokens??c.max_completion_tokens??t.maxOutputTokens)||t.maxOutputTokens,t.maxOutputTokens);return c.max_tokens=d,c.max_completion_tokens=d,p.warn("EMERGENCY_FALLBACK",`${i} -> ${o} | reason=${t.reason}`),O(c,o,n,r,s,a,l,{...u,emergencyFallbackTried:!0})}}}429===b.status&&(0,k.markAccountExhaustedFrom429)(t.connectionId,y);let{shouldFallback:L}=await (0,o.markAccountUnavailable)(t.connectionId,b.status,b.error,y,S);if(L){p.warn("AUTH",`Account ${d}... unavailable (${b.status}), trying fallback`),U=t.connectionId,D=b.error,M=b.status;continue}return b.response}}async function $(e,t){let n=await (0,r.getModelInfo)(e);if(!n.provider){if("ambiguous_model"===n.errorType){let t=n.errorMessage||`Ambiguous model '${e}'. Use provider/model prefix (ex: gh/${e} or cc/${e}).`;return p.warn("CHAT",t,{model:e,candidates:n.candidateAliases||n.candidateProviders||[]}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,t)}}return p.warn("CHAT","Invalid model format",{model:e}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid model format")}}let{provider:o,model:a,extendedContext:l}=n,d=(0,s.detectFormat)(t),g=u.PROVIDER_ID_TO_ALIAS[o]||o,m=(0,u.getModelTargetFormat)(g,a)||(0,s.getTargetFormat)(o);"responses"===n.apiFormat&&(m="openai-responses",p.info("ROUTING",`Custom model apiFormat=responses → targetFormat=openai-responses`));let f=l&&"claude"===g?" [1m]":"";return e!==`${o}/${a}`?p.info("ROUTING",`${e} → ${o}/${a}${f}`):p.info("ROUTING",`Provider: ${o}, Model: ${a}${f}`),{provider:o,model:a,sourceFormat:d,targetFormat:m,extendedContext:l}}async function x({breaker:e,body:t,provider:n,model:r,refreshedCredentials:s,proxyInfo:l,log:u,clientRawRequest:m,credentials:f,apiKeyInfo:h,userAgent:_,comboName:y,extendedContext:T}){try{let i=()=>(0,d.runWithProxyContext)(l?.proxy||null,()=>a.handleChatCore({body:{...t,model:`${n}/${r}`},modelInfo:{provider:n,model:r,extendedContext:T},credentials:s,log:u,clientRawRequest:m,connectionId:f.connectionId,apiKeyInfo:h,userAgent:_,comboName:y,onCredentialsRefreshed:async e=>{await (0,g.updateProviderCredentials)(f.connectionId,{accessToken:e.accessToken,refreshToken:e.refreshToken,providerSpecificData:e.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,o.clearAccountError)(f.connectionId,f)}}));if(!l?.proxy&&(0,d.isTlsFingerprintActive)()){let t=await e.execute(async()=>(0,d.runWithTlsTracking)(i));return{result:t.result,tlsFingerprintUsed:t.tlsFingerprintUsed}}return{result:await e.execute(i),tlsFingerprintUsed:!1}}catch(e){if(e instanceof A.CircuitBreakerOpenError)return p.warn("CIRCUIT",`${n} circuit open during retry: ${e.message}`),{result:{success:!1,response:i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${n} circuit breaker is open`,Math.ceil(e.retryAfterMs/1e3)),status:c.HTTP_STATUS.SERVICE_UNAVAILABLE},tlsFingerprintUsed:!1};throw e}}async function N(e){try{return await (0,m.resolveProxyForConnection)(e)}catch(e){return p.debug("PROXY",`Failed to resolve proxy: ${e.message}`),null}}[a]=b.then?(await b)():b,e.s(["handleChat",()=>I]),n()}catch(e){n(e)}},!1)];
|
|
18
|
+
`;r.enqueue(i.encode(e))}catch{}}})}function n(e){return!!e&&"true"===("function"==typeof e.get?t=>e.get(t):t=>e[t])("x-omniroute-progress")}e.s(["createProgressTransform",()=>t,"wantsProgress",()=>n])},578172,e=>{"use strict";let t={"gemini-3-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3.1-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-preview":["gemini-3.1-pro-preview","gemini-3-pro-high","gemini-3.1-pro-high","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-preview":["gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-high":["gemini-3.1-pro-high","gemini-3-pro-preview","gemini-3.1-pro-preview","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-high":["gemini-3-pro-high","gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-2.5-pro":["gemini-2.5-pro-preview-06-05","gemini-2.5-pro-exp-03-25"],"gemini-2.5-pro-preview-06-05":["gemini-2.5-pro","gemini-2.5-pro-exp-03-25"],"claude-opus-4-6":["claude-opus-4-6-thinking","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6-thinking":["claude-opus-4-6","claude-opus-4-5-20251101"],"claude-sonnet-4-6":["claude-sonnet-4-5-20250929","claude-sonnet-4-20250514"],"claude-sonnet-4-5-20250929":["claude-sonnet-4-6","claude-sonnet-4-20250514"],"gpt-5":["gpt-5-mini","gpt-4o"],"gpt-5.1":["gpt-5.1-mini","gpt-5","gpt-4o"]},n=["model not found","model_not_found","model not available","model is not available","no such model","unsupported model","unknown model","this model does not exist","invalid model","model not supported","does not support","not enabled for","access to model"];function o(e,t){if(404===e)return!0;if(400!==e&&403!==e)return!1;let o=t.toLowerCase();return n.some(e=>o.includes(e))}function r(e,n){let o=t[e];if(!o)return null;for(let e of o)if(!n.has(e))return e;return null}e.s(["getNextFamilyFallback",()=>r,"isModelUnavailableError",()=>o])},167389,e=>{"use strict";let t={enabled:!0,provider:"nvidia",model:"openai/gpt-oss-120b",triggerOn402:!0,triggerOnBudgetKeywords:!0,budgetKeywords:["insufficient funds","insufficient_funds","budget exceeded","budget_exceeded","quota exceeded","quota_exceeded","billing","payment required","out of credits","no credits","credit limit","spending limit","saldo insuficiente","limite de gastos","cota excedida"],skipForToolRequests:!0,maxOutputTokens:4096};function n(e,o,r,s=t){if(!s.enabled)return{shouldFallback:!1,reason:"emergency fallback disabled"};if(s.skipForToolRequests&&r)return{shouldFallback:!1,reason:"skipped: request has tools"};if(s.triggerOn402&&402===e)return{shouldFallback:!0,reason:`HTTP 402 → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens};if(s.triggerOnBudgetKeywords&&o){let e=o.toLowerCase(),t=s.budgetKeywords.find(t=>e.includes(t.toLowerCase()));if(t)return{shouldFallback:!0,reason:`Budget error detected ('${t}') → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens}}return{shouldFallback:!1,reason:"no budget error detected"}}function o(e){return!0===e.shouldFallback}e.s(["EMERGENCY_FALLBACK_CONFIG",0,t,"isFallbackDecision",()=>o,"shouldUseFallback",()=>n])},284948,e=>e.a(async(t,n)=>{try{var o=e.i(731664),r=e.i(85713),s=e.i(352812),a=e.i(496727),i=e.i(949756),l=e.i(954372),c=e.i(719485),u=e.i(928602),d=e.i(54092),p=e.i(878947),g=e.i(705765),m=e.i(828059),f=e.i(719201),h=e.i(16023),_=e.i(688828);e.i(312125);var y=e.i(400722),A=e.i(397506);e.i(245272);var T=e.i(542949),k=e.i(6751),S=e.i(803285),E=e.i(725538),R=e.i(423525),v=e.i(581631),w=e.i(20870),C=e.i(511695),b=e.i(289130),I=e.i(537981),O=e.i(578172),$=e.i(951700),x=e.i(167389),N=t([k]);async function P({body:e,modelInfo:t,credentials:n,log:N,onCredentialsRefreshed:P,onRequestSuccess:U,onDisconnect:D,clientRawRequest:M,connectionId:F,apiKeyInfo:L=null,userAgent:j,comboName:q}){let B,H,K,W,G,Y,{provider:J,model:V,extendedContext:z}=t,Z=Date.now(),Q=(e,t)=>{(0,y.saveRequestUsage)({provider:J||"unknown",model:V||"unknown",tokens:{input:0,output:0,cacheRead:0,cacheCreation:0,reasoning:0},status:String(e),success:!1,latencyMs:Date.now()-Z,timeToFirstTokenMs:0,errorCode:t||String(e),timestamp:new Date().toISOString(),connectionId:F||void 0,apiKeyId:L?.id||void 0,apiKeyName:L?.name||void 0}).catch(()=>{})},X=(0,b.getIdempotencyKey)(M?.headers),ee=(0,b.checkIdempotency)(X);if(ee)return N?.debug?.("IDEMPOTENCY",`Hit for key=${X?.slice(0,12)}...`),{success:!0,response:new Response(JSON.stringify(ee.response),{status:ee.status,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Idempotent":"true"}})};await (0,w.initializeRateLimits)(),F&&n&&!n.connectionId&&(n.connectionId=F);let et=(0,r.detectFormat)(e),en=String(M?.endpoint||""),eo=/(?:^|\/)responses(?:\/.*)?$/i.test(en),er=function({provider:e,sourceFormat:t,endpointPath:n}){if("codex"!==e||t!==a.FORMATS.OPENAI_RESPONSES)return!1;let o=String(n||"").replace(/\/+$/,"");return/(?:^|\/)responses(?:\/.*)?$/i.test(o)}({provider:J,sourceFormat:et,endpointPath:en}),es=(0,_.handleBypassRequest)(e,V,j);if(es)return es;let ea=(0,g.resolveModelAlias)(V),ei=ea!==V?ea:V;ea!==V&&N?.info?.("ALIAS",`Model alias applied: ${V} → ${ea}`);let el=p.PROVIDER_ID_TO_ALIAS[J]||J,ec=(0,p.getModelTargetFormat)(el,ea)||(0,r.getTargetFormat)(J),eu=!0===e.stream;if((0,C.isCacheable)(e,M?.headers)){let t=(0,C.generateSignature)(V,e.messages,e.temperature,e.top_p),n=(0,C.getCachedResponse)(t);if(n)return N?.debug?.("CACHE",`Semantic cache HIT for ${V}`),{success:!0,response:new Response(JSON.stringify(n),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Cache":"HIT"}})}}let ed=await (0,d.createRequestLogger)(et,ec,V);M&&ed.logClientRawRequest(M.endpoint,M.body,M.headers),ed.logRawRequest(e),N?.debug?.("FORMAT",`${et} → ${ec} | stream=${eu}`);let ep=e,eg=et===a.FORMATS.CLAUDE&&ec===a.FORMATS.CLAUDE;try{if(er)ep={...e,_nativeCodexPassthrough:!0},N?.debug?.("FORMAT","native codex passthrough enabled");else if(eg)ep={...e},N?.debug?.("FORMAT","claude->claude passthrough -- forwarding untouched");else{if(ep={...e},ec!==a.FORMATS.CLAUDE||["claude","anthropic"].includes(J?.toLowerCase?.())||(ep._disableToolPrefix=!0),Array.isArray(ep.messages)&&(ep.messages=ep.messages.map(e=>{if(""===e.name){let{name:t,...n}=e;return n}return e})),Array.isArray(ep.input)&&(ep.input=ep.input.map(e=>{if(""===e.name){let{name:t,...n}=e;return n}return e})),Array.isArray(ep.tools)&&(ep.tools=ep.tools.filter(e=>{let t=e.function,n=t?.name??e.name;return n&&String(n).trim().length>0})),Array.isArray(ep.messages))for(let e of ep.messages)Array.isArray(e.content)&&(e.content=e.content.filter(e=>"text"!==e.type||"string"==typeof e.text&&e.text.length>0));if(Array.isArray(ep.messages))for(let e of ep.messages)"user"===e.role&&Array.isArray(e.content)&&(e.content=e.content.flatMap(e=>{if("text"===e.type||"image_url"===e.type||"image"===e.type)return[e];if("file"===e.type||"document"===e.type){let t=e.file?.content??e.file?.text??e.content??e.text,n=e.file?.name??e.name??"attachment";return"string"==typeof t&&t.length>0?[{type:"text",text:`[${n}]
|
|
19
|
+
${t}`}]:[]}return N?.debug?.("CONTENT",`Dropped unsupported content part type="${e.type}"`),[]}));let t=(0,T.getModelNormalizeToolCallId)(J||"",V||""),o=(0,T.getModelPreserveOpenAIDeveloperRole)(J||"",V||"");ep=(0,s.translateRequest)(et,ec,V,ep,eu,n,J,ed,{normalizeToolCallId:t,preserveDeveloperRole:o})}}catch(s){let e=Number(s?.statusCode),t=Number.isInteger(e)&&e>=400&&e<=599?e:h.HTTP_STATUS.SERVER_ERROR,n=s?.message||"Invalid request",r="string"==typeof s?.errorType?s.errorType:null;if(N?.warn?.("TRANSLATE",`Request translation failed: ${n}`),r)return{success:!1,status:t,error:n,response:new Response(JSON.stringify({error:{message:n,type:r,code:r}}),{status:t,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()}})};return(0,f.createErrorResult)(t,n)}let em=ep._toolNameMap;delete ep._toolNameMap,delete ep._disableToolPrefix,ep.model=ei;let ef=(0,m.getUnsupportedParams)(J,V);if(ef.length>0){let e=[];for(let t of ef)Object.hasOwn(ep,t)&&(e.push(t),delete ep[t]);e.length>0&&N?.warn?.("PARAMS",`Stripped unsupported params for ${V}: ${e.join(", ")}`)}let eh=(0,k.getExecutor)(J),e_=()=>er?{...n,requestEndpointPath:en}:n,ey=(0,c.createStreamController)({onDisconnect:D,log:N,provider:J,model:V}),eA={...ep,model:`${J}/${V}`},eT=(0,$.shouldDeduplicate)(eA),ek=eT?(0,$.computeRequestHash)(eA):null,eS=async(e=ei,t=!1)=>{let n=async()=>{let t=ep.model===e?ep:{...ep,model:e},n=await (0,w.withRateLimit)(J,F,e,()=>eh.execute({model:e,body:t,stream:eu,credentials:e_(),signal:ey.signal,log:N,extendedContext:z}));if(eu)return n;let o=n.response.status,r=n.response.statusText,s=Array.from(n.response.headers.entries()),a=await n.response.text();return{...n,response:new Response(a,{status:o,statusText:r,headers:s})}};if(t&&eT&&ek){let e=await (0,$.deduplicate)(ek,n);return e.wasDeduplicated&&N?.debug?.("DEDUP",`Joined in-flight request hash=${ek}`),e.result}return n()};(0,y.trackPendingRequest)(V,J,F,!0);let eE=new Set([ei]),eR=ei;(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:"PENDING"}).catch(()=>{});let ev=ep.messages?.length||ep.contents?.length||ep.request?.contents?.length||0;N?.debug?.("REQUEST",`${J.toUpperCase()} | ${V} | ${ev} msgs`);try{let e=await eS(ei,!0);B=e.response,H=e.url,K=e.headers,W=e.transformedBody,ed.logTargetRequest(H,K,W),(0,w.updateFromHeaders)(J,F,B.headers,B.status,V)}catch(n){if((0,y.trackPendingRequest)(V,J,F,!1),(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY,model:V,provider:J,connectionId:F,duration:Date.now()-Z,requestBody:e,error:n.message,sourceFormat:et,targetFormat:ec,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{}),"AbortError"===n.name)return ey.handleError(n),(0,f.createErrorResult)(499,"Request aborted");Q(h.HTTP_STATUS.BAD_GATEWAY,n?.name||"upstream_error");let t=(0,f.formatProviderError)(n,J,V,h.HTTP_STATUS.BAD_GATEWAY);return console.log(`${l.COLORS.red}[ERROR] ${t}${l.COLORS.reset}`),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,t)}if(B.status===h.HTTP_STATUS.UNAUTHORIZED||B.status===h.HTTP_STATUS.FORBIDDEN){let e=await (0,u.refreshWithRetry)(()=>eh.refreshCredentials(n,N),3,N);if(e?.accessToken||e?.copilotToken){N?.info?.("TOKEN",`${J.toUpperCase()} | refreshed`),Object.assign(n,e),P&&e&&await P(e);try{let e=await eh.execute({model:V,body:ep,stream:eu,credentials:e_(),signal:ey.signal,log:N,extendedContext:z});e.response.ok&&(B=e.response,H=e.url)}catch(e){N?.warn?.("TOKEN",`${J.toUpperCase()} | retry after refresh failed`)}}else N?.warn?.("TOKEN",`${J.toUpperCase()} | refresh failed`)}if(!B.ok){(0,y.trackPendingRequest)(V,J,F,!1);let{statusCode:t,message:o,retryAfterMs:r}=await (0,f.parseUpstreamError)(B,J);(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${t}`}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:t,model:V,provider:J,connectionId:F,duration:Date.now()-Z,requestBody:e,error:o,sourceFormat:et,targetFormat:ec,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{});let s=(0,f.formatProviderError)(Error(o),J,V,t);if(console.log(`${l.COLORS.red}[ERROR] ${s}${l.COLORS.reset}`),r&&"antigravity"===J){let e=Math.ceil(r/1e3);N?.debug?.("RETRY",`Antigravity quota reset in ${e}s (${r}ms)`)}if(ed.logError(Error(o),W||ep),(0,w.updateFromHeaders)(J,F,B.headers,t,V),!(0,O.isModelUnavailableError)(t,o))return Q(t,`upstream_${t}`),(0,f.createErrorResult)(t,s,r);{let e=(0,O.getNextFamilyFallback)(eR,eE);if(!e)return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r);eE.add(e),eR=e,ep.model=e,N?.info?.("MODEL_FALLBACK",`${V} unavailable (${t}) → trying ${e}`);try{let n=await eS(e,!1);if(!n.response.ok)return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r);B=n.response,H=n.url,K=n.headers,W=n.transformedBody,N?.info?.("MODEL_FALLBACK",`Serving ${e} as fallback for ${V}`)}catch{return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r)}}let a=Array.isArray(ep.tools)&&ep.tools.length>0;if(!eu){let e=(0,x.shouldUseFallback)(t,o,a,x.EMERGENCY_FALLBACK_CONFIG);if((0,x.isFallbackDecision)(e)){N?.info?.("EMERGENCY_FALLBACK",e.reason);try{let t=(0,k.getExecutor)(e.provider),o=await t.execute({model:e.model,body:{...ep,model:e.model,max_tokens:Math.min("number"==typeof ep.max_tokens?ep.max_tokens:e.maxOutputTokens,e.maxOutputTokens)},stream:!1,credentials:n,signal:ey.signal,log:N,extendedContext:z});o.response.ok?(B=o.response,N?.info?.("EMERGENCY_FALLBACK",`Serving ${e.provider}/${e.model} as budget fallback for ${J}/${V}`)):N?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback also failed (${o.response.status})`)}catch(e){N?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback error: ${e?.message}`)}}}}if(!eu){let t;(0,y.trackPendingRequest)(V,J,F,!1);let n=(B.headers.get("content-type")||"").toLowerCase(),r=await B.text();if(n.includes("text/event-stream")||/(^|\n)\s*(event|data):/m.test(r)){let e=ec===a.FORMATS.OPENAI_RESPONSES?(0,R.parseSSEToResponsesOutput)(r,V):(0,R.parseSSEToOpenAIResponse)(r,V);if(!e)return(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),Q(h.HTTP_STATUS.BAD_GATEWAY,"invalid_sse_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid SSE response for non-streaming request");t=e}else try{t=r?JSON.parse(r):{}}catch{return(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),Q(h.HTTP_STATUS.BAD_GATEWAY,"invalid_json_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid JSON response from provider")}U&&await U();let i=(0,E.extractUsageFromResponse)(t,J);if((0,y.appendRequestLog)({model:V,provider:J,connectionId:F,tokens:i,status:"200 OK"}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:200,model:V,provider:J,connectionId:F,duration:Date.now()-Z,tokens:i,requestBody:e,responseBody:t,sourceFormat:et,targetFormat:ec,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{}),i&&"object"==typeof i){let e=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}] 📊 [USAGE] ${J.toUpperCase()} | in=${i?.prompt_tokens||0} | out=${i?.completion_tokens||0}${F?` | account=${F.slice(0,8)}...`:""}`;console.log(`${l.COLORS.green}${e}${l.COLORS.reset}`),(0,y.saveRequestUsage)({provider:J||"unknown",model:V||"unknown",tokens:i,status:"200",success:!0,latencyMs:Date.now()-Z,timeToFirstTokenMs:Date.now()-Z,errorCode:null,timestamp:new Date().toISOString(),connectionId:F||void 0,apiKeyId:L?.id||void 0,apiKeyName:L?.name||void 0}).catch(e=>{console.error("Failed to save usage stats:",e.message)})}let c=(0,s.needsTranslation)(ec,et)?(0,S.translateNonStreamingResponse)(t,ec,et):t;if(et===a.FORMATS.OPENAI&&(c=(0,v.sanitizeOpenAIResponse)(c)),c?.usage){let e=(0,l.addBufferToUsage)(c.usage);c.usage=(0,l.filterUsageForFormat)(e,et)}else{let t=JSON.stringify(c?.choices?.[0]?.message?.content||"").length;if(t>0){let n=(0,l.estimateUsage)(e,t,et);c.usage=(0,l.filterUsageForFormat)(n,et)}}if((0,C.isCacheable)(e,M?.headers)){let t=(0,C.generateSignature)(V,e.messages,e.temperature,e.top_p),n=i?.prompt_tokens+i?.completion_tokens||0;(0,C.setCachedResponse)(t,V,c,n),N?.debug?.("CACHE",`Stored response for ${V} (${n} tokens)`)}return(0,b.saveIdempotency)(X,c,200),{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Cache":"MISS"}})}}U&&await U();let ew={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()},eC=({status:t,usage:n,responseBody:o})=>{(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:t||200,model:V,provider:J,connectionId:F,duration:Date.now()-Z,tokens:n||{},requestBody:e,responseBody:o??void 0,sourceFormat:et,targetFormat:ec,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{})},eb=j?.toLowerCase().includes("droid")||j?.toLowerCase().includes("codex-cli");if("codex"!==J||ec!==a.FORMATS.OPENAI_RESPONSES||et!==a.FORMATS.OPENAI||eo||eb?(0,s.needsTranslation)(ec,et)?(N?.debug?.("STREAM",`Translation mode: ${ec} → ${et}`),G=(0,i.createSSETransformStreamWithLogger)(ec,et,J,ed,em,V,F,e,eC,L)):(N?.debug?.("STREAM","Standard passthrough mode"),G=(0,i.createPassthroughStreamWithLogger)(J,ed,V,F,e,eC,L)):(N?.debug?.("STREAM",`Codex translation mode: openai-responses → openai`),G=(0,i.createSSETransformStreamWithLogger)("openai-responses","openai",J,ed,em,V,F,e,eC,L)),(0,I.wantsProgress)(M?.headers)){let e=(0,I.createProgressTransform)({signal:ey.signal});Y=(0,c.pipeWithDisconnect)(B,G,ey).pipeThrough(e),ew["X-OmniRoute-Progress"]="enabled"}else Y=(0,c.pipeWithDisconnect)(B,G,ey);return{success:!0,response:new Response(Y,{headers:ew})}}[k]=N.then?(await N)():N,e.s(["handleChatCore",()=>P]),n()}catch(e){n(e)}},!1),485641,e=>{"use strict";let t=[{name:"system_override",pattern:/\b(ignore|disregard|forget)\s+(all\s+)?(previous|prior|above|earlier)\s+(instructions?|prompts?|rules?|context)/i,severity:"high"},{name:"role_hijack",pattern:/\b(you\s+are\s+now|act\s+as\s+if|pretend\s+(to\s+be|you\s+are)|from\s+now\s+on\s+you\s+are)\b/i,severity:"medium"},{name:"system_prompt_leak",pattern:/\b(reveal|show|display|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions?|initial\s+prompt|hidden\s+prompt)/i,severity:"high"},{name:"delimiter_injection",pattern:/(\[SYSTEM\]|\[INST\]|<<SYS>>|<\|im_start\|>|<\|system\|>|<\|user\|>)/i,severity:"high"},{name:"jailbreak_dan",pattern:/\b(DAN|do\s+anything\s+now|jailbreak|developer\s+mode|enable\s+developer)\b/i,severity:"medium"},{name:"encoding_evasion",pattern:/\b(base64\s+decode|rot13|hex\s+decode|unicode\s+escape)\b.*\b(instruction|prompt|command)\b/i,severity:"medium"}],n=[{name:"email",pattern:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"[EMAIL_REDACTED]"},{name:"cpf",pattern:/\b\d{3}\.\d{3}\.\d{3}-\d{2}\b/g,replacement:"[CPF_REDACTED]"},{name:"cnpj",pattern:/\b\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}\b/g,replacement:"[CNPJ_REDACTED]"},{name:"credit_card",pattern:/\b(?:\d{4}[-\s]?){3}\d{4}\b/g,replacement:"[CARD_REDACTED]"},{name:"phone_br",pattern:/\b\(?\d{2}\)?\s?\d{4,5}-?\d{4}\b/g,replacement:"[PHONE_REDACTED]"},{name:"ssn_us",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"[SSN_REDACTED]"}];function o(e,t=!1){let r=[],s=e;for(let o of n){let n=e.match(o.pattern);n&&n.length>0&&(r.push({type:o.name,count:n.length}),t&&(s=s.replace(o.pattern,o.replacement)))}return{text:s,detections:r}}function r(e,n=console){let s={enabled:"false"!==process.env.INPUT_SANITIZER_ENABLED,mode:process.env.INPUT_SANITIZER_MODE||"warn",piiRedaction:"true"===process.env.PII_REDACTION_ENABLED},a={blocked:!1,modified:!1,detections:[],piiDetections:[],sanitizedBody:null};if(!s.enabled)return a;let i=(function(e){let t=[];for(let n of e.messages||e.input||[])if("string"==typeof n)t.push(n);else if("string"==typeof n.content)t.push(n.content);else if(Array.isArray(n.content))for(let e of n.content)"string"==typeof e?t.push(e):e.text&&t.push(e.text);if("string"==typeof e.system)t.push(e.system);else if(Array.isArray(e.system))for(let n of e.system)"string"==typeof n?t.push(n):n.text&&t.push(n.text);return t})(e).join("\n"),l=function(e){let n=[];for(let o of t){let t=e.match(o.pattern);t&&n.push({pattern:o.name,severity:o.severity,match:t[0].slice(0,50)})}return n}(i);if(l.length>0){a.detections=l;let e=l.filter(e=>"high"===e.severity),t=e.length>0?"warn":"info";if(n[t]&&n[t](`[SANITIZER] Prompt injection detected: ${l.map(e=>e.pattern).join(", ")}`),"block"===s.mode&&e.length>0)return a.blocked=!0,a}if(s.piiRedaction){let t=o(i,"redact"===s.mode);a.piiDetections=t.detections,t.detections.length>0&&(n.warn?.(`[SANITIZER] PII detected: ${t.detections.map(e=>`${e.type}(${e.count})`).join(", ")}`),"redact"===s.mode&&(a.sanitizedBody=function(e){let t=JSON.parse(JSON.stringify(e));for(let e of t.messages||t.input||[])if("string"==typeof e.content)e.content=o(e.content,!0).text;else if(Array.isArray(e.content))for(let t of e.content)if("string"==typeof t){let n=e.content.indexOf(t);e.content[n]=o(t,!0).text}else t.text&&(t.text=o(t.text,!0).text);return"string"==typeof t.system&&(t.system=o(t.system,!0).text),t}(e),a.modified=!0))}return a}e.s(["sanitizeRequest",()=>r])},577122,e=>{"use strict";var t=e.i(478500),n=e.i(254799);function o(){return(0,n.randomUUID)()}new t.AsyncLocalStorage,e.s(["generateRequestId",()=>o])},311250,e=>e.a(async(t,n)=>{try{var o=e.i(287726),r=e.i(192408),s=e.i(85713),a=e.i(284948),i=e.i(719201),l=e.i(928041),c=e.i(16023),u=e.i(878947),d=e.i(444675);e.i(706901);var p=e.i(249157),g=e.i(496973);e.i(245272);var m=e.i(548941),f=e.i(151205),h=e.i(496928),_=e.i(21245),y=e.i(485641),A=e.i(260222),T=e.i(982392),k=e.i(25687),S=e.i(454925),E=e.i(577122),R=e.i(362225),v=e.i(478847),w=e.i(852705),C=e.i(167389),b=t([a]);async function I(e,t=null){let n,s=(0,E.generateRequestId)(),a=new S.RequestTelemetry(s);try{a.startPhase("parse"),n=await e.json(),a.endPhase()}catch{return p.warn("CHAT","Invalid JSON body"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid JSON body")}a.startPhase("validate");let u=(0,y.sanitizeRequest)(n,p);if(u.blocked)return p.warn("SANITIZER","Request blocked due to prompt injection",{detections:u.detections}),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Request rejected: suspicious content detected");u.modified&&u.sanitizedBody&&(n=u.sanitizedBody),a.endPhase(),(e.headers.get("accept")||"").includes("text/event-stream")&&void 0===n.stream&&(n={...n,stream:!0},p.debug("STREAM","Accept: text/event-stream header → overriding stream=true (body had no stream field)")),t||(t={endpoint:new URL(e.url).pathname,body:n,headers:Object.fromEntries(e.headers.entries())});let d=new URL(e.url),g=n.model,h=n.messages?.length||n.input?.length||0,_=n.tools?.length||0,A=n.reasoning_effort||n.reasoning?.effort||null;p.request("POST",`${d.pathname} | ${g} | ${h} msgs${_?` | ${_} tools`:""}${A?` | effort=${A}`:""}`);let k=e.headers.get("Authorization"),R=(0,o.extractApiKey)(e);k&&R?p.debug("AUTH",`API Key: ${p.maskKey(R)}`):p.debug("AUTH","No API key provided (local mode)");let C=e.headers?.get?.("x-internal-test")==="combo-health-check";if("true"!==process.env.REQUIRE_API_KEY||C){if(R&&!C&&!await (0,o.isValidApiKey)(R))return p.warn("AUTH","API key not found or invalid (must be created in API Manager)"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}else{if(!R)return p.warn("AUTH","Missing API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Missing API key");if(!await (0,o.isValidApiKey)(R))return p.warn("AUTH","Invalid API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}if(!g)return p.warn("CHAT","Missing model"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Missing model");a.startPhase("policy");let b=await (0,v.enforceApiKeyPolicy)(e,g);if(b.rejection)return p.warn("POLICY",`API key policy rejected: ${g} (key=${b.apiKeyInfo?.id||"unknown"})`),b.rejection;let $=b.apiKeyInfo;a.endPhase();let x=g;if((0,w.getTaskRoutingConfig)().enabled){a.startPhase("task-route");let e=(0,w.applyTaskAwareRouting)(g,n);e.wasRouted?(x=e.model,n={...n,model:e.model},p.info("T05",`Task-Aware: detected="${e.taskType}" → model override: ${g} → ${e.model}`)):"chat"!==e.taskType&&p.debug("T05",`Task-Aware: detected="${e.taskType}" (no override configured)`),e.taskType,e.wasRouted,a.endPhase()}a.startPhase("resolve");let N=await (0,r.getCombo)(x);if(N){p.info("CHAT",`Combo "${g}" [${N.strategy||"priority"}] with ${N.models.length} models`);let s=async e=>{let t=await (0,r.getModelInfo)(e),n=t.provider;if(!n)return!0;if(!(0,T.isModelAvailable)(n,t.model||e))return p.debug("AVAILABILITY",`${n}/${t.model} in cooldown, skipping`),!1;let s=await (0,o.getProviderCredentials)(n,null,$?.allowedConnections??null);return!!s&&!s.allRateLimited},[i,c]=await Promise.all([(0,m.getSettings)().catch(()=>({})),(0,f.getCombos)().catch(()=>[])]);a.endPhase();let u=await l.handleComboChat({body:n,combo:N,handleSingleModel:(n,o)=>O(n,o,t,e,N.name,$,a),isModelAvailable:s,log:p,settings:i,allCombos:c});return(0,S.recordTelemetry)(a),u}a.endPhase();let P=await O(n,g,t,e,null,$,a);return(0,S.recordTelemetry)(a),P}async function O(e,t,n=null,r=null,s=null,a=null,l=null,u={}){var d,m;let f=await $(t,e);if(f.error)return f.error;let{provider:y,model:S,sourceFormat:E,targetFormat:v,extendedContext:w}=f,b=(d=y,m=S,(0,T.isModelAvailable)(d,m)?(0,A.getCircuitBreaker)(d,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}).canExecute()?null:(p.warn("CIRCUIT",`Circuit breaker OPEN for ${d}, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${d} circuit breaker is open`,30)):(p.warn("AVAILABILITY",`${d}/${m} is in cooldown, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Model ${d}/${m} is temporarily unavailable (cooldown)`,30)));if(b)return b;let I=(0,A.getCircuitBreaker)(y,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}),P=r?.headers?.get("user-agent")||"",U=null,D=null,M=null;for(;;){let t=await (0,o.getProviderCredentials)(y,U,a?.allowedConnections??null);if(!t||t.allRateLimited)return(429===M||503===M)&&((0,T.setModelUnavailable)(y,S,6e4,`HTTP ${M}`),p.info("AVAILABILITY",`${y}/${S} marked unavailable — all accounts exhausted (HTTP ${M})`)),function(e,t,n,o,r,s){if(e?.allRateLimited){let t=r||e.lastError||"Unavailable",a=s||Number(e.lastErrorCode)||c.HTTP_STATUS.SERVICE_UNAVAILABLE;return p.warn("CHAT",`[${n}/${o}] ${t} (${e.retryAfterHuman})`),(0,i.unavailableResponse)(a,`[${n}/${o}] ${t}`,e.retryAfter,e.retryAfterHuman)}return t?(p.warn("CHAT","No more accounts available",{provider:n}),(0,i.errorResponse)(s||c.HTTP_STATUS.SERVICE_UNAVAILABLE,r||"All accounts unavailable")):(p.error("AUTH",`No credentials for provider: ${n}`),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,`No credentials for provider: ${n}`))}(t,U,y,S,D,M);let d=t.connectionId.slice(0,8);p.info("AUTH",`Using ${y} account: ${d}...`);let m=await (0,g.checkAndRefreshToken)(y,t),f=await N(t.connectionId),A=Date.now();l&&l.startPhase("connect");let{result:b,tlsFingerprintUsed:$}=await x({breaker:I,body:e,provider:y,model:S,refreshedCredentials:m,proxyInfo:f,log:p,clientRawRequest:n,credentials:t,apiKeyInfo:a,userAgent:P,comboName:s,extendedContext:w});l&&l.endPhase();let F=Date.now()-A;if(function({result:e,proxyInfo:t,proxyLatency:n,provider:o,model:r,sourceFormat:s,targetFormat:a,credentials:i,comboName:l,clientRawRequest:c,tlsFingerprintUsed:u=!1}){try{(0,h.logProxyEvent)({status:e.success?"success":408===e.status||504===e.status?"timeout":"error",proxy:t?.proxy||null,level:t?.level||"direct",levelId:t?.levelId||null,provider:o,targetUrl:`${o}/${r}`,latencyMs:n,error:e.success?null:e.error||null,connectionId:i.connectionId,comboId:l||null,account:i.connectionId?.slice(0,8)||null,tlsFingerprint:u})}catch{}try{(0,_.logTranslationEvent)({provider:o,model:r,sourceFormat:s,targetFormat:a,status:e.success?"success":"error",statusCode:e.success?200:e.status||500,latency:n,endpoint:c?.endpoint||"/v1/chat/completions",connectionId:i.connectionId||null,comboName:l||null})}catch{}}({result:b,proxyInfo:f,proxyLatency:F,provider:y,model:S,sourceFormat:E,targetFormat:v,credentials:t,comboName:s,clientRawRequest:n,tlsFingerprintUsed:$}),b.success)return(0,T.clearModelUnavailability)(y,S),function(e,t){if(e?.id)try{let n=t.usage||{},o=((n.prompt_tokens||0)+(n.completion_tokens||0))*1e-6;o>0&&(0,R.recordCost)(e.id,o)}catch{}}(a,b),l&&l.startPhase("finalize"),l&&l.endPhase(),b.response;if(!u.emergencyFallbackTried){let t=(0,C.shouldUseFallback)(Number(b.status||0),String(b.error||""),Array.isArray(e?.tools)&&e.tools.length>0);if((0,C.isFallbackDecision)(t)){let o=`${t.provider}/${t.model}`,i=`${y}/${S}`;if(o!==i){let c={...e,model:o},d=Math.min(Number(c.max_tokens??c.max_completion_tokens??t.maxOutputTokens)||t.maxOutputTokens,t.maxOutputTokens);return c.max_tokens=d,c.max_completion_tokens=d,p.warn("EMERGENCY_FALLBACK",`${i} -> ${o} | reason=${t.reason}`),O(c,o,n,r,s,a,l,{...u,emergencyFallbackTried:!0})}}}429===b.status&&(0,k.markAccountExhaustedFrom429)(t.connectionId,y);let{shouldFallback:L}=await (0,o.markAccountUnavailable)(t.connectionId,b.status,b.error,y,S);if(L){p.warn("AUTH",`Account ${d}... unavailable (${b.status}), trying fallback`),U=t.connectionId,D=b.error,M=b.status;continue}return b.response}}async function $(e,t){let n=await (0,r.getModelInfo)(e);if(!n.provider){if("ambiguous_model"===n.errorType){let t=n.errorMessage||`Ambiguous model '${e}'. Use provider/model prefix (ex: gh/${e} or cc/${e}).`;return p.warn("CHAT",t,{model:e,candidates:n.candidateAliases||n.candidateProviders||[]}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,t)}}return p.warn("CHAT","Invalid model format",{model:e}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid model format")}}let{provider:o,model:a,extendedContext:l}=n,d=(0,s.detectFormat)(t),g=u.PROVIDER_ID_TO_ALIAS[o]||o,m=(0,u.getModelTargetFormat)(g,a)||(0,s.getTargetFormat)(o);"responses"===n.apiFormat&&(m="openai-responses",p.info("ROUTING",`Custom model apiFormat=responses → targetFormat=openai-responses`));let f=l&&"claude"===g?" [1m]":"";return e!==`${o}/${a}`?p.info("ROUTING",`${e} → ${o}/${a}${f}`):p.info("ROUTING",`Provider: ${o}, Model: ${a}${f}`),{provider:o,model:a,sourceFormat:d,targetFormat:m,extendedContext:l}}async function x({breaker:e,body:t,provider:n,model:r,refreshedCredentials:s,proxyInfo:l,log:u,clientRawRequest:m,credentials:f,apiKeyInfo:h,userAgent:_,comboName:y,extendedContext:T}){try{let i=()=>(0,d.runWithProxyContext)(l?.proxy||null,()=>a.handleChatCore({body:{...t,model:`${n}/${r}`},modelInfo:{provider:n,model:r,extendedContext:T},credentials:s,log:u,clientRawRequest:m,connectionId:f.connectionId,apiKeyInfo:h,userAgent:_,comboName:y,onCredentialsRefreshed:async e=>{await (0,g.updateProviderCredentials)(f.connectionId,{accessToken:e.accessToken,refreshToken:e.refreshToken,providerSpecificData:e.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,o.clearAccountError)(f.connectionId,f)}}));if(!l?.proxy&&(0,d.isTlsFingerprintActive)()){let t=await e.execute(async()=>(0,d.runWithTlsTracking)(i));return{result:t.result,tlsFingerprintUsed:t.tlsFingerprintUsed}}return{result:await e.execute(i),tlsFingerprintUsed:!1}}catch(e){if(e instanceof A.CircuitBreakerOpenError)return p.warn("CIRCUIT",`${n} circuit open during retry: ${e.message}`),{result:{success:!1,response:i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${n} circuit breaker is open`,Math.ceil(e.retryAfterMs/1e3)),status:c.HTTP_STATUS.SERVICE_UNAVAILABLE},tlsFingerprintUsed:!1};throw e}}async function N(e){try{return await (0,m.resolveProxyForConnection)(e)}catch(e){return p.debug("PROXY",`Failed to resolve proxy: ${e.message}`),null}}[a]=b.then?(await b)():b,e.s(["handleChat",()=>I]),n()}catch(e){n(e)}},!1)];
|
|
20
20
|
|
|
21
21
|
//# sourceMappingURL=_1244636c._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[969738,e=>{"use strict";e.i(245272);var o=e.i(385498),r=e.i(542949),t=e.i(151205),i=e.i(125852),s=e.i(548941),
|
|
1
|
+
module.exports=[969738,e=>{"use strict";e.i(245272);var o=e.i(385498),r=e.i(542949),t=e.i(151205),i=e.i(125852),s=e.i(548941),d=e.i(954031),n=e.i(751183),l=e.i(935050),c=e.i(403122);e.s(["addCustomModel",()=>r.addCustomModel,"assignProxyToScope",()=>d.assignProxyToScope,"backupDbFile",()=>l.backupDbFile,"bulkAssignProxyToScope",()=>d.bulkAssignProxyToScope,"cleanupProviderConnections",()=>o.cleanupProviderConnections,"clearApiKeyCaches",()=>i.clearApiKeyCaches,"clearSyncedPricing",()=>n.clearSyncedPricing,"createApiKey",()=>i.createApiKey,"createCombo",()=>t.createCombo,"createProviderConnection",()=>o.createProviderConnection,"createProviderNode",()=>o.createProviderNode,"createProxy",()=>d.createProxy,"deleteApiKey",()=>i.deleteApiKey,"deleteCombo",()=>t.deleteCombo,"deleteModelAlias",()=>r.deleteModelAlias,"deleteProviderConnection",()=>o.deleteProviderConnection,"deleteProviderConnectionsByProvider",()=>o.deleteProviderConnectionsByProvider,"deleteProviderNode",()=>o.deleteProviderNode,"deleteProxyById",()=>d.deleteProxyById,"deleteProxyForLevel",()=>s.deleteProxyForLevel,"getAllCustomModels",()=>r.getAllCustomModels,"getApiKeyById",()=>i.getApiKeyById,"getApiKeyMetadata",()=>i.getApiKeyMetadata,"getApiKeys",()=>i.getApiKeys,"getCachedPricing",()=>c.getCachedPricing,"getCachedProviderConnections",()=>c.getCachedProviderConnections,"getCachedSettings",()=>c.getCachedSettings,"getComboById",()=>t.getComboById,"getComboByName",()=>t.getComboByName,"getCombos",()=>t.getCombos,"getCustomModels",()=>r.getCustomModels,"getMitmAlias",()=>r.getMitmAlias,"getModelAliases",()=>r.getModelAliases,"getModelCompatOverrides",()=>r.getModelCompatOverrides,"getModelNormalizeToolCallId",()=>r.getModelNormalizeToolCallId,"getModelPreserveOpenAIDeveloperRole",()=>r.getModelPreserveOpenAIDeveloperRole,"getPricing",()=>s.getPricing,"getPricingForModel",()=>s.getPricingForModel,"getProviderConnectionById",()=>o.getProviderConnectionById,"getProviderConnections",()=>o.getProviderConnections,"getProviderNodeById",()=>o.getProviderNodeById,"getProviderNodes",()=>o.getProviderNodes,"getProxyAssignments",()=>d.getProxyAssignments,"getProxyById",()=>d.getProxyById,"getProxyConfig",()=>s.getProxyConfig,"getProxyForLevel",()=>s.getProxyForLevel,"getProxyHealthStats",()=>d.getProxyHealthStats,"getProxyWhereUsed",()=>d.getProxyWhereUsed,"getSettings",()=>s.getSettings,"getSyncStatus",()=>n.getSyncStatus,"getSyncedPricing",()=>n.getSyncedPricing,"initPricingSync",()=>n.initPricingSync,"invalidateDbCache",()=>c.invalidateDbCache,"isCloudEnabled",()=>s.isCloudEnabled,"isModelAllowedForKey",()=>i.isModelAllowedForKey,"listDbBackups",()=>l.listDbBackups,"listProxies",()=>d.listProxies,"mergeModelCompatOverride",()=>r.mergeModelCompatOverride,"migrateLegacyProxyConfigToRegistry",()=>d.migrateLegacyProxyConfigToRegistry,"removeCustomModel",()=>r.removeCustomModel,"removeModelCompatOverride",()=>r.removeModelCompatOverride,"reorderProviderConnections",()=>o.reorderProviderConnections,"resetAllPricing",()=>s.resetAllPricing,"resetApiKeyState",()=>i.resetApiKeyState,"resetPricing",()=>s.resetPricing,"resolveProxyForConnection",()=>s.resolveProxyForConnection,"resolveProxyForConnectionFromRegistry",()=>d.resolveProxyForConnectionFromRegistry,"restoreDbBackup",()=>l.restoreDbBackup,"saveSyncedPricing",()=>n.saveSyncedPricing,"setMitmAliasAll",()=>r.setMitmAliasAll,"setModelAlias",()=>r.setModelAlias,"setProxyConfig",()=>s.setProxyConfig,"setProxyForLevel",()=>s.setProxyForLevel,"startPeriodicSync",()=>n.startPeriodicSync,"stopPeriodicSync",()=>n.stopPeriodicSync,"syncPricingFromSources",()=>n.syncPricingFromSources,"updateApiKeyPermissions",()=>i.updateApiKeyPermissions,"updateCombo",()=>t.updateCombo,"updateCustomModel",()=>r.updateCustomModel,"updatePricing",()=>s.updatePricing,"updateProviderConnection",()=>o.updateProviderConnection,"updateProviderNode",()=>o.updateProviderNode,"updateProxy",()=>d.updateProxy,"updateSettings",()=>s.updateSettings,"validateApiKey",()=>i.validateApiKey])},606102,e=>{e.v(o=>Promise.all(["server/chunks/[root-of-the-server]__812887d7._.js","server/chunks/open-sse_config_providerRegistry_ts_dec0f840._.js","server/chunks/src_lib_db_101676dc._.js"].map(o=>e.l(o))).then(()=>o(548941)))},789543,e=>{e.v(o=>Promise.all(["server/chunks/src_lib_db_654e6950._.js","server/chunks/[root-of-the-server]__925d0486._.js"].map(o=>e.l(o))).then(()=>o(385498)))},579042,e=>{e.v(o=>Promise.all(["server/chunks/[root-of-the-server]__561b1039._.js"].map(o=>e.l(o))).then(()=>o(65448)))},49794,e=>{e.v(o=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_65de0558._.js"].map(o=>e.l(o))).then(()=>o(404503)))},386305,e=>{e.v(o=>Promise.all(["server/chunks/open-sse_config_providerModels_ts_70e95e2d._.js","server/chunks/open-sse_config_providerRegistry_ts_dec0f840._.js"].map(o=>e.l(o))).then(()=>o(878947)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_14963fed._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[969738,e=>{"use strict";e.i(245272);var o=e.i(385498),r=e.i(542949),t=e.i(151205),i=e.i(125852),s=e.i(548941),
|
|
1
|
+
module.exports=[969738,e=>{"use strict";e.i(245272);var o=e.i(385498),r=e.i(542949),t=e.i(151205),i=e.i(125852),s=e.i(548941),d=e.i(954031),n=e.i(751183),l=e.i(935050),c=e.i(403122);e.s(["addCustomModel",()=>r.addCustomModel,"assignProxyToScope",()=>d.assignProxyToScope,"backupDbFile",()=>l.backupDbFile,"bulkAssignProxyToScope",()=>d.bulkAssignProxyToScope,"cleanupProviderConnections",()=>o.cleanupProviderConnections,"clearApiKeyCaches",()=>i.clearApiKeyCaches,"clearSyncedPricing",()=>n.clearSyncedPricing,"createApiKey",()=>i.createApiKey,"createCombo",()=>t.createCombo,"createProviderConnection",()=>o.createProviderConnection,"createProviderNode",()=>o.createProviderNode,"createProxy",()=>d.createProxy,"deleteApiKey",()=>i.deleteApiKey,"deleteCombo",()=>t.deleteCombo,"deleteModelAlias",()=>r.deleteModelAlias,"deleteProviderConnection",()=>o.deleteProviderConnection,"deleteProviderConnectionsByProvider",()=>o.deleteProviderConnectionsByProvider,"deleteProviderNode",()=>o.deleteProviderNode,"deleteProxyById",()=>d.deleteProxyById,"deleteProxyForLevel",()=>s.deleteProxyForLevel,"getAllCustomModels",()=>r.getAllCustomModels,"getApiKeyById",()=>i.getApiKeyById,"getApiKeyMetadata",()=>i.getApiKeyMetadata,"getApiKeys",()=>i.getApiKeys,"getCachedPricing",()=>c.getCachedPricing,"getCachedProviderConnections",()=>c.getCachedProviderConnections,"getCachedSettings",()=>c.getCachedSettings,"getComboById",()=>t.getComboById,"getComboByName",()=>t.getComboByName,"getCombos",()=>t.getCombos,"getCustomModels",()=>r.getCustomModels,"getMitmAlias",()=>r.getMitmAlias,"getModelAliases",()=>r.getModelAliases,"getModelCompatOverrides",()=>r.getModelCompatOverrides,"getModelNormalizeToolCallId",()=>r.getModelNormalizeToolCallId,"getModelPreserveOpenAIDeveloperRole",()=>r.getModelPreserveOpenAIDeveloperRole,"getPricing",()=>s.getPricing,"getPricingForModel",()=>s.getPricingForModel,"getProviderConnectionById",()=>o.getProviderConnectionById,"getProviderConnections",()=>o.getProviderConnections,"getProviderNodeById",()=>o.getProviderNodeById,"getProviderNodes",()=>o.getProviderNodes,"getProxyAssignments",()=>d.getProxyAssignments,"getProxyById",()=>d.getProxyById,"getProxyConfig",()=>s.getProxyConfig,"getProxyForLevel",()=>s.getProxyForLevel,"getProxyHealthStats",()=>d.getProxyHealthStats,"getProxyWhereUsed",()=>d.getProxyWhereUsed,"getSettings",()=>s.getSettings,"getSyncStatus",()=>n.getSyncStatus,"getSyncedPricing",()=>n.getSyncedPricing,"initPricingSync",()=>n.initPricingSync,"invalidateDbCache",()=>c.invalidateDbCache,"isCloudEnabled",()=>s.isCloudEnabled,"isModelAllowedForKey",()=>i.isModelAllowedForKey,"listDbBackups",()=>l.listDbBackups,"listProxies",()=>d.listProxies,"mergeModelCompatOverride",()=>r.mergeModelCompatOverride,"migrateLegacyProxyConfigToRegistry",()=>d.migrateLegacyProxyConfigToRegistry,"removeCustomModel",()=>r.removeCustomModel,"removeModelCompatOverride",()=>r.removeModelCompatOverride,"reorderProviderConnections",()=>o.reorderProviderConnections,"resetAllPricing",()=>s.resetAllPricing,"resetApiKeyState",()=>i.resetApiKeyState,"resetPricing",()=>s.resetPricing,"resolveProxyForConnection",()=>s.resolveProxyForConnection,"resolveProxyForConnectionFromRegistry",()=>d.resolveProxyForConnectionFromRegistry,"restoreDbBackup",()=>l.restoreDbBackup,"saveSyncedPricing",()=>n.saveSyncedPricing,"setMitmAliasAll",()=>r.setMitmAliasAll,"setModelAlias",()=>r.setModelAlias,"setProxyConfig",()=>s.setProxyConfig,"setProxyForLevel",()=>s.setProxyForLevel,"startPeriodicSync",()=>n.startPeriodicSync,"stopPeriodicSync",()=>n.stopPeriodicSync,"syncPricingFromSources",()=>n.syncPricingFromSources,"updateApiKeyPermissions",()=>i.updateApiKeyPermissions,"updateCombo",()=>t.updateCombo,"updateCustomModel",()=>r.updateCustomModel,"updatePricing",()=>s.updatePricing,"updateProviderConnection",()=>o.updateProviderConnection,"updateProviderNode",()=>o.updateProviderNode,"updateProxy",()=>d.updateProxy,"updateSettings",()=>s.updateSettings,"validateApiKey",()=>i.validateApiKey])},606102,e=>{e.v(o=>Promise.all(["server/chunks/[root-of-the-server]__f73bffee._.js","server/chunks/open-sse_config_providerRegistry_ts_dec0f840._.js","server/chunks/src_lib_db_101676dc._.js"].map(o=>e.l(o))).then(()=>o(548941)))},789543,e=>{e.v(o=>Promise.all(["server/chunks/src_lib_db_eda08936._.js","server/chunks/[root-of-the-server]__925d0486._.js"].map(o=>e.l(o))).then(()=>o(385498)))},579042,e=>{e.v(o=>Promise.all(["server/chunks/[root-of-the-server]__561b1039._.js"].map(o=>e.l(o))).then(()=>o(65448)))},49794,e=>{e.v(o=>Promise.all(["server/chunks/src_shared_constants_pricing_ts_65de0558._.js"].map(o=>e.l(o))).then(()=>o(404503)))},386305,e=>{e.v(o=>Promise.all(["server/chunks/open-sse_config_providerModels_ts_70e95e2d._.js","server/chunks/open-sse_config_providerRegistry_ts_dec0f840._.js"].map(o=>e.l(o))).then(()=>o(878947)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_1717e651._.js.map
|