@jsonstudio/rcc 0.89.1205 → 0.89.1457

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 (391) hide show
  1. package/README.md +53 -1412
  2. package/configsamples/config.json +426 -0
  3. package/configsamples/config.reference.json +58 -0
  4. package/configsamples/provider/crs/config.v1.json +46 -0
  5. package/configsamples/provider/glm/config.v1.json +81 -0
  6. package/configsamples/provider/glm-anthropic/config.v1.json +45 -0
  7. package/configsamples/provider/iflow/config.v1.json +74 -0
  8. package/configsamples/provider/kimi/config.v1.json +41 -0
  9. package/configsamples/provider/lmstudio/config.v1.json +101 -0
  10. package/configsamples/provider/mimo/config.v1.json +35 -0
  11. package/configsamples/provider/modelscope/config.v1.json +96 -0
  12. package/configsamples/provider/qwen/config.v1.json +38 -0
  13. package/configsamples/provider/tab/config.v1.json +50 -0
  14. package/configsamples/provider/tabglm/config.v1.json +49 -0
  15. package/dist/build-info.js +2 -2
  16. package/dist/cli/commands/code.js +12 -6
  17. package/dist/cli/commands/code.js.map +1 -1
  18. package/dist/cli/commands/config.d.ts +2 -1
  19. package/dist/cli/commands/config.js +77 -103
  20. package/dist/cli/commands/config.js.map +1 -1
  21. package/dist/cli/commands/examples.js +6 -6
  22. package/dist/cli/commands/examples.js.map +1 -1
  23. package/dist/cli/commands/init.d.ts +28 -0
  24. package/dist/cli/commands/init.js +94 -0
  25. package/dist/cli/commands/init.js.map +1 -0
  26. package/dist/cli/commands/port.js +10 -2
  27. package/dist/cli/commands/port.js.map +1 -1
  28. package/dist/cli/commands/restart.js +5 -2
  29. package/dist/cli/commands/restart.js.map +1 -1
  30. package/dist/cli/commands/start.js +25 -22
  31. package/dist/cli/commands/start.js.map +1 -1
  32. package/dist/cli/commands/status.js +1 -0
  33. package/dist/cli/commands/status.js.map +1 -1
  34. package/dist/cli/commands/stop.js +1 -0
  35. package/dist/cli/commands/stop.js.map +1 -1
  36. package/dist/cli/config/bundled-docs.d.ts +20 -0
  37. package/dist/cli/config/bundled-docs.js +91 -0
  38. package/dist/cli/config/bundled-docs.js.map +1 -0
  39. package/dist/cli/config/init-config.d.ts +37 -0
  40. package/dist/cli/config/init-config.js +212 -0
  41. package/dist/cli/config/init-config.js.map +1 -0
  42. package/dist/cli/config/init-provider-catalog.d.ts +8 -0
  43. package/dist/cli/config/init-provider-catalog.js +187 -0
  44. package/dist/cli/config/init-provider-catalog.js.map +1 -0
  45. package/dist/cli/register/init-command.d.ts +3 -0
  46. package/dist/cli/register/init-command.js +5 -0
  47. package/dist/cli/register/init-command.js.map +1 -0
  48. package/dist/cli.js +28 -3
  49. package/dist/cli.js.map +1 -1
  50. package/dist/client/gemini/gemini-protocol-client.js +2 -1
  51. package/dist/client/gemini/gemini-protocol-client.js.map +1 -1
  52. package/dist/client/gemini-cli/gemini-cli-protocol-client.js +40 -16
  53. package/dist/client/gemini-cli/gemini-cli-protocol-client.js.map +1 -1
  54. package/dist/client/openai/chat-protocol-client.js +2 -1
  55. package/dist/client/openai/chat-protocol-client.js.map +1 -1
  56. package/dist/client/responses/responses-protocol-client.js +2 -1
  57. package/dist/client/responses/responses-protocol-client.js.map +1 -1
  58. package/dist/config/risk-control-config.d.ts +94 -0
  59. package/dist/config/risk-control-config.js +196 -0
  60. package/dist/config/risk-control-config.js.map +1 -0
  61. package/dist/constants/index.d.ts +6 -0
  62. package/dist/constants/index.js +13 -0
  63. package/dist/constants/index.js.map +1 -1
  64. package/dist/docs/daemon-admin-ui.html +2113 -190
  65. package/dist/error-handling/quiet-error-handling-center.js +46 -8
  66. package/dist/error-handling/quiet-error-handling-center.js.map +1 -1
  67. package/dist/index.js +0 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/manager/modules/health/index.d.ts +1 -1
  70. package/dist/manager/modules/quota/antigravity-quota-manager.d.ts +70 -0
  71. package/dist/manager/modules/quota/antigravity-quota-manager.js +442 -0
  72. package/dist/manager/modules/quota/antigravity-quota-manager.js.map +1 -0
  73. package/dist/manager/modules/quota/index.d.ts +3 -127
  74. package/dist/manager/modules/quota/index.js +2 -1093
  75. package/dist/manager/modules/quota/index.js.map +1 -1
  76. package/dist/manager/modules/quota/provider-key-normalization.d.ts +3 -0
  77. package/dist/manager/modules/quota/provider-key-normalization.js +155 -0
  78. package/dist/manager/modules/quota/provider-key-normalization.js.map +1 -0
  79. package/dist/manager/modules/quota/provider-quota-daemon.cooldown.d.ts +9 -0
  80. package/dist/manager/modules/quota/provider-quota-daemon.cooldown.js +115 -0
  81. package/dist/manager/modules/quota/provider-quota-daemon.cooldown.js.map +1 -0
  82. package/dist/manager/modules/quota/provider-quota-daemon.d.ts +77 -0
  83. package/dist/manager/modules/quota/provider-quota-daemon.events.d.ts +12 -0
  84. package/dist/manager/modules/quota/provider-quota-daemon.events.js +239 -0
  85. package/dist/manager/modules/quota/provider-quota-daemon.events.js.map +1 -0
  86. package/dist/manager/modules/quota/provider-quota-daemon.js +404 -0
  87. package/dist/manager/modules/quota/provider-quota-daemon.js.map +1 -0
  88. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.d.ts +11 -0
  89. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js +192 -0
  90. package/dist/manager/modules/quota/provider-quota-daemon.model-backoff.js.map +1 -0
  91. package/dist/manager/modules/quota/provider-quota-daemon.snapshot.d.ts +8 -0
  92. package/dist/manager/modules/quota/provider-quota-daemon.snapshot.js +96 -0
  93. package/dist/manager/modules/quota/provider-quota-daemon.snapshot.js.map +1 -0
  94. package/dist/manager/modules/quota/provider-quota-daemon.view.d.ts +19 -0
  95. package/dist/manager/modules/quota/provider-quota-daemon.view.js +37 -0
  96. package/dist/manager/modules/quota/provider-quota-daemon.view.js.map +1 -0
  97. package/dist/manager/modules/routing/index.d.ts +1 -0
  98. package/dist/manager/modules/routing/index.js +11 -25
  99. package/dist/manager/modules/routing/index.js.map +1 -1
  100. package/dist/manager/quota/provider-quota-center.d.ts +2 -0
  101. package/dist/manager/quota/provider-quota-center.js +80 -82
  102. package/dist/manager/quota/provider-quota-center.js.map +1 -1
  103. package/dist/modules/llmswitch/bridge.d.ts +16 -18
  104. package/dist/modules/llmswitch/bridge.js +293 -94
  105. package/dist/modules/llmswitch/bridge.js.map +1 -1
  106. package/dist/modules/llmswitch/core-loader.d.ts +4 -2
  107. package/dist/modules/llmswitch/core-loader.js +32 -20
  108. package/dist/modules/llmswitch/core-loader.js.map +1 -1
  109. package/dist/modules/pipeline/utils/colored-logger.js +3 -2
  110. package/dist/modules/pipeline/utils/colored-logger.js.map +1 -1
  111. package/dist/modules/pipeline/utils/debug-logger.js +1 -1
  112. package/dist/modules/pipeline/utils/debug-logger.js.map +1 -1
  113. package/dist/providers/auth/antigravity-userinfo-helper.d.ts +2 -1
  114. package/dist/providers/auth/antigravity-userinfo-helper.js +25 -4
  115. package/dist/providers/auth/antigravity-userinfo-helper.js.map +1 -1
  116. package/dist/providers/auth/iflow-cookie-auth.js +0 -2
  117. package/dist/providers/auth/iflow-cookie-auth.js.map +1 -1
  118. package/dist/providers/auth/oauth-lifecycle.js +2 -23
  119. package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
  120. package/dist/providers/auth/tokenfile-auth.d.ts +2 -0
  121. package/dist/providers/auth/tokenfile-auth.js +33 -1
  122. package/dist/providers/auth/tokenfile-auth.js.map +1 -1
  123. package/dist/providers/core/config/camoufox-launcher.d.ts +5 -0
  124. package/dist/providers/core/config/camoufox-launcher.js +40 -4
  125. package/dist/providers/core/config/camoufox-launcher.js.map +1 -1
  126. package/dist/providers/core/config/service-profiles.js +7 -18
  127. package/dist/providers/core/config/service-profiles.js.map +1 -1
  128. package/dist/providers/core/runtime/antigravity-quota-client.js +6 -3
  129. package/dist/providers/core/runtime/antigravity-quota-client.js.map +1 -1
  130. package/dist/providers/core/runtime/base-provider.d.ts +2 -7
  131. package/dist/providers/core/runtime/base-provider.js +84 -165
  132. package/dist/providers/core/runtime/base-provider.js.map +1 -1
  133. package/dist/providers/core/runtime/gemini-cli-http-provider.d.ts +7 -0
  134. package/dist/providers/core/runtime/gemini-cli-http-provider.js +368 -97
  135. package/dist/providers/core/runtime/gemini-cli-http-provider.js.map +1 -1
  136. package/dist/providers/core/runtime/http-request-executor.d.ts +3 -0
  137. package/dist/providers/core/runtime/http-request-executor.js +110 -38
  138. package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
  139. package/dist/providers/core/runtime/http-transport-provider.d.ts +17 -0
  140. package/dist/providers/core/runtime/http-transport-provider.js +165 -16
  141. package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
  142. package/dist/providers/core/runtime/provider-error-classifier.js +10 -0
  143. package/dist/providers/core/runtime/provider-error-classifier.js.map +1 -1
  144. package/dist/providers/core/runtime/provider-factory.js +7 -5
  145. package/dist/providers/core/runtime/provider-factory.js.map +1 -1
  146. package/dist/providers/core/runtime/provider-runtime-metadata.d.ts +6 -0
  147. package/dist/providers/core/runtime/provider-runtime-metadata.js.map +1 -1
  148. package/dist/providers/core/runtime/rate-limit-manager.d.ts +1 -12
  149. package/dist/providers/core/runtime/rate-limit-manager.js +4 -77
  150. package/dist/providers/core/runtime/rate-limit-manager.js.map +1 -1
  151. package/dist/providers/core/runtime/responses-provider.d.ts +1 -7
  152. package/dist/providers/core/runtime/responses-provider.js +12 -93
  153. package/dist/providers/core/runtime/responses-provider.js.map +1 -1
  154. package/dist/providers/core/strategies/oauth-auth-code-flow.js +12 -8
  155. package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
  156. package/dist/providers/core/utils/http-client.js +36 -46
  157. package/dist/providers/core/utils/http-client.js.map +1 -1
  158. package/dist/providers/core/utils/provider-error-logger.d.ts +1 -1
  159. package/dist/providers/core/utils/provider-error-reporter.d.ts +3 -1
  160. package/dist/providers/core/utils/provider-error-reporter.js +3 -0
  161. package/dist/providers/core/utils/provider-error-reporter.js.map +1 -1
  162. package/dist/providers/core/utils/snapshot-writer.js +1 -4
  163. package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
  164. package/dist/providers/mock/mock-provider-runtime.js +57 -27
  165. package/dist/providers/mock/mock-provider-runtime.js.map +1 -1
  166. package/dist/scripts/camoufox/launch-auth.mjs +193 -58
  167. package/dist/server/handlers/handler-utils.js +8 -3
  168. package/dist/server/handlers/handler-utils.js.map +1 -1
  169. package/dist/server/handlers/responses-handler.js +1 -1
  170. package/dist/server/handlers/responses-handler.js.map +1 -1
  171. package/dist/server/runtime/http-server/daemon-admin/auth-handler.d.ts +2 -0
  172. package/dist/server/runtime/http-server/daemon-admin/auth-handler.js +103 -0
  173. package/dist/server/runtime/http-server/daemon-admin/auth-handler.js.map +1 -0
  174. package/dist/server/runtime/http-server/daemon-admin/auth-session.d.ts +5 -0
  175. package/dist/server/runtime/http-server/daemon-admin/auth-session.js +77 -0
  176. package/dist/server/runtime/http-server/daemon-admin/auth-session.js.map +1 -0
  177. package/dist/server/runtime/http-server/daemon-admin/auth-store.d.ts +18 -0
  178. package/dist/server/runtime/http-server/daemon-admin/auth-store.js +89 -0
  179. package/dist/server/runtime/http-server/daemon-admin/auth-store.js.map +1 -0
  180. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js +1 -2
  181. package/dist/server/runtime/http-server/daemon-admin/credentials-handler.js.map +1 -1
  182. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js +226 -24
  183. package/dist/server/runtime/http-server/daemon-admin/providers-handler.js.map +1 -1
  184. package/dist/server/runtime/http-server/daemon-admin/quota-handler.js +47 -8
  185. package/dist/server/runtime/http-server/daemon-admin/quota-handler.js.map +1 -1
  186. package/dist/server/runtime/http-server/daemon-admin/restart-handler.js +1 -1
  187. package/dist/server/runtime/http-server/daemon-admin/restart-handler.js.map +1 -1
  188. package/dist/server/runtime/http-server/daemon-admin/stats-handler.js +1 -1
  189. package/dist/server/runtime/http-server/daemon-admin/stats-handler.js.map +1 -1
  190. package/dist/server/runtime/http-server/daemon-admin/status-handler.js +68 -4
  191. package/dist/server/runtime/http-server/daemon-admin/status-handler.js.map +1 -1
  192. package/dist/server/runtime/http-server/daemon-admin-routes.d.ts +3 -4
  193. package/dist/server/runtime/http-server/daemon-admin-routes.js +9 -14
  194. package/dist/server/runtime/http-server/daemon-admin-routes.js.map +1 -1
  195. package/dist/server/runtime/http-server/executor-metadata.js +1 -1
  196. package/dist/server/runtime/http-server/executor-metadata.js.map +1 -1
  197. package/dist/server/runtime/http-server/executor-response.js +0 -16
  198. package/dist/server/runtime/http-server/executor-response.js.map +1 -1
  199. package/dist/server/runtime/http-server/hub-shadow-compare.js +110 -34
  200. package/dist/server/runtime/http-server/hub-shadow-compare.js.map +1 -1
  201. package/dist/server/runtime/http-server/index.d.ts +5 -3
  202. package/dist/server/runtime/http-server/index.js +281 -136
  203. package/dist/server/runtime/http-server/index.js.map +1 -1
  204. package/dist/server/runtime/http-server/middleware.js +19 -1
  205. package/dist/server/runtime/http-server/middleware.js.map +1 -1
  206. package/dist/server/runtime/http-server/request-executor.js +59 -24
  207. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  208. package/dist/server/runtime/http-server/routes.js +12 -3
  209. package/dist/server/runtime/http-server/routes.js.map +1 -1
  210. package/dist/server/runtime/http-server/session-dir.d.ts +2 -0
  211. package/dist/server/runtime/http-server/session-dir.js +59 -0
  212. package/dist/server/runtime/http-server/session-dir.js.map +1 -0
  213. package/dist/server/runtime/http-server/types.d.ts +0 -4
  214. package/dist/server/utils/utf8-chunk-buffer.js +6 -3
  215. package/dist/server/utils/utf8-chunk-buffer.js.map +1 -1
  216. package/dist/server/utils/warmup-storm-tracker.js +1 -1
  217. package/dist/server/utils/warmup-storm-tracker.js.map +1 -1
  218. package/dist/server-factory.d.ts +6 -28
  219. package/dist/server-factory.js +8 -93
  220. package/dist/server-factory.js.map +1 -1
  221. package/dist/token-daemon/index.js +2 -2
  222. package/dist/token-daemon/index.js.map +1 -1
  223. package/dist/token-daemon/provider-registry.js +0 -1
  224. package/dist/token-daemon/provider-registry.js.map +1 -1
  225. package/dist/token-daemon/server-utils.js +8 -9
  226. package/dist/token-daemon/server-utils.js.map +1 -1
  227. package/dist/token-daemon/token-utils.js +1 -1
  228. package/dist/token-daemon/token-utils.js.map +1 -1
  229. package/dist/tools/semantic-replay.js +2 -2
  230. package/dist/tools/semantic-replay.js.map +1 -1
  231. package/dist/tools/stats-request-events.d.ts +1 -1
  232. package/dist/tools/stats-usage.js +6 -3
  233. package/dist/tools/stats-usage.js.map +1 -1
  234. package/dist/utils/llms-engine-shadow.d.ts +19 -0
  235. package/dist/utils/llms-engine-shadow.js +209 -0
  236. package/dist/utils/llms-engine-shadow.js.map +1 -0
  237. package/dist/utils/runtime-versions.js +2 -1
  238. package/dist/utils/runtime-versions.js.map +1 -1
  239. package/dist/utils/strip-internal-keys.d.ts +12 -0
  240. package/dist/utils/strip-internal-keys.js +28 -0
  241. package/dist/utils/strip-internal-keys.js.map +1 -0
  242. package/docs/ARCHITECTURE.md +402 -0
  243. package/docs/CHAT_PROCESS_PROTOCOL_AND_PIPELINE.md +221 -0
  244. package/docs/CODEX_AND_CLAUDE_CODE.md +69 -0
  245. package/docs/CONFIG_ARCHITECTURE.md +517 -0
  246. package/docs/ERROR_HANDLING_AUDIT.md +0 -0
  247. package/docs/GCLI2API_PARITY_GAPS.md +98 -0
  248. package/docs/INSTALLATION_AND_QUICKSTART.md +74 -0
  249. package/docs/INSTRUCTION_MARKUP.md +89 -0
  250. package/docs/MODULE_ENHANCEMENT_SYSTEM.md +666 -0
  251. package/docs/PORTS.md +36 -0
  252. package/docs/PROVIDERS_BUILTIN.md +111 -0
  253. package/docs/PROVIDER_TYPES.md +55 -0
  254. package/docs/SERVERTOOL_CLOCK_DESIGN.md +233 -0
  255. package/docs/USAGE_HANDLING_ANALYSIS.md +335 -0
  256. package/docs/USER_CONFIG_PARSER_CHANGES.md +175 -0
  257. package/docs/V3_INBOUND_OUTBOUND_DESIGN.md +86 -0
  258. package/docs/VIRTUAL_ROUTER_PRIORITY_AND_HEALTH.md +125 -0
  259. package/docs/anthropic-request-golden-samples.md +50 -0
  260. package/docs/antigravity-gemini-format-cleanup.md +102 -0
  261. package/docs/antigravity-routing-contract.md +31 -0
  262. package/docs/ccr-alignment-enhancetool.md +105 -0
  263. package/docs/chat-glm-500-analysis.md +79 -0
  264. package/docs/chat-request-golden-samples.md +42 -0
  265. package/docs/chat-semantic-expansion-plan.md +84 -0
  266. package/docs/cli-command-inventory.md +76 -0
  267. package/docs/codex-samples-replay.md +50 -0
  268. package/docs/daemon-admin-api-design.md +350 -0
  269. package/docs/daemon-admin-module-structure.md +169 -0
  270. package/docs/daemon-admin-ui.html +3394 -0
  271. package/docs/debug-system-design.md +734 -0
  272. package/docs/debugging/gemini-sse-root-cause.md +52 -0
  273. package/docs/debugging/sse_encoding_failure_analysis.md +53 -0
  274. package/docs/dry-run/README.md +721 -0
  275. package/docs/error-handling-v2.md +92 -0
  276. package/docs/exec-command-guard-policy.example.v1.json +42 -0
  277. package/docs/fixes/gemini-protocol-mapping.md +57 -0
  278. package/docs/fixes/oauth-portal-timing-fix.md +202 -0
  279. package/docs/fixes/web-search-hop3-fix.md +265 -0
  280. package/docs/glm-api-reference.md +390 -0
  281. package/docs/glm-chat-completions.md +1779 -0
  282. package/docs/glm-history-inline-images.md +44 -0
  283. package/docs/golden-ci-library.md +66 -0
  284. package/docs/lmstudio-dry-run-summary.md +203 -0
  285. package/docs/lmstudio-tool-calling.md +214 -0
  286. package/docs/mapping-tables/anthropic-to-openai.json +290 -0
  287. package/docs/mapping-tables/iflow-to-openai.json +215 -0
  288. package/docs/mapping-tables/openai-passthrough.json +190 -0
  289. package/docs/mapping-tables/openai-to-iflow.json +227 -0
  290. package/docs/monitoring/Design.md +61 -0
  291. package/docs/multi-token-auth-guide.md +66 -0
  292. package/docs/oauth-authentication-guide.md +168 -0
  293. package/docs/oauth-iflow-implementation.md +153 -0
  294. package/docs/pipeline-routing-report.md +209 -0
  295. package/docs/plans/manager-daemon/PLAN.md +86 -0
  296. package/docs/plans/provider-config-v2-plan.md +176 -0
  297. package/docs/plans/provider-runtime-manager-plan.md +209 -0
  298. package/docs/plans/transparent-429-failover.md +89 -0
  299. package/docs/plans/unified-hub-framework-v1.md +245 -0
  300. package/docs/provider-config-v2-ui-design.md +181 -0
  301. package/docs/provider-quota-design.md +129 -0
  302. package/docs/providers/gemini-provider.md +62 -0
  303. package/docs/providers/lmstudio-v2-migration-report.md +102 -0
  304. package/docs/providers/provider-composite-design.md +142 -0
  305. package/docs/providers/provider-composite-testing.md +98 -0
  306. package/docs/providers/provider-type-only-migration.md +111 -0
  307. package/docs/rccx-wasm-migration.md +74 -0
  308. package/docs/refactoring/architecture-comparison-diagram.md +140 -0
  309. package/docs/refactoring/compatibility-v2-architecture-design.md +738 -0
  310. package/docs/refactoring/workflow-compatibility-refactoring-design.md +361 -0
  311. package/docs/reports/routing-classification-report.json +24 -0
  312. package/docs/reports/routing-classification-report.md +18 -0
  313. package/docs/reports/thinking-keywords-report.json +19 -0
  314. package/docs/responses/README.md +156 -0
  315. package/docs/responses-generic-provider.md +86 -0
  316. package/docs/responses-passthrough-provider-design.md +202 -0
  317. package/docs/routing-awrr-health-weighted-round-robin.md +179 -0
  318. package/docs/routing-instructions.md +393 -0
  319. package/docs/servertool-framework.md +65 -0
  320. package/docs/stop-message-auto.md +225 -0
  321. package/docs/streaming-flow.html +30 -0
  322. package/docs/streaming-flow.md +182 -0
  323. package/docs/token-daemon-preview.html +490 -0
  324. package/docs/token-refresh-daemon-plan.md +269 -0
  325. package/docs/transformation-tables/Gemini-FinishReason/345/256/214/346/225/264/350/275/254/346/215/242/350/241/250.json +233 -0
  326. package/docs/transformation-tables/README.md +225 -0
  327. package/docs/transformation-tables/claude-code-router-anthropic-to-gemini.json +283 -0
  328. package/docs/transformation-tables/claude-code-router-anthropic-to-openai.json +208 -0
  329. package/docs/transformation-tables/claude-code-router-openai-to-anthropic.json +261 -0
  330. package/docs/transformation-tables/claude-code-router-openai-to-gemini.json +208 -0
  331. package/docs/transformation-tables/claude-code-router-openai-to-lmstudio.json +182 -0
  332. package/docs/transformation-tables/claude-code-router-openai-to-ollama.json +250 -0
  333. package/docs/transformation-tables/claude-code-router-openai-to-textgenwebui.json +295 -0
  334. package/docs/transformation-tables/claude-code-router-provider-conversions.json +193 -0
  335. package/docs/transformation-tables//345/256/214/346/225/264/347/232/204/345/267/245/345/205/267/346/211/247/350/241/214/346/265/201/347/250/213/350/275/254/346/215/242/350/241/250.json +299 -0
  336. package/docs/transformation-tables//345/257/271/350/257/235/345/216/206/345/217/262/347/273/264/346/212/244/345/210/206/346/236/220.md +134 -0
  337. package/docs/transformation-tables//345/267/245/345/205/267/350/260/203/347/224/250/346/250/241/345/274/217/345/210/206/346/236/220.md +158 -0
  338. package/docs/transformation-tables//347/212/266/346/200/201/347/256/241/347/220/206/351/234/200/346/261/202/345/210/206/346/236/220.md +175 -0
  339. package/docs/transformation-tables//351/235/231/346/200/201/350/241/250vs/345/212/250/346/200/201/345/210/206/346/236/220.md +189 -0
  340. package/docs/transformation-tables//351/235/231/346/200/201/350/241/250/345/207/206/347/241/256/346/200/247/350/257/204/344/274/260.md +179 -0
  341. package/docs/transformation-tables//351/235/236/346/265/201/345/274/217/345/234/272/346/231/257/345/210/206/346/236/220.md +189 -0
  342. package/docs/v2-architecture/IMPLEMENTATION-ROADMAP.md +367 -0
  343. package/docs/v2-architecture/OPTIMIZED-DESIGN.md +827 -0
  344. package/docs/v2-architecture/PRERUN-CONNECTION-DESIGN.md +716 -0
  345. package/docs/v2-architecture/README.md +549 -0
  346. package/docs/verification/modelscope-verify.md +59 -0
  347. package/docs/verified-configs/README.md +60 -0
  348. package/docs/verified-configs/v0.45.0/README.md +244 -0
  349. package/docs/verified-configs/v0.45.0/lmstudio-5521-gpt-oss-20b-mlx.json +135 -0
  350. package/docs/verified-configs/v0.45.0/merged-config.5521.json +1205 -0
  351. package/docs/verified-configs/v0.45.0/merged-config.qwen-5522.json +1559 -0
  352. package/docs/verified-configs/v0.45.0/qwen-5522-qwen3-coder-plus-final.json +221 -0
  353. package/docs/verified-configs/v0.45.0/qwen-5522-qwen3-coder-plus-fixed.json +242 -0
  354. package/docs/verified-configs/v0.45.0/qwen-5522-qwen3-coder-plus.json +242 -0
  355. package/docs/web-search-service-design.md +322 -0
  356. package/package.json +26 -15
  357. package/scripts/build-core.mjs +3 -1
  358. package/scripts/camoufox/launch-auth.mjs +193 -58
  359. package/scripts/ci/repo-sanity.mjs +138 -0
  360. package/scripts/mock-provider/run-regressions.mjs +157 -1
  361. package/scripts/monitor-diff.mjs +126 -0
  362. package/scripts/pack-mode.mjs +19 -1
  363. package/scripts/pack-rcc.mjs +63 -0
  364. package/scripts/run-bg.sh +0 -14
  365. package/scripts/tests/ci-jest.mjs +119 -0
  366. package/scripts/tools-dev/responses-debug-client/README.md +23 -0
  367. package/scripts/tools-dev/responses-debug-client/payloads/poem.json +13 -0
  368. package/scripts/tools-dev/responses-debug-client/payloads/sample-no-tools.json +98 -0
  369. package/scripts/tools-dev/responses-debug-client/payloads/text.json +13 -0
  370. package/scripts/tools-dev/responses-debug-client/payloads/tool.json +27 -0
  371. package/scripts/tools-dev/responses-debug-client/run.mjs +65 -0
  372. package/scripts/tools-dev/responses-debug-client/src/index.ts +281 -0
  373. package/scripts/tools-dev/run-llmswitch-chat.mjs +53 -0
  374. package/scripts/tools-dev/server-tools-dev/run-web-fetch.mjs +65 -0
  375. package/scripts/unified-hub-shadow-compare.mjs +33 -13
  376. package/scripts/vendor-core.mjs +13 -3
  377. package/scripts/verify-e2e-toolcall.mjs +115 -26
  378. package/dist/modules/llmswitch/pipeline-registry.d.ts +0 -57
  379. package/dist/modules/llmswitch/pipeline-registry.js +0 -229
  380. package/dist/modules/llmswitch/pipeline-registry.js.map +0 -1
  381. package/dist/server/RouteCodexServer.d.ts +0 -13
  382. package/dist/server/RouteCodexServer.js +0 -25
  383. package/dist/server/RouteCodexServer.js.map +0 -1
  384. package/dist/v2/conversion/hub/snapshot-recorder.d.ts +0 -12
  385. package/dist/v2/conversion/hub/snapshot-recorder.js +0 -22
  386. package/dist/v2/conversion/hub/snapshot-recorder.js.map +0 -1
  387. package/scripts/test-fc-responses.mjs +0 -66
  388. package/scripts/test-guidance.mjs +0 -100
  389. package/scripts/test-iflow-web-search.mjs +0 -141
  390. package/scripts/test-iflow.mjs +0 -379
  391. package/scripts/test-tool-exec.mjs +0 -26
@@ -0,0 +1,225 @@
1
+ # Claude Code Router Transformation Tables Reference
2
+
3
+ ## Overview
4
+
5
+ This document contains comprehensive transformation tables extracted from the Claude Code Router repository. The tables describe how to convert between different LLM API formats, focusing on Anthropic, OpenAI, and Gemini protocols, as well as various OpenAI-compatible providers.
6
+
7
+ ## Architecture Analysis
8
+
9
+ The Claude Code Router uses an **agent-based architecture** rather than static transformation tables. Protocol conversion happens dynamically through:
10
+
11
+ 1. **Agent System**: Different agents handle specific types of requests (e.g., image processing)
12
+ 2. **Stream Processing**: Real-time transformation of streaming responses
13
+ 3. **Tool Integration**: Dynamic tool calling and response handling
14
+ 4. **Configuration-Driven**: JSON-based configuration for routing and transformation
15
+
16
+ ## Transformation Tables
17
+
18
+ ### 1. Anthropic ↔ OpenAI Conversion
19
+
20
+ **File**: `claude-code-router-anthropic-to-openai.json`
21
+ **Reverse**: `claude-code-router-openai-to-anthropic.json`
22
+
23
+ #### Key Mappings:
24
+ - **Model Mapping**: Claude models → GPT models
25
+ - `claude-3-5-sonnet-20241022` → `gpt-4o`
26
+ - `claude-3-5-haiku-20241022` → `gpt-4o-mini`
27
+ - `claude-3-opus-20240229` → `gpt-4-turbo`
28
+
29
+ - **Message Structure**:
30
+ - Anthropic: `{type: "text", text: "content"}`
31
+ - OpenAI: `{role: "user", content: "content"}`
32
+
33
+ - **Tool Calling**:
34
+ - Anthropic: `tool_use` with `input` object
35
+ - OpenAI: `tool_calls` with `arguments` string
36
+
37
+ - **Streaming Events**:
38
+ - `content_block_start` → `tool_calls_start`
39
+ - `content_block_delta` → `tool_calls_delta`
40
+ - `content_block_stop` → `tool_calls_stop`
41
+
42
+ ### 2. Anthropic ↔ Gemini Conversion
43
+
44
+ **File**: `claude-code-router-anthropic-to-gemini.json`
45
+
46
+ #### Key Mappings:
47
+ - **Model Mapping**: Claude models → Gemini models
48
+ - `claude-3-5-sonnet-20241022` → `gemini-1.5-pro`
49
+ - `claude-3-5-haiku-20241022` → `gemini-1.5-flash`
50
+
51
+ - **Message Structure**:
52
+ - Anthropic: `messages` array
53
+ - Gemini: `contents` array with `parts`
54
+
55
+ - **Parameters**:
56
+ - `max_tokens` → `generationConfig.maxOutputTokens`
57
+ - `temperature` → `generationConfig.temperature`
58
+ - `stop_sequences` → `generationConfig.stopSequences`
59
+
60
+ ### 3. OpenAI → Compatible Providers
61
+
62
+ #### LMStudio
63
+ **File**: `claude-code-router-openai-to-lmstudio.json`
64
+ - **Direct Mapping**: LMStudio is fully OpenAI-compatible
65
+ - **No Transformation Needed**: Same API structure
66
+ - **Local Model Support**: Handles model loading dynamically
67
+
68
+ #### Ollama
69
+ **File**: `claude-code-router-openai-to-ollama.json`
70
+ - **Endpoint Changes**: `/v1/chat/completions` → `/api/chat`
71
+ - **Parameter Mapping**: `max_tokens` → `options.num_predict`
72
+ - **Stream Format**: JSON lines instead of SSE
73
+ - **No Authentication**: Removes API key requirements
74
+
75
+ #### Text Generation WebUI
76
+ **File**: `claude-code-router-openai-to-textgenwebui.json`
77
+ - **Full Compatibility**: OpenAI-compatible endpoints
78
+ - **Extended Parameters**: Additional generation parameters
79
+ - **Multiple Backends**: Supports various model backends
80
+
81
+ ## Agent System Patterns
82
+
83
+ ### Image Processing Agent
84
+ The Claude Code Router includes a specialized image processing agent:
85
+
86
+ ```typescript
87
+ class ImageAgent implements IAgent {
88
+ name = "image";
89
+ tools: Map<string, ITool>;
90
+
91
+ // Image caching mechanism
92
+ private imageCache: ImageCache;
93
+
94
+ // Tool: analyzeImage
95
+ tools.set('analyzeImage', {
96
+ name: "analyzeImage",
97
+ description: "Analyse image or images by ID and extract information...",
98
+ parameters: {
99
+ imageId: "array of IDs to analyse",
100
+ task: "detailed task description",
101
+ regions: "optional regions of interest"
102
+ }
103
+ });
104
+ }
105
+ ```
106
+
107
+ ### Stream Processing
108
+ The router uses sophisticated stream processing:
109
+
110
+ ```typescript
111
+ // SSE Parser Transform
112
+ class SSEParserTransform extends TransformStream<string, any> {
113
+ // Parses Server-Sent Events into structured data
114
+ }
115
+
116
+ // SSE Serializer Transform
117
+ class SSESerializerTransform extends TransformStream<any, string> {
118
+ // Serializes structured data back to SSE format
119
+ }
120
+ ```
121
+
122
+ ## Configuration Patterns
123
+
124
+ ### Router Configuration
125
+ ```typescript
126
+ interface RouterConfig {
127
+ providers: ProviderConfig[];
128
+ HOST: string;
129
+ PORT: number;
130
+ APIKEY?: string;
131
+ Router: {
132
+ image?: string; // Image model for agent
133
+ default?: string; // Default model
134
+ };
135
+ }
136
+ ```
137
+
138
+ ### Agent Configuration
139
+ ```typescript
140
+ interface AgentConfig {
141
+ name: string;
142
+ tools: Map<string, ITool>;
143
+ shouldHandle: (req: any, config: any) => boolean;
144
+ reqHandler: (req: any, config: any) => void;
145
+ }
146
+ ```
147
+
148
+ ## Transformation Patterns
149
+
150
+ ### 1. Content Structure Conversion
151
+ - **Text Content**: Direct mapping with role/type conversion
152
+ - **Image Content**: URL/source format conversion with caching
153
+ - **Tool Content**: Function call format conversion
154
+
155
+ ### 2. Parameter Mapping
156
+ - **Direct Mapping**: Same parameter name and value
157
+ - **Nested Mapping**: Parameter moved to nested object
158
+ - **Value Transformation**: Parameter value conversion
159
+ - **Array Processing**: Stop sequences and similar array parameters
160
+
161
+ ### 3. Stream Event Mapping
162
+ - **Event Type Conversion**: Different event names for same concept
163
+ - **Data Structure Conversion**: Different data formats for same information
164
+ - **Tool Call Handling**: Special handling for tool calling in streams
165
+
166
+ ### 4. Error Handling
167
+ - **Error Format**: Different error response structures
168
+ - **Error Codes**: Provider-specific error codes
169
+ - **Error Messages**: Human-readable error descriptions
170
+
171
+ ## Best Practices
172
+
173
+ ### 1. Model Mapping
174
+ - Use appropriate model equivalents
175
+ - Consider model capabilities and limitations
176
+ - Handle model-specific features
177
+
178
+ ### 2. Message Structure
179
+ - Preserve conversation context
180
+ - Handle role conversions correctly
181
+ - Maintain message order and relationships
182
+
183
+ ### 3. Tool Calling
184
+ - Convert function signatures appropriately
185
+ - Handle parameter serialization/deserialization
186
+ - Manage tool call IDs and references
187
+
188
+ ### 4. Stream Processing
189
+ - Handle chunked responses correctly
190
+ - Maintain stream state and context
191
+ - Process events in correct order
192
+
193
+ ### 5. Error Handling
194
+ - Provide meaningful error messages
195
+ - Handle provider-specific errors
196
+ - Maintain API compatibility
197
+
198
+ ## Implementation Notes
199
+
200
+ ### 1. Performance Considerations
201
+ - Use caching for frequently accessed data
202
+ - Minimize transformation overhead
203
+ - Optimize stream processing
204
+
205
+ ### 2. Compatibility
206
+ - Test with multiple provider versions
207
+ - Handle API version differences
208
+ - Maintain backward compatibility
209
+
210
+ ### 3. Extensibility
211
+ - Design for new providers
212
+ - Support custom transformations
213
+ - Allow configuration overrides
214
+
215
+ ## Conclusion
216
+
217
+ The Claude Code Router demonstrates a sophisticated approach to LLM API conversion through its agent-based architecture. While it doesn't use static transformation tables, the patterns observed provide valuable insights for building similar systems. The key takeaways are:
218
+
219
+ 1. **Dynamic Processing**: Handle conversions at runtime rather than static mappings
220
+ 2. **Stream Processing**: Real-time transformation of streaming responses
221
+ 3. **Agent Architecture**: Specialized agents for specific types of requests
222
+ 4. **Configuration-Driven**: Flexible configuration system for routing and transformation
223
+ 5. **Extensibility**: Design for adding new providers and features
224
+
225
+ These transformation tables serve as a reference for understanding the patterns and mappings needed for LLM API conversion, which can be adapted for other systems and use cases.
@@ -0,0 +1,283 @@
1
+ {
2
+ "sourceProvider": "Anthropic",
3
+ "targetProvider": "Gemini",
4
+ "description": "Transformation table for converting Anthropic API format to Google Gemini API format",
5
+ "version": "1.0",
6
+ "requestMappings": {
7
+ "model": {
8
+ "sourcePath": "model",
9
+ "targetPath": "model",
10
+ "transform": "modelMapping",
11
+ "mapping": {
12
+ "claude-3-5-sonnet-20241022": "gemini-1.5-pro",
13
+ "claude-3-5-haiku-20241022": "gemini-1.5-flash",
14
+ "claude-3-opus-20240229": "gemini-1.0-pro",
15
+ "claude-3-sonnet-20240229": "gemini-1.0-pro",
16
+ "claude-3-haiku-20240307": "gemini-1.0-pro"
17
+ }
18
+ },
19
+ "messages": {
20
+ "sourcePath": "messages",
21
+ "targetPath": "contents",
22
+ "transform": "messageToContentsConversion",
23
+ "conversionRules": {
24
+ "system": {
25
+ "targetType": "system_instruction",
26
+ "parts": [
27
+ {
28
+ "text": "string"
29
+ }
30
+ ]
31
+ },
32
+ "user": {
33
+ "targetType": "user",
34
+ "parts": [
35
+ {
36
+ "text": "string"
37
+ }
38
+ ]
39
+ },
40
+ "assistant": {
41
+ "targetType": "model",
42
+ "parts": [
43
+ {
44
+ "text": "string"
45
+ }
46
+ ]
47
+ }
48
+ }
49
+ },
50
+ "maxTokens": {
51
+ "sourcePath": "max_tokens",
52
+ "targetPath": "generationConfig.maxOutputTokens",
53
+ "transform": "directMapping"
54
+ },
55
+ "temperature": {
56
+ "sourcePath": "temperature",
57
+ "targetPath": "generationConfig.temperature",
58
+ "transform": "directMapping"
59
+ },
60
+ "topP": {
61
+ "sourcePath": "top_p",
62
+ "targetPath": "generationConfig.topP",
63
+ "transform": "directMapping"
64
+ },
65
+ "topK": {
66
+ "sourcePath": "top_k",
67
+ "targetPath": "generationConfig.topK",
68
+ "transform": "directMapping"
69
+ },
70
+ "stopSequences": {
71
+ "sourcePath": "stop_sequences",
72
+ "targetPath": "generationConfig.stopSequences",
73
+ "transform": "arrayMapping"
74
+ }
75
+ },
76
+ "responseMappings": {
77
+ "candidates": {
78
+ "sourcePath": "content",
79
+ "targetPath": "candidates",
80
+ "transform": "contentToCandidatesConversion"
81
+ },
82
+ "usageMetadata": {
83
+ "sourcePath": "usage",
84
+ "targetPath": "usageMetadata",
85
+ "transform": "usageToUsageMetadataConversion"
86
+ },
87
+ "model": {
88
+ "sourcePath": "model",
89
+ "targetPath": "modelVersion",
90
+ "transform": "reverseModelMapping"
91
+ }
92
+ },
93
+ "contentStructureMappings": {
94
+ "textContent": {
95
+ "sourceFormat": {
96
+ "type": "text",
97
+ "text": "string"
98
+ },
99
+ "targetFormat": {
100
+ "role": "string",
101
+ "parts": [
102
+ {
103
+ "text": "string"
104
+ }
105
+ ]
106
+ }
107
+ },
108
+ "imageContent": {
109
+ "sourceFormat": {
110
+ "type": "image",
111
+ "source": "object"
112
+ },
113
+ "targetFormat": {
114
+ "role": "user",
115
+ "parts": [
116
+ {
117
+ "inline_data": {
118
+ "mime_type": "string",
119
+ "data": "string"
120
+ }
121
+ }
122
+ ]
123
+ }
124
+ },
125
+ "toolUseContent": {
126
+ "sourceFormat": {
127
+ "type": "tool_use",
128
+ "id": "string",
129
+ "name": "string",
130
+ "input": "object"
131
+ },
132
+ "targetFormat": {
133
+ "role": "model",
134
+ "parts": [
135
+ {
136
+ "functionCall": {
137
+ "name": "string",
138
+ "args": "object"
139
+ }
140
+ }
141
+ ]
142
+ }
143
+ }
144
+ },
145
+ "generationConfigMappings": {
146
+ "candidateCount": {
147
+ "sourcePath": "candidate_count",
148
+ "targetPath": "candidateCount",
149
+ "transform": "directMapping"
150
+ },
151
+ "maxOutputTokens": {
152
+ "sourcePath": "max_tokens",
153
+ "targetPath": "maxOutputTokens",
154
+ "transform": "directMapping"
155
+ },
156
+ "temperature": {
157
+ "sourcePath": "temperature",
158
+ "targetPath": "temperature",
159
+ "transform": "directMapping"
160
+ },
161
+ "topP": {
162
+ "sourcePath": "top_p",
163
+ "targetPath": "topP",
164
+ "transform": "directMapping"
165
+ },
166
+ "topK": {
167
+ "sourcePath": "top_k",
168
+ "targetPath": "topK",
169
+ "transform": "directMapping"
170
+ },
171
+ "stopSequences": {
172
+ "sourcePath": "stop_sequences",
173
+ "targetPath": "stopSequences",
174
+ "transform": "arrayMapping"
175
+ },
176
+ "responseMimeType": {
177
+ "sourcePath": "response_mime_type",
178
+ "targetPath": "responseMimeType",
179
+ "transform": "directMapping"
180
+ },
181
+ "responseSchema": {
182
+ "sourcePath": "response_schema",
183
+ "targetPath": "responseSchema",
184
+ "transform": "directMapping"
185
+ }
186
+ },
187
+ "safetySettings": {
188
+ "category": {
189
+ "sourcePath": "safety_settings.category",
190
+ "targetPath": "category",
191
+ "transform": "directMapping"
192
+ },
193
+ "threshold": {
194
+ "sourcePath": "safety_settings.threshold",
195
+ "targetPath": "threshold",
196
+ "transform": "directMapping"
197
+ }
198
+ },
199
+ "toolMappings": {
200
+ "toolDefinition": {
201
+ "sourceFormat": {
202
+ "name": "string",
203
+ "description": "string",
204
+ "input_schema": "object"
205
+ },
206
+ "targetFormat": {
207
+ "functionDeclarations": [
208
+ {
209
+ "name": "string",
210
+ "description": "string",
211
+ "parameters": "object"
212
+ }
213
+ ]
214
+ }
215
+ },
216
+ "toolResult": {
217
+ "sourceFormat": {
218
+ "type": "tool_result",
219
+ "tool_use_id": "string",
220
+ "content": "string"
221
+ },
222
+ "targetFormat": {
223
+ "role": "user",
224
+ "parts": [
225
+ {
226
+ "functionResponse": {
227
+ "name": "string",
228
+ "response": "object"
229
+ }
230
+ }
231
+ ]
232
+ }
233
+ }
234
+ },
235
+ "functionResponseMappings": {
236
+ "functionCall": {
237
+ "sourceFormat": {
238
+ "type": "tool_use",
239
+ "id": "string",
240
+ "name": "string",
241
+ "input": "object"
242
+ },
243
+ "targetFormat": {
244
+ "functionCall": {
245
+ "name": "string",
246
+ "args": "object"
247
+ }
248
+ }
249
+ },
250
+ "functionResponse": {
251
+ "sourceFormat": {
252
+ "type": "tool_result",
253
+ "tool_use_id": "string",
254
+ "content": "string"
255
+ },
256
+ "targetFormat": {
257
+ "functionResponse": {
258
+ "name": "string",
259
+ "response": "object"
260
+ }
261
+ }
262
+ }
263
+ },
264
+ "errorMappings": {
265
+ "errorType": {
266
+ "sourceFormat": {
267
+ "type": "error",
268
+ "error": {
269
+ "type": "string",
270
+ "message": "string"
271
+ }
272
+ },
273
+ "targetFormat": {
274
+ "error": {
275
+ "code": "number",
276
+ "message": "string",
277
+ "status": "string",
278
+ "details": "array"
279
+ }
280
+ }
281
+ }
282
+ }
283
+ }