@killingjacky/claude-code-router 2.1.1 → 2.2.0
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/README.md +53 -19
- package/dist/cli.js +234 -238
- package/dist/main/cli.js +8896 -0
- package/dist/main/fusion-tool-fallback-mcp.js +5 -0
- package/dist/main/fusion-vision-mcp.js +10 -0
- package/dist/main/gateway-bootstrap.js +2 -0
- package/dist/main/local-agent-auth-provider-hook.js +294 -0
- package/dist/main/media-tools-proxy-mcp.js +6 -0
- package/dist/main/request-log-worker.js +951 -0
- package/dist/main/route-script-worker.js +61 -0
- package/dist/main/toolhub-mcp.js +48 -0
- package/dist/main/upstream-header-sanitizer.js +1 -0
- package/dist/models.json +657155 -0
- package/dist/renderer/assets/assets/anthropic-CJYB5ODC.png +0 -0
- package/dist/renderer/assets/assets/bailian-6RH6ASGG.ico +0 -0
- package/dist/renderer/assets/assets/claude-code-WX35JWK4.png +0 -0
- package/dist/renderer/assets/assets/claudeapi-A6VUG2I3.png +0 -0
- package/dist/renderer/assets/assets/code0-XF6QJ6WD.png +0 -0
- package/dist/renderer/assets/assets/codex-3X2KBXKY.png +0 -0
- package/dist/renderer/assets/assets/deepseek-ZIDCDTQF.ico +0 -0
- package/dist/renderer/assets/assets/fenno-XFKUO3XQ.jpg +0 -0
- package/dist/renderer/assets/assets/gemini-7QB7T63T.svg +1 -0
- package/dist/renderer/assets/assets/grok-RUIG6CO6.ico +0 -0
- package/dist/renderer/assets/assets/infistar-ai-QGWTTUZK.jpg +0 -0
- package/dist/renderer/assets/assets/kilo-WKXQUJ25.svg +13 -0
- package/dist/renderer/assets/assets/logo-IPLFWCDN.png +0 -0
- package/dist/renderer/assets/assets/mascot-transition-DUBPNIIV.svg +100 -0
- package/dist/renderer/assets/assets/minimax-5TL6POE3.ico +0 -0
- package/dist/renderer/assets/assets/mistral-2RFSC6K3.webp +0 -0
- package/dist/renderer/assets/assets/moonshot-FNEXMLNW.ico +0 -0
- package/dist/renderer/assets/assets/nvidia-CCRWBFBH.svg +1 -0
- package/dist/renderer/assets/assets/openai-2EIP7LI2.png +0 -0
- package/dist/renderer/assets/assets/opencode-CEWXDOQI.ico +0 -0
- package/dist/renderer/assets/assets/openrouter-CZIFREDB.ico +0 -0
- package/dist/renderer/assets/assets/pi-O6OOC4YY.svg +21 -0
- package/dist/renderer/assets/assets/qiniu-ai-A5VJAOJ6.png +0 -0
- package/dist/renderer/assets/assets/runapi-UAX35AOL.jpg +0 -0
- package/dist/renderer/assets/assets/siliconflow-QCZUQAH2.png +0 -0
- package/dist/renderer/assets/assets/teamorouter-3LCEETRZ.png +0 -0
- package/dist/renderer/assets/assets/tray-cyan-C3U4WBE7.png +0 -0
- package/dist/renderer/assets/assets/tray-orange-VUJTRHBB.png +0 -0
- package/dist/renderer/assets/assets/tray-violet-EGMLZ2GB.png +0 -0
- package/dist/renderer/assets/assets/unity2-QCJYG2D6.jpg +0 -0
- package/dist/renderer/assets/assets/workbuddy-LBUELROU.png +0 -0
- package/dist/renderer/assets/assets/xiaomi-mimo-LQ6RRXCR.png +0 -0
- package/dist/renderer/assets/assets/zai-global-coding-OMCES3LL.svg +219 -0
- package/dist/renderer/assets/assets/zai-global-general-OMCES3LL.svg +219 -0
- package/dist/renderer/assets/assets/zcode-Z7V7YY2Q.png +0 -0
- package/dist/renderer/assets/assets/zhipu-cn-coding-7BBWPUTC.png +0 -0
- package/dist/renderer/assets/assets/zhipu-cn-general-7BBWPUTC.png +0 -0
- package/dist/renderer/assets/browser.js +408 -0
- package/dist/renderer/assets/log-body.worker.js +3 -0
- package/dist/renderer/assets/main.css +2 -0
- package/dist/renderer/assets/main.js +103 -0
- package/dist/renderer/assets/tray.js +8 -0
- package/dist/renderer/assets/web-client-bridge.js +1 -0
- package/dist/renderer/pages/browser/index.html +13 -0
- package/dist/renderer/pages/home/index.html +18 -0
- package/dist/renderer/pages/tray/index.html +17 -0
- package/package.json +5 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var u="/api/ccr/rpc",d="x-ccr-web-auth",i="ccr_web_token",p="ccr.webAuthToken",s=g();async function t(e,r=[]){let n=await fetch(u,{body:JSON.stringify({args:y(r),method:e}),headers:{"content-type":"application/json",...s?{[d]:s}:{}},method:"POST"}),a;try{a=await n.json()}catch{a=void 0}if(!n.ok||!a?.ok){let c=a&&!a.ok?a.error.message:n.status===404?"CCR management service is unavailable. Make sure the CCR app or ccr ui command is running, then retry.":`CCR web API failed with HTTP ${n.status}`;throw new Error(c)}return a.value}function y(e){let r=e.length;for(;r>0&&e[r-1]===void 0;)r-=1;return r===e.length?e:e.slice(0,r)}function g(){let e=l();return e?(A(e),e):C()}function l(){try{let e=new URL(window.location.href),r=e.searchParams.get(i)?.trim()??"";return r?(e.searchParams.delete(i),window.history.replaceState(window.history.state,"",`${e.pathname}${e.search}${e.hash}`),r):""}catch{return""}}function C(){try{return window.sessionStorage.getItem(p)?.trim()??""}catch{return""}}function A(e){try{window.sessionStorage.setItem(p,e)}catch{}}function o(){return()=>{}}async function P(){let e=window.prompt("Plugin directory path");if(e?.trim())return t("selectPluginDirectory",[e.trim()])}function w(e){let r=new URL(e.trim());if(r.protocol!=="http:"&&r.protocol!=="https:")throw new Error("Only http and https URLs can be opened.");return r.toString()}var R={applyClaudeAppGateway:e=>t("applyClaudeAppGateway",[e]),applyProfile:()=>t("applyProfile"),cancelBotGatewayQrLogin:e=>t("cancelBotGatewayQrLogin",[e]),checkProviderConnectivity:e=>t("checkProviderConnectivity",[e]),clearProxyNetworkCaptures:()=>t("clearProxyNetworkCaptures"),closeBotGatewayQrWindow:e=>t("closeBotGatewayQrWindow",[e]),closeTray:()=>Promise.resolve(),detectProviderIcon:e=>t("detectProviderIcon",[e]),exportData:()=>t("exportData"),fetchProviderManifest:e=>t("fetchProviderManifest",[e]),getAgentAnalysis:e=>t("getAgentAnalysis",[e]),getAgentTracePayload:e=>t("getAgentTracePayload",[e]),getAppInfo:()=>t("getAppInfo"),getConfig:()=>t("getConfig"),getGatewayStatus:()=>t("getGatewayStatus"),getLocalAgentProviderCandidates:()=>t("getLocalAgentProviderCandidates"),getOnboardingFinished:()=>t("getOnboardingFinished"),getPendingProviderDeepLinks:()=>Promise.resolve([]),getPluginMarketplace:()=>t("getPluginMarketplace"),getProfileOpenCommand:e=>t("getProfileOpenCommand",[e]),getProfileRuntimeStatus:()=>t("getProfileRuntimeStatus"),getProviderAccountSnapshots:(e,r)=>t("getProviderAccountSnapshots",[e,r]),getProviderCatalogModels:e=>t("getProviderCatalogModels",[e]),getOpenRouterProviderCatalog:e=>t("getOpenRouterProviderCatalog",[e]),getProviderPresets:()=>t("getProviderPresets"),getProxyCertificateStatus:()=>t("getProxyCertificateStatus"),getProxyNetworkCaptures:()=>t("getProxyNetworkCaptures"),getProxyStatus:()=>t("getProxyStatus"),getRequestLogDetail:e=>t("getRequestLogDetail",[e]),getRequestLogBodyChunk:e=>t("getRequestLogBodyChunk",[e]),getRequestLogs:e=>t("getRequestLogs",[e]),getUpdateStatus:()=>t("getUpdateStatus"),getUsageStats:(e,r)=>t("getUsageStats",[e,r]),importLocalAgentProvider:e=>t("importLocalAgentProvider",[e]),installProxyCertificate:()=>t("installProxyCertificate"),listMcpServerTools:e=>t("listMcpServerTools",[e]),onBeforeQuit:o,onOpenSettingsRequest:o,onOpenUpdateRequest:o,onProviderDeepLink:o,onUpdateStatusChanged:o,openBotGatewayQrWindow:e=>t("openBotGatewayQrWindow",[e]),openBuiltInBrowser:e=>t("openBuiltInBrowser",[e]),openExternal:async e=>{window.open(w(e),"_blank","noopener,noreferrer")},openProfile:e=>t("openProfile",[e]),probeLocalAgentProvider:e=>t("probeLocalAgentProvider",[e]),probeProvider:e=>t("probeProvider",[e]),probeProviderCandidates:e=>t("probeProviderCandidates",[e]),quitApp:()=>t("quitApp"),restartGateway:()=>t("restartGateway"),restartProxy:()=>t("restartProxy"),revealProxyCertificate:()=>t("revealProxyCertificate"),resetCodexRateLimitCredit:e=>t("resetCodexRateLimitCredit",[e]),saveApiKeys:e=>t("saveApiKeys",[e]),saveConfig:(e,r)=>t("saveConfig",[e,r]),scanBotHandoffBluetoothTargets:()=>t("scanBotHandoffBluetoothTargets"),scanBotHandoffWifiTargets:()=>t("scanBotHandoffWifiTargets"),selectPluginDirectory:()=>P(),setOnboardingFinished:()=>t("setOnboardingFinished"),setProxyNetworkCaptureEnabled:e=>t("setProxyNetworkCaptureEnabled",[e]),setTrayDetailOpen:()=>Promise.resolve(),showMainWindow:()=>Promise.resolve(),startBotGatewayQrLogin:e=>t("startBotGatewayQrLogin",[e]),startGateway:()=>t("startGateway"),stopGateway:()=>t("stopGateway"),stopProfile:e=>t("stopProfile",[e]),testProviderAccountConnector:e=>t("testProviderAccountConnector",[e]),testRouteScript:e=>t("testRouteScript",[e]),updateCheck:()=>t("updateCheck"),updateDownload:()=>t("updateDownload"),updateInstall:()=>t("updateInstall"),validateRouteScript:e=>t("validateRouteScript",[e]),waitBotGatewayQrLogin:e=>t("waitBotGatewayQrLogin",[e])};window.ccr||(window.ccr=R);})();
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>CCR APPs</title>
|
|
7
|
+
<link rel="stylesheet" href="../../assets/main.css" />
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="root"></div>
|
|
11
|
+
<script type="module" src="../../assets/browser.js"></script>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<meta
|
|
7
|
+
http-equiv="Content-Security-Policy"
|
|
8
|
+
content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: file:; font-src 'self' data:; connect-src 'self' http://127.0.0.1:* http://localhost:* ws://127.0.0.1:* ws://localhost:*; object-src 'none'; base-uri 'none'; form-action 'none'"
|
|
9
|
+
/>
|
|
10
|
+
<title>Claude Code Router</title>
|
|
11
|
+
<link rel="stylesheet" href="../../assets/main.css" />
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<div id="root"></div>
|
|
15
|
+
<script src="../../assets/web-client-bridge.js"></script>
|
|
16
|
+
<script type="module" src="../../assets/main.js"></script>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<meta
|
|
7
|
+
http-equiv="Content-Security-Policy"
|
|
8
|
+
content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: file:; font-src 'self' data:; connect-src 'self' http://127.0.0.1:* http://localhost:* ws://127.0.0.1:* ws://localhost:*; object-src 'none'; base-uri 'none'; form-action 'none'"
|
|
9
|
+
/>
|
|
10
|
+
<title>Claude Code Router Usage</title>
|
|
11
|
+
<link rel="stylesheet" href="../../assets/main.css" />
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<div id="root"></div>
|
|
15
|
+
<script type="module" src="../../assets/tray.js"></script>
|
|
16
|
+
</body>
|
|
17
|
+
</html>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@killingjacky/claude-code-router",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Use Claude Code without an Anthropics account and route it to another LLM provider",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -40,7 +40,10 @@
|
|
|
40
40
|
],
|
|
41
41
|
"author": "killingjacky",
|
|
42
42
|
"license": "MIT",
|
|
43
|
-
"repository":
|
|
43
|
+
"repository": {
|
|
44
|
+
"type": "git",
|
|
45
|
+
"url": "git+https://github.com/KillingJacky/claude-code-router.git"
|
|
46
|
+
},
|
|
44
47
|
"devDependencies": {
|
|
45
48
|
"@types/node": "^24.0.15",
|
|
46
49
|
"esbuild": "^0.25.1",
|