@killingjacky/claude-code-router 2.1.0 → 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.
Files changed (60) hide show
  1. package/README.md +53 -19
  2. package/dist/cli.js +234 -238
  3. package/dist/main/cli.js +8896 -0
  4. package/dist/main/fusion-tool-fallback-mcp.js +5 -0
  5. package/dist/main/fusion-vision-mcp.js +10 -0
  6. package/dist/main/gateway-bootstrap.js +2 -0
  7. package/dist/main/local-agent-auth-provider-hook.js +294 -0
  8. package/dist/main/media-tools-proxy-mcp.js +6 -0
  9. package/dist/main/request-log-worker.js +951 -0
  10. package/dist/main/route-script-worker.js +61 -0
  11. package/dist/main/toolhub-mcp.js +48 -0
  12. package/dist/main/upstream-header-sanitizer.js +1 -0
  13. package/dist/models.json +657155 -0
  14. package/dist/renderer/assets/assets/anthropic-CJYB5ODC.png +0 -0
  15. package/dist/renderer/assets/assets/bailian-6RH6ASGG.ico +0 -0
  16. package/dist/renderer/assets/assets/claude-code-WX35JWK4.png +0 -0
  17. package/dist/renderer/assets/assets/claudeapi-A6VUG2I3.png +0 -0
  18. package/dist/renderer/assets/assets/code0-XF6QJ6WD.png +0 -0
  19. package/dist/renderer/assets/assets/codex-3X2KBXKY.png +0 -0
  20. package/dist/renderer/assets/assets/deepseek-ZIDCDTQF.ico +0 -0
  21. package/dist/renderer/assets/assets/fenno-XFKUO3XQ.jpg +0 -0
  22. package/dist/renderer/assets/assets/gemini-7QB7T63T.svg +1 -0
  23. package/dist/renderer/assets/assets/grok-RUIG6CO6.ico +0 -0
  24. package/dist/renderer/assets/assets/infistar-ai-QGWTTUZK.jpg +0 -0
  25. package/dist/renderer/assets/assets/kilo-WKXQUJ25.svg +13 -0
  26. package/dist/renderer/assets/assets/logo-IPLFWCDN.png +0 -0
  27. package/dist/renderer/assets/assets/mascot-transition-DUBPNIIV.svg +100 -0
  28. package/dist/renderer/assets/assets/minimax-5TL6POE3.ico +0 -0
  29. package/dist/renderer/assets/assets/mistral-2RFSC6K3.webp +0 -0
  30. package/dist/renderer/assets/assets/moonshot-FNEXMLNW.ico +0 -0
  31. package/dist/renderer/assets/assets/nvidia-CCRWBFBH.svg +1 -0
  32. package/dist/renderer/assets/assets/openai-2EIP7LI2.png +0 -0
  33. package/dist/renderer/assets/assets/opencode-CEWXDOQI.ico +0 -0
  34. package/dist/renderer/assets/assets/openrouter-CZIFREDB.ico +0 -0
  35. package/dist/renderer/assets/assets/pi-O6OOC4YY.svg +21 -0
  36. package/dist/renderer/assets/assets/qiniu-ai-A5VJAOJ6.png +0 -0
  37. package/dist/renderer/assets/assets/runapi-UAX35AOL.jpg +0 -0
  38. package/dist/renderer/assets/assets/siliconflow-QCZUQAH2.png +0 -0
  39. package/dist/renderer/assets/assets/teamorouter-3LCEETRZ.png +0 -0
  40. package/dist/renderer/assets/assets/tray-cyan-C3U4WBE7.png +0 -0
  41. package/dist/renderer/assets/assets/tray-orange-VUJTRHBB.png +0 -0
  42. package/dist/renderer/assets/assets/tray-violet-EGMLZ2GB.png +0 -0
  43. package/dist/renderer/assets/assets/unity2-QCJYG2D6.jpg +0 -0
  44. package/dist/renderer/assets/assets/workbuddy-LBUELROU.png +0 -0
  45. package/dist/renderer/assets/assets/xiaomi-mimo-LQ6RRXCR.png +0 -0
  46. package/dist/renderer/assets/assets/zai-global-coding-OMCES3LL.svg +219 -0
  47. package/dist/renderer/assets/assets/zai-global-general-OMCES3LL.svg +219 -0
  48. package/dist/renderer/assets/assets/zcode-Z7V7YY2Q.png +0 -0
  49. package/dist/renderer/assets/assets/zhipu-cn-coding-7BBWPUTC.png +0 -0
  50. package/dist/renderer/assets/assets/zhipu-cn-general-7BBWPUTC.png +0 -0
  51. package/dist/renderer/assets/browser.js +408 -0
  52. package/dist/renderer/assets/log-body.worker.js +3 -0
  53. package/dist/renderer/assets/main.css +2 -0
  54. package/dist/renderer/assets/main.js +103 -0
  55. package/dist/renderer/assets/tray.js +8 -0
  56. package/dist/renderer/assets/web-client-bridge.js +1 -0
  57. package/dist/renderer/pages/browser/index.html +13 -0
  58. package/dist/renderer/pages/home/index.html +18 -0
  59. package/dist/renderer/pages/tray/index.html +17 -0
  60. package/package.json +6 -2
@@ -0,0 +1 @@
1
+ "use strict";var d=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var x=(e,n)=>{for(var s in n)d(e,s,{get:n[s],enumerable:!0})},b=(e,n,s,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of R(n))!w.call(e,i)&&i!==s&&d(e,i,{get:()=>n[i],enumerable:!(r=l(n,i))||r.enumerable});return e};var k=e=>b(d({},"__esModule",{value:!0}),e);var U={};x(U,{createGatewayPlugin:()=>L,mergeUpstreamProviderHeaders:()=>m,rewriteUpstreamProviderUrl:()=>h,sanitizeUpstreamProviderHeaders:()=>p});module.exports=k(U);function a(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function u(e){return typeof e=="string"&&e.trim()?e.trim():void 0}var v=["x-claude-code-session-id","x-claude-session-id"];function c(e){let n=e.upstreamRequest;if(e.targetProviderConfig?.type?.trim().toLowerCase()!=="openai_responses")return n;let r=n.body;if((n.bodyEncoding??"json")!=="json"||!a(r))return n;let i=P(e.request?.body),o={};if(!u(r.prompt_cache_key)){let t=q(e.request?.headers,i);t&&(o.prompt_cache_key=t)}return i&&r.metadata===void 0&&(o.metadata={user_id:i}),Object.keys(o).length===0?n:{...n,body:{...r,...o}}}function q(e,n){for(let s of v){let r=A(e,s);if(r)return r}return n}function P(e){if(!(!a(e)||!a(e.metadata)))return u(e.metadata.user_id)}function A(e,n){for(let[s,r]of Object.entries(e??{})){if(s.trim().toLowerCase()!==n)continue;let i=Array.isArray(r)?r:[r];for(let o of i){let t=u(o);if(t)return t}}}var g=new Set(["x-auth-api-key-id","x-auth-sub"]),S=new Set(["x-gateway-target-provider","x-gateway-target-provider-name","x-target-model","x-target-provider","x-target-providers"]),H=new Set(["api-key","authorization","x-api-key"]),j=new Set(["forwarded","via","x-real-ip"]),z=new Set(["connection","content-encoding","content-length","expect","host","keep-alive","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"]);function p(e){let n={};for(let[s,r]of Object.entries(e)){let i=s.trim().toLowerCase();i.startsWith("x-ccr-")||g.has(i)||(n[s]=r)}return n}function m(e,n){let s=new Set(z);for(let i of V(e?.connection))for(let o of i.split(",")){let t=o.trim().toLowerCase();t&&s.add(t)}let r={};for(let[i,o]of Object.entries(e??{})){let t=i.trim().toLowerCase();!t||o===void 0||t.startsWith("x-ccr-")||g.has(t)||S.has(t)||H.has(t)||j.has(t)||t.startsWith("x-forwarded-")||s.has(t)||(r[t]=Array.isArray(o)?o.join(","):o)}for(let[i,o]of Object.entries(p(n))){let t=i.trim().toLowerCase();!t||s.has(t)||(r[t]=o)}return r}function h(e,n,s){let r=n?.type?.trim().toLowerCase();return r!=="anthropic_messages"&&r!=="anthropic"?e:C(e,s?.anthropicBaseUrl,n?.baseurl)}function V(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function C(e,n,s){if(!n||!s)return e;try{let r=new URL(e),i=new URL(n),o=new URL(s);if(r.protocol!==i.protocol||r.host!==i.host)return e;let t=f(i.pathname);if(t&&r.pathname!==t&&!r.pathname.startsWith(`${t}/`))return e;let y=t?r.pathname.slice(t.length)||"/":r.pathname;return o.pathname=I(f(o.pathname),y),o.search=r.search,o.hash=r.hash,o.toString()}catch{return e}}function f(e){let n=e.replace(/\/+$/,"");return n==="/"?"":n}function I(e,n){let s=n.replace(/^\/+/,"");return e?s?`${e}/${s}`:e:`/${s}`}function L(){return{providerHooks:[{key:"ccr-upstream-header-sanitizer",transformRequest(e){return{ok:!0,value:{...e.upstreamRequest,headers:m(e.request?.headers,e.upstreamRequest.headers),url:h(e.upstreamRequest.url,e.targetProviderConfig,e.config)}}}},{key:"ccr-responses-session-affinity",transformRequest(e){return{ok:!0,value:c(e)}}}]}}0&&(module.exports={createGatewayPlugin,mergeUpstreamProviderHeaders,rewriteUpstreamProviderUrl,sanitizeUpstreamProviderHeaders});