- Add rate limit detection and parsing from HTTP 429 responses - Implement automatic retry with exponential backoff for short-term rate limits - Implement automatic provider switching for long-term rate limits - Add circuit breaker pattern for failing providers - Integrate with existing admin panel rate limit configuration - Add allProviders parameter to LLM.stream calls to enable provider fallback Rate limit behavior: - Short-term (< 5 min): Retry with configured backoff strategy - Long-term (≥ 5 min): Switch to next available provider - Max retries: 3 (configurable via admin panel) - Max wait time: 5 minutes (configurable via admin panel) - Provider switching: Enabled by default (configurable via admin panel) Provider priority: 1. Anthropic 2. OpenAI 3. Google 4. OpenRouter 5. Groq 6. xAI 7. Together AI 8. Perplexity 9. DeepInfra 10. Cerebras 11. Mistral 12. Cohere 13. Amazon Bedrock 14. Azure 15. GitHub Copilot 16. GitHub Copilot Enterprise 17. OpenCode 18. ZenMux 19. Google Vertex 20. GitLab
125 lines
4.1 KiB
JSON
125 lines
4.1 KiB
JSON
{
|
|
"name": "shopify-ai-backup",
|
|
"lockfileVersion": 3,
|
|
"requires": true,
|
|
"packages": {
|
|
"": {
|
|
"devDependencies": {
|
|
"@types/node": "^25.2.2",
|
|
"glob": "^13.0.1"
|
|
}
|
|
},
|
|
"node_modules/@isaacs/balanced-match": {
|
|
"version": "4.0.1",
|
|
"resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
|
|
"integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": "20 || >=22"
|
|
}
|
|
},
|
|
"node_modules/@isaacs/brace-expansion": {
|
|
"version": "5.0.1",
|
|
"resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz",
|
|
"integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@isaacs/balanced-match": "^4.0.1"
|
|
},
|
|
"engines": {
|
|
"node": "20 || >=22"
|
|
}
|
|
},
|
|
"node_modules/@types/node": {
|
|
"version": "25.2.2",
|
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.2.tgz",
|
|
"integrity": "sha512-BkmoP5/FhRYek5izySdkOneRyXYN35I860MFAGupTdebyE66uZaR+bXLHq8k4DirE5DwQi3NuhvRU1jqTVwUrQ==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"undici-types": "~7.16.0"
|
|
}
|
|
},
|
|
"node_modules/glob": {
|
|
"version": "13.0.1",
|
|
"resolved": "https://registry.npmjs.org/glob/-/glob-13.0.1.tgz",
|
|
"integrity": "sha512-B7U/vJpE3DkJ5WXTgTpTRN63uV42DseiXXKMwG14LQBXmsdeIoHAPbU/MEo6II0k5ED74uc2ZGTC6MwHFQhF6w==",
|
|
"dev": true,
|
|
"license": "BlueOak-1.0.0",
|
|
"dependencies": {
|
|
"minimatch": "^10.1.2",
|
|
"minipass": "^7.1.2",
|
|
"path-scurry": "^2.0.0"
|
|
},
|
|
"engines": {
|
|
"node": "20 || >=22"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/isaacs"
|
|
}
|
|
},
|
|
"node_modules/lru-cache": {
|
|
"version": "11.2.5",
|
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz",
|
|
"integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==",
|
|
"dev": true,
|
|
"license": "BlueOak-1.0.0",
|
|
"engines": {
|
|
"node": "20 || >=22"
|
|
}
|
|
},
|
|
"node_modules/minimatch": {
|
|
"version": "10.1.2",
|
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz",
|
|
"integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==",
|
|
"dev": true,
|
|
"license": "BlueOak-1.0.0",
|
|
"dependencies": {
|
|
"@isaacs/brace-expansion": "^5.0.1"
|
|
},
|
|
"engines": {
|
|
"node": "20 || >=22"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/isaacs"
|
|
}
|
|
},
|
|
"node_modules/minipass": {
|
|
"version": "7.1.2",
|
|
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
|
|
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
|
|
"dev": true,
|
|
"license": "ISC",
|
|
"engines": {
|
|
"node": ">=16 || 14 >=14.17"
|
|
}
|
|
},
|
|
"node_modules/path-scurry": {
|
|
"version": "2.0.1",
|
|
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz",
|
|
"integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
|
|
"dev": true,
|
|
"license": "BlueOak-1.0.0",
|
|
"dependencies": {
|
|
"lru-cache": "^11.0.0",
|
|
"minipass": "^7.1.2"
|
|
},
|
|
"engines": {
|
|
"node": "20 || >=22"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/isaacs"
|
|
}
|
|
},
|
|
"node_modules/undici-types": {
|
|
"version": "7.16.0",
|
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
|
|
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
|
|
"dev": true,
|
|
"license": "MIT"
|
|
}
|
|
}
|
|
}
|