Merge remote-tracking branch 'origin/release/v3.8.51' into HEAD

# Conflicts:
#	README.md
#	config/quality/file-size-baseline.json
#	docs/diagrams/comparison-table.svg
#	docs/diagrams/free-tier-budget.svg
#	docs/diagrams/readme-hero.svg
#	docs/i18n/am/llm.txt
#	docs/i18n/ar/llm.txt
#	docs/i18n/az/llm.txt
#	docs/i18n/bg/llm.txt
#	docs/i18n/bn/llm.txt
#	docs/i18n/cs/llm.txt
#	docs/i18n/da/llm.txt
#	docs/i18n/de/llm.txt
#	docs/i18n/el/llm.txt
#	docs/i18n/es/llm.txt
#	docs/i18n/et/llm.txt
#	docs/i18n/fa/llm.txt
#	docs/i18n/fi/llm.txt
#	docs/i18n/fr/llm.txt
#	docs/i18n/ga/llm.txt
#	docs/i18n/gu/llm.txt
#	docs/i18n/ha/llm.txt
#	docs/i18n/he/llm.txt
#	docs/i18n/hi/llm.txt
#	docs/i18n/hr/llm.txt
#	docs/i18n/hu/llm.txt
#	docs/i18n/hy/llm.txt
#	docs/i18n/id/llm.txt
#	docs/i18n/ig/llm.txt
#	docs/i18n/it/llm.txt
#	docs/i18n/ja/llm.txt
#	docs/i18n/ka/llm.txt
#	docs/i18n/km/llm.txt
#	docs/i18n/kn/llm.txt
#	docs/i18n/ko/llm.txt
#	docs/i18n/lt/llm.txt
#	docs/i18n/lv/llm.txt
#	docs/i18n/ml/llm.txt
#	docs/i18n/mr/llm.txt
#	docs/i18n/ms/llm.txt
#	docs/i18n/mt/llm.txt
#	docs/i18n/my/llm.txt
#	docs/i18n/ne/llm.txt
#	docs/i18n/nl/llm.txt
#	docs/i18n/no/llm.txt
#	docs/i18n/or/llm.txt
#	docs/i18n/pa/llm.txt
#	docs/i18n/phi/llm.txt
#	docs/i18n/pl/llm.txt
#	docs/i18n/pt-BR/llm.txt
#	docs/i18n/pt/llm.txt
#	docs/i18n/ro/llm.txt
#	docs/i18n/ru/llm.txt
#	docs/i18n/si/llm.txt
#	docs/i18n/sk/llm.txt
#	docs/i18n/sl/llm.txt
#	docs/i18n/sr/llm.txt
#	docs/i18n/sv/llm.txt
#	docs/i18n/sw/llm.txt
#	docs/i18n/ta/llm.txt
#	docs/i18n/te/llm.txt
#	docs/i18n/th/llm.txt
#	docs/i18n/tr/llm.txt
#	docs/i18n/uk-UA/llm.txt
#	docs/i18n/ur/llm.txt
#	docs/i18n/uz/llm.txt
#	docs/i18n/vi/llm.txt
#	docs/i18n/yo/llm.txt
#	docs/i18n/zh-CN/llm.txt
#	docs/i18n/zh-TW/llm.txt
#	docs/reference/PROVIDER_REFERENCE.md
#	docs/screenshots/free-tier-budget-card.svg
This commit is contained in:
diegosouzapw
2026-09-17 13:27:25 -03:00
2511 changed files with 700455 additions and 351533 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "omniroute",
"version": "3.8.51",
"description": "Unified AI router with 359 providers, RTK+Caveman compression, auto fallback, MCP/A2A, desktop, PWA, and OpenAI-compatible APIs.",
"description": "Unified AI router with 360 providers, RTK+Caveman compression, auto fallback, MCP/A2A, desktop, PWA, and OpenAI-compatible APIs.",
"type": "module",
"bin": {
"omniroute": "bin/omniroute.mjs",
@@ -201,6 +201,7 @@
"check:agent-skills-sync": "node --import tsx/esm scripts/skills/generate-agent-skills.mjs",
"check:build-scope": "node scripts/check/check-build-scope.mjs",
"check:error-helper": "node scripts/check/check-error-helper.mjs",
"check:routing-error-guard": "node scripts/check/check-routing-error-guard.mjs",
"check:migration-numbering": "node scripts/check/check-migration-numbering.mjs",
"check:public-creds": "node scripts/check/check-public-creds.mjs",
"check:db-rules": "node scripts/check/check-db-rules.mjs",
@@ -285,7 +286,10 @@
"test:unit:serial": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 \"tests/unit/serial/**/*.test.ts\"",
"alibaba:sync-allowlist": "node --import tsx/esm scripts/ops/sync-alibaba-allowlist.mjs",
"check:vitest-exclusions": "node scripts/check/check-vitest-exclusions.mjs",
"i18n:check-new-keys": "node scripts/i18n/check-new-key-coverage.mjs"
"i18n:check-new-keys": "node scripts/i18n/check-new-key-coverage.mjs",
"i18n:translate-new-keys": "bash scripts/i18n/translate-new-keys.sh",
"i18n:check-keys": "node scripts/i18n/check-key-completeness.mjs",
"i18n:check-keys:cli": "node scripts/i18n/check-key-completeness.mjs --catalog=cli"
},
"dependencies": {
"@aws-sdk/client-bedrock-runtime": "^3.1120.0",
@@ -384,8 +388,8 @@
"devDependencies": {
"@axe-core/playwright": "^4.13.0",
"@cyclonedx/cyclonedx-npm": "6.0.1",
"@eslint/compat": "^2.1.0",
"@playwright/test": "^1.62.1",
"@eslint/compat": "^2.1.1",
"@playwright/test": "^1.63.0",
"@size-limit/file": "^13.0.3",
"@stryker-mutator/core": "^10.0.0",
"@stryker-mutator/tap-runner": "^10.0.0",
@@ -393,29 +397,29 @@
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^7.0.1",
"@testing-library/react": "^16.3.3",
"@testing-library/user-event": "^14.6.6",
"@testing-library/user-event": "^14.6.7",
"@types/better-sqlite3": "^9.6.0",
"@types/bun": "1.4.0",
"@types/node": "^26.4.0",
"@types/bun": "1.4.2",
"@types/node": "^26.5.1",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.5",
"@types/safe-regex": "^1.1.6",
"@types/ws": "^8.18.0",
"@vitejs/plugin-react": "^6.1.0",
"babel-plugin-react-compiler": "^1.0.0",
"bun": "1.4.0",
"bun": "1.4.2",
"c8": "^12.0.0",
"concurrently": "^10.0.5",
"cross-env": "^10.1.0",
"ctrf": "^0.3.0",
"dpdm": "^4.3.0",
"esbuild": "0.28.2",
"eslint": "^10.9.0",
"eslint-config-next": "16.3.3",
"eslint": "^10.10.0",
"eslint-config-next": "16.3.5",
"eslint-plugin-react-hooks": "7.1.1",
"eslint-plugin-sonarjs": "^4.1.0",
"espree": "^11.2.0",
"fast-check": "^4.8.0",
"fast-check": "^4.10.0",
"fumadocs-mdx": "^15.4.0",
"glob": "^13.0.6",
"httpyac": "^6.16.7",
@@ -423,21 +427,22 @@
"jscpd": "^4.3.0",
"jsdom": "^30.0.1",
"junit-to-ctrf": "^0.0.14",
"knip": "^6.32.3",
"knip": "^6.35.1",
"license-checker-rseidelsohn": "^5.0.1",
"lint-staged": "^17.4.1",
"lint-staged": "^17.5.1",
"lockfile-lint": "^5.0.1",
"node-loader": "^2.1.0",
"opencode-ai": "1.18.25",
"opencode-ai": "1.18.30",
"playwright-ctrf-json-reporter": "^0.0.29",
"prettier": "^3.9.6",
"promptfoo": "^0.122.1",
"promptfoo": "^0.123.0",
"size-limit": "^13.0.3",
"tailwindcss": "^4.3.0",
"type-coverage": "^2.30.1",
"typescript": "^6.0.3",
"typescript-eslint": "^8.68.0",
"vitest": "^4.1.11",
"typescript-eslint": "^8.70.0",
"vite": "^8.0.16",
"vitest": "^5.0.0",
"wait-on": "^9.1.0",
"wtfnode": "^0.10.1"
},
@@ -503,7 +508,7 @@
"concurrently": {
"shell-quote": "^1.9.0"
},
"adm-zip": "^0.6.0",
"adm-zip": "^0.6.1",
"promptfoo": {
"js-yaml": "^5.2.2",
"undici": "^7.29.0"