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,4 +1,4 @@
|
|
|
1
|
-
module.exports=[878947,e=>{"use strict";var t=e.i(828059);let r=(0,t.generateModels)(),n=(0,t.generateAliasMap)();function a(e){return r[e]||[]}function i(e){let t=r[e];return t?.[0]?.id||null}function o(e,t,n=new Set){if(n.has(e))return!0;let a=r[e];return!!a&&a.some(e=>e.id===t)}function l(e,t){let n=r[e];if(!n)return t;let a=n.find(e=>e.id===t);return a?.name||t}function s(e,t){let n=r[e];if(!n)return null;let a=n.find(e=>e.id===t);return a?.targetFormat||null}function c(e){return r[n[e]||e]||[]}e.s(["PROVIDER_ID_TO_ALIAS",0,n,"PROVIDER_MODELS",0,r,"findModelName",()=>l,"getDefaultModel",()=>i,"getModelTargetFormat",()=>s,"getModelsByProviderId",()=>c,"getProviderModels",()=>a,"isValidModel",()=>o])},403122,e=>{"use strict";class t{cache=new Map;ttlMs;constructor(e){this.ttlMs=e}get(e){let t=this.cache.get(e);if(t)return Date.now()>t.expiresAt?void this.cache.delete(e):t.value}set(e,t){this.cache.set(e,{value:t,expiresAt:Date.now()+this.ttlMs})}invalidate(e){e?this.cache.delete(e):this.cache.clear()}}let r=new t(5e3),n=new t(3e4),a=new t(5e3);async function i(){let t=r.get("settings");if(t)return t;let{getSettings:n}=await e.A(606102),a=await n();return r.set("settings",a),a}async function o(){let t=n.get("pricing");if(t)return t;let{getPricing:r}=await e.A(606102),a=await r();return n.set("pricing",a),a}async function l(t){if(t&&Object.keys(t).length>0){let{getProviderConnections:r}=await e.A(789543);return r(t)}let r=a.get("all");if(r)return r;let{getProviderConnections:n}=await e.A(789543),i=await n();return a.set("all",i),i}function s(e){e&&"settings"!==e||r.invalidate(),e&&"pricing"!==e||n.invalidate(),e&&"connections"!==e||a.invalidate()}e.s(["getCachedPricing",()=>o,"getCachedProviderConnections",()=>l,"getCachedSettings",()=>i,"invalidateDbCache",()=>s])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},935050,91429,e=>{"use strict";var t=e.i(785148),r=e.i(814747),n=e.i(522734),a=e.i(157763);let i=new Set;function o(e){i.add(e)}function l(){for(let e of i)try{e()}catch(e){console.warn("[DB] Failed to reset module state:",e)}}e.s(["registerDbStateResetter",()=>o,"resetAllDbModuleState",()=>l],91429);let s=0;function c(e="auto"){try{if(a.isBuildPhase||a.isCloud||!a.SQLITE_FILE||!n.default.existsSync(a.SQLITE_FILE))return null;let t=n.default.statSync(a.SQLITE_FILE);if(t.size<4096)return console.warn(`[DB] Backup SKIPPED — DB too small (${t.size}B)`),null;let i=Date.now();if("manual"!==e&&"pre-restore"!==e&&i-s<36e5)return null;s=i;let o=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");n.default.existsSync(o)||n.default.mkdirSync(o,{recursive:!0});let l=n.default.readdirSync(o).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort();if(l.length>0){let e=l[l.length-1],a=n.default.statSync(r.default.join(o,e));if(a.size>4096&&t.size<.5*a.size)return console.warn(`[DB] Backup SKIPPED — DB shrank from ${a.size}B to ${t.size}B`),null}let c=new Date().toISOString().replace(/[:.]/g,"-"),u=r.default.join(o,`db_${c}_${e}.sqlite`);(0,a.getDbInstance)().backup(u).then(()=>{console.log(`[DB] Backup created: ${u} (${t.size} bytes)`)}).catch(e=>{let t=e instanceof Error?e.message:String(e);console.error("[DB] Backup failed:",t)});let d=n.default.readdirSync(o).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort();for(;d.length>20;){let e=0,t=1/0;for(let a=0;a<d.length-1;a++)try{let i=n.default.statSync(r.default.join(o,d[a]));i.size<t&&(t=i.size,e=a)}catch{e=a;break}try{n.default.unlinkSync(r.default.join(o,d[e]))}catch{}d.splice(e,1)}return{filename:r.default.basename(u),size:t.size}}catch(e){return console.error("[DB] Backup failed:",e instanceof Error?e.message:String(e)),null}}async function u(){let e=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");try{if(!n.default.existsSync(e))return[];return n.default.readdirSync(e).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort().reverse().map(a=>{let i=r.default.join(e,a),o=n.default.statSync(i),l=a.match(/^db_(.+?)_([^.]+)\.sqlite$/),s=l?l[2]:"unknown",c=0;try{let e=new t.default(i,{readonly:!0}),r=e.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get();c=r?.cnt||0,e.close()}catch{}return{id:a,filename:a,createdAt:o.mtime.toISOString(),size:o.size,reason:s,connectionCount:c}})}catch{return[]}}async function d(e){let i=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");if(!e.startsWith("db_")||!e.endsWith(".sqlite")||e.includes(r.default.sep)||e.includes("/"))throw Error("Invalid backup ID");let o=r.default.resolve(i,e);if(!o.startsWith(r.default.resolve(i)+r.default.sep)&&o!==r.default.resolve(i))throw Error("Invalid backup ID: path traversal detected");if(!n.default.existsSync(o))throw Error(`Backup not found: ${e}`);try{let e=new t.default(o,{readonly:!0}),r=e.pragma("integrity_check");if(e.close(),r[0]?.integrity_check!=="ok")throw Error("Backup integrity check failed")}catch(t){if(t instanceof Error&&"Backup integrity check failed"===t.message)throw t;let e=t instanceof Error?t.message:String(t);throw Error(`Backup file is corrupt: ${e}`)}s=0,c("pre-restore"),(0,a.resetDbInstance)(),l();let u=a.SQLITE_FILE;if(!u)throw Error("SQLITE_FILE is unavailable in local backup restore");for(let e of[u,`${u}-wal`,`${u}-shm`,`${u}-journal`])e&&n.default.existsSync(e)&&n.default.unlinkSync(e);n.default.copyFileSync(o,u);let d=(0,a.getDbInstance)(),p=d.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get()?.cnt||0,f=d.prepare("SELECT COUNT(*) as cnt FROM provider_nodes").get()?.cnt||0,y=d.prepare("SELECT COUNT(*) as cnt FROM combos").get()?.cnt||0,E=d.prepare("SELECT COUNT(*) as cnt FROM api_keys").get()?.cnt||0;return console.log(`[DB] Restored backup: ${e} (${p} connections)`),{restored:!0,backupId:e,connectionCount:p,nodeCount:f,comboCount:y,apiKeyCount:E}}e.s(["backupDbFile",()=>c,"listDbBackups",()=>u,"restoreDbBackup",()=>d],935050)},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},730901,684076,e=>{"use strict";let t=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;e.s(["default",0,function(e){return"string"==typeof e&&t.test(e)}],684076);let r=[];for(let e=0;e<256;++e)r.push((e+256).toString(16).slice(1));function n(e,t=0){return(r[e[t+0]]+r[e[t+1]]+r[e[t+2]]+r[e[t+3]]+"-"+r[e[t+4]]+r[e[t+5]]+"-"+r[e[t+6]]+r[e[t+7]]+"-"+r[e[t+8]]+r[e[t+9]]+"-"+r[e[t+10]]+r[e[t+11]]+r[e[t+12]]+r[e[t+13]]+r[e[t+14]]+r[e[t+15]]).toLowerCase()}e.s(["unsafeStringify",()=>n],730901)},689960,e=>{"use strict";var t=e.i(666680);let r={randomUUID:t.randomUUID},n=new Uint8Array(256),a=n.length;var i=e.i(730901);e.s(["v4",0,function(e,o,l){if(r.randomUUID&&!o&&!e)return r.randomUUID();var s=e,c=l;let u=(s=s||{}).random??s.rng?.()??(a>n.length-16&&((0,t.randomFillSync)(n),a=0),n.slice(a,a+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,o){if((c=c||0)<0||c+16>o.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let e=0;e<16;++e)o[c+e]=u[e];return o}return(0,i.unsafeStringify)(u)}],689960)},385498,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050),a=e.i(254799);let i="aes-256-gcm",o="enc:v1:",l=null;function s(){if(null!==l)return l;let e=process.env.STORAGE_ENCRYPTION_KEY;return e?l=(0,a.scryptSync)(e,"omniroute-field-encryption-v1",32):null}function c(){return!!process.env.STORAGE_ENCRYPTION_KEY}function u(e){if(!e||"string"!=typeof e)return e;let t=s();if(!t||e.startsWith(o))return e;let r=(0,a.randomBytes)(16),n=(0,a.createCipheriv)(i,t,r),l=n.update(e,"utf8","hex");l+=n.final("hex");let c=n.getAuthTag().toString("hex");return`${o}${r.toString("hex")}:${l}:${c}`}function d(e){if(!e||"string"!=typeof e||!e.startsWith(o))return e;let t=s();if(!t)return console.warn("[Encryption] Found encrypted data but STORAGE_ENCRYPTION_KEY is not set. Cannot decrypt."),e;let r=e.slice(o.length).split(":");if(3!==r.length)return console.error("[Encryption] Malformed encrypted value"),e;let[n,l,c]=r;try{let e=Buffer.from(n,"hex"),r=Buffer.from(c,"hex"),o=(0,a.createDecipheriv)(i,t,e);o.setAuthTag(r);let s=o.update(l,"hex","utf8");return s+=o.final("utf8")}catch(t){return console.error("[Encryption] Decryption failed:",t instanceof Error?t.message:String(t)),e}}function p(e){return c()&&e&&(e.apiKey&&(e.apiKey=u(e.apiKey)),e.accessToken&&(e.accessToken=u(e.accessToken)),e.refreshToken&&(e.refreshToken=u(e.refreshToken)),e.idToken&&(e.idToken=u(e.idToken))),e}function f(e){return e&&c()?{...e,apiKey:d(e.apiKey),accessToken:d(e.accessToken),refreshToken:d(e.refreshToken),idToken:d(e.idToken)}:e}var y=e.i(403122);function E(e){return e&&"object"==typeof e?e:{}}function g(e){return"string"==typeof e?e:null}async function v(e={}){let t=(0,r.getDbInstance)(),n="SELECT * FROM provider_connections",a=[],i={};return e.provider&&(a.push("provider = @provider"),i.provider=e.provider),void 0!==e.isActive&&(a.push("is_active = @isActive"),i.isActive=+!!e.isActive),a.length>0&&(n+=" WHERE "+a.join(" AND ")),n+=" ORDER BY priority ASC, updated_at DESC",t.prepare(n).all(i).map(e=>f((0,r.cleanNulls)((0,r.rowToCamel)(e))))}async function _(e){let t=(0,r.getDbInstance)().prepare("SELECT * FROM provider_connections WHERE id = ?").get(e);return t?f((0,r.cleanNulls)((0,r.rowToCamel)(t))):null}async function m(e){var a,i,o;let l=(0,r.getDbInstance)(),s=new Date().toISOString(),c=null;if("oauth"===e.authType&&e.email){let t=g(E(e.providerSpecificData).workspaceId);"codex"===e.provider&&t?(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND email = ?").get(e.provider,t,e.email)||null)||(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND (email IS NULL OR email = '')").get(e.provider,t)||null):c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND email = ?").get(e.provider,e.email)||null}else"apikey"===e.authType&&e.name&&(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'apikey' AND name = ?").get(e.provider,e.name)||null);if(c){let t=g(c.id);if(!t)return null;let a={...E((0,r.rowToCamel)(c)),...e,updatedAt:s};return h(l,t,a),(0,n.backupDbFile)("pre-write"),(0,r.cleanNulls)(a)}let u=e.name||null;!u&&"oauth"===e.authType&&(e.email?u=e.email:e.displayName&&(u=e.displayName));let d=e.priority;if(!d){d=("number"==typeof(a=E(l.prepare("SELECT MAX(priority) as maxP FROM provider_connections WHERE provider = ?").get(e.provider)).maxP)?a:0)+1}let f={id:(0,t.v4)(),provider:e.provider,authType:e.authType||"oauth",name:u,priority:d,isActive:void 0===e.isActive||e.isActive,createdAt:s,updatedAt:s};for(let t of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","lastErrorType","lastErrorSource","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","rateLimitProtection","group"])void 0!==e[t]&&null!==e[t]&&(f[t]=e[t]);e.providerSpecificData&&Object.keys(e.providerSpecificData).length>0&&(f.providerSpecificData=e.providerSpecificData),i=l,o=p({...f}),i.prepare(`
|
|
1
|
+
module.exports=[878947,e=>{"use strict";var t=e.i(828059);let r=(0,t.generateModels)(),n=(0,t.generateAliasMap)();function a(e){return r[e]||[]}function i(e){let t=r[e];return t?.[0]?.id||null}function o(e,t,n=new Set){if(n.has(e))return!0;let a=r[e];return!!a&&a.some(e=>e.id===t)}function l(e,t){let n=r[e];if(!n)return t;let a=n.find(e=>e.id===t);return a?.name||t}function s(e,t){let n=r[e];if(!n)return null;let a=n.find(e=>e.id===t);return a?.targetFormat||null}function c(e){return r[n[e]||e]||[]}e.s(["PROVIDER_ID_TO_ALIAS",0,n,"PROVIDER_MODELS",0,r,"findModelName",()=>l,"getDefaultModel",()=>i,"getModelTargetFormat",()=>s,"getModelsByProviderId",()=>c,"getProviderModels",()=>a,"isValidModel",()=>o])},403122,e=>{"use strict";class t{cache=new Map;ttlMs;constructor(e){this.ttlMs=e}get(e){let t=this.cache.get(e);if(t)return Date.now()>t.expiresAt?void this.cache.delete(e):t.value}set(e,t){this.cache.set(e,{value:t,expiresAt:Date.now()+this.ttlMs})}invalidate(e){e?this.cache.delete(e):this.cache.clear()}}let r=new t(5e3),n=new t(3e4),a=new t(5e3);async function i(){let t=r.get("settings");if(t)return t;let{getSettings:n}=await e.A(606102),a=await n();return r.set("settings",a),a}async function o(){let t=n.get("pricing");if(t)return t;let{getPricing:r}=await e.A(606102),a=await r();return n.set("pricing",a),a}async function l(t){if(t&&Object.keys(t).length>0){let{getProviderConnections:r}=await e.A(789543);return r(t)}let r=a.get("all");if(r)return r;let{getProviderConnections:n}=await e.A(789543),i=await n();return a.set("all",i),i}function s(e){e&&"settings"!==e||r.invalidate(),e&&"pricing"!==e||n.invalidate(),e&&"connections"!==e||a.invalidate()}e.s(["getCachedPricing",()=>o,"getCachedProviderConnections",()=>l,"getCachedSettings",()=>i,"invalidateDbCache",()=>s])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},935050,91429,e=>{"use strict";var t=e.i(785148),r=e.i(814747),n=e.i(522734),a=e.i(157763);let i=new Set;function o(e){i.add(e)}function l(){for(let e of i)try{e()}catch(e){console.warn("[DB] Failed to reset module state:",e)}}e.s(["registerDbStateResetter",()=>o,"resetAllDbModuleState",()=>l],91429);let s=0;function c(e="auto"){try{if(a.isBuildPhase||a.isCloud||!a.SQLITE_FILE||!n.default.existsSync(a.SQLITE_FILE))return null;let t=n.default.statSync(a.SQLITE_FILE);if(t.size<4096)return console.warn(`[DB] Backup SKIPPED — DB too small (${t.size}B)`),null;let i=Date.now();if("manual"!==e&&"pre-restore"!==e&&i-s<36e5)return null;s=i;let o=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");n.default.existsSync(o)||n.default.mkdirSync(o,{recursive:!0});let l=n.default.readdirSync(o).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort();if(l.length>0){let e=l[l.length-1],a=n.default.statSync(r.default.join(o,e));if(a.size>4096&&t.size<.5*a.size)return console.warn(`[DB] Backup SKIPPED — DB shrank from ${a.size}B to ${t.size}B`),null}let c=new Date().toISOString().replace(/[:.]/g,"-"),u=r.default.join(o,`db_${c}_${e}.sqlite`);(0,a.getDbInstance)().backup(u).then(()=>{console.log(`[DB] Backup created: ${u} (${t.size} bytes)`)}).catch(e=>{let t=e instanceof Error?e.message:String(e);console.error("[DB] Backup failed:",t)});let p=n.default.readdirSync(o).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort();for(;p.length>20;){let e=0,t=1/0;for(let a=0;a<p.length-1;a++)try{let i=n.default.statSync(r.default.join(o,p[a]));i.size<t&&(t=i.size,e=a)}catch{e=a;break}try{n.default.unlinkSync(r.default.join(o,p[e]))}catch{}p.splice(e,1)}return{filename:r.default.basename(u),size:t.size}}catch(e){return console.error("[DB] Backup failed:",e instanceof Error?e.message:String(e)),null}}async function u(){let e=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");try{if(!n.default.existsSync(e))return[];return n.default.readdirSync(e).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort().reverse().map(a=>{let i=r.default.join(e,a),o=n.default.statSync(i),l=a.match(/^db_(.+?)_([^.]+)\.sqlite$/),s=l?l[2]:"unknown",c=0;try{let e=new t.default(i,{readonly:!0}),r=e.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get();c=r?.cnt||0,e.close()}catch{}return{id:a,filename:a,createdAt:o.mtime.toISOString(),size:o.size,reason:s,connectionCount:c}})}catch{return[]}}async function p(e){let i=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");if(!e.startsWith("db_")||!e.endsWith(".sqlite")||e.includes(r.default.sep)||e.includes("/"))throw Error("Invalid backup ID");let o=r.default.resolve(i,e);if(!o.startsWith(r.default.resolve(i)+r.default.sep)&&o!==r.default.resolve(i))throw Error("Invalid backup ID: path traversal detected");if(!n.default.existsSync(o))throw Error(`Backup not found: ${e}`);try{let e=new t.default(o,{readonly:!0}),r=e.pragma("integrity_check");if(e.close(),r[0]?.integrity_check!=="ok")throw Error("Backup integrity check failed")}catch(t){if(t instanceof Error&&"Backup integrity check failed"===t.message)throw t;let e=t instanceof Error?t.message:String(t);throw Error(`Backup file is corrupt: ${e}`)}s=0,c("pre-restore"),(0,a.resetDbInstance)(),l();let u=a.SQLITE_FILE;if(!u)throw Error("SQLITE_FILE is unavailable in local backup restore");for(let e of[u,`${u}-wal`,`${u}-shm`,`${u}-journal`])e&&n.default.existsSync(e)&&n.default.unlinkSync(e);n.default.copyFileSync(o,u);let p=(0,a.getDbInstance)(),d=p.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get()?.cnt||0,f=p.prepare("SELECT COUNT(*) as cnt FROM provider_nodes").get()?.cnt||0,y=p.prepare("SELECT COUNT(*) as cnt FROM combos").get()?.cnt||0,E=p.prepare("SELECT COUNT(*) as cnt FROM api_keys").get()?.cnt||0;return console.log(`[DB] Restored backup: ${e} (${d} connections)`),{restored:!0,backupId:e,connectionCount:d,nodeCount:f,comboCount:y,apiKeyCount:E}}e.s(["backupDbFile",()=>c,"listDbBackups",()=>u,"restoreDbBackup",()=>p],935050)},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},730901,684076,e=>{"use strict";let t=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;e.s(["default",0,function(e){return"string"==typeof e&&t.test(e)}],684076);let r=[];for(let e=0;e<256;++e)r.push((e+256).toString(16).slice(1));function n(e,t=0){return(r[e[t+0]]+r[e[t+1]]+r[e[t+2]]+r[e[t+3]]+"-"+r[e[t+4]]+r[e[t+5]]+"-"+r[e[t+6]]+r[e[t+7]]+"-"+r[e[t+8]]+r[e[t+9]]+"-"+r[e[t+10]]+r[e[t+11]]+r[e[t+12]]+r[e[t+13]]+r[e[t+14]]+r[e[t+15]]).toLowerCase()}e.s(["unsafeStringify",()=>n],730901)},689960,e=>{"use strict";var t=e.i(666680);let r={randomUUID:t.randomUUID},n=new Uint8Array(256),a=n.length;var i=e.i(730901);e.s(["v4",0,function(e,o,l){if(r.randomUUID&&!o&&!e)return r.randomUUID();var s=e,c=l;let u=(s=s||{}).random??s.rng?.()??(a>n.length-16&&((0,t.randomFillSync)(n),a=0),n.slice(a,a+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,o){if((c=c||0)<0||c+16>o.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let e=0;e<16;++e)o[c+e]=u[e];return o}return(0,i.unsafeStringify)(u)}],689960)},385498,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050),a=e.i(254799);let i="aes-256-gcm",o="enc:v1:",l=null;function s(){if(null!==l)return l;let e=process.env.STORAGE_ENCRYPTION_KEY;return e?l=(0,a.scryptSync)(e,"omniroute-field-encryption-v1",32):null}function c(){return!!process.env.STORAGE_ENCRYPTION_KEY}function u(e){if(!e||"string"!=typeof e)return e;let t=s();if(!t||e.startsWith(o))return e;let r=(0,a.randomBytes)(16),n=(0,a.createCipheriv)(i,t,r),l=n.update(e,"utf8","hex");l+=n.final("hex");let c=n.getAuthTag().toString("hex");return`${o}${r.toString("hex")}:${l}:${c}`}function p(e){if(!e||"string"!=typeof e||!e.startsWith(o))return e;let t=s();if(!t)return console.warn("[Encryption] Found encrypted data but STORAGE_ENCRYPTION_KEY is not set. Cannot decrypt."),e;let r=e.slice(o.length).split(":");if(3!==r.length)return console.error("[Encryption] Malformed encrypted value"),e;let[n,l,c]=r;try{let e=Buffer.from(n,"hex"),r=Buffer.from(c,"hex"),o=(0,a.createDecipheriv)(i,t,e);o.setAuthTag(r);let s=o.update(l,"hex","utf8");return s+=o.final("utf8")}catch(t){return console.error("[Encryption] Decryption failed:",t instanceof Error?t.message:String(t)),e}}function d(e){return c()&&e&&(e.apiKey&&(e.apiKey=u(e.apiKey)),e.accessToken&&(e.accessToken=u(e.accessToken)),e.refreshToken&&(e.refreshToken=u(e.refreshToken)),e.idToken&&(e.idToken=u(e.idToken))),e}function f(e){return e&&c()?{...e,apiKey:p(e.apiKey),accessToken:p(e.accessToken),refreshToken:p(e.refreshToken),idToken:p(e.idToken)}:e}var y=e.i(403122);function E(e){return e&&"object"==typeof e?e:{}}function v(e){return"string"==typeof e?e:null}async function g(e={}){let t=(0,r.getDbInstance)(),n="SELECT * FROM provider_connections",a=[],i={};return e.provider&&(a.push("provider = @provider"),i.provider=e.provider),void 0!==e.isActive&&(a.push("is_active = @isActive"),i.isActive=+!!e.isActive),a.length>0&&(n+=" WHERE "+a.join(" AND ")),n+=" ORDER BY priority ASC, updated_at DESC",t.prepare(n).all(i).map(e=>f((0,r.cleanNulls)((0,r.rowToCamel)(e))))}async function m(e){let t=(0,r.getDbInstance)().prepare("SELECT * FROM provider_connections WHERE id = ?").get(e);return t?f((0,r.cleanNulls)((0,r.rowToCamel)(t))):null}async function _(e){var a,i,o;let l=(0,r.getDbInstance)(),s=new Date().toISOString(),c=null;if("oauth"===e.authType&&e.email){let t=v(E(e.providerSpecificData).workspaceId);"codex"===e.provider&&t?(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND email = ?").get(e.provider,t,e.email)||null)||(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND (email IS NULL OR email = '')").get(e.provider,t)||null):c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND email = ?").get(e.provider,e.email)||null}else"apikey"===e.authType&&e.name&&(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'apikey' AND name = ?").get(e.provider,e.name)||null);if(c){let t=v(c.id);if(!t)return null;let a={...E((0,r.rowToCamel)(c)),...e,updatedAt:s};return h(l,t,a),(0,n.backupDbFile)("pre-write"),(0,r.cleanNulls)(a)}let u=e.name||null;!u&&"oauth"===e.authType&&(e.email?u=e.email:e.displayName&&(u=e.displayName));let p=e.priority;if(!p){p=("number"==typeof(a=E(l.prepare("SELECT MAX(priority) as maxP FROM provider_connections WHERE provider = ?").get(e.provider)).maxP)?a:0)+1}let f={id:(0,t.v4)(),provider:e.provider,authType:e.authType||"oauth",name:u,priority:p,isActive:void 0===e.isActive||e.isActive,createdAt:s,updatedAt:s};for(let t of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","lastErrorType","lastErrorSource","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","rateLimitProtection","group"])void 0!==e[t]&&null!==e[t]&&(f[t]=e[t]);e.providerSpecificData&&Object.keys(e.providerSpecificData).length>0&&(f.providerSpecificData=e.providerSpecificData),i=l,o=d({...f}),i.prepare(`
|
|
2
2
|
INSERT INTO provider_connections (
|
|
3
3
|
id, provider, auth_type, name, email, priority, is_active,
|
|
4
4
|
access_token, refresh_token, expires_at, token_expires_at,
|
|
@@ -18,7 +18,7 @@ module.exports=[878947,e=>{"use strict";var t=e.i(828059);let r=(0,t.generateMod
|
|
|
18
18
|
@expiresIn, @displayName, @globalPriority, @defaultModel,
|
|
19
19
|
@tokenType, @consecutiveUseCount, @rateLimitProtection, @lastUsedAt, @group, @createdAt, @updatedAt
|
|
20
20
|
)
|
|
21
|
-
`).run({id:o.id,provider:o.provider,authType:o.authType||null,name:o.name||null,email:o.email||null,priority:o.priority||0,isActive:+(!1!==o.isActive),accessToken:o.accessToken||null,refreshToken:o.refreshToken||null,expiresAt:o.expiresAt||null,tokenExpiresAt:o.tokenExpiresAt||null,scope:o.scope||null,projectId:o.projectId||null,testStatus:o.testStatus||null,errorCode:o.errorCode||null,lastError:o.lastError||null,lastErrorAt:o.lastErrorAt||null,lastErrorType:o.lastErrorType||null,lastErrorSource:o.lastErrorSource||null,backoffLevel:o.backoffLevel||0,rateLimitedUntil:o.rateLimitedUntil||null,healthCheckInterval:o.healthCheckInterval||null,lastHealthCheckAt:o.lastHealthCheckAt||null,lastTested:o.lastTested||null,apiKey:o.apiKey||null,idToken:o.idToken||null,providerSpecificData:o.providerSpecificData?JSON.stringify(o.providerSpecificData):null,expiresIn:o.expiresIn||null,displayName:o.displayName||null,globalPriority:o.globalPriority||null,defaultModel:o.defaultModel||null,tokenType:o.tokenType||null,consecutiveUseCount:o.consecutiveUseCount||0,rateLimitProtection:+(!0===o.rateLimitProtection||1===o.rateLimitProtection),lastUsedAt:o.lastUsedAt||null,group:o.group||null,createdAt:o.createdAt,updatedAt:o.updatedAt});let v
|
|
21
|
+
`).run({id:o.id,provider:o.provider,authType:o.authType||null,name:o.name||null,email:o.email||null,priority:o.priority||0,isActive:+(!1!==o.isActive),accessToken:o.accessToken||null,refreshToken:o.refreshToken||null,expiresAt:o.expiresAt||null,tokenExpiresAt:o.tokenExpiresAt||null,scope:o.scope||null,projectId:o.projectId||null,testStatus:o.testStatus||null,errorCode:o.errorCode||null,lastError:o.lastError||null,lastErrorAt:o.lastErrorAt||null,lastErrorType:o.lastErrorType||null,lastErrorSource:o.lastErrorSource||null,backoffLevel:o.backoffLevel||0,rateLimitedUntil:o.rateLimitedUntil||null,healthCheckInterval:o.healthCheckInterval||null,lastHealthCheckAt:o.lastHealthCheckAt||null,lastTested:o.lastTested||null,apiKey:o.apiKey||null,idToken:o.idToken||null,providerSpecificData:o.providerSpecificData?JSON.stringify(o.providerSpecificData):null,expiresIn:o.expiresIn||null,displayName:o.displayName||null,globalPriority:o.globalPriority||null,defaultModel:o.defaultModel||null,tokenType:o.tokenType||null,consecutiveUseCount:o.consecutiveUseCount||0,rateLimitProtection:+(!0===o.rateLimitProtection||1===o.rateLimitProtection),lastUsedAt:o.lastUsedAt||null,group:o.group||null,createdAt:o.createdAt,updatedAt:o.updatedAt});let g=v(e.provider);return g&&T(l,g),(0,n.backupDbFile)("pre-write"),(0,y.invalidateDbCache)("connections"),(0,r.cleanNulls)(f)}function h(e,t,r){let n=r.updatedAt||new Date().toISOString();e.prepare(`
|
|
22
22
|
UPDATE provider_connections SET
|
|
23
23
|
provider = @provider, auth_type = @authType, name = @name, email = @email,
|
|
24
24
|
priority = @priority, is_active = @isActive, access_token = @accessToken,
|
|
@@ -37,14 +37,14 @@ module.exports=[878947,e=>{"use strict";var t=e.i(828059);let r=(0,t.generateMod
|
|
|
37
37
|
"group" = @group,
|
|
38
38
|
updated_at = @updatedAt
|
|
39
39
|
WHERE id = @id
|
|
40
|
-
`).run({id:t,provider:r.provider,authType:r.authType||null,name:r.name||null,email:r.email||null,priority:r.priority||0,isActive:+(!1!==r.isActive),accessToken:r.accessToken||null,refreshToken:r.refreshToken||null,expiresAt:r.expiresAt||null,tokenExpiresAt:r.tokenExpiresAt||null,scope:r.scope||null,projectId:r.projectId||null,testStatus:r.testStatus||null,errorCode:r.errorCode||null,lastError:r.lastError||null,lastErrorAt:r.lastErrorAt||null,lastErrorType:r.lastErrorType||null,lastErrorSource:r.lastErrorSource||null,backoffLevel:r.backoffLevel||0,rateLimitedUntil:r.rateLimitedUntil||null,healthCheckInterval:r.healthCheckInterval||null,lastHealthCheckAt:r.lastHealthCheckAt||null,lastTested:r.lastTested||null,apiKey:r.apiKey||null,idToken:r.idToken||null,providerSpecificData:r.providerSpecificData?JSON.stringify(r.providerSpecificData):null,expiresIn:r.expiresIn||null,displayName:r.displayName||null,globalPriority:r.globalPriority||null,defaultModel:r.defaultModel||null,tokenType:r.tokenType||null,consecutiveUseCount:r.consecutiveUseCount||0,rateLimitProtection:+(!0===r.rateLimitProtection||1===r.rateLimitProtection),lastUsedAt:r.lastUsedAt||null,group:r.group||null,updatedAt:n})}async function S(e,t){let a=(0,r.getDbInstance)(),i=a.prepare("SELECT * FROM provider_connections WHERE id = ?").get(e);if(!i)return null;let o={...(0,r.rowToCamel)(i),...t,updatedAt:new Date().toISOString()};if(h(a,e,
|
|
40
|
+
`).run({id:t,provider:r.provider,authType:r.authType||null,name:r.name||null,email:r.email||null,priority:r.priority||0,isActive:+(!1!==r.isActive),accessToken:r.accessToken||null,refreshToken:r.refreshToken||null,expiresAt:r.expiresAt||null,tokenExpiresAt:r.tokenExpiresAt||null,scope:r.scope||null,projectId:r.projectId||null,testStatus:r.testStatus||null,errorCode:r.errorCode||null,lastError:r.lastError||null,lastErrorAt:r.lastErrorAt||null,lastErrorType:r.lastErrorType||null,lastErrorSource:r.lastErrorSource||null,backoffLevel:r.backoffLevel||0,rateLimitedUntil:r.rateLimitedUntil||null,healthCheckInterval:r.healthCheckInterval||null,lastHealthCheckAt:r.lastHealthCheckAt||null,lastTested:r.lastTested||null,apiKey:r.apiKey||null,idToken:r.idToken||null,providerSpecificData:r.providerSpecificData?JSON.stringify(r.providerSpecificData):null,expiresIn:r.expiresIn||null,displayName:r.displayName||null,globalPriority:r.globalPriority||null,defaultModel:r.defaultModel||null,tokenType:r.tokenType||null,consecutiveUseCount:r.consecutiveUseCount||0,rateLimitProtection:+(!0===r.rateLimitProtection||1===r.rateLimitProtection),lastUsedAt:r.lastUsedAt||null,group:r.group||null,updatedAt:n})}async function S(e,t){let a=(0,r.getDbInstance)(),i=a.prepare("SELECT * FROM provider_connections WHERE id = ?").get(e);if(!i)return null;let o={...(0,r.rowToCamel)(i),...t,updatedAt:new Date().toISOString()};if(h(a,e,d({...o})),(0,n.backupDbFile)("pre-write"),(0,y.invalidateDbCache)("connections"),void 0!==t.priority){let e=E(i);T(a,"string"==typeof e.provider?e.provider:String(e.provider||""))}return(0,r.cleanNulls)(o)}async function A(e){let t=(0,r.getDbInstance)(),a=t.prepare("SELECT provider FROM provider_connections WHERE id = ?").get(e);if(!a)return!1;t.prepare("DELETE FROM provider_connections WHERE id = ?").run(e);let i=E(a);return T(t,"string"==typeof i.provider?i.provider:String(i.provider||"")),(0,n.backupDbFile)("pre-write"),(0,y.invalidateDbCache)("connections"),!0}async function k(e){let t=(0,r.getDbInstance)().prepare("DELETE FROM provider_connections WHERE provider = ?").run(e);return(0,n.backupDbFile)("pre-write"),t.changes}async function D(e){T((0,r.getDbInstance)(),e)}function T(e,t){let r=e.prepare("SELECT id, priority, updated_at FROM provider_connections WHERE provider = ? ORDER BY priority ASC, updated_at DESC").all(t),n=e.prepare("UPDATE provider_connections SET priority = ? WHERE id = ?");r.forEach((e,t)=>{let r=E(e);n.run(t+1,r.id)})}async function I(){return 0}async function b(){return(0,r.getDbInstance)().prepare('SELECT DISTINCT "group" FROM provider_connections WHERE "group" IS NOT NULL ORDER BY "group"').all().map(e=>String(e.group??"")).filter(Boolean)}async function C(e={}){let t=(0,r.getDbInstance)(),n="SELECT * FROM provider_nodes",a={};return e.type&&(n+=" WHERE type = @type",a.type=e.type),t.prepare(n).all(a).map(r.rowToCamel)}async function R(e){let t=(0,r.getDbInstance)().prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);return t?(0,r.rowToCamel)(t):null}async function O(e){let a=(0,r.getDbInstance)(),i=new Date().toISOString(),o={id:e.id||(0,t.v4)(),type:e.type,name:e.name,prefix:e.prefix||null,apiType:e.apiType||null,baseUrl:e.baseUrl||null,chatPath:e.chatPath||null,modelsPath:e.modelsPath||null,createdAt:i,updatedAt:i};return a.prepare(`
|
|
41
41
|
INSERT INTO provider_nodes (id, type, name, prefix, api_type, base_url, chat_path, models_path, created_at, updated_at)
|
|
42
42
|
VALUES (@id, @type, @name, @prefix, @apiType, @baseUrl, @chatPath, @modelsPath, @createdAt, @updatedAt)
|
|
43
|
-
`).run(o),(0,n.backupDbFile)("pre-write"),o}async function
|
|
43
|
+
`).run(o),(0,n.backupDbFile)("pre-write"),o}async function N(e,t){let a=(0,r.getDbInstance)(),i=a.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);if(!i)return null;let o={...E((0,r.rowToCamel)(i)),...t,updatedAt:new Date().toISOString()};return a.prepare(`
|
|
44
44
|
UPDATE provider_nodes SET type = @type, name = @name, prefix = @prefix,
|
|
45
45
|
api_type = @apiType, base_url = @baseUrl, chat_path = @chatPath,
|
|
46
46
|
models_path = @modelsPath, updated_at = @updatedAt
|
|
47
47
|
WHERE id = @id
|
|
48
|
-
`).run({id:e,type:o.type,name:o.name,prefix:o.prefix||null,apiType:o.apiType||null,baseUrl:o.baseUrl||null,chatPath:o.chatPath||null,modelsPath:o.modelsPath||null,updatedAt:o.updatedAt}),(0,n.backupDbFile)("pre-write"),o}async function w(e){let t=(0,r.getDbInstance)(),a=t.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);return a?(t.prepare("DELETE FROM provider_nodes WHERE id = ?").run(e),(0,n.backupDbFile)("pre-write"),(0,r.rowToCamel)(a)):null}e.s(["cleanupProviderConnections",()=>b,"createProviderConnection",()=>m,"createProviderNode",()=>N,"deleteProviderConnection",()=>k,"deleteProviderConnectionsByProvider",()=>A,"deleteProviderNode",()=>w,"getDistinctGroups",()=>C,"getProviderConnectionById",()=>_,"getProviderConnections",()=>v,"getProviderNodeById",()=>R,"getProviderNodes",()=>I,"reorderProviderConnections",()=>T,"updateProviderConnection",()=>S,"updateProviderNode",()=>L],385498)},542949,e=>{"use strict";var t=e.i(157763),r=e.i(935050);function n(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return{key:"string"==typeof t.key?t.key:null,value:"string"==typeof t.value?t.value:null}}async function a(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'modelAliases'").all(),r={};for(let t of e){let{key:e,value:a}=n(t);e&&null!==a&&(r[e]=JSON.parse(a))}return r}async function i(e,n){(0,t.getDbInstance)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('modelAliases', ?, ?)").run(e,JSON.stringify(n)),(0,r.backupDbFile)("pre-write")}async function o(e){(0,t.getDbInstance)().prepare("DELETE FROM key_value WHERE namespace = 'modelAliases' AND key = ?").run(e),(0,r.backupDbFile)("pre-write")}async function l(e){let r=(0,t.getDbInstance)();if(e){let t=n(r.prepare("SELECT value FROM key_value WHERE namespace = 'mitmAlias' AND key = ?").get(e)).value;return t?JSON.parse(t):{}}let a=r.prepare("SELECT key, value FROM key_value WHERE namespace = 'mitmAlias'").all(),i={};for(let e of a){let{key:t,value:r}=n(e);t&&null!==r&&(i[t]=JSON.parse(r))}return i}async function s(e,n){(0,t.getDbInstance)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('mitmAlias', ?, ?)").run(e,JSON.stringify(n||{})),(0,r.backupDbFile)("pre-write")}async function c(e){let r=(0,t.getDbInstance)();if(e){let t=n(r.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value;return t?JSON.parse(t):[]}let a=r.prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),i={};for(let e of a){let{key:t,value:r}=n(e);t&&null!==r&&(i[t]=JSON.parse(r))}return i}async function u(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),r={};for(let t of e){let{key:e,value:a}=n(t);e&&null!==a&&(r[e]=JSON.parse(a))}return r}async function d(e,a,i,o="manual",l="chat-completions",s=["chat"]){let c=(0,t.getDbInstance)(),u=n(c.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value,p=u?JSON.parse(u):[],f=p.find(e=>e.id===a);if(f)return f;let y={id:a,name:i||a,source:o,apiFormat:l,supportedEndpoints:s};return p.push(y),c.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('customModels', ?, ?)").run(e,JSON.stringify(p)),(0,r.backupDbFile)("pre-write"),y}async function p(e,a){let i=(0,t.getDbInstance)(),o=i.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e);if(!o)return!1;let l=n(o).value;if(!l)return!1;let s=JSON.parse(l),c=s.length,u=s.filter(e=>e.id!==a);return u.length!==c&&(0===u.length?i.prepare("DELETE FROM key_value WHERE namespace = 'customModels' AND key = ?").run(e):i.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(u),e),(0,r.backupDbFile)("pre-write"),!0)}async function f(e,a,i={}){let o=(0,t.getDbInstance)(),l=o.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e);if(!l)return null;let s=n(l).value;if(!s)return null;let c=JSON.parse(s),u=c.findIndex(e=>e.id===a);if(-1===u)return null;let d=c[u],p={...d,...void 0!==i.modelName?{name:i.modelName||d.name}:{},...void 0!==i.apiFormat?{apiFormat:i.apiFormat}:{},...void 0!==i.supportedEndpoints?{supportedEndpoints:i.supportedEndpoints}:{},...void 0!==i.normalizeToolCallId?{normalizeToolCallId:!!i.normalizeToolCallId}:{}};return c[u]=p,o.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(c),e),(0,r.backupDbFile)("pre-write"),p}function y(e,r){let a,i=n((0,t.getDbInstance)().prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value;if(!i)return!1;try{a=JSON.parse(i)}catch{return!1}if(!Array.isArray(a))return!1;let o=a.find(e=>e.id===r);return!!o?.normalizeToolCallId}e.s(["addCustomModel",()=>d,"deleteModelAlias",()=>o,"getAllCustomModels",()=>u,"getCustomModels",()=>c,"getMitmAlias",()=>l,"getModelAliases",()=>a,"getModelNormalizeToolCallId",()=>y,"removeCustomModel",()=>p,"setMitmAliasAll",()=>s,"setModelAlias",()=>i,"updateCustomModel",()=>f])},151205,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050);function a(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return"string"==typeof t.data?t.data:null}async function i(){return(0,r.getDbInstance)().prepare("SELECT data FROM combos ORDER BY name").all().map(e=>a(e)).filter(e=>null!==e).map(e=>JSON.parse(e))}async function o(e){let t=a((0,r.getDbInstance)().prepare("SELECT data FROM combos WHERE id = ?").get(e));return t?JSON.parse(t):null}async function l(e){let t=a((0,r.getDbInstance)().prepare("SELECT data FROM combos WHERE name = ?").get(e));return t?JSON.parse(t):null}async function s(e){let a=(0,r.getDbInstance)(),i=new Date().toISOString(),o={id:(0,t.v4)(),name:e.name,models:e.models||[],strategy:e.strategy||"priority",config:e.config||{},createdAt:i,updatedAt:i};return a.prepare("INSERT INTO combos (id, name, data, created_at, updated_at) VALUES (?, ?, ?, ?, ?)").run(o.id,o.name,JSON.stringify(o),i,i),(0,n.backupDbFile)("pre-write"),o}async function c(e,t){let i=(0,r.getDbInstance)(),o=i.prepare("SELECT data FROM combos WHERE id = ?").get(e);if(!o)return null;let l=a(o);if(!l)return null;let s={...JSON.parse(l),...t,updatedAt:new Date().toISOString()};return i.prepare("UPDATE combos SET name = ?, data = ?, updated_at = ? WHERE id = ?").run(s.name,JSON.stringify(s),s.updatedAt,e),(0,n.backupDbFile)("pre-write"),s}async function u(e){return 0!==(0,r.getDbInstance)().prepare("DELETE FROM combos WHERE id = ?").run(e).changes&&((0,n.backupDbFile)("pre-write"),!0)}e.s(["createCombo",()=>s,"deleteCombo",()=>u,"getComboById",()=>o,"getComboByName",()=>l,"getCombos",()=>i,"updateCombo",()=>c])},245272,e=>{"use strict";e.i(385498),e.i(542949),e.i(151205),e.i(125852),e.i(548941),e.i(954031),e.i(751183),e.i(935050),e.i(403122),e.s([])},751183,e=>{"use strict";var t=e.i(157763),r=e.i(403122),n=e.i(935050);let a=["litellm"],i=parseInt(process.env.PRICING_SYNC_INTERVAL||"86400",10),o=Number.isFinite(i)&&i>0?1e3*i:864e5,l=(process.env.PRICING_SYNC_SOURCES||"litellm").split(",").map(e=>e.trim()).filter(e=>a.includes(e)),s={openai:["openai","cx"],anthropic:["anthropic","cc"],vertex_ai:["gemini","gc"],"vertex_ai-anthropic_models":["anthropic"],google:["gemini","gc"],deepseek:["if"],groq:["groq"],together_ai:["openrouter"],bedrock:["kiro"],fireworks_ai:["fireworks"],cerebras:["cerebras"],nvidia_nim:["nvidia"],siliconflow:["siliconflow"]},c=null,u=null,d=0,p=o;async function f(){let e=await fetch("https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",{signal:AbortSignal.timeout(3e4)});if(!e.ok)throw Error(`LiteLLM fetch failed [${e.status}]: ${e.statusText}`);let t=await e.text();try{return JSON.parse(t)}catch{throw Error(`LiteLLM returned invalid JSON (${t.slice(0,100)}...)`)}}function y(e){let t={};for(let[r,n]of Object.entries(e)){if(n.mode&&!["chat","completion"].includes(n.mode)||!n.input_cost_per_token&&0!==n.input_cost_per_token)continue;let e={input:Math.round(1e3*(1e6*(n.input_cost_per_token||0)))/1e3,output:Math.round(1e3*(1e6*(n.output_cost_per_token||0)))/1e3};null!=n.cache_read_input_token_cost&&(e.cached=Math.round(1e6*n.cache_read_input_token_cost*1e3)/1e3),null!=n.cache_creation_input_token_cost&&(e.cache_creation=Math.round(1e6*n.cache_creation_input_token_cost*1e3)/1e3);let a=r.indexOf("/"),i=a>=0?r.slice(a+1):r,o=n.litellm_provider||"",l=s[o];if(l)for(let r of l)t[r]||(t[r]={}),t[r][i]=e;else o&&(t[o]||(t[o]={}),t[o][i]=e)}return t}function E(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'pricing_synced'").all(),r={};for(let t of e){let e=t&&"object"==typeof t?t:{},n="string"==typeof e.key?e.key:null,a="string"==typeof e.value?e.value:null;if(n&&null!==a)try{r[n]=JSON.parse(a)}catch{console.warn(`[PRICING_SYNC] Corrupted data for provider "${n}", skipping`)}}return r}function g(e){let a=(0,t.getDbInstance)(),i=a.prepare("DELETE FROM key_value WHERE namespace = 'pricing_synced'"),o=a.prepare("INSERT INTO key_value (namespace, key, value) VALUES ('pricing_synced', ?, ?)");a.transaction(()=>{for(let[t,r]of(i.run(),Object.entries(e)))o.run(t,JSON.stringify(r))})(),(0,n.backupDbFile)("pre-write"),(0,r.invalidateDbCache)("pricing")}function v(){(0,t.getDbInstance)().prepare("DELETE FROM key_value WHERE namespace = 'pricing_synced'").run(),(0,n.backupDbFile)("pre-write"),(0,r.invalidateDbCache)("pricing")}async function _(e){let t=e?.sources||l,r=e?.dryRun??!1,n=t.filter(e=>a.includes(e)),i=t.filter(e=>!a.includes(e));if(0===n.length){let e=a.join(", ");return{success:!1,modelCount:0,providerCount:0,source:t.join(","),dryRun:r,error:`No valid sources provided. Supported: ${e}. Invalid: ${i.join(", ")}`}}try{let e={};for(let t of n)if("litellm"===t){let t=await f(),r=y(t);for(let[t,n]of Object.entries(r))e[t]||(e[t]={}),Object.assign(e[t],n)}let t=Object.values(e).reduce((e,t)=>e+Object.keys(t).length,0),a=Object.keys(e).length;return r||(g(e),u=new Date().toISOString(),d=t),{success:!0,modelCount:t,providerCount:a,source:n.join(","),dryRun:r,...i.length>0?{warnings:[`Unknown sources ignored: ${i.join(", ")}`]}:{},...r?{data:e}:{}}}catch(n){let e=n instanceof Error?n.message:String(n);return console.warn("[PRICING_SYNC] Sync failed:",e),{success:!1,modelCount:0,providerCount:0,source:t.join(","),dryRun:r,error:e}}}function m(e){if(c)return;let t=e??o;p=t,console.log(`[PRICING_SYNC] Starting periodic sync every ${t/1e3}s`),_().then(e=>{e.success&&console.log(`[PRICING_SYNC] Initial sync complete: ${e.modelCount} models from ${e.providerCount} providers`)}).catch(e=>{console.warn("[PRICING_SYNC] Initial sync error:",e instanceof Error?e.message:e)}),c=setInterval(()=>{_().then(e=>{e.success&&console.log(`[PRICING_SYNC] Periodic sync complete: ${e.modelCount} models`)}).catch(e=>{console.warn("[PRICING_SYNC] Periodic sync error:",e instanceof Error?e.message:e)})},t)}function h(){c&&(clearInterval(c),c=null,console.log("[PRICING_SYNC] Periodic sync stopped"))}function S(){return{enabled:"true"===process.env.PRICING_SYNC_ENABLED,lastSync:u,lastSyncModelCount:d,nextSync:c&&u?new Date(new Date(u).getTime()+p).toISOString():null,intervalMs:p,sources:l}}async function k(){"true"!==process.env.PRICING_SYNC_ENABLED?console.log("[PRICING_SYNC] Disabled (set PRICING_SYNC_ENABLED=true to enable)"):m()}e.s(["clearSyncedPricing",()=>v,"fetchLiteLLMPricing",()=>f,"getSyncStatus",()=>S,"getSyncedPricing",()=>E,"initPricingSync",()=>k,"saveSyncedPricing",()=>g,"startPeriodicSync",()=>m,"stopPeriodicSync",()=>h,"syncPricingFromSources",()=>_,"transformToOmniRoute",()=>y])},125852,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050),a=e.i(91429),i=e.i(439951);let o=!1,l=new Map,s=new Map,c=new Map,u=new Map,d=null,p=null,f=null,y=null,E=null,g=null;function v(){l.clear(),s.clear(),u.clear()}function _(e){return e&&"object"==typeof e?e:{}}function m(e){if(e.size>1e3){let t=Math.floor(200),r=0;for(let n of e.keys()){if(r++>=t)break;e.delete(n)}}}function h(e){if(!o)try{let t=e.prepare("PRAGMA table_info(api_keys)").all(),r=new Set(t.map(e=>String(e.name??"")));r.has("allowed_models")||(e.exec("ALTER TABLE api_keys ADD COLUMN allowed_models TEXT"),console.log("[DB] Added api_keys.allowed_models column")),r.has("no_log")||(e.exec("ALTER TABLE api_keys ADD COLUMN no_log INTEGER NOT NULL DEFAULT 0"),console.log("[DB] Added api_keys.no_log column")),r.has("allowed_connections")||(e.exec("ALTER TABLE api_keys ADD COLUMN allowed_connections TEXT"),console.log("[DB] Added api_keys.allowed_connections column")),r.has("auto_resolve")||(e.exec("ALTER TABLE api_keys ADD COLUMN auto_resolve INTEGER NOT NULL DEFAULT 0"),console.log("[DB] Added api_keys.auto_resolve column")),r.has("is_active")||(e.exec("ALTER TABLE api_keys ADD COLUMN is_active INTEGER NOT NULL DEFAULT 1"),console.log("[DB] Added api_keys.is_active column")),r.has("access_schedule")||(e.exec("ALTER TABLE api_keys ADD COLUMN access_schedule TEXT"),console.log("[DB] Added api_keys.access_schedule column")),o=!0}catch(e){console.warn("[DB] Failed to verify api_keys schema:",e instanceof Error?e.message:String(e))}if(d&&p&&f&&y&&E&&g||(d=e.prepare("SELECT * FROM api_keys ORDER BY created_at"),p=e.prepare("SELECT * FROM api_keys WHERE id = ?"),f=e.prepare("SELECT 1 FROM api_keys WHERE key = ?"),y=e.prepare("SELECT id, name, machine_id, allowed_models, allowed_connections, no_log, auto_resolve, is_active, access_schedule FROM api_keys WHERE key = ?"),E=e.prepare("INSERT INTO api_keys (id, name, key, machine_id, allowed_models, no_log, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)"),g=e.prepare("DELETE FROM api_keys WHERE id = ?")),!d||!p||!f||!y||!E||!g)throw Error("Failed to initialize API key prepared statements");return{getAllKeys:d,getKeyById:p,validateKey:f,getKeyMetadata:y,insertKey:E,deleteKey:g}}async function S(){return h((0,r.getDbInstance)()).getAllKeys.all().map(e=>{let t=_((0,r.rowToCamel)(e));return t.allowedModels=A(t.allowedModels),t.allowedConnections=I(t.allowedConnections),t.noLog=T(t.noLog),t.autoResolve=D(t.autoResolve),t.isActive=b(t.isActive),t.accessSchedule=C(t.accessSchedule),"string"==typeof t.id&&t.id.length>0&&(0,i.setNoLog)(t.id,!0===t.noLog),t})}async function k(e){let t=h((0,r.getDbInstance)()).getKeyById.get(e);if(!t)return null;let n=_((0,r.rowToCamel)(t));return n.allowedModels=A(n.allowedModels),n.allowedConnections=I(n.allowedConnections),n.noLog=T(n.noLog),n.autoResolve=D(n.autoResolve),n.isActive=b(n.isActive),n.accessSchedule=C(n.accessSchedule),"string"==typeof n.id&&n.id.length>0&&(0,i.setNoLog)(n.id,!0===n.noLog),n}function A(e){if(!e||"string"!=typeof e||""===e.trim())return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}function T(e){return!0===e||1===e||"1"===e}function D(e){return!0===e||1===e||"1"===e}function b(e){return 0!==e&&"0"!==e&&!1!==e}function C(e){if(!e||"string"!=typeof e||""===e.trim())return null;try{let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t)||"boolean"!=typeof t.enabled||"string"!=typeof t.from||"string"!=typeof t.until||!Array.isArray(t.days)||"string"!=typeof t.tz)return null;let r=t.days.filter(e=>"number"==typeof e&&Number.isInteger(e)&&e>=0&&e<=6);return{enabled:t.enabled,from:t.from,until:t.until,days:r,tz:t.tz}}catch{return null}}function I(e){if(!e||"string"!=typeof e||""===e.trim())return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function R(a,o){if(!o)throw Error("machineId is required");let l=(0,r.getDbInstance)(),s=new Date().toISOString(),{generateApiKeyWithMachine:c}=await e.A(579042),u=c(o),d={id:(0,t.v4)(),name:a,key:u.key,machineId:o,allowedModels:[],allowedConnections:[],noLog:!1,createdAt:s};return h(l).insertKey.run(d.id,d.name,d.key,d.machineId,"[]",0,d.createdAt),(0,i.setNoLog)(d.id,!1),(0,n.backupDbFile)("pre-write"),d}async function N(e,t){let a=(0,r.getDbInstance)();h(a);let o=Array.isArray(t)||void 0===t?{allowedModels:t||[]}:{name:t.name,allowedModels:t.allowedModels,allowedConnections:t.allowedConnections,noLog:t.noLog,autoResolve:t.autoResolve,isActive:t.isActive,accessSchedule:t.accessSchedule};if(void 0===o.name&&void 0===o.allowedModels&&void 0===o.allowedConnections&&void 0===o.noLog&&void 0===o.autoResolve&&void 0===o.isActive&&void 0===o.accessSchedule)return!1;let l=[],s={id:e};return void 0!==o.name&&(l.push("name = @name"),s.name=o.name),void 0!==o.allowedModels&&(l.push("allowed_models = @allowedModels"),s.allowedModels=JSON.stringify(o.allowedModels||[])),void 0!==o.allowedConnections&&(l.push("allowed_connections = @allowedConnections"),s.allowedConnections=JSON.stringify(o.allowedConnections||[])),void 0!==o.noLog&&(l.push("no_log = @noLog"),s.noLog=+!!o.noLog),void 0!==o.autoResolve&&(l.push("auto_resolve = @autoResolve"),s.autoResolve=+!!o.autoResolve),void 0!==o.isActive&&(l.push("is_active = @isActive"),s.isActive=+!!o.isActive),void 0!==o.accessSchedule&&(l.push("access_schedule = @accessSchedule"),s.accessSchedule=null!==o.accessSchedule?JSON.stringify(o.accessSchedule):null),0!==a.prepare(`UPDATE api_keys SET ${l.join(", ")} WHERE id = @id`).run(s).changes&&(void 0!==o.noLog&&(0,i.setNoLog)(e,o.noLog),v(),(0,n.backupDbFile)("pre-write"),!0)}async function L(e){return 0!==h((0,r.getDbInstance)()).deleteKey.run(e).changes&&((0,i.setNoLog)(e,!1),v(),(0,n.backupDbFile)("pre-write"),!0)}async function w(e){if(!e||"string"!=typeof e)return!1;let t=Date.now(),n=l.get(e);if(n&&t-n.timestamp<6e4)return n.valid;let a=!!h((0,r.getDbInstance)()).validateKey.get(e);return a&&(m(l),l.set(e,{valid:!0,timestamp:t})),a}async function O(e){if(!e||"string"!=typeof e)return null;let t=Date.now(),n=s.get(e);if(n&&t-n.timestamp<6e4)return n.value;let a=h((0,r.getDbInstance)()).getKeyMetadata.get(e);if(!a)return null;let o=_(a),l="string"==typeof o.id?o.id:"",c="string"==typeof o.name?o.name:"",u=o.machine_id??o.machineId,d={id:l,name:c,machineId:"string"==typeof u?u:null,allowedModels:A(o.allowed_models??o.allowedModels),allowedConnections:I(o.allowed_connections??o.allowedConnections),noLog:T(o.no_log??o.noLog),autoResolve:D(o.auto_resolve??o.autoResolve),isActive:b(o.is_active??o.isActive),accessSchedule:C(o.access_schedule??o.accessSchedule)};return d.id?((0,i.setNoLog)(d.id,!0===d.noLog),m(s),s.set(e,{value:d,timestamp:t}),d):null}async function M(e,t){if(!e)return!0;if(!t)return!1;let r=`${e}:${t}`,n=Date.now(),a=u.get(r);if(a&&n-a.timestamp<6e4)return a.allowed;let i=await O(e);if(!i)return!1;let{allowedModels:o}=i;if(!o||0===o.length)return!0;let l=!1;for(let e of o){if(e===t){l=!0;break}if(e.endsWith("/*")){let r=e.slice(0,-2);if(t.startsWith(r+"/")||t.startsWith(r)){l=!0;break}}if(e.includes("*")&&(function(e){let t=c.get(e);if(!t){let r=e.replace(/\*/g,".*");if(t=RegExp(`^${r}$`),c.set(e,t),c.size>100){let e=c.keys().next().value;e&&c.delete(e)}}return t})(e).test(t)){l=!0;break}}return m(u),u.set(r,{allowed:l,timestamp:n}),l}function P(){v(),u.clear(),c.clear()}function F(){d=null,p=null,f=null,y=null,E=null,g=null,o=!1,P()}(0,a.registerDbStateResetter)(F),e.s(["clearApiKeyCaches",()=>P,"createApiKey",()=>R,"deleteApiKey",()=>L,"getApiKeyById",()=>k,"getApiKeyMetadata",()=>O,"getApiKeys",()=>S,"isModelAllowedForKey",()=>M,"resetApiKeyState",()=>F,"updateApiKeyPermissions",()=>N,"validateApiKey",()=>w])}];
|
|
48
|
+
`).run({id:e,type:o.type,name:o.name,prefix:o.prefix||null,apiType:o.apiType||null,baseUrl:o.baseUrl||null,chatPath:o.chatPath||null,modelsPath:o.modelsPath||null,updatedAt:o.updatedAt}),(0,n.backupDbFile)("pre-write"),o}async function L(e){let t=(0,r.getDbInstance)(),a=t.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);return a?(t.prepare("DELETE FROM provider_nodes WHERE id = ?").run(e),(0,n.backupDbFile)("pre-write"),(0,r.rowToCamel)(a)):null}e.s(["cleanupProviderConnections",()=>I,"createProviderConnection",()=>_,"createProviderNode",()=>O,"deleteProviderConnection",()=>A,"deleteProviderConnectionsByProvider",()=>k,"deleteProviderNode",()=>L,"getDistinctGroups",()=>b,"getProviderConnectionById",()=>m,"getProviderConnections",()=>g,"getProviderNodeById",()=>R,"getProviderNodes",()=>C,"reorderProviderConnections",()=>D,"updateProviderConnection",()=>S,"updateProviderNode",()=>N],385498)},542949,e=>{"use strict";var t=e.i(157763),r=e.i(935050);let n="modelCompatOverrides";function a(e){let r=c((0,t.getDbInstance)().prepare("SELECT value FROM key_value WHERE namespace = ? AND key = ?").get(n,e)).value;if(!r)return[];try{let e=JSON.parse(r);return Array.isArray(e)?e:[]}catch{return[]}}function i(e,a){let i=(0,t.getDbInstance)();0===a.length?i.prepare("DELETE FROM key_value WHERE namespace = ? AND key = ?").run(n,e):i.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES (?, ?, ?)").run(n,e,JSON.stringify(a)),(0,r.backupDbFile)("pre-write")}function o(e){return a(e)}function l(e,t,r){let n=a(e),o=n.findIndex(e=>e.id===t),l={...o>=0?{...n[o]}:{id:t},id:t};"normalizeToolCallId"in r&&(r.normalizeToolCallId?l.normalizeToolCallId=!0:delete l.normalizeToolCallId),"preserveOpenAIDeveloperRole"in r&&(l.preserveOpenAIDeveloperRole=!!r.preserveOpenAIDeveloperRole);let s=n.filter(e=>e.id!==t),c=Object.prototype.hasOwnProperty.call(l,"preserveOpenAIDeveloperRole");(l.normalizeToolCallId||c)&&s.push(l),i(e,s)}function s(e,t){let r=a(e),n=r.filter(e=>e.id!==t);n.length!==r.length&&i(e,n)}function c(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return{key:"string"==typeof t.key?t.key:null,value:"string"==typeof t.value?t.value:null}}async function u(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'modelAliases'").all(),r={};for(let t of e){let{key:e,value:n}=c(t);e&&null!==n&&(r[e]=JSON.parse(n))}return r}async function p(e,n){(0,t.getDbInstance)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('modelAliases', ?, ?)").run(e,JSON.stringify(n)),(0,r.backupDbFile)("pre-write")}async function d(e){(0,t.getDbInstance)().prepare("DELETE FROM key_value WHERE namespace = 'modelAliases' AND key = ?").run(e),(0,r.backupDbFile)("pre-write")}async function f(e){let r=(0,t.getDbInstance)();if(e){let t=c(r.prepare("SELECT value FROM key_value WHERE namespace = 'mitmAlias' AND key = ?").get(e)).value;return t?JSON.parse(t):{}}let n=r.prepare("SELECT key, value FROM key_value WHERE namespace = 'mitmAlias'").all(),a={};for(let e of n){let{key:t,value:r}=c(e);t&&null!==r&&(a[t]=JSON.parse(r))}return a}async function y(e,n){(0,t.getDbInstance)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('mitmAlias', ?, ?)").run(e,JSON.stringify(n||{})),(0,r.backupDbFile)("pre-write")}async function E(e){let r=(0,t.getDbInstance)();if(e){let t=c(r.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value;return t?JSON.parse(t):[]}let n=r.prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),a={};for(let e of n){let{key:t,value:r}=c(e);t&&null!==r&&(a[t]=JSON.parse(r))}return a}async function v(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),r={};for(let t of e){let{key:e,value:n}=c(t);e&&null!==n&&(r[e]=JSON.parse(n))}return r}async function g(e,n,a,i="manual",o="chat-completions",l=["chat"]){let s=(0,t.getDbInstance)(),u=c(s.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value,p=u?JSON.parse(u):[],d=p.find(e=>e.id===n);if(d)return d;let f={id:n,name:a||n,source:i,apiFormat:o,supportedEndpoints:l};return p.push(f),s.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('customModels', ?, ?)").run(e,JSON.stringify(p)),(0,r.backupDbFile)("pre-write"),f}async function m(e,n){let a=(0,t.getDbInstance)(),i=a.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e);if(!i)return!1;let o=c(i).value;if(!o)return!1;let l=JSON.parse(o),u=l.length,p=l.filter(e=>e.id!==n);return p.length!==u&&(0===p.length?a.prepare("DELETE FROM key_value WHERE namespace = 'customModels' AND key = ?").run(e):a.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(p),e),s(e,n),(0,r.backupDbFile)("pre-write"),!0)}async function _(e,n,a={}){let i=(0,t.getDbInstance)(),o=i.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e);if(!o)return null;let l=c(o).value;if(!l)return null;let s=JSON.parse(l),u=s.findIndex(e=>e.id===n);if(-1===u)return null;let p=s[u],d={...p,...void 0!==a.modelName?{name:a.modelName||p.name}:{},...void 0!==a.apiFormat?{apiFormat:a.apiFormat}:{},...void 0!==a.supportedEndpoints?{supportedEndpoints:a.supportedEndpoints}:{},...void 0!==a.normalizeToolCallId?{normalizeToolCallId:!!a.normalizeToolCallId}:{},...void 0!==a.preserveOpenAIDeveloperRole?{preserveOpenAIDeveloperRole:!!a.preserveOpenAIDeveloperRole}:{}};return s[u]=d,i.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(s),e),(0,r.backupDbFile)("pre-write"),d}function h(e,r){let n=c((0,t.getDbInstance)().prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value;if(!n)return null;try{let e=JSON.parse(n);if(!Array.isArray(e))return null;return e.find(e=>!(!e||"object"!=typeof e||Array.isArray(e))&&e.id===r)??null}catch{return null}}function S(e,t){let r=h(e,t);if(r)return!!r.normalizeToolCallId;let n=a(e).find(e=>e.id===t);return!!n?.normalizeToolCallId}function A(e,t){let r=h(e,t);if(r)return Object.prototype.hasOwnProperty.call(r,"preserveOpenAIDeveloperRole")?!!r.preserveOpenAIDeveloperRole:void 0;let n=a(e).find(e=>e.id===t);if(n&&Object.prototype.hasOwnProperty.call(n,"preserveOpenAIDeveloperRole"))return!!n.preserveOpenAIDeveloperRole}e.s(["addCustomModel",()=>g,"deleteModelAlias",()=>d,"getAllCustomModels",()=>v,"getCustomModels",()=>E,"getMitmAlias",()=>f,"getModelAliases",()=>u,"getModelCompatOverrides",()=>o,"getModelNormalizeToolCallId",()=>S,"getModelPreserveOpenAIDeveloperRole",()=>A,"mergeModelCompatOverride",()=>l,"removeCustomModel",()=>m,"removeModelCompatOverride",()=>s,"setMitmAliasAll",()=>y,"setModelAlias",()=>p,"updateCustomModel",()=>_])},151205,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050);function a(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return"string"==typeof t.data?t.data:null}async function i(){return(0,r.getDbInstance)().prepare("SELECT data FROM combos ORDER BY name").all().map(e=>a(e)).filter(e=>null!==e).map(e=>JSON.parse(e))}async function o(e){let t=a((0,r.getDbInstance)().prepare("SELECT data FROM combos WHERE id = ?").get(e));return t?JSON.parse(t):null}async function l(e){let t=a((0,r.getDbInstance)().prepare("SELECT data FROM combos WHERE name = ?").get(e));return t?JSON.parse(t):null}async function s(e){let a=(0,r.getDbInstance)(),i=new Date().toISOString(),o={id:(0,t.v4)(),name:e.name,models:e.models||[],strategy:e.strategy||"priority",config:e.config||{},createdAt:i,updatedAt:i};return a.prepare("INSERT INTO combos (id, name, data, created_at, updated_at) VALUES (?, ?, ?, ?, ?)").run(o.id,o.name,JSON.stringify(o),i,i),(0,n.backupDbFile)("pre-write"),o}async function c(e,t){let i=(0,r.getDbInstance)(),o=i.prepare("SELECT data FROM combos WHERE id = ?").get(e);if(!o)return null;let l=a(o);if(!l)return null;let s={...JSON.parse(l),...t,updatedAt:new Date().toISOString()};return i.prepare("UPDATE combos SET name = ?, data = ?, updated_at = ? WHERE id = ?").run(s.name,JSON.stringify(s),s.updatedAt,e),(0,n.backupDbFile)("pre-write"),s}async function u(e){return 0!==(0,r.getDbInstance)().prepare("DELETE FROM combos WHERE id = ?").run(e).changes&&((0,n.backupDbFile)("pre-write"),!0)}e.s(["createCombo",()=>s,"deleteCombo",()=>u,"getComboById",()=>o,"getComboByName",()=>l,"getCombos",()=>i,"updateCombo",()=>c])},245272,e=>{"use strict";e.i(385498),e.i(542949),e.i(151205),e.i(125852),e.i(548941),e.i(954031),e.i(751183),e.i(935050),e.i(403122),e.s([])},751183,e=>{"use strict";var t=e.i(157763),r=e.i(403122),n=e.i(935050);let a=["litellm"],i=parseInt(process.env.PRICING_SYNC_INTERVAL||"86400",10),o=Number.isFinite(i)&&i>0?1e3*i:864e5,l=(process.env.PRICING_SYNC_SOURCES||"litellm").split(",").map(e=>e.trim()).filter(e=>a.includes(e)),s={openai:["openai","cx"],anthropic:["anthropic","cc"],vertex_ai:["gemini","gc"],"vertex_ai-anthropic_models":["anthropic"],google:["gemini","gc"],deepseek:["if"],groq:["groq"],together_ai:["openrouter"],bedrock:["kiro"],fireworks_ai:["fireworks"],cerebras:["cerebras"],nvidia_nim:["nvidia"],siliconflow:["siliconflow"]},c=null,u=null,p=0,d=o;async function f(){let e=await fetch("https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",{signal:AbortSignal.timeout(3e4)});if(!e.ok)throw Error(`LiteLLM fetch failed [${e.status}]: ${e.statusText}`);let t=await e.text();try{return JSON.parse(t)}catch{throw Error(`LiteLLM returned invalid JSON (${t.slice(0,100)}...)`)}}function y(e){let t={};for(let[r,n]of Object.entries(e)){if(n.mode&&!["chat","completion"].includes(n.mode)||!n.input_cost_per_token&&0!==n.input_cost_per_token)continue;let e={input:Math.round(1e3*(1e6*(n.input_cost_per_token||0)))/1e3,output:Math.round(1e3*(1e6*(n.output_cost_per_token||0)))/1e3};null!=n.cache_read_input_token_cost&&(e.cached=Math.round(1e6*n.cache_read_input_token_cost*1e3)/1e3),null!=n.cache_creation_input_token_cost&&(e.cache_creation=Math.round(1e6*n.cache_creation_input_token_cost*1e3)/1e3);let a=r.indexOf("/"),i=a>=0?r.slice(a+1):r,o=n.litellm_provider||"",l=s[o];if(l)for(let r of l)t[r]||(t[r]={}),t[r][i]=e;else o&&(t[o]||(t[o]={}),t[o][i]=e)}return t}function E(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'pricing_synced'").all(),r={};for(let t of e){let e=t&&"object"==typeof t?t:{},n="string"==typeof e.key?e.key:null,a="string"==typeof e.value?e.value:null;if(n&&null!==a)try{r[n]=JSON.parse(a)}catch{console.warn(`[PRICING_SYNC] Corrupted data for provider "${n}", skipping`)}}return r}function v(e){let a=(0,t.getDbInstance)(),i=a.prepare("DELETE FROM key_value WHERE namespace = 'pricing_synced'"),o=a.prepare("INSERT INTO key_value (namespace, key, value) VALUES ('pricing_synced', ?, ?)");a.transaction(()=>{for(let[t,r]of(i.run(),Object.entries(e)))o.run(t,JSON.stringify(r))})(),(0,n.backupDbFile)("pre-write"),(0,r.invalidateDbCache)("pricing")}function g(){(0,t.getDbInstance)().prepare("DELETE FROM key_value WHERE namespace = 'pricing_synced'").run(),(0,n.backupDbFile)("pre-write"),(0,r.invalidateDbCache)("pricing")}async function m(e){let t=e?.sources||l,r=e?.dryRun??!1,n=t.filter(e=>a.includes(e)),i=t.filter(e=>!a.includes(e));if(0===n.length){let e=a.join(", ");return{success:!1,modelCount:0,providerCount:0,source:t.join(","),dryRun:r,error:`No valid sources provided. Supported: ${e}. Invalid: ${i.join(", ")}`}}try{let e={};for(let t of n)if("litellm"===t){let t=await f(),r=y(t);for(let[t,n]of Object.entries(r))e[t]||(e[t]={}),Object.assign(e[t],n)}let t=Object.values(e).reduce((e,t)=>e+Object.keys(t).length,0),a=Object.keys(e).length;return r||(v(e),u=new Date().toISOString(),p=t),{success:!0,modelCount:t,providerCount:a,source:n.join(","),dryRun:r,...i.length>0?{warnings:[`Unknown sources ignored: ${i.join(", ")}`]}:{},...r?{data:e}:{}}}catch(n){let e=n instanceof Error?n.message:String(n);return console.warn("[PRICING_SYNC] Sync failed:",e),{success:!1,modelCount:0,providerCount:0,source:t.join(","),dryRun:r,error:e}}}function _(e){if(c)return;let t=e??o;d=t,console.log(`[PRICING_SYNC] Starting periodic sync every ${t/1e3}s`),m().then(e=>{e.success&&console.log(`[PRICING_SYNC] Initial sync complete: ${e.modelCount} models from ${e.providerCount} providers`)}).catch(e=>{console.warn("[PRICING_SYNC] Initial sync error:",e instanceof Error?e.message:e)}),c=setInterval(()=>{m().then(e=>{e.success&&console.log(`[PRICING_SYNC] Periodic sync complete: ${e.modelCount} models`)}).catch(e=>{console.warn("[PRICING_SYNC] Periodic sync error:",e instanceof Error?e.message:e)})},t)}function h(){c&&(clearInterval(c),c=null,console.log("[PRICING_SYNC] Periodic sync stopped"))}function S(){return{enabled:"true"===process.env.PRICING_SYNC_ENABLED,lastSync:u,lastSyncModelCount:p,nextSync:c&&u?new Date(new Date(u).getTime()+d).toISOString():null,intervalMs:d,sources:l}}async function A(){"true"!==process.env.PRICING_SYNC_ENABLED?console.log("[PRICING_SYNC] Disabled (set PRICING_SYNC_ENABLED=true to enable)"):_()}e.s(["clearSyncedPricing",()=>g,"fetchLiteLLMPricing",()=>f,"getSyncStatus",()=>S,"getSyncedPricing",()=>E,"initPricingSync",()=>A,"saveSyncedPricing",()=>v,"startPeriodicSync",()=>_,"stopPeriodicSync",()=>h,"syncPricingFromSources",()=>m,"transformToOmniRoute",()=>y])},125852,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050),a=e.i(91429),i=e.i(439951);let o=!1,l=new Map,s=new Map,c=new Map,u=new Map,p=null,d=null,f=null,y=null,E=null,v=null;function g(){l.clear(),s.clear(),u.clear()}function m(e){return e&&"object"==typeof e?e:{}}function _(e){if(e.size>1e3){let t=Math.floor(200),r=0;for(let n of e.keys()){if(r++>=t)break;e.delete(n)}}}function h(e){if(!o)try{let t=e.prepare("PRAGMA table_info(api_keys)").all(),r=new Set(t.map(e=>String(e.name??"")));r.has("allowed_models")||(e.exec("ALTER TABLE api_keys ADD COLUMN allowed_models TEXT"),console.log("[DB] Added api_keys.allowed_models column")),r.has("no_log")||(e.exec("ALTER TABLE api_keys ADD COLUMN no_log INTEGER NOT NULL DEFAULT 0"),console.log("[DB] Added api_keys.no_log column")),r.has("allowed_connections")||(e.exec("ALTER TABLE api_keys ADD COLUMN allowed_connections TEXT"),console.log("[DB] Added api_keys.allowed_connections column")),r.has("auto_resolve")||(e.exec("ALTER TABLE api_keys ADD COLUMN auto_resolve INTEGER NOT NULL DEFAULT 0"),console.log("[DB] Added api_keys.auto_resolve column")),r.has("is_active")||(e.exec("ALTER TABLE api_keys ADD COLUMN is_active INTEGER NOT NULL DEFAULT 1"),console.log("[DB] Added api_keys.is_active column")),r.has("access_schedule")||(e.exec("ALTER TABLE api_keys ADD COLUMN access_schedule TEXT"),console.log("[DB] Added api_keys.access_schedule column")),o=!0}catch(e){console.warn("[DB] Failed to verify api_keys schema:",e instanceof Error?e.message:String(e))}if(p&&d&&f&&y&&E&&v||(p=e.prepare("SELECT * FROM api_keys ORDER BY created_at"),d=e.prepare("SELECT * FROM api_keys WHERE id = ?"),f=e.prepare("SELECT 1 FROM api_keys WHERE key = ?"),y=e.prepare("SELECT id, name, machine_id, allowed_models, allowed_connections, no_log, auto_resolve, is_active, access_schedule FROM api_keys WHERE key = ?"),E=e.prepare("INSERT INTO api_keys (id, name, key, machine_id, allowed_models, no_log, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)"),v=e.prepare("DELETE FROM api_keys WHERE id = ?")),!p||!d||!f||!y||!E||!v)throw Error("Failed to initialize API key prepared statements");return{getAllKeys:p,getKeyById:d,validateKey:f,getKeyMetadata:y,insertKey:E,deleteKey:v}}async function S(){return h((0,r.getDbInstance)()).getAllKeys.all().map(e=>{let t=m((0,r.rowToCamel)(e));return t.allowedModels=k(t.allowedModels),t.allowedConnections=C(t.allowedConnections),t.noLog=D(t.noLog),t.autoResolve=T(t.autoResolve),t.isActive=I(t.isActive),t.accessSchedule=b(t.accessSchedule),"string"==typeof t.id&&t.id.length>0&&(0,i.setNoLog)(t.id,!0===t.noLog),t})}async function A(e){let t=h((0,r.getDbInstance)()).getKeyById.get(e);if(!t)return null;let n=m((0,r.rowToCamel)(t));return n.allowedModels=k(n.allowedModels),n.allowedConnections=C(n.allowedConnections),n.noLog=D(n.noLog),n.autoResolve=T(n.autoResolve),n.isActive=I(n.isActive),n.accessSchedule=b(n.accessSchedule),"string"==typeof n.id&&n.id.length>0&&(0,i.setNoLog)(n.id,!0===n.noLog),n}function k(e){if(!e||"string"!=typeof e||""===e.trim())return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}function D(e){return!0===e||1===e||"1"===e}function T(e){return!0===e||1===e||"1"===e}function I(e){return 0!==e&&"0"!==e&&!1!==e}function b(e){if(!e||"string"!=typeof e||""===e.trim())return null;try{let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t)||"boolean"!=typeof t.enabled||"string"!=typeof t.from||"string"!=typeof t.until||!Array.isArray(t.days)||"string"!=typeof t.tz)return null;let r=t.days.filter(e=>"number"==typeof e&&Number.isInteger(e)&&e>=0&&e<=6);return{enabled:t.enabled,from:t.from,until:t.until,days:r,tz:t.tz}}catch{return null}}function C(e){if(!e||"string"!=typeof e||""===e.trim())return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}async function R(a,o){if(!o)throw Error("machineId is required");let l=(0,r.getDbInstance)(),s=new Date().toISOString(),{generateApiKeyWithMachine:c}=await e.A(579042),u=c(o),p={id:(0,t.v4)(),name:a,key:u.key,machineId:o,allowedModels:[],allowedConnections:[],noLog:!1,createdAt:s};return h(l).insertKey.run(p.id,p.name,p.key,p.machineId,"[]",0,p.createdAt),(0,i.setNoLog)(p.id,!1),(0,n.backupDbFile)("pre-write"),p}async function O(e,t){let a=(0,r.getDbInstance)();h(a);let o=Array.isArray(t)||void 0===t?{allowedModels:t||[]}:{name:t.name,allowedModels:t.allowedModels,allowedConnections:t.allowedConnections,noLog:t.noLog,autoResolve:t.autoResolve,isActive:t.isActive,accessSchedule:t.accessSchedule};if(void 0===o.name&&void 0===o.allowedModels&&void 0===o.allowedConnections&&void 0===o.noLog&&void 0===o.autoResolve&&void 0===o.isActive&&void 0===o.accessSchedule)return!1;let l=[],s={id:e};return void 0!==o.name&&(l.push("name = @name"),s.name=o.name),void 0!==o.allowedModels&&(l.push("allowed_models = @allowedModels"),s.allowedModels=JSON.stringify(o.allowedModels||[])),void 0!==o.allowedConnections&&(l.push("allowed_connections = @allowedConnections"),s.allowedConnections=JSON.stringify(o.allowedConnections||[])),void 0!==o.noLog&&(l.push("no_log = @noLog"),s.noLog=+!!o.noLog),void 0!==o.autoResolve&&(l.push("auto_resolve = @autoResolve"),s.autoResolve=+!!o.autoResolve),void 0!==o.isActive&&(l.push("is_active = @isActive"),s.isActive=+!!o.isActive),void 0!==o.accessSchedule&&(l.push("access_schedule = @accessSchedule"),s.accessSchedule=null!==o.accessSchedule?JSON.stringify(o.accessSchedule):null),0!==a.prepare(`UPDATE api_keys SET ${l.join(", ")} WHERE id = @id`).run(s).changes&&(void 0!==o.noLog&&(0,i.setNoLog)(e,o.noLog),g(),(0,n.backupDbFile)("pre-write"),!0)}async function N(e){return 0!==h((0,r.getDbInstance)()).deleteKey.run(e).changes&&((0,i.setNoLog)(e,!1),g(),(0,n.backupDbFile)("pre-write"),!0)}async function L(e){if(!e||"string"!=typeof e)return!1;let t=Date.now(),n=l.get(e);if(n&&t-n.timestamp<6e4)return n.valid;let a=!!h((0,r.getDbInstance)()).validateKey.get(e);return a&&(_(l),l.set(e,{valid:!0,timestamp:t})),a}async function w(e){if(!e||"string"!=typeof e)return null;let t=Date.now(),n=s.get(e);if(n&&t-n.timestamp<6e4)return n.value;let a=h((0,r.getDbInstance)()).getKeyMetadata.get(e);if(!a)return null;let o=m(a),l="string"==typeof o.id?o.id:"",c="string"==typeof o.name?o.name:"",u=o.machine_id??o.machineId,p={id:l,name:c,machineId:"string"==typeof u?u:null,allowedModels:k(o.allowed_models??o.allowedModels),allowedConnections:C(o.allowed_connections??o.allowedConnections),noLog:D(o.no_log??o.noLog),autoResolve:T(o.auto_resolve??o.autoResolve),isActive:I(o.is_active??o.isActive),accessSchedule:b(o.access_schedule??o.accessSchedule)};return p.id?((0,i.setNoLog)(p.id,!0===p.noLog),_(s),s.set(e,{value:p,timestamp:t}),p):null}async function M(e,t){if(!e)return!0;if(!t)return!1;let r=`${e}:${t}`,n=Date.now(),a=u.get(r);if(a&&n-a.timestamp<6e4)return a.allowed;let i=await w(e);if(!i)return!1;let{allowedModels:o}=i;if(!o||0===o.length)return!0;let l=!1;for(let e of o){if(e===t){l=!0;break}if(e.endsWith("/*")){let r=e.slice(0,-2);if(t.startsWith(r+"/")||t.startsWith(r)){l=!0;break}}if(e.includes("*")&&(function(e){let t=c.get(e);if(!t){let r=e.replace(/\*/g,".*");if(t=RegExp(`^${r}$`),c.set(e,t),c.size>100){let e=c.keys().next().value;e&&c.delete(e)}}return t})(e).test(t)){l=!0;break}}return _(u),u.set(r,{allowed:l,timestamp:n}),l}function P(){g(),u.clear(),c.clear()}function F(){p=null,d=null,f=null,y=null,E=null,v=null,o=!1,P()}(0,a.registerDbStateResetter)(F),e.s(["clearApiKeyCaches",()=>P,"createApiKey",()=>R,"deleteApiKey",()=>N,"getApiKeyById",()=>A,"getApiKeyMetadata",()=>w,"getApiKeys",()=>S,"isModelAllowedForKey",()=>M,"resetApiKeyState",()=>F,"updateApiKeyPermissions",()=>O,"validateApiKey",()=>L])}];
|
|
49
49
|
|
|
50
50
|
//# sourceMappingURL=%5Broot-of-the-server%5D__a630d6ef._.js.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module.exports=[751183,e=>{"use strict";var t=e.i(157763),r=e.i(403122),n=e.i(935050);let a=["litellm"],i=parseInt(process.env.PRICING_SYNC_INTERVAL||"86400",10),o=Number.isFinite(i)&&i>0?1e3*i:864e5,l=(process.env.PRICING_SYNC_SOURCES||"litellm").split(",").map(e=>e.trim()).filter(e=>a.includes(e)),s={openai:["openai","cx"],anthropic:["anthropic","cc"],vertex_ai:["gemini","gc"],"vertex_ai-anthropic_models":["anthropic"],google:["gemini","gc"],deepseek:["if"],groq:["groq"],together_ai:["openrouter"],bedrock:["kiro"],fireworks_ai:["fireworks"],cerebras:["cerebras"],nvidia_nim:["nvidia"],siliconflow:["siliconflow"]},c=null,u=null,p=0,d=o;async function f(){let e=await fetch("https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",{signal:AbortSignal.timeout(3e4)});if(!e.ok)throw Error(`LiteLLM fetch failed [${e.status}]: ${e.statusText}`);let t=await e.text();try{return JSON.parse(t)}catch{throw Error(`LiteLLM returned invalid JSON (${t.slice(0,100)}...)`)}}function y(e){let t={};for(let[r,n]of Object.entries(e)){if(n.mode&&!["chat","completion"].includes(n.mode)||!n.input_cost_per_token&&0!==n.input_cost_per_token)continue;let e={input:Math.round(1e3*(1e6*(n.input_cost_per_token||0)))/1e3,output:Math.round(1e3*(1e6*(n.output_cost_per_token||0)))/1e3};null!=n.cache_read_input_token_cost&&(e.cached=Math.round(1e6*n.cache_read_input_token_cost*1e3)/1e3),null!=n.cache_creation_input_token_cost&&(e.cache_creation=Math.round(1e6*n.cache_creation_input_token_cost*1e3)/1e3);let a=r.indexOf("/"),i=a>=0?r.slice(a+1):r,o=n.litellm_provider||"",l=s[o];if(l)for(let r of l)t[r]||(t[r]={}),t[r][i]=e;else o&&(t[o]||(t[o]={}),t[o][i]=e)}return t}function E(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'pricing_synced'").all(),r={};for(let t of e){let e=t&&"object"==typeof t?t:{},n="string"==typeof e.key?e.key:null,a="string"==typeof e.value?e.value:null;if(n&&null!==a)try{r[n]=JSON.parse(a)}catch{console.warn(`[PRICING_SYNC] Corrupted data for provider "${n}", skipping`)}}return r}function v(e){let a=(0,t.getDbInstance)(),i=a.prepare("DELETE FROM key_value WHERE namespace = 'pricing_synced'"),o=a.prepare("INSERT INTO key_value (namespace, key, value) VALUES ('pricing_synced', ?, ?)");a.transaction(()=>{for(let[t,r]of(i.run(),Object.entries(e)))o.run(t,JSON.stringify(r))})(),(0,n.backupDbFile)("pre-write"),(0,r.invalidateDbCache)("pricing")}function m(){(0,t.getDbInstance)().prepare("DELETE FROM key_value WHERE namespace = 'pricing_synced'").run(),(0,n.backupDbFile)("pre-write"),(0,r.invalidateDbCache)("pricing")}async function _(e){let t=e?.sources||l,r=e?.dryRun??!1,n=t.filter(e=>a.includes(e)),i=t.filter(e=>!a.includes(e));if(0===n.length){let e=a.join(", ");return{success:!1,modelCount:0,providerCount:0,source:t.join(","),dryRun:r,error:`No valid sources provided. Supported: ${e}. Invalid: ${i.join(", ")}`}}try{let e={};for(let t of n)if("litellm"===t){let t=await f(),r=y(t);for(let[t,n]of Object.entries(r))e[t]||(e[t]={}),Object.assign(e[t],n)}let t=Object.values(e).reduce((e,t)=>e+Object.keys(t).length,0),a=Object.keys(e).length;return r||(v(e),u=new Date().toISOString(),p=t),{success:!0,modelCount:t,providerCount:a,source:n.join(","),dryRun:r,...i.length>0?{warnings:[`Unknown sources ignored: ${i.join(", ")}`]}:{},...r?{data:e}:{}}}catch(n){let e=n instanceof Error?n.message:String(n);return console.warn("[PRICING_SYNC] Sync failed:",e),{success:!1,modelCount:0,providerCount:0,source:t.join(","),dryRun:r,error:e}}}function g(e){if(c)return;let t=e??o;d=t,console.log(`[PRICING_SYNC] Starting periodic sync every ${t/1e3}s`),_().then(e=>{e.success&&console.log(`[PRICING_SYNC] Initial sync complete: ${e.modelCount} models from ${e.providerCount} providers`)}).catch(e=>{console.warn("[PRICING_SYNC] Initial sync error:",e instanceof Error?e.message:e)}),c=setInterval(()=>{_().then(e=>{e.success&&console.log(`[PRICING_SYNC] Periodic sync complete: ${e.modelCount} models`)}).catch(e=>{console.warn("[PRICING_SYNC] Periodic sync error:",e instanceof Error?e.message:e)})},t)}function h(){c&&(clearInterval(c),c=null,console.log("[PRICING_SYNC] Periodic sync stopped"))}function S(){return{enabled:"true"===process.env.PRICING_SYNC_ENABLED,lastSync:u,lastSyncModelCount:p,nextSync:c&&u?new Date(new Date(u).getTime()+d).toISOString():null,intervalMs:d,sources:l}}async function k(){"true"!==process.env.PRICING_SYNC_ENABLED?console.log("[PRICING_SYNC] Disabled (set PRICING_SYNC_ENABLED=true to enable)"):g()}e.s(["clearSyncedPricing",()=>m,"fetchLiteLLMPricing",()=>f,"getSyncStatus",()=>S,"getSyncedPricing",()=>E,"initPricingSync",()=>k,"saveSyncedPricing",()=>v,"startPeriodicSync",()=>g,"stopPeriodicSync",()=>h,"syncPricingFromSources",()=>_,"transformToOmniRoute",()=>y])},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},385498,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050),a=e.i(254799);let i="aes-256-gcm",o="enc:v1:",l=null;function s(){if(null!==l)return l;let e=process.env.STORAGE_ENCRYPTION_KEY;return e?l=(0,a.scryptSync)(e,"omniroute-field-encryption-v1",32):null}function c(){return!!process.env.STORAGE_ENCRYPTION_KEY}function u(e){if(!e||"string"!=typeof e)return e;let t=s();if(!t||e.startsWith(o))return e;let r=(0,a.randomBytes)(16),n=(0,a.createCipheriv)(i,t,r),l=n.update(e,"utf8","hex");l+=n.final("hex");let c=n.getAuthTag().toString("hex");return`${o}${r.toString("hex")}:${l}:${c}`}function p(e){if(!e||"string"!=typeof e||!e.startsWith(o))return e;let t=s();if(!t)return console.warn("[Encryption] Found encrypted data but STORAGE_ENCRYPTION_KEY is not set. Cannot decrypt."),e;let r=e.slice(o.length).split(":");if(3!==r.length)return console.error("[Encryption] Malformed encrypted value"),e;let[n,l,c]=r;try{let e=Buffer.from(n,"hex"),r=Buffer.from(c,"hex"),o=(0,a.createDecipheriv)(i,t,e);o.setAuthTag(r);let s=o.update(l,"hex","utf8");return s+=o.final("utf8")}catch(t){return console.error("[Encryption] Decryption failed:",t instanceof Error?t.message:String(t)),e}}function d(e){return c()&&e&&(e.apiKey&&(e.apiKey=u(e.apiKey)),e.accessToken&&(e.accessToken=u(e.accessToken)),e.refreshToken&&(e.refreshToken=u(e.refreshToken)),e.idToken&&(e.idToken=u(e.idToken))),e}function f(e){return e&&c()?{...e,apiKey:p(e.apiKey),accessToken:p(e.accessToken),refreshToken:p(e.refreshToken),idToken:p(e.idToken)}:e}var y=e.i(403122);function E(e){return e&&"object"==typeof e?e:{}}function v(e){return"string"==typeof e?e:null}async function m(e={}){let t=(0,r.getDbInstance)(),n="SELECT * FROM provider_connections",a=[],i={};return e.provider&&(a.push("provider = @provider"),i.provider=e.provider),void 0!==e.isActive&&(a.push("is_active = @isActive"),i.isActive=+!!e.isActive),a.length>0&&(n+=" WHERE "+a.join(" AND ")),n+=" ORDER BY priority ASC, updated_at DESC",t.prepare(n).all(i).map(e=>f((0,r.cleanNulls)((0,r.rowToCamel)(e))))}async function _(e){let t=(0,r.getDbInstance)().prepare("SELECT * FROM provider_connections WHERE id = ?").get(e);return t?f((0,r.cleanNulls)((0,r.rowToCamel)(t))):null}async function g(e){var a,i,o;let l=(0,r.getDbInstance)(),s=new Date().toISOString(),c=null;if("oauth"===e.authType&&e.email){let t=v(E(e.providerSpecificData).workspaceId);"codex"===e.provider&&t?(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND email = ?").get(e.provider,t,e.email)||null)||(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND json_extract(provider_specific_data, '$.workspaceId') = ? AND (email IS NULL OR email = '')").get(e.provider,t)||null):c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'oauth' AND email = ?").get(e.provider,e.email)||null}else"apikey"===e.authType&&e.name&&(c=l.prepare("SELECT * FROM provider_connections WHERE provider = ? AND auth_type = 'apikey' AND name = ?").get(e.provider,e.name)||null);if(c){let t=v(c.id);if(!t)return null;let a={...E((0,r.rowToCamel)(c)),...e,updatedAt:s};return h(l,t,a),(0,n.backupDbFile)("pre-write"),(0,r.cleanNulls)(a)}let u=e.name||null;!u&&"oauth"===e.authType&&(e.email?u=e.email:e.displayName&&(u=e.displayName));let p=e.priority;if(!p){p=("number"==typeof(a=E(l.prepare("SELECT MAX(priority) as maxP FROM provider_connections WHERE provider = ?").get(e.provider)).maxP)?a:0)+1}let f={id:(0,t.v4)(),provider:e.provider,authType:e.authType||"oauth",name:u,priority:p,isActive:void 0===e.isActive||e.isActive,createdAt:s,updatedAt:s};for(let t of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","idToken","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","lastErrorType","lastErrorSource","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","rateLimitProtection","group"])void 0!==e[t]&&null!==e[t]&&(f[t]=e[t]);e.providerSpecificData&&Object.keys(e.providerSpecificData).length>0&&(f.providerSpecificData=e.providerSpecificData),i=l,o=d({...f}),i.prepare(`
|
|
2
|
+
INSERT INTO provider_connections (
|
|
3
|
+
id, provider, auth_type, name, email, priority, is_active,
|
|
4
|
+
access_token, refresh_token, expires_at, token_expires_at,
|
|
5
|
+
scope, project_id, test_status, error_code, last_error,
|
|
6
|
+
last_error_at, last_error_type, last_error_source, backoff_level,
|
|
7
|
+
rate_limited_until, health_check_interval, last_health_check_at,
|
|
8
|
+
last_tested, api_key, id_token, provider_specific_data,
|
|
9
|
+
expires_in, display_name, global_priority, default_model,
|
|
10
|
+
token_type, consecutive_use_count, rate_limit_protection, last_used_at, "group", created_at, updated_at
|
|
11
|
+
) VALUES (
|
|
12
|
+
@id, @provider, @authType, @name, @email, @priority, @isActive,
|
|
13
|
+
@accessToken, @refreshToken, @expiresAt, @tokenExpiresAt,
|
|
14
|
+
@scope, @projectId, @testStatus, @errorCode, @lastError,
|
|
15
|
+
@lastErrorAt, @lastErrorType, @lastErrorSource, @backoffLevel,
|
|
16
|
+
@rateLimitedUntil, @healthCheckInterval, @lastHealthCheckAt,
|
|
17
|
+
@lastTested, @apiKey, @idToken, @providerSpecificData,
|
|
18
|
+
@expiresIn, @displayName, @globalPriority, @defaultModel,
|
|
19
|
+
@tokenType, @consecutiveUseCount, @rateLimitProtection, @lastUsedAt, @group, @createdAt, @updatedAt
|
|
20
|
+
)
|
|
21
|
+
`).run({id:o.id,provider:o.provider,authType:o.authType||null,name:o.name||null,email:o.email||null,priority:o.priority||0,isActive:+(!1!==o.isActive),accessToken:o.accessToken||null,refreshToken:o.refreshToken||null,expiresAt:o.expiresAt||null,tokenExpiresAt:o.tokenExpiresAt||null,scope:o.scope||null,projectId:o.projectId||null,testStatus:o.testStatus||null,errorCode:o.errorCode||null,lastError:o.lastError||null,lastErrorAt:o.lastErrorAt||null,lastErrorType:o.lastErrorType||null,lastErrorSource:o.lastErrorSource||null,backoffLevel:o.backoffLevel||0,rateLimitedUntil:o.rateLimitedUntil||null,healthCheckInterval:o.healthCheckInterval||null,lastHealthCheckAt:o.lastHealthCheckAt||null,lastTested:o.lastTested||null,apiKey:o.apiKey||null,idToken:o.idToken||null,providerSpecificData:o.providerSpecificData?JSON.stringify(o.providerSpecificData):null,expiresIn:o.expiresIn||null,displayName:o.displayName||null,globalPriority:o.globalPriority||null,defaultModel:o.defaultModel||null,tokenType:o.tokenType||null,consecutiveUseCount:o.consecutiveUseCount||0,rateLimitProtection:+(!0===o.rateLimitProtection||1===o.rateLimitProtection),lastUsedAt:o.lastUsedAt||null,group:o.group||null,createdAt:o.createdAt,updatedAt:o.updatedAt});let m=v(e.provider);return m&&I(l,m),(0,n.backupDbFile)("pre-write"),(0,y.invalidateDbCache)("connections"),(0,r.cleanNulls)(f)}function h(e,t,r){let n=r.updatedAt||new Date().toISOString();e.prepare(`
|
|
22
|
+
UPDATE provider_connections SET
|
|
23
|
+
provider = @provider, auth_type = @authType, name = @name, email = @email,
|
|
24
|
+
priority = @priority, is_active = @isActive, access_token = @accessToken,
|
|
25
|
+
refresh_token = @refreshToken, expires_at = @expiresAt, token_expires_at = @tokenExpiresAt,
|
|
26
|
+
scope = @scope, project_id = @projectId, test_status = @testStatus, error_code = @errorCode,
|
|
27
|
+
last_error = @lastError, last_error_at = @lastErrorAt, last_error_type = @lastErrorType,
|
|
28
|
+
last_error_source = @lastErrorSource, backoff_level = @backoffLevel,
|
|
29
|
+
rate_limited_until = @rateLimitedUntil, health_check_interval = @healthCheckInterval,
|
|
30
|
+
last_health_check_at = @lastHealthCheckAt, last_tested = @lastTested, api_key = @apiKey,
|
|
31
|
+
id_token = @idToken, provider_specific_data = @providerSpecificData,
|
|
32
|
+
expires_in = @expiresIn, display_name = @displayName, global_priority = @globalPriority,
|
|
33
|
+
default_model = @defaultModel, token_type = @tokenType,
|
|
34
|
+
consecutive_use_count = @consecutiveUseCount,
|
|
35
|
+
rate_limit_protection = @rateLimitProtection,
|
|
36
|
+
last_used_at = @lastUsedAt,
|
|
37
|
+
"group" = @group,
|
|
38
|
+
updated_at = @updatedAt
|
|
39
|
+
WHERE id = @id
|
|
40
|
+
`).run({id:t,provider:r.provider,authType:r.authType||null,name:r.name||null,email:r.email||null,priority:r.priority||0,isActive:+(!1!==r.isActive),accessToken:r.accessToken||null,refreshToken:r.refreshToken||null,expiresAt:r.expiresAt||null,tokenExpiresAt:r.tokenExpiresAt||null,scope:r.scope||null,projectId:r.projectId||null,testStatus:r.testStatus||null,errorCode:r.errorCode||null,lastError:r.lastError||null,lastErrorAt:r.lastErrorAt||null,lastErrorType:r.lastErrorType||null,lastErrorSource:r.lastErrorSource||null,backoffLevel:r.backoffLevel||0,rateLimitedUntil:r.rateLimitedUntil||null,healthCheckInterval:r.healthCheckInterval||null,lastHealthCheckAt:r.lastHealthCheckAt||null,lastTested:r.lastTested||null,apiKey:r.apiKey||null,idToken:r.idToken||null,providerSpecificData:r.providerSpecificData?JSON.stringify(r.providerSpecificData):null,expiresIn:r.expiresIn||null,displayName:r.displayName||null,globalPriority:r.globalPriority||null,defaultModel:r.defaultModel||null,tokenType:r.tokenType||null,consecutiveUseCount:r.consecutiveUseCount||0,rateLimitProtection:+(!0===r.rateLimitProtection||1===r.rateLimitProtection),lastUsedAt:r.lastUsedAt||null,group:r.group||null,updatedAt:n})}async function S(e,t){let a=(0,r.getDbInstance)(),i=a.prepare("SELECT * FROM provider_connections WHERE id = ?").get(e);if(!i)return null;let o={...(0,r.rowToCamel)(i),...t,updatedAt:new Date().toISOString()};if(h(a,e,d({...o})),(0,n.backupDbFile)("pre-write"),(0,y.invalidateDbCache)("connections"),void 0!==t.priority){let e=E(i);I(a,"string"==typeof e.provider?e.provider:String(e.provider||""))}return(0,r.cleanNulls)(o)}async function k(e){let t=(0,r.getDbInstance)(),a=t.prepare("SELECT provider FROM provider_connections WHERE id = ?").get(e);if(!a)return!1;t.prepare("DELETE FROM provider_connections WHERE id = ?").run(e);let i=E(a);return I(t,"string"==typeof i.provider?i.provider:String(i.provider||"")),(0,n.backupDbFile)("pre-write"),(0,y.invalidateDbCache)("connections"),!0}async function D(e){let t=(0,r.getDbInstance)().prepare("DELETE FROM provider_connections WHERE provider = ?").run(e);return(0,n.backupDbFile)("pre-write"),t.changes}async function T(e){I((0,r.getDbInstance)(),e)}function I(e,t){let r=e.prepare("SELECT id, priority, updated_at FROM provider_connections WHERE provider = ? ORDER BY priority ASC, updated_at DESC").all(t),n=e.prepare("UPDATE provider_connections SET priority = ? WHERE id = ?");r.forEach((e,t)=>{let r=E(e);n.run(t+1,r.id)})}async function b(){return 0}async function A(){return(0,r.getDbInstance)().prepare('SELECT DISTINCT "group" FROM provider_connections WHERE "group" IS NOT NULL ORDER BY "group"').all().map(e=>String(e.group??"")).filter(Boolean)}async function C(e={}){let t=(0,r.getDbInstance)(),n="SELECT * FROM provider_nodes",a={};return e.type&&(n+=" WHERE type = @type",a.type=e.type),t.prepare(n).all(a).map(r.rowToCamel)}async function R(e){let t=(0,r.getDbInstance)().prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);return t?(0,r.rowToCamel)(t):null}async function O(e){let a=(0,r.getDbInstance)(),i=new Date().toISOString(),o={id:e.id||(0,t.v4)(),type:e.type,name:e.name,prefix:e.prefix||null,apiType:e.apiType||null,baseUrl:e.baseUrl||null,chatPath:e.chatPath||null,modelsPath:e.modelsPath||null,createdAt:i,updatedAt:i};return a.prepare(`
|
|
41
|
+
INSERT INTO provider_nodes (id, type, name, prefix, api_type, base_url, chat_path, models_path, created_at, updated_at)
|
|
42
|
+
VALUES (@id, @type, @name, @prefix, @apiType, @baseUrl, @chatPath, @modelsPath, @createdAt, @updatedAt)
|
|
43
|
+
`).run(o),(0,n.backupDbFile)("pre-write"),o}async function N(e,t){let a=(0,r.getDbInstance)(),i=a.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);if(!i)return null;let o={...E((0,r.rowToCamel)(i)),...t,updatedAt:new Date().toISOString()};return a.prepare(`
|
|
44
|
+
UPDATE provider_nodes SET type = @type, name = @name, prefix = @prefix,
|
|
45
|
+
api_type = @apiType, base_url = @baseUrl, chat_path = @chatPath,
|
|
46
|
+
models_path = @modelsPath, updated_at = @updatedAt
|
|
47
|
+
WHERE id = @id
|
|
48
|
+
`).run({id:e,type:o.type,name:o.name,prefix:o.prefix||null,apiType:o.apiType||null,baseUrl:o.baseUrl||null,chatPath:o.chatPath||null,modelsPath:o.modelsPath||null,updatedAt:o.updatedAt}),(0,n.backupDbFile)("pre-write"),o}async function L(e){let t=(0,r.getDbInstance)(),a=t.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(e);return a?(t.prepare("DELETE FROM provider_nodes WHERE id = ?").run(e),(0,n.backupDbFile)("pre-write"),(0,r.rowToCamel)(a)):null}e.s(["cleanupProviderConnections",()=>b,"createProviderConnection",()=>g,"createProviderNode",()=>O,"deleteProviderConnection",()=>k,"deleteProviderConnectionsByProvider",()=>D,"deleteProviderNode",()=>L,"getDistinctGroups",()=>A,"getProviderConnectionById",()=>_,"getProviderConnections",()=>m,"getProviderNodeById",()=>R,"getProviderNodes",()=>C,"reorderProviderConnections",()=>T,"updateProviderConnection",()=>S,"updateProviderNode",()=>N],385498)},878947,e=>{"use strict";var t=e.i(828059);let r=(0,t.generateModels)(),n=(0,t.generateAliasMap)();function a(e){return r[e]||[]}function i(e){let t=r[e];return t?.[0]?.id||null}function o(e,t,n=new Set){if(n.has(e))return!0;let a=r[e];return!!a&&a.some(e=>e.id===t)}function l(e,t){let n=r[e];if(!n)return t;let a=n.find(e=>e.id===t);return a?.name||t}function s(e,t){let n=r[e];if(!n)return null;let a=n.find(e=>e.id===t);return a?.targetFormat||null}function c(e){return r[n[e]||e]||[]}e.s(["PROVIDER_ID_TO_ALIAS",0,n,"PROVIDER_MODELS",0,r,"findModelName",()=>l,"getDefaultModel",()=>i,"getModelTargetFormat",()=>s,"getModelsByProviderId",()=>c,"getProviderModels",()=>a,"isValidModel",()=>o])},403122,e=>{"use strict";class t{cache=new Map;ttlMs;constructor(e){this.ttlMs=e}get(e){let t=this.cache.get(e);if(t)return Date.now()>t.expiresAt?void this.cache.delete(e):t.value}set(e,t){this.cache.set(e,{value:t,expiresAt:Date.now()+this.ttlMs})}invalidate(e){e?this.cache.delete(e):this.cache.clear()}}let r=new t(5e3),n=new t(3e4),a=new t(5e3);async function i(){let t=r.get("settings");if(t)return t;let{getSettings:n}=await e.A(606102),a=await n();return r.set("settings",a),a}async function o(){let t=n.get("pricing");if(t)return t;let{getPricing:r}=await e.A(606102),a=await r();return n.set("pricing",a),a}async function l(t){if(t&&Object.keys(t).length>0){let{getProviderConnections:r}=await e.A(789543);return r(t)}let r=a.get("all");if(r)return r;let{getProviderConnections:n}=await e.A(789543),i=await n();return a.set("all",i),i}function s(e){e&&"settings"!==e||r.invalidate(),e&&"pricing"!==e||n.invalidate(),e&&"connections"!==e||a.invalidate()}e.s(["getCachedPricing",()=>o,"getCachedProviderConnections",()=>l,"getCachedSettings",()=>i,"invalidateDbCache",()=>s])},792509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},785148,(e,t,r)=>{t.exports=e.x("better-sqlite3",()=>require("better-sqlite3"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},256770,e=>{"use strict";var t=e.i(814747),r=e.i(446786);let n="omniroute";function a(){try{return r.default.homedir()}catch{return process.cwd()}}function i(e){if("string"!=typeof e)return null;let r=e.trim();return r?t.default.resolve(r):null}function o(){return t.default.join(a(),`.${n}`)}function l({isCloud:e=!1}={}){let r;if(e)return"/tmp";let s=i(process.env.DATA_DIR);return s?s:(a(),(r=i(process.env.XDG_CONFIG_HOME))?t.default.join(r,n):o())}function s(e,r){return!!e&&!!r&&t.default.resolve(e)===t.default.resolve(r)}e.s(["getLegacyDotDataDir",()=>o,"isSamePath",()=>s,"resolveDataDir",()=>l])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},935050,91429,e=>{"use strict";var t=e.i(785148),r=e.i(814747),n=e.i(522734),a=e.i(157763);let i=new Set;function o(e){i.add(e)}function l(){for(let e of i)try{e()}catch(e){console.warn("[DB] Failed to reset module state:",e)}}e.s(["registerDbStateResetter",()=>o,"resetAllDbModuleState",()=>l],91429);let s=0;function c(e="auto"){try{if(a.isBuildPhase||a.isCloud||!a.SQLITE_FILE||!n.default.existsSync(a.SQLITE_FILE))return null;let t=n.default.statSync(a.SQLITE_FILE);if(t.size<4096)return console.warn(`[DB] Backup SKIPPED — DB too small (${t.size}B)`),null;let i=Date.now();if("manual"!==e&&"pre-restore"!==e&&i-s<36e5)return null;s=i;let o=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");n.default.existsSync(o)||n.default.mkdirSync(o,{recursive:!0});let l=n.default.readdirSync(o).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort();if(l.length>0){let e=l[l.length-1],a=n.default.statSync(r.default.join(o,e));if(a.size>4096&&t.size<.5*a.size)return console.warn(`[DB] Backup SKIPPED — DB shrank from ${a.size}B to ${t.size}B`),null}let c=new Date().toISOString().replace(/[:.]/g,"-"),u=r.default.join(o,`db_${c}_${e}.sqlite`);(0,a.getDbInstance)().backup(u).then(()=>{console.log(`[DB] Backup created: ${u} (${t.size} bytes)`)}).catch(e=>{let t=e instanceof Error?e.message:String(e);console.error("[DB] Backup failed:",t)});let p=n.default.readdirSync(o).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort();for(;p.length>20;){let e=0,t=1/0;for(let a=0;a<p.length-1;a++)try{let i=n.default.statSync(r.default.join(o,p[a]));i.size<t&&(t=i.size,e=a)}catch{e=a;break}try{n.default.unlinkSync(r.default.join(o,p[e]))}catch{}p.splice(e,1)}return{filename:r.default.basename(u),size:t.size}}catch(e){return console.error("[DB] Backup failed:",e instanceof Error?e.message:String(e)),null}}async function u(){let e=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");try{if(!n.default.existsSync(e))return[];return n.default.readdirSync(e).filter(e=>e.startsWith("db_")&&e.endsWith(".sqlite")).sort().reverse().map(a=>{let i=r.default.join(e,a),o=n.default.statSync(i),l=a.match(/^db_(.+?)_([^.]+)\.sqlite$/),s=l?l[2]:"unknown",c=0;try{let e=new t.default(i,{readonly:!0}),r=e.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get();c=r?.cnt||0,e.close()}catch{}return{id:a,filename:a,createdAt:o.mtime.toISOString(),size:o.size,reason:s,connectionCount:c}})}catch{return[]}}async function p(e){let i=a.DB_BACKUPS_DIR||r.default.join(a.DATA_DIR,"db_backups");if(!e.startsWith("db_")||!e.endsWith(".sqlite")||e.includes(r.default.sep)||e.includes("/"))throw Error("Invalid backup ID");let o=r.default.resolve(i,e);if(!o.startsWith(r.default.resolve(i)+r.default.sep)&&o!==r.default.resolve(i))throw Error("Invalid backup ID: path traversal detected");if(!n.default.existsSync(o))throw Error(`Backup not found: ${e}`);try{let e=new t.default(o,{readonly:!0}),r=e.pragma("integrity_check");if(e.close(),r[0]?.integrity_check!=="ok")throw Error("Backup integrity check failed")}catch(t){if(t instanceof Error&&"Backup integrity check failed"===t.message)throw t;let e=t instanceof Error?t.message:String(t);throw Error(`Backup file is corrupt: ${e}`)}s=0,c("pre-restore"),(0,a.resetDbInstance)(),l();let u=a.SQLITE_FILE;if(!u)throw Error("SQLITE_FILE is unavailable in local backup restore");for(let e of[u,`${u}-wal`,`${u}-shm`,`${u}-journal`])e&&n.default.existsSync(e)&&n.default.unlinkSync(e);n.default.copyFileSync(o,u);let p=(0,a.getDbInstance)(),d=p.prepare("SELECT COUNT(*) as cnt FROM provider_connections").get()?.cnt||0,f=p.prepare("SELECT COUNT(*) as cnt FROM provider_nodes").get()?.cnt||0,y=p.prepare("SELECT COUNT(*) as cnt FROM combos").get()?.cnt||0,E=p.prepare("SELECT COUNT(*) as cnt FROM api_keys").get()?.cnt||0;return console.log(`[DB] Restored backup: ${e} (${d} connections)`),{restored:!0,backupId:e,connectionCount:d,nodeCount:f,comboCount:y,apiKeyCount:E}}e.s(["backupDbFile",()=>c,"listDbBackups",()=>u,"restoreDbBackup",()=>p],935050)},542949,e=>{"use strict";var t=e.i(157763),r=e.i(935050);let n="modelCompatOverrides";function a(e){let r=c((0,t.getDbInstance)().prepare("SELECT value FROM key_value WHERE namespace = ? AND key = ?").get(n,e)).value;if(!r)return[];try{let e=JSON.parse(r);return Array.isArray(e)?e:[]}catch{return[]}}function i(e,a){let i=(0,t.getDbInstance)();0===a.length?i.prepare("DELETE FROM key_value WHERE namespace = ? AND key = ?").run(n,e):i.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES (?, ?, ?)").run(n,e,JSON.stringify(a)),(0,r.backupDbFile)("pre-write")}function o(e){return a(e)}function l(e,t,r){let n=a(e),o=n.findIndex(e=>e.id===t),l={...o>=0?{...n[o]}:{id:t},id:t};"normalizeToolCallId"in r&&(r.normalizeToolCallId?l.normalizeToolCallId=!0:delete l.normalizeToolCallId),"preserveOpenAIDeveloperRole"in r&&(l.preserveOpenAIDeveloperRole=!!r.preserveOpenAIDeveloperRole);let s=n.filter(e=>e.id!==t),c=Object.prototype.hasOwnProperty.call(l,"preserveOpenAIDeveloperRole");(l.normalizeToolCallId||c)&&s.push(l),i(e,s)}function s(e,t){let r=a(e),n=r.filter(e=>e.id!==t);n.length!==r.length&&i(e,n)}function c(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return{key:"string"==typeof t.key?t.key:null,value:"string"==typeof t.value?t.value:null}}async function u(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'modelAliases'").all(),r={};for(let t of e){let{key:e,value:n}=c(t);e&&null!==n&&(r[e]=JSON.parse(n))}return r}async function p(e,n){(0,t.getDbInstance)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('modelAliases', ?, ?)").run(e,JSON.stringify(n)),(0,r.backupDbFile)("pre-write")}async function d(e){(0,t.getDbInstance)().prepare("DELETE FROM key_value WHERE namespace = 'modelAliases' AND key = ?").run(e),(0,r.backupDbFile)("pre-write")}async function f(e){let r=(0,t.getDbInstance)();if(e){let t=c(r.prepare("SELECT value FROM key_value WHERE namespace = 'mitmAlias' AND key = ?").get(e)).value;return t?JSON.parse(t):{}}let n=r.prepare("SELECT key, value FROM key_value WHERE namespace = 'mitmAlias'").all(),a={};for(let e of n){let{key:t,value:r}=c(e);t&&null!==r&&(a[t]=JSON.parse(r))}return a}async function y(e,n){(0,t.getDbInstance)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('mitmAlias', ?, ?)").run(e,JSON.stringify(n||{})),(0,r.backupDbFile)("pre-write")}async function E(e){let r=(0,t.getDbInstance)();if(e){let t=c(r.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value;return t?JSON.parse(t):[]}let n=r.prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),a={};for(let e of n){let{key:t,value:r}=c(e);t&&null!==r&&(a[t]=JSON.parse(r))}return a}async function v(){let e=(0,t.getDbInstance)().prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),r={};for(let t of e){let{key:e,value:n}=c(t);e&&null!==n&&(r[e]=JSON.parse(n))}return r}async function m(e,n,a,i="manual",o="chat-completions",l=["chat"]){let s=(0,t.getDbInstance)(),u=c(s.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value,p=u?JSON.parse(u):[],d=p.find(e=>e.id===n);if(d)return d;let f={id:n,name:a||n,source:i,apiFormat:o,supportedEndpoints:l};return p.push(f),s.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('customModels', ?, ?)").run(e,JSON.stringify(p)),(0,r.backupDbFile)("pre-write"),f}async function _(e,n){let a=(0,t.getDbInstance)(),i=a.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e);if(!i)return!1;let o=c(i).value;if(!o)return!1;let l=JSON.parse(o),u=l.length,p=l.filter(e=>e.id!==n);return p.length!==u&&(0===p.length?a.prepare("DELETE FROM key_value WHERE namespace = 'customModels' AND key = ?").run(e):a.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(p),e),s(e,n),(0,r.backupDbFile)("pre-write"),!0)}async function g(e,n,a={}){let i=(0,t.getDbInstance)(),o=i.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e);if(!o)return null;let l=c(o).value;if(!l)return null;let s=JSON.parse(l),u=s.findIndex(e=>e.id===n);if(-1===u)return null;let p=s[u],d={...p,...void 0!==a.modelName?{name:a.modelName||p.name}:{},...void 0!==a.apiFormat?{apiFormat:a.apiFormat}:{},...void 0!==a.supportedEndpoints?{supportedEndpoints:a.supportedEndpoints}:{},...void 0!==a.normalizeToolCallId?{normalizeToolCallId:!!a.normalizeToolCallId}:{},...void 0!==a.preserveOpenAIDeveloperRole?{preserveOpenAIDeveloperRole:!!a.preserveOpenAIDeveloperRole}:{}};return s[u]=d,i.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(s),e),(0,r.backupDbFile)("pre-write"),d}function h(e,r){let n=c((0,t.getDbInstance)().prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(e)).value;if(!n)return null;try{let e=JSON.parse(n);if(!Array.isArray(e))return null;return e.find(e=>!(!e||"object"!=typeof e||Array.isArray(e))&&e.id===r)??null}catch{return null}}function S(e,t){let r=h(e,t);if(r)return!!r.normalizeToolCallId;let n=a(e).find(e=>e.id===t);return!!n?.normalizeToolCallId}function k(e,t){let r=h(e,t);if(r)return Object.prototype.hasOwnProperty.call(r,"preserveOpenAIDeveloperRole")?!!r.preserveOpenAIDeveloperRole:void 0;let n=a(e).find(e=>e.id===t);if(n&&Object.prototype.hasOwnProperty.call(n,"preserveOpenAIDeveloperRole"))return!!n.preserveOpenAIDeveloperRole}e.s(["addCustomModel",()=>m,"deleteModelAlias",()=>d,"getAllCustomModels",()=>v,"getCustomModels",()=>E,"getMitmAlias",()=>f,"getModelAliases",()=>u,"getModelCompatOverrides",()=>o,"getModelNormalizeToolCallId",()=>S,"getModelPreserveOpenAIDeveloperRole",()=>k,"mergeModelCompatOverride",()=>l,"removeCustomModel",()=>_,"removeModelCompatOverride",()=>s,"setMitmAliasAll",()=>y,"setModelAlias",()=>p,"updateCustomModel",()=>g])},151205,e=>{"use strict";var t=e.i(689960),r=e.i(157763),n=e.i(935050);function a(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return"string"==typeof t.data?t.data:null}async function i(){return(0,r.getDbInstance)().prepare("SELECT data FROM combos ORDER BY name").all().map(e=>a(e)).filter(e=>null!==e).map(e=>JSON.parse(e))}async function o(e){let t=a((0,r.getDbInstance)().prepare("SELECT data FROM combos WHERE id = ?").get(e));return t?JSON.parse(t):null}async function l(e){let t=a((0,r.getDbInstance)().prepare("SELECT data FROM combos WHERE name = ?").get(e));return t?JSON.parse(t):null}async function s(e){let a=(0,r.getDbInstance)(),i=new Date().toISOString(),o={id:(0,t.v4)(),name:e.name,models:e.models||[],strategy:e.strategy||"priority",config:e.config||{},createdAt:i,updatedAt:i};return a.prepare("INSERT INTO combos (id, name, data, created_at, updated_at) VALUES (?, ?, ?, ?, ?)").run(o.id,o.name,JSON.stringify(o),i,i),(0,n.backupDbFile)("pre-write"),o}async function c(e,t){let i=(0,r.getDbInstance)(),o=i.prepare("SELECT data FROM combos WHERE id = ?").get(e);if(!o)return null;let l=a(o);if(!l)return null;let s={...JSON.parse(l),...t,updatedAt:new Date().toISOString()};return i.prepare("UPDATE combos SET name = ?, data = ?, updated_at = ? WHERE id = ?").run(s.name,JSON.stringify(s),s.updatedAt,e),(0,n.backupDbFile)("pre-write"),s}async function u(e){return 0!==(0,r.getDbInstance)().prepare("DELETE FROM combos WHERE id = ?").run(e).changes&&((0,n.backupDbFile)("pre-write"),!0)}e.s(["createCombo",()=>s,"deleteCombo",()=>u,"getComboById",()=>o,"getComboByName",()=>l,"getCombos",()=>i,"updateCombo",()=>c])},245272,e=>{"use strict";e.i(385498),e.i(542949),e.i(151205),e.i(125852),e.i(548941),e.i(954031),e.i(751183),e.i(935050),e.i(403122),e.s([])}];
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__c8e3c8a9._.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"))},256770,e=>{"use strict";var t=e.i(814747),r=e.i(446786);let a="omniroute";function n(){try{return r.default.homedir()}catch{return process.cwd()}}function s(e){if("string"!=typeof e)return null;let r=e.trim();return r?t.default.resolve(r):null}function o(){return t.default.join(n(),`.${a}`)}function i({isCloud:e=!1}={}){let r;if(e)return"/tmp";let l=s(process.env.DATA_DIR);return l?l:(n(),(r=s(process.env.XDG_CONFIG_HOME))?t.default.join(r,a):o())}function l(e,r){return!!e&&!!r&&t.default.resolve(e)===t.default.resolve(r)}e.s(["getLegacyDotDataDir",()=>o,"isSamePath",()=>l,"resolveDataDir",()=>i])},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 a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i={},l={RequestCookies:()=>m,ResponseCookies:()=>g,parseCookie:()=>d,parseSetCookie:()=>p,stringifyCookie:()=>c};for(var u in l)a(i,u,{get:l[u],enumerable:!0});function c(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),a=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?a:`${a}; ${r.join("; ")}`}function d(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[a,n]=[r.slice(0,e),r.slice(e+1)];try{t.set(a,decodeURIComponent(null!=n?n:"true"))}catch{}}return t}function p(e){if(!e)return;let[[t,r],...a]=d(e),{domain:n,expires:s,httponly:o,maxage:i,path:l,samesite:u,secure:c,partitioned:p,priority:m}=Object.fromEntries(a.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,v={name:t,value:decodeURIComponent(r),domain:n,...s&&{expires:new Date(s)},...o&&{httpOnly:!0},..."string"==typeof i&&{maxAge:Number(i)},path:l,...u&&{sameSite:f.includes(g=(g=u).toLowerCase())?g:void 0},...c&&{secure:!0},...m&&{priority:h.includes(y=(y=m).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 s(t))o.call(e,r)||void 0===r||a(e,r,{get:()=>t[r],enumerable:!(i=n(t,r))||i.enumerable});return e})(a({},"__esModule",{value:!0}),i);var f=["strict","lax","none"],h=["low","medium","high"],m=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(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 a="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===a).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,a=this._parsed;return a.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(a).map(([e,t])=>c(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])=>c(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,a;this._parsed=new Map,this._headers=e;const n=null!=(a=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?a:[];for(const e of Array.isArray(n)?n:function(e){if(!e)return[];var t,r,a,n,s,o=[],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,s=!1;l();)if(","===(r=e.charAt(i))){for(a=i,i+=1,l(),n=i;i<e.length&&"="!==(r=e.charAt(i))&&";"!==r&&","!==r;)i+=1;i<e.length&&"="===e.charAt(i)?(s=!0,i=n,o.push(e.substring(t,a)),t=i):i=a+1}else i+=1;(!s||i>=e.length)&&o.push(e.substring(t,e.length))}return o}(n)){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 a="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===a)}has(e){return this._parsed.has(e)}set(...e){let[t,r,a]=1===e.length?[e[0].name,e[0].value,e[0]]:e,n=this._parsed;return n.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,...a})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=c(r);t.append("set-cookie",e)}}(n,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(c).join("; ")}}},677850,e=>e.a(async(t,r)=>{try{let t=await e.y("zod");e.n(t),r()}catch(e){r(e)}},!0),200392,e=>e.a(async(t,r)=>{try{var a=e.i(677850),n=t([a]);function s(e,t){let r=e.safeParse(t);if(r.success)return{success:!0,data:r.data};let a=Array.isArray(r.error?.issues)?r.error.issues:[];return{success:!1,error:{message:"Invalid request",details:a.map(e=>({field:e.path.join("."),message:e.message}))}}}function o(e){return!1===e.success}[a]=n.then?(await n)():n,a.z.object({password:a.z.string().min(1,"Password is required").max(200)}),e.s(["isValidationFailure",()=>o,"validateBody",()=>s]),r()}catch(e){r(e)}},!1),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),a=e.i(814747),n=e.i(233405);let s=new Set(["auto","host","container"]),o=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:a=3e3}={})=>new Promise(s=>{let o="",i="",l=!1,u=!1,c=(0,n.spawn)(e,t,{env:r,stdio:["ignore","pipe","pipe"],..."win32"===process.platform?"TURBOPACK unreachable":{}}),d=setTimeout(()=>{l=!0,c.kill("SIGKILL")},a),p=e=>{u||(u=!0,clearTimeout(d),s(e))};c.stdout.on("data",e=>{o+=e.toString()}),c.stderr.on("data",e=>{i+=e.toString()}),c.on("error",e=>{p({ok:!1,code:null,stdout:o.trim(),stderr:i.trim(),timedOut:l,error:e?.message||"spawn_error"})}),c.on("close",e=>{p({ok:!l&&0===e,code:e,stdout:o.trim(),stderr:i.trim(),timedOut:l,error:l?"timeout":null})})}),u=["&","|",";","<",">","(",")","`","$","^","%","!"],c=async e=>{if(!(!(!e||!a.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"}}},d=async(e,t)=>{if(!e)return{installed:!1,commandPath:null,reason:"missing_command"};if(e.includes("/")||e.includes("\\"))return c(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 a=r.stdout.split(/\r?\n/).map(e=>e.trim()).find(Boolean)||null;return{installed:!!a,commandPath:a,reason:a?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 d(r,t);if(e.installed||"not_found"!==e.reason)return{command:r,...e}}return{command:e[0],installed:!1,commandPath:null,reason:"not_found"}},f=async(e,t,r=4e3)=>{for(let a of[["--version"],["-v"]])if((await l(e,a,{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 n=String(process.env.CLI_CONFIG_HOME||"").trim()||r.default.homedir();return Object.fromEntries(Object.entries(t.paths).map(([e,t])=>[e,a.default.join(n,t)]))},m=async e=>{let t,r,n,o=i[e],l=(t=String(process.env.CLI_MODE||"auto").trim().toLowerCase(),s.has(t)?t:"auto");if(!o)return{installed:!1,runnable:!1,command:null,commandPath:null,reason:"unknown_tool",runtimeMode:l,requiresBinary:!1};let u=(r={...process.env},(n=String(process.env.CLI_EXTRA_PATHS||"").split(a.default.delimiter).map(e=>e.trim()).filter(Boolean)).length>0&&(r.PATH=[...n,r.PATH||""].filter(Boolean).join(a.default.delimiter)),r),c=(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),d=!1!==o.requiresBinary;if(!d&&0===c.length)return{installed:!0,runnable:!0,command:null,commandPath:null,reason:"not_required",runtimeMode:l,requiresBinary:d};let h=await p(c,u),m=h.command;if(!h.installed)return{installed:!1,runnable:!1,command:m,commandPath:null,reason:h.reason||"not_found",runtimeMode:l,requiresBinary:d};if("not_executable"===h.reason)return{installed:!0,runnable:!1,command:m,commandPath:h.commandPath,reason:"not_executable",runtimeMode:l,requiresBinary:d};let g=await f(h.commandPath,u,Number(o.healthcheckTimeoutMs||4e3));return{installed:!0,runnable:g.runnable,command:m,commandPath:h.commandPath,reason:g.reason,runtimeMode:l,requiresBinary:d}},g=Object.keys(i);e.s(["CLI_TOOL_IDS",0,g,"ensureCliConfigWriteAllowed",0,()=>((e,t=!0)=>null==e||""===e?t:!o.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,m])},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 a.registerServerReference}});let a=e.r(997953)},195975,(e,t,r)=>{"use strict";function a(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 a}})},841788,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(256770);let n=r.default.join((0,a.resolveDataDir)(),"backups");function s(...e){let t=r.default.resolve(n,...e),a=r.default.resolve(n);if(t!==a&&!t.startsWith(a+r.default.sep))throw Error("Invalid path: directory traversal detected");return t}async function o(e){let r=s(e);return await t.default.mkdir(r,{recursive:!0}),r}async function i(e,a){let n,s,i;try{await t.default.access(a)}catch{return null}let l=await o(e),u=(n=r.default.extname(a),s=r.default.basename(a,n),i=new Date().toISOString().replace(/[:.]/g,"-"),`${s}_${i}${n}`),c=r.default.join(l,u);return await t.default.copyFile(a,c),await t.default.writeFile(c+".meta.json",JSON.stringify({originalPath:a,backupName:u,toolId:e,createdAt:new Date().toISOString()})),await p(e),c}async function l(e,t){let r=[];for(let a of t){let t=await i(e,a);r.push(t)}return r}async function u(e){let a,n=s(e);try{a=await t.default.readdir(n)}catch{return[]}let o=a.filter(e=>e.endsWith(".meta.json")),i=[];for(let e of o)try{let a=r.default.join(n,e),s=await t.default.readFile(a,"utf-8"),o=JSON.parse(s),l=e.replace(".meta.json",""),u=r.default.join(n,l),c=0;try{c=(await t.default.stat(u)).size}catch{continue}i.push({id:l,toolId:o.toolId,originalPath:o.originalPath,createdAt:o.createdAt,size:c})}catch{}return i.sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()),i}async function c(e,a){let n;s(e);let o=s(e,a),l=o+".meta.json";try{let e=await t.default.readFile(l,"utf-8");n=JSON.parse(e)}catch{throw Error(`Backup metadata not found: ${a}`)}try{await t.default.access(o)}catch{throw Error(`Backup file not found: ${a}`)}await i(e,n.originalPath);let u=r.default.dirname(n.originalPath);return await t.default.mkdir(u,{recursive:!0}),await t.default.copyFile(o,n.originalPath),{restored:!0,backupId:a,originalPath:n.originalPath}}async function d(e,r){let a=s(e,r);try{await t.default.unlink(a)}catch{}try{await t.default.unlink(a+".meta.json")}catch{}return{deleted:!0,backupId:r}}async function p(e){let t=await u(e),a={};for(let e of t){let t=r.default.basename(e.originalPath);a[t]||(a[t]=[]),a[t].push(e)}for(let[,t]of Object.entries(a))if(t.length>5)for(let r of t.slice(5))await d(e,r.id)}e.s(["createBackup",()=>i,"createMultiBackup",()=>l,"deleteBackup",()=>d,"listBackups",()=>u,"restoreBackup",()=>c])},520179,e=>e.a(async(t,r)=>{try{var a=e.i(745015),n=e.i(89171),s=e.i(841788),o=e.i(266240),i=e.i(676088),l=e.i(200392),u=e.i(195975),c=t([i,l]);[i,l]=c.then?(await c)():c;let h=["claude","codex","droid","openclaw","cline","kilo"];async function d(e){try{let{searchParams:t}=new URL(e.url),r=t.get("tool")||t.get("toolId");if(r&&!h.includes(r))return n.NextResponse.json({error:`Invalid tool: ${r}`},{status:400});if(r){let e=await (0,s.listBackups)(r);return n.NextResponse.json({tool:r,backups:e})}let a={};for(let e of h)a[e]=await (0,s.listBackups)(e);return n.NextResponse.json({backups:a})}catch(e){return console.log("Error listing backups:",e.message),n.NextResponse.json({error:"Failed to list backups"},{status:500})}}async function p(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,o.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let r=(0,l.validateBody)(i.cliBackupMutationSchema,t);if((0,l.isValidationFailure)(r))return n.NextResponse.json({error:r.error},{status:400});let a=r.data.tool||r.data.toolId,{backupId:u}=r.data;if(!h.includes(a))return n.NextResponse.json({error:`Invalid tool: ${a}`},{status:400});let c=await (0,s.restoreBackup)(a,u);return n.NextResponse.json({success:!0,message:`Backup restored for ${a}`,...c})}catch(e){return console.log("Error restoring backup:",e.message),n.NextResponse.json({error:e.message||"Failed to restore backup"},{status:500})}}async function f(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,l.validateBody)(i.cliBackupMutationSchema,t);if((0,l.isValidationFailure)(e))return n.NextResponse.json({error:e.error},{status:400});let r=e.data.tool||e.data.toolId,{backupId:a}=e.data;if(!h.includes(r))return n.NextResponse.json({error:`Invalid tool: ${r}`},{status:400});let o=await (0,s.deleteBackup)(r,a);return n.NextResponse.json({success:!0,message:`Backup deleted for ${r}`,...o})}catch(e){return console.log("Error deleting backup:",e.message),n.NextResponse.json({error:"Failed to delete backup"},{status:500})}}(0,u.ensureServerEntryExports)([d,p,f]),(0,a.registerServerReference)(d,"40261439ecae9a7b4b07375b420201623f8973d17b",null),(0,a.registerServerReference)(p,"40a2ab6af9749b7bf1225a09fdacc5a5e22491f907",null),(0,a.registerServerReference)(f,"409778066bceca8f2ce83405f704745a2630811f10",null),e.s(["DELETE",()=>f,"GET",()=>d,"POST",()=>p]),r()}catch(e){r(e)}},!1),642665,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),s=e.i(996250),o=e.i(759756),i=e.i(561916),l=e.i(174677),u=e.i(869741),c=e.i(316795),d=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),m=e.i(570101),g=e.i(626937),y=e.i(10372),v=e.i(193695);e.i(52474);var x=e.i(600220),w=e.i(520179),_=t([w]);[w]=_.then?(await _)():_;let R=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/backups/route",pathname:"/api/cli-tools/backups",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/backups/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:k,workUnitAsyncStorage:j,serverHooks:O}=R;function b(){return(0,s.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:j})}async function C(e,t,r){R.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/cli-tools/backups/route";a=a.replace(/\/index$/,"")||"/";let s=await R.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:_,nextConfig:b,parsedUrl:C,isDraftMode:k,prerenderManifest:j,routerServerContext:O,isOnDemandRevalidate:E,revalidateOnlyGenerated:A,resolvedPathname:S,clientReferenceManifest:I,serverActionsManifest:P}=s,N=(0,u.normalizeAppPath)(a),B=!!(j.dynamicRoutes[N]||j.routes[S]),T=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(B&&!k){let e=!!j.routes[S],t=j.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await T();throw new v.NoFallbackError}}let D=null;!B||R.isDev||k||(D=S,D="/index"===D?"/":D);let q=!0===R.isDev||!B,L=B&&!q;P&&I&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:I,serverActionsManifest:P});let M=e.method||"GET",$=(0,i.getTracer)(),U=$.getActiveScopeSpan(),F={params:_,prerenderManifest:j,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>R.onRequestError(e,t,a,n,O)},sharedContext:{buildId:w}},H=new c.NodeNextRequest(e),K=new c.NodeNextResponse(t),W=d.NextRequestAdapter.fromNodeNextRequest(H,(0,d.signalFromNodeResponse)(t));try{let s=async e=>R.handle(W,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.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=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${a}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),u=async o=>{var i,u;let c=async({previousCacheEntry:n})=>{try{if(!l&&E&&A&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(o);e.fetchMetrics=F.renderOpts.fetchMetrics;let i=F.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let u=F.renderOpts.collectedTags;if(!B)return await (0,h.sendResponse)(H,K,a,F.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[y.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,n=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:E})},!1,O),t}},d=await R.handleResponse({req:e,nextConfig:b,cacheKey:D,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:j,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:A,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:l});if(!B)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(u=d.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return l&&B||p.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(d.cacheControl)),await (0,h.sendResponse)(H,K,new Response(d.value.body,{headers:p,status:d.value.status||200})),null};U?await u(U):await $.withPropagatedContext(e.headers,()=>$.trace(p.BaseServerSpan.handleRequest,{spanName:`${M} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},u))}catch(t){if(t instanceof v.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:E})},!1,O),B)throw t;return await (0,h.sendResponse)(H,K,new Response(null,{status:500})),null}}e.s(["handler",()=>C,"patchFetch",()=>b,"routeModule",()=>R,"serverHooks",()=>O,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>j]),r()}catch(e){r(e)}},!1)];
|
|
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 a}})},841788,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(256770);let n=r.default.join((0,a.resolveDataDir)(),"backups");function s(...e){let t=r.default.resolve(n,...e),a=r.default.resolve(n);if(t!==a&&!t.startsWith(a+r.default.sep))throw Error("Invalid path: directory traversal detected");return t}async function o(e){let r=s(e);return await t.default.mkdir(r,{recursive:!0}),r}async function i(e,a){let n,s,i;try{await t.default.access(a)}catch{return null}let l=await o(e),u=(n=r.default.extname(a),s=r.default.basename(a,n),i=new Date().toISOString().replace(/[:.]/g,"-"),`${s}_${i}${n}`),c=r.default.join(l,u);return await t.default.copyFile(a,c),await t.default.writeFile(c+".meta.json",JSON.stringify({originalPath:a,backupName:u,toolId:e,createdAt:new Date().toISOString()})),await p(e),c}async function l(e,t){let r=[];for(let a of t){let t=await i(e,a);r.push(t)}return r}async function u(e){let a,n=s(e);try{a=await t.default.readdir(n)}catch{return[]}let o=a.filter(e=>e.endsWith(".meta.json")),i=[];for(let e of o)try{let a=r.default.join(n,e),s=await t.default.readFile(a,"utf-8"),o=JSON.parse(s),l=e.replace(".meta.json",""),u=r.default.join(n,l),c=0;try{c=(await t.default.stat(u)).size}catch{continue}i.push({id:l,toolId:o.toolId,originalPath:o.originalPath,createdAt:o.createdAt,size:c})}catch{}return i.sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()),i}async function c(e,a){let n;s(e);let o=s(e,a),l=o+".meta.json";try{let e=await t.default.readFile(l,"utf-8");n=JSON.parse(e)}catch{throw Error(`Backup metadata not found: ${a}`)}try{await t.default.access(o)}catch{throw Error(`Backup file not found: ${a}`)}await i(e,n.originalPath);let u=r.default.dirname(n.originalPath);return await t.default.mkdir(u,{recursive:!0}),await t.default.copyFile(o,n.originalPath),{restored:!0,backupId:a,originalPath:n.originalPath}}async function d(e,r){let a=s(e,r);try{await t.default.unlink(a)}catch{}try{await t.default.unlink(a+".meta.json")}catch{}return{deleted:!0,backupId:r}}async function p(e){let t=await u(e),a={};for(let e of t){let t=r.default.basename(e.originalPath);a[t]||(a[t]=[]),a[t].push(e)}for(let[,t]of Object.entries(a))if(t.length>5)for(let r of t.slice(5))await d(e,r.id)}e.s(["createBackup",()=>i,"createMultiBackup",()=>l,"deleteBackup",()=>d,"listBackups",()=>u,"restoreBackup",()=>c])},520179,e=>e.a(async(t,r)=>{try{var a=e.i(745015),n=e.i(89171),s=e.i(841788),o=e.i(266240),i=e.i(676088),l=e.i(200392),u=e.i(195975),c=t([i,l]);[i,l]=c.then?(await c)():c;let h=["claude","codex","droid","openclaw","cline","kilo"];async function d(e){try{let{searchParams:t}=new URL(e.url),r=t.get("tool")||t.get("toolId");if(r&&!h.includes(r))return n.NextResponse.json({error:`Invalid tool: ${r}`},{status:400});if(r){let e=await (0,s.listBackups)(r);return n.NextResponse.json({tool:r,backups:e})}let a={};for(let e of h)a[e]=await (0,s.listBackups)(e);return n.NextResponse.json({backups:a})}catch(e){return console.log("Error listing backups:",e.message),n.NextResponse.json({error:"Failed to list backups"},{status:500})}}async function p(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,o.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let r=(0,l.validateBody)(i.cliBackupMutationSchema,t);if((0,l.isValidationFailure)(r))return n.NextResponse.json({error:r.error},{status:400});let a=r.data.tool||r.data.toolId,{backupId:u}=r.data;if(!h.includes(a))return n.NextResponse.json({error:`Invalid tool: ${a}`},{status:400});let c=await (0,s.restoreBackup)(a,u);return n.NextResponse.json({success:!0,message:`Backup restored for ${a}`,...c})}catch(e){return console.log("Error restoring backup:",e.message),n.NextResponse.json({error:e.message||"Failed to restore backup"},{status:500})}}async function f(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,l.validateBody)(i.cliBackupMutationSchema,t);if((0,l.isValidationFailure)(e))return n.NextResponse.json({error:e.error},{status:400});let r=e.data.tool||e.data.toolId,{backupId:a}=e.data;if(!h.includes(r))return n.NextResponse.json({error:`Invalid tool: ${r}`},{status:400});let o=await (0,s.deleteBackup)(r,a);return n.NextResponse.json({success:!0,message:`Backup deleted for ${r}`,...o})}catch(e){return console.log("Error deleting backup:",e.message),n.NextResponse.json({error:"Failed to delete backup"},{status:500})}}(0,u.ensureServerEntryExports)([d,p,f]),(0,a.registerServerReference)(d,"40df2378492cc662c1c5df44cf7b10acb3e6071720",null),(0,a.registerServerReference)(p,"40597ec2a73a61636d858c2744a89d1cfd1b81cfe6",null),(0,a.registerServerReference)(f,"405ee18aaaff04d1dd257f52659d6db4b691b7ec8d",null),e.s(["DELETE",()=>f,"GET",()=>d,"POST",()=>p]),r()}catch(e){r(e)}},!1),642665,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),s=e.i(996250),o=e.i(759756),i=e.i(561916),l=e.i(174677),u=e.i(869741),c=e.i(316795),d=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),m=e.i(570101),g=e.i(626937),y=e.i(10372),v=e.i(193695);e.i(52474);var x=e.i(600220),w=e.i(520179),_=t([w]);[w]=_.then?(await _)():_;let R=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/backups/route",pathname:"/api/cli-tools/backups",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/backups/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:k,workUnitAsyncStorage:j,serverHooks:O}=R;function b(){return(0,s.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:j})}async function C(e,t,r){R.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/cli-tools/backups/route";a=a.replace(/\/index$/,"")||"/";let s=await R.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:_,nextConfig:b,parsedUrl:C,isDraftMode:k,prerenderManifest:j,routerServerContext:O,isOnDemandRevalidate:E,revalidateOnlyGenerated:A,resolvedPathname:S,clientReferenceManifest:I,serverActionsManifest:P}=s,N=(0,u.normalizeAppPath)(a),B=!!(j.dynamicRoutes[N]||j.routes[S]),T=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(B&&!k){let e=!!j.routes[S],t=j.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await T();throw new v.NoFallbackError}}let D=null;!B||R.isDev||k||(D=S,D="/index"===D?"/":D);let q=!0===R.isDev||!B,L=B&&!q;P&&I&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:I,serverActionsManifest:P});let M=e.method||"GET",$=(0,i.getTracer)(),U=$.getActiveScopeSpan(),F={params:_,prerenderManifest:j,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>R.onRequestError(e,t,a,n,O)},sharedContext:{buildId:w}},H=new c.NodeNextRequest(e),K=new c.NodeNextResponse(t),W=d.NextRequestAdapter.fromNodeNextRequest(H,(0,d.signalFromNodeResponse)(t));try{let s=async e=>R.handle(W,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.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=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${a}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),u=async o=>{var i,u;let c=async({previousCacheEntry:n})=>{try{if(!l&&E&&A&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(o);e.fetchMetrics=F.renderOpts.fetchMetrics;let i=F.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let u=F.renderOpts.collectedTags;if(!B)return await (0,h.sendResponse)(H,K,a,F.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[y.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,n=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:E})},!1,O),t}},d=await R.handleResponse({req:e,nextConfig:b,cacheKey:D,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:j,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:A,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:l});if(!B)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(u=d.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return l&&B||p.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(d.cacheControl)),await (0,h.sendResponse)(H,K,new Response(d.value.body,{headers:p,status:d.value.status||200})),null};U?await u(U):await $.withPropagatedContext(e.headers,()=>$.trace(p.BaseServerSpan.handleRequest,{spanName:`${M} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},u))}catch(t){if(t instanceof v.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:E})},!1,O),B)throw t;return await (0,h.sendResponse)(H,K,new Response(null,{status:500})),null}}e.s(["handler",()=>C,"patchFetch",()=>b,"routeModule",()=>R,"serverHooks",()=>O,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>j]),r()}catch(e){r(e)}},!1)];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=%5Broot-of-the-server%5D__d4563e10._.js.map
|