mirror of
https://github.com/musistudio/claude-code-router.git
synced 2026-02-02 23:00:50 +08:00
release v1.0.52
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@musistudio/claude-code-router",
|
"name": "@musistudio/claude-code-router",
|
||||||
"version": "1.0.51",
|
"version": "1.0.52",
|
||||||
"description": "Use Claude Code without an Anthropics account and route it to another LLM provider",
|
"description": "Use Claude Code without an Anthropics account and route it to another LLM provider",
|
||||||
"bin": {
|
"bin": {
|
||||||
"ccr": "dist/cli.js"
|
"ccr": "dist/cli.js"
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fastify/static": "^8.2.0",
|
"@fastify/static": "^8.2.0",
|
||||||
"@musistudio/llms": "^1.0.33",
|
"@musistudio/llms": "^1.0.34",
|
||||||
"dotenv": "^16.4.7",
|
"dotenv": "^16.4.7",
|
||||||
"find-process": "^2.0.0",
|
"find-process": "^2.0.0",
|
||||||
"json5": "^2.2.3",
|
"json5": "^2.2.3",
|
||||||
|
|||||||
70
pnpm-lock.yaml
generated
70
pnpm-lock.yaml
generated
@@ -12,8 +12,8 @@ importers:
|
|||||||
specifier: ^8.2.0
|
specifier: ^8.2.0
|
||||||
version: 8.2.0
|
version: 8.2.0
|
||||||
'@musistudio/llms':
|
'@musistudio/llms':
|
||||||
specifier: ^1.0.33
|
specifier: ^1.0.34
|
||||||
version: 1.0.33(ws@8.18.3)
|
version: 1.0.34(ws@8.18.3)
|
||||||
dotenv:
|
dotenv:
|
||||||
specifier: ^16.4.7
|
specifier: ^16.4.7
|
||||||
version: 16.6.1
|
version: 16.6.1
|
||||||
@@ -244,8 +244,8 @@ packages:
|
|||||||
'@fastify/static@8.2.0':
|
'@fastify/static@8.2.0':
|
||||||
resolution: {integrity: sha512-PejC/DtT7p1yo3p+W7LiUtLMsV8fEvxAK15sozHy9t8kwo5r0uLYmhV/inURmGz1SkHZFz/8CNtHLPyhKcx4SQ==}
|
resolution: {integrity: sha512-PejC/DtT7p1yo3p+W7LiUtLMsV8fEvxAK15sozHy9t8kwo5r0uLYmhV/inURmGz1SkHZFz/8CNtHLPyhKcx4SQ==}
|
||||||
|
|
||||||
'@google/genai@1.16.0':
|
'@google/genai@1.21.0':
|
||||||
resolution: {integrity: sha512-hdTYu39QgDFxv+FB6BK2zi4UIJGWhx2iPc0pHQ0C5Q/RCi+m+4gsryIzTGO+riqWcUA8/WGYp6hpqckdOBNysw==}
|
resolution: {integrity: sha512-k47DECR8BF9z7IJxQd3reKuH2eUnOH5NlJWSe+CKM6nbXx+wH3hmtWQxUQR9M8gzWW1EvFuRVgjQssEIreNZsw==}
|
||||||
engines: {node: '>=20.0.0'}
|
engines: {node: '>=20.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@modelcontextprotocol/sdk': ^1.11.4
|
'@modelcontextprotocol/sdk': ^1.11.4
|
||||||
@@ -269,8 +269,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==}
|
resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
'@musistudio/llms@1.0.33':
|
'@musistudio/llms@1.0.34':
|
||||||
resolution: {integrity: sha512-2xQIOlbBFFjXRl7LRKb6kteP0ldWTcOzeMD0ZgCXJrUhjI7lzGwKuPW1qiqDVvakviRm1FEpPLMve5n3vkXJXg==}
|
resolution: {integrity: sha512-laQ4tZ4+8VFpGizv4S4sUUk71hFyJzBhWsRvU5ZQDG2pHd/DmRYwP7lh7BrBwSuGp5G9pV413cMkcl4b+k7EdQ==}
|
||||||
|
|
||||||
'@nodelib/fs.scandir@2.1.5':
|
'@nodelib/fs.scandir@2.1.5':
|
||||||
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
||||||
@@ -376,8 +376,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
|
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
|
||||||
engines: {node: '>= 12'}
|
engines: {node: '>= 12'}
|
||||||
|
|
||||||
debug@4.4.1:
|
debug@4.4.3:
|
||||||
resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
|
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
|
||||||
engines: {node: '>=6.0'}
|
engines: {node: '>=6.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
supports-color: '*'
|
supports-color: '*'
|
||||||
@@ -490,8 +490,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==}
|
resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
gaxios@7.1.1:
|
gaxios@7.1.2:
|
||||||
resolution: {integrity: sha512-Odju3uBUJyVCkW64nLD4wKLhbh93bh6vIg/ZIXkWiLPBrdgtc65+tls/qml+un3pr6JqYVFDZbbmLDQT68rTOQ==}
|
resolution: {integrity: sha512-/Szrn8nr+2TsQT1Gp8iIe/BEytJmbyfrbFh419DfGQSkEgNEhbPi7JRJuughjkTzPWgU9gBQf5AVu3DbHt0OXA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
gcp-metadata@6.1.1:
|
gcp-metadata@6.1.1:
|
||||||
@@ -515,8 +515,8 @@ packages:
|
|||||||
engines: {node: 20 || >=22}
|
engines: {node: 20 || >=22}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
google-auth-library@10.3.0:
|
google-auth-library@10.4.0:
|
||||||
resolution: {integrity: sha512-ylSE3RlCRZfZB56PFJSfUCuiuPq83Fx8hqu1KPWGK8FVdSaxlp/qkeMMX/DT/18xkwXIHvXEXkZsljRwfrdEfQ==}
|
resolution: {integrity: sha512-CmIrSy1bqMQUsPmA9+hcSbAXL80cFhu40cGMUjCaLpNKVzzvi+0uAHq8GNZxkoGYIsTX4ZQ7e4aInAqWxgn4fg==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
google-auth-library@9.15.1:
|
google-auth-library@9.15.1:
|
||||||
@@ -615,8 +615,8 @@ packages:
|
|||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
jsonrepair@3.13.0:
|
jsonrepair@3.13.1:
|
||||||
resolution: {integrity: sha512-5YRzlAQ7tuzV1nAJu3LvDlrKtBFIALHN2+a+I1MGJCt3ldRDBF/bZuvIPzae8Epot6KBXd0awRZZcuoeAsZ/mw==}
|
resolution: {integrity: sha512-WJeiE0jGfxYmtLwBTEk8+y/mYcaleyLXWaqp5bJu0/ZTSeG0KQq/wWQ8pmnkKenEdN6pdnn6QtcoSUkbqDHWNw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
jwa@2.0.1:
|
jwa@2.0.1:
|
||||||
@@ -695,8 +695,8 @@ packages:
|
|||||||
once@1.4.0:
|
once@1.4.0:
|
||||||
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
||||||
|
|
||||||
openai@5.16.0:
|
openai@5.23.2:
|
||||||
resolution: {integrity: sha512-hoEH8ZNvg1HXjU9mp88L/ZH8O082Z8r6FHCXGiWAzVRrEv443aI57qhch4snu07yQydj+AUAWLenAiBXhu89Tw==}
|
resolution: {integrity: sha512-MQBzmTulj+MM5O8SKEk/gL8a7s5mktS9zUtAkU257WjvobGc9nKcBuVwjyEEcb9SI8a8Y2G/mzn3vm9n1Jlleg==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
ws: ^8.18.0
|
ws: ^8.18.0
|
||||||
@@ -925,8 +925,8 @@ packages:
|
|||||||
undici-types@7.10.0:
|
undici-types@7.10.0:
|
||||||
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
|
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
|
||||||
|
|
||||||
undici@7.15.0:
|
undici@7.16.0:
|
||||||
resolution: {integrity: sha512-7oZJCPvvMvTd0OlqWsIxTuItTpJBpU1tcbVl24FMn3xt3+VSunwUasmfPJRE57oNO1KsZ4PgA1xTdAX4hq8NyQ==}
|
resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==}
|
||||||
engines: {node: '>=20.18.1'}
|
engines: {node: '>=20.18.1'}
|
||||||
|
|
||||||
uuid@11.1.0:
|
uuid@11.1.0:
|
||||||
@@ -1108,7 +1108,7 @@ snapshots:
|
|||||||
fastq: 1.19.1
|
fastq: 1.19.1
|
||||||
glob: 11.0.3
|
glob: 11.0.3
|
||||||
|
|
||||||
'@google/genai@1.16.0':
|
'@google/genai@1.21.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
google-auth-library: 9.15.1
|
google-auth-library: 9.15.1
|
||||||
ws: 8.18.3
|
ws: 8.18.3
|
||||||
@@ -1135,18 +1135,18 @@ snapshots:
|
|||||||
|
|
||||||
'@lukeed/ms@2.0.2': {}
|
'@lukeed/ms@2.0.2': {}
|
||||||
|
|
||||||
'@musistudio/llms@1.0.33(ws@8.18.3)':
|
'@musistudio/llms@1.0.34(ws@8.18.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@anthropic-ai/sdk': 0.54.0
|
'@anthropic-ai/sdk': 0.54.0
|
||||||
'@fastify/cors': 11.1.0
|
'@fastify/cors': 11.1.0
|
||||||
'@google/genai': 1.16.0
|
'@google/genai': 1.21.0
|
||||||
dotenv: 16.6.1
|
dotenv: 16.6.1
|
||||||
fastify: 5.5.0
|
fastify: 5.5.0
|
||||||
google-auth-library: 10.3.0
|
google-auth-library: 10.4.0
|
||||||
json5: 2.2.3
|
json5: 2.2.3
|
||||||
jsonrepair: 3.13.0
|
jsonrepair: 3.13.1
|
||||||
openai: 5.16.0(ws@8.18.3)
|
openai: 5.23.2(ws@8.18.3)
|
||||||
undici: 7.15.0
|
undici: 7.16.0
|
||||||
uuid: 11.1.0
|
uuid: 11.1.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@modelcontextprotocol/sdk'
|
- '@modelcontextprotocol/sdk'
|
||||||
@@ -1250,7 +1250,7 @@ snapshots:
|
|||||||
|
|
||||||
data-uri-to-buffer@4.0.1: {}
|
data-uri-to-buffer@4.0.1: {}
|
||||||
|
|
||||||
debug@4.4.1:
|
debug@4.4.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
ms: 2.1.3
|
ms: 2.1.3
|
||||||
|
|
||||||
@@ -1413,7 +1413,7 @@ snapshots:
|
|||||||
- encoding
|
- encoding
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
gaxios@7.1.1:
|
gaxios@7.1.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
extend: 3.0.2
|
extend: 3.0.2
|
||||||
https-proxy-agent: 7.0.6
|
https-proxy-agent: 7.0.6
|
||||||
@@ -1432,7 +1432,7 @@ snapshots:
|
|||||||
|
|
||||||
gcp-metadata@7.0.1:
|
gcp-metadata@7.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
gaxios: 7.1.1
|
gaxios: 7.1.2
|
||||||
google-logging-utils: 1.1.1
|
google-logging-utils: 1.1.1
|
||||||
json-bigint: 1.0.0
|
json-bigint: 1.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -1455,11 +1455,11 @@ snapshots:
|
|||||||
package-json-from-dist: 1.0.1
|
package-json-from-dist: 1.0.1
|
||||||
path-scurry: 2.0.0
|
path-scurry: 2.0.0
|
||||||
|
|
||||||
google-auth-library@10.3.0:
|
google-auth-library@10.4.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
base64-js: 1.5.1
|
base64-js: 1.5.1
|
||||||
ecdsa-sig-formatter: 1.0.11
|
ecdsa-sig-formatter: 1.0.11
|
||||||
gaxios: 7.1.1
|
gaxios: 7.1.2
|
||||||
gcp-metadata: 7.0.1
|
gcp-metadata: 7.0.1
|
||||||
google-logging-utils: 1.1.1
|
google-logging-utils: 1.1.1
|
||||||
gtoken: 8.0.0
|
gtoken: 8.0.0
|
||||||
@@ -1493,7 +1493,7 @@ snapshots:
|
|||||||
|
|
||||||
gtoken@8.0.0:
|
gtoken@8.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
gaxios: 7.1.1
|
gaxios: 7.1.2
|
||||||
jws: 4.0.0
|
jws: 4.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -1515,7 +1515,7 @@ snapshots:
|
|||||||
https-proxy-agent@7.0.6:
|
https-proxy-agent@7.0.6:
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base: 7.1.4
|
agent-base: 7.1.4
|
||||||
debug: 4.4.1
|
debug: 4.4.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -1561,7 +1561,7 @@ snapshots:
|
|||||||
|
|
||||||
json5@2.2.3: {}
|
json5@2.2.3: {}
|
||||||
|
|
||||||
jsonrepair@3.13.0: {}
|
jsonrepair@3.13.1: {}
|
||||||
|
|
||||||
jwa@2.0.1:
|
jwa@2.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1627,7 +1627,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
wrappy: 1.0.2
|
wrappy: 1.0.2
|
||||||
|
|
||||||
openai@5.16.0(ws@8.18.3):
|
openai@5.23.2(ws@8.18.3):
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
ws: 8.18.3
|
ws: 8.18.3
|
||||||
|
|
||||||
@@ -1811,7 +1811,7 @@ snapshots:
|
|||||||
|
|
||||||
undici-types@7.10.0: {}
|
undici-types@7.10.0: {}
|
||||||
|
|
||||||
undici@7.15.0: {}
|
undici@7.16.0: {}
|
||||||
|
|
||||||
uuid@11.1.0: {}
|
uuid@11.1.0: {}
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ export class ImageAgent implements IAgent {
|
|||||||
shouldHandle(req: any, config: any): boolean {
|
shouldHandle(req: any, config: any): boolean {
|
||||||
if (!config.Router.image || req.body.model === config.Router.image) return false;
|
if (!config.Router.image || req.body.model === config.Router.image) return false;
|
||||||
const lastMessage = req.body.messages[req.body.messages.length - 1]
|
const lastMessage = req.body.messages[req.body.messages.length - 1]
|
||||||
if (!config.forceUseImageAgent && lastMessage.role === 'user' && Array.isArray(lastMessage.content) && lastMessage.content.find((item: any) => item.type === 'image' || item?.content?.some((sub: any) => sub.type === 'image'))) {
|
if (!config.forceUseImageAgent && lastMessage.role === 'user' && Array.isArray(lastMessage.content) && lastMessage.content.find((item: any) => item.type === 'image' || (Array.isArray(item?.content) && item.content.some((sub: any) => sub.type === 'image')))) {
|
||||||
req.body.model = config.Router.image
|
req.body.model = config.Router.image
|
||||||
const images = []
|
const images = []
|
||||||
lastMessage.content.filter((item: any) => item.type === 'tool_result').forEach((item: any) => {
|
lastMessage.content.filter((item: any) => item.type === 'tool_result').forEach((item: any) => {
|
||||||
@@ -71,7 +71,7 @@ export class ImageAgent implements IAgent {
|
|||||||
lastMessage.content.push(...images);
|
lastMessage.content.push(...images);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return req.body.messages.some((msg: any) => msg.role === 'user' && Array.isArray(msg.content) && msg.content.some((item: any) => item.type === 'image' || item?.content?.some((sub: any) => sub.type === 'image')))
|
return req.body.messages.some((msg: any) => msg.role === 'user' && Array.isArray(msg.content) && msg.content.some((item: any) => item.type === 'image' || (Array.isArray(item?.content) && item.content.some((sub: any) => sub.type === 'image'))))
|
||||||
}
|
}
|
||||||
|
|
||||||
appendTools() {
|
appendTools() {
|
||||||
|
|||||||
Reference in New Issue
Block a user