@jsonstudio/rcc 0.89.333 → 0.89.548

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 (191) hide show
  1. package/dist/build-info.js +3 -3
  2. package/dist/build-info.js.map +1 -1
  3. package/dist/cli.js +110 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/token-daemon.d.ts +2 -0
  6. package/dist/commands/token-daemon.js +183 -0
  7. package/dist/commands/token-daemon.js.map +1 -0
  8. package/dist/index.js +20 -3
  9. package/dist/index.js.map +1 -1
  10. package/dist/modules/llmswitch/bridge.d.ts +1 -1
  11. package/dist/modules/llmswitch/bridge.js +3 -2
  12. package/dist/modules/llmswitch/bridge.js.map +1 -1
  13. package/dist/modules/pipeline/utils/colored-logger.js +3 -1
  14. package/dist/modules/pipeline/utils/colored-logger.js.map +1 -1
  15. package/dist/providers/auth/gemini-cli-userinfo-helper.js +12 -2
  16. package/dist/providers/auth/gemini-cli-userinfo-helper.js.map +1 -1
  17. package/dist/providers/auth/oauth-lifecycle.js +337 -25
  18. package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
  19. package/dist/providers/core/config/oauth-flows.d.ts +23 -0
  20. package/dist/providers/core/config/oauth-flows.js +92 -5
  21. package/dist/providers/core/config/oauth-flows.js.map +1 -1
  22. package/dist/providers/core/config/provider-oauth-configs.js +9 -3
  23. package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
  24. package/dist/providers/core/config/service-profiles.js +18 -10
  25. package/dist/providers/core/config/service-profiles.js.map +1 -1
  26. package/dist/providers/core/runtime/base-provider.d.ts +2 -0
  27. package/dist/providers/core/runtime/base-provider.js +35 -1
  28. package/dist/providers/core/runtime/base-provider.js.map +1 -1
  29. package/dist/providers/core/runtime/gemini-cli-http-provider.js +87 -20
  30. package/dist/providers/core/runtime/gemini-cli-http-provider.js.map +1 -1
  31. package/dist/providers/core/runtime/http-request-executor.d.ts +1 -0
  32. package/dist/providers/core/runtime/http-request-executor.js +75 -1
  33. package/dist/providers/core/runtime/http-request-executor.js.map +1 -1
  34. package/dist/providers/core/runtime/http-transport-provider.d.ts +2 -0
  35. package/dist/providers/core/runtime/http-transport-provider.js +60 -2
  36. package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
  37. package/dist/providers/core/runtime/iflow-http-provider.d.ts +4 -0
  38. package/dist/providers/core/runtime/iflow-http-provider.js +28 -0
  39. package/dist/providers/core/runtime/iflow-http-provider.js.map +1 -1
  40. package/dist/providers/core/runtime/rate-limit-manager.d.ts +30 -0
  41. package/dist/providers/core/runtime/rate-limit-manager.js +136 -0
  42. package/dist/providers/core/runtime/rate-limit-manager.js.map +1 -0
  43. package/dist/providers/core/runtime/responses-provider.js +8 -3
  44. package/dist/providers/core/runtime/responses-provider.js.map +1 -1
  45. package/dist/providers/core/runtime/vision-debug-utils.d.ts +13 -0
  46. package/dist/providers/core/runtime/vision-debug-utils.js +114 -0
  47. package/dist/providers/core/runtime/vision-debug-utils.js.map +1 -0
  48. package/dist/providers/core/strategies/oauth-auth-code-flow.js +75 -26
  49. package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
  50. package/dist/providers/core/utils/http-client.js +2 -1
  51. package/dist/providers/core/utils/http-client.js.map +1 -1
  52. package/dist/providers/core/utils/provider-error-reporter.js +31 -5
  53. package/dist/providers/core/utils/provider-error-reporter.js.map +1 -1
  54. package/dist/providers/core/utils/provider-type-utils.js +1 -1
  55. package/dist/providers/core/utils/provider-type-utils.js.map +1 -1
  56. package/dist/providers/core/utils/snapshot-writer.d.ts +1 -1
  57. package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
  58. package/dist/server/handlers/sse-dispatcher.js +22 -2
  59. package/dist/server/handlers/sse-dispatcher.js.map +1 -1
  60. package/dist/server/runtime/http-server/index.d.ts +9 -0
  61. package/dist/server/runtime/http-server/index.js +512 -144
  62. package/dist/server/runtime/http-server/index.js.map +1 -1
  63. package/dist/server/runtime/http-server/provider-utils.js +1 -1
  64. package/dist/server/runtime/http-server/provider-utils.js.map +1 -1
  65. package/dist/server/runtime/http-server/request-executor.d.ts +10 -0
  66. package/dist/server/runtime/http-server/request-executor.js +553 -159
  67. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  68. package/dist/server/runtime/http-server/routes.d.ts +5 -0
  69. package/dist/server/runtime/http-server/routes.js +29 -0
  70. package/dist/server/runtime/http-server/routes.js.map +1 -1
  71. package/dist/server/runtime/http-server/runtime-manager.js +33 -0
  72. package/dist/server/runtime/http-server/runtime-manager.js.map +1 -1
  73. package/dist/server/utils/utf8-chunk-buffer.d.ts +43 -0
  74. package/dist/server/utils/utf8-chunk-buffer.js +132 -0
  75. package/dist/server/utils/utf8-chunk-buffer.js.map +1 -0
  76. package/dist/token-daemon/history-store.d.ts +75 -0
  77. package/dist/token-daemon/history-store.js +207 -0
  78. package/dist/token-daemon/history-store.js.map +1 -0
  79. package/dist/token-daemon/index.d.ts +7 -0
  80. package/dist/token-daemon/index.js +336 -0
  81. package/dist/token-daemon/index.js.map +1 -0
  82. package/dist/token-daemon/server-utils.d.ts +33 -0
  83. package/dist/token-daemon/server-utils.js +155 -0
  84. package/dist/token-daemon/server-utils.js.map +1 -0
  85. package/dist/token-daemon/token-daemon.d.ts +23 -0
  86. package/dist/token-daemon/token-daemon.js +249 -0
  87. package/dist/token-daemon/token-daemon.js.map +1 -0
  88. package/dist/token-daemon/token-types.d.ts +44 -0
  89. package/dist/token-daemon/token-types.js +18 -0
  90. package/dist/token-daemon/token-types.js.map +1 -0
  91. package/dist/token-daemon/token-utils.d.ts +17 -0
  92. package/dist/token-daemon/token-utils.js +153 -0
  93. package/dist/token-daemon/token-utils.js.map +1 -0
  94. package/dist/token-portal/local-token-portal.d.ts +1 -0
  95. package/dist/token-portal/local-token-portal.js +89 -0
  96. package/dist/token-portal/local-token-portal.js.map +1 -0
  97. package/dist/token-portal/render.d.ts +10 -0
  98. package/dist/token-portal/render.js +56 -0
  99. package/dist/token-portal/render.js.map +1 -0
  100. package/dist/tools/semantic-replay.js +7 -6
  101. package/dist/tools/semantic-replay.js.map +1 -1
  102. package/dist/utils/error-handler-registry.d.ts +36 -0
  103. package/dist/utils/error-handler-registry.js +93 -7
  104. package/dist/utils/error-handler-registry.js.map +1 -1
  105. package/node_modules/@jsonstudio/llms/README.md +2 -0
  106. package/node_modules/@jsonstudio/llms/dist/conversion/codecs/gemini-openai-codec.js +137 -5
  107. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/gemini-web-search.d.ts +17 -0
  108. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/gemini-web-search.js +68 -0
  109. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/glm-image-content.d.ts +2 -0
  110. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/glm-image-content.js +83 -0
  111. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/glm-vision-prompt.d.ts +11 -0
  112. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/glm-vision-prompt.js +177 -0
  113. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/glm-web-search.d.ts +2 -0
  114. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/glm-web-search.js +63 -0
  115. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/universal-shape-filter.js +11 -0
  116. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-gemini.json +17 -0
  117. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-glm.json +190 -181
  118. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-iflow.json +195 -195
  119. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-lmstudio.json +43 -43
  120. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-qwen.json +20 -20
  121. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/responses-c4m.json +42 -42
  122. package/node_modules/@jsonstudio/llms/dist/conversion/config/sample-config.json +1 -1
  123. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.js +24 -0
  124. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/compat/compat-types.d.ts +8 -0
  125. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline.js +39 -4
  126. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/target-utils.js +6 -0
  127. package/node_modules/@jsonstudio/llms/dist/conversion/hub/process/chat-process.js +213 -1
  128. package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/provider-response.d.ts +34 -0
  129. package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/provider-response.js +84 -24
  130. package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/server-side-tools.d.ts +26 -0
  131. package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/server-side-tools.js +383 -0
  132. package/node_modules/@jsonstudio/llms/dist/conversion/hub/semantic-mappers/gemini-mapper.js +241 -14
  133. package/node_modules/@jsonstudio/llms/dist/conversion/hub/semantic-mappers/responses-mapper.js +17 -1
  134. package/node_modules/@jsonstudio/llms/dist/conversion/hub/standardized-bridge.js +14 -0
  135. package/node_modules/@jsonstudio/llms/dist/conversion/hub/types/standardized.d.ts +1 -0
  136. package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-openai-bridge.js +82 -3
  137. package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils.js +92 -3
  138. package/node_modules/@jsonstudio/llms/dist/conversion/shared/bridge-message-utils.js +137 -10
  139. package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-output-builder.js +43 -2
  140. package/node_modules/@jsonstudio/llms/dist/conversion/shared/snapshot-utils.js +17 -47
  141. package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-filter-pipeline.js +1 -0
  142. package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-mapping.js +25 -2
  143. package/node_modules/@jsonstudio/llms/dist/index.d.ts +1 -0
  144. package/node_modules/@jsonstudio/llms/dist/index.js +1 -0
  145. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap.js +308 -43
  146. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/classifier.js +11 -17
  147. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/context-advisor.d.ts +0 -2
  148. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/context-advisor.js +0 -12
  149. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine.d.ts +17 -2
  150. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine.js +332 -95
  151. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/features.js +1 -1
  152. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/message-utils.js +36 -24
  153. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/provider-registry.js +2 -1
  154. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/token-counter.js +14 -3
  155. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/types.d.ts +66 -2
  156. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/types.js +2 -1
  157. package/node_modules/@jsonstudio/llms/dist/servertool/engine.d.ts +27 -0
  158. package/node_modules/@jsonstudio/llms/dist/servertool/engine.js +60 -0
  159. package/node_modules/@jsonstudio/llms/dist/servertool/flow-types.d.ts +40 -0
  160. package/node_modules/@jsonstudio/llms/dist/servertool/flow-types.js +1 -0
  161. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/vision.d.ts +1 -0
  162. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/vision.js +194 -0
  163. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/web-search.d.ts +1 -0
  164. package/node_modules/@jsonstudio/llms/dist/servertool/handlers/web-search.js +638 -0
  165. package/node_modules/@jsonstudio/llms/dist/servertool/orchestration-types.d.ts +33 -0
  166. package/node_modules/@jsonstudio/llms/dist/servertool/orchestration-types.js +1 -0
  167. package/node_modules/@jsonstudio/llms/dist/servertool/registry.d.ts +18 -0
  168. package/node_modules/@jsonstudio/llms/dist/servertool/registry.js +27 -0
  169. package/node_modules/@jsonstudio/llms/dist/servertool/server-side-tools.d.ts +8 -0
  170. package/node_modules/@jsonstudio/llms/dist/servertool/server-side-tools.js +208 -0
  171. package/node_modules/@jsonstudio/llms/dist/servertool/types.d.ts +88 -0
  172. package/node_modules/@jsonstudio/llms/dist/servertool/types.js +1 -0
  173. package/node_modules/@jsonstudio/llms/dist/servertool/vision-tool.d.ts +2 -0
  174. package/node_modules/@jsonstudio/llms/dist/servertool/vision-tool.js +185 -0
  175. package/node_modules/@jsonstudio/llms/dist/sse/json-to-sse/event-generators/responses.js +15 -3
  176. package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/builders/response-builder.js +6 -3
  177. package/node_modules/@jsonstudio/llms/dist/sse/sse-to-json/gemini-sse-to-json-converter.js +27 -1
  178. package/node_modules/@jsonstudio/llms/dist/sse/types/gemini-types.d.ts +20 -1
  179. package/node_modules/@jsonstudio/llms/dist/sse/types/responses-types.js +1 -1
  180. package/node_modules/@jsonstudio/llms/dist/telemetry/stats-center.d.ts +73 -0
  181. package/node_modules/@jsonstudio/llms/dist/telemetry/stats-center.js +280 -0
  182. package/node_modules/@jsonstudio/llms/package.json +1 -1
  183. package/package.json +3 -2
  184. package/scripts/pack-mode.mjs +2 -1
  185. package/scripts/publish-rcc.mjs +20 -4
  186. package/scripts/test-iflow-web-search.mjs +141 -0
  187. package/scripts/test-iflow.mjs +93 -1
  188. package/scripts/tests/virtual-router-health.mjs +141 -6
  189. package/dist/tools/replay-request.d.ts +0 -0
  190. package/dist/tools/replay-request.js +0 -2
  191. package/dist/tools/replay-request.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler-registry.js","sourceRoot":"","sources":["../../src/utils/error-handler-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-handler-registry.js","sourceRoot":"","sources":["../../src/utils/error-handler-registry.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@
21
21
 
22
22
  👉 **Hub Pipeline 是当前唯一入口。** 如果 Host 需要直接编排 Virtual Router,请参见 `docs/HUB_PIPELINE_USAGE.md`,了解如何通过 `bootstrapVirtualRouterConfig` + `HubPipeline` 完成初始化与热更新。
23
23
 
24
+ 👉 **ServerTool 是所有 server-side 工具的唯一统一框架。** web_search / vision followup 等服务端工具均在 llmswitch-core 内部通过 ServerTool 执行,Host 只需提供 providerInvoker/reenterPipeline 即可。设计与接入方式详见 `docs/SERVERTOOL_DESIGN.md`。
25
+
24
26
  ## 总览
25
27
 
26
28
  ```
@@ -4,6 +4,7 @@ import { normalizeChatMessageContent } from '../shared/chat-output-normalizer.js
4
4
  import { mapBridgeToolsToChat } from '../shared/tool-mapping.js';
5
5
  import { prepareGeminiToolsForBridge } from '../shared/gemini-tool-utils.js';
6
6
  import { registerResponsesReasoning, consumeResponsesReasoning, registerResponsesOutputTextMeta, consumeResponsesOutputTextMeta, consumeResponsesPayloadSnapshot, registerResponsesPayloadSnapshot, consumeResponsesPassthrough, registerResponsesPassthrough } from '../shared/responses-reasoning-registry.js';
7
+ const DUMMY_THOUGHT_SIGNATURE = 'skip_thought_signature_validator';
7
8
  function isObject(v) {
8
9
  return !!v && typeof v === 'object' && !Array.isArray(v);
9
10
  }
@@ -54,6 +55,32 @@ function mapChatRoleToGemini(role) {
54
55
  return 'tool';
55
56
  return 'user';
56
57
  }
58
+ function coerceThoughtSignature(value) {
59
+ if (typeof value === 'string' && value.trim().length) {
60
+ return value.trim();
61
+ }
62
+ return undefined;
63
+ }
64
+ function extractThoughtSignatureFromToolCall(tc) {
65
+ if (!tc || typeof tc !== 'object') {
66
+ return undefined;
67
+ }
68
+ const direct = coerceThoughtSignature(tc.thought_signature ?? tc.thoughtSignature);
69
+ if (direct) {
70
+ return direct;
71
+ }
72
+ const extraContent = tc.extra_content ?? tc.extraContent;
73
+ if (extraContent && typeof extraContent === 'object') {
74
+ const googleNode = extraContent.google ?? extraContent.Google;
75
+ if (googleNode && typeof googleNode === 'object') {
76
+ const googleSig = coerceThoughtSignature(googleNode.thought_signature ?? googleNode.thoughtSignature);
77
+ if (googleSig) {
78
+ return googleSig;
79
+ }
80
+ }
81
+ }
82
+ return undefined;
83
+ }
57
84
  export function buildOpenAIChatFromGeminiRequest(payload) {
58
85
  const messages = [];
59
86
  // systemInstruction → Chat system 消息
@@ -156,16 +183,22 @@ export function buildOpenAIChatFromGeminiResponse(payload) {
156
183
  const textParts = [];
157
184
  const reasoningParts = [];
158
185
  const toolCalls = [];
186
+ const toolResultTexts = [];
187
+ const toolOutputs = [];
188
+ // 为当前响应内生成稳定的工具调用 ID,避免下游 ServerTool 因缺少 id 而跳过。
189
+ let toolCallCounter = 0;
159
190
  for (const part of parts) {
160
191
  if (!part || typeof part !== 'object')
161
192
  continue;
162
193
  const pObj = part;
194
+ // 1. Text part
163
195
  if (typeof pObj.text === 'string') {
164
196
  const t = pObj.text;
165
197
  if (t && t.trim().length)
166
198
  textParts.push(t);
167
199
  continue;
168
200
  }
201
+ // 2. Content array (nested structure)
169
202
  if (Array.isArray(pObj.content)) {
170
203
  for (const inner of pObj.content) {
171
204
  if (typeof inner === 'string') {
@@ -177,16 +210,26 @@ export function buildOpenAIChatFromGeminiResponse(payload) {
177
210
  }
178
211
  continue;
179
212
  }
213
+ // 3. Reasoning part (channel mode)
180
214
  if (typeof pObj.reasoning === 'string') {
181
215
  reasoningParts.push(pObj.reasoning);
182
216
  continue;
183
217
  }
218
+ // 4. Thought part (thinking/extended thinking)
219
+ if (typeof pObj.thought === 'string') {
220
+ const thoughtText = pObj.thought.trim();
221
+ if (thoughtText.length) {
222
+ reasoningParts.push(thoughtText);
223
+ }
224
+ continue;
225
+ }
226
+ // 5. Function call (tool call)
184
227
  if (pObj.functionCall && typeof pObj.functionCall === 'object') {
185
228
  const fc = pObj.functionCall;
186
229
  const name = typeof fc.name === 'string' ? String(fc.name) : undefined;
187
230
  if (!name)
188
231
  continue;
189
- const id = typeof fc.id === 'string' ? String(fc.id) : undefined;
232
+ let id = typeof fc.id === 'string' && fc.id.trim().length ? String(fc.id).trim() : undefined;
190
233
  const argsRaw = (fc.args ?? fc.arguments);
191
234
  let argsStr;
192
235
  if (typeof argsRaw === 'string') {
@@ -195,15 +238,91 @@ export function buildOpenAIChatFromGeminiResponse(payload) {
195
238
  else {
196
239
  argsStr = safeJson(argsRaw);
197
240
  }
198
- toolCalls.push({
241
+ const thoughtSignature = coerceThoughtSignature(pObj.thoughtSignature);
242
+ // Gemini 某些响应中的 functionCall 不带 id,但下游 servertool 需要稳定的
243
+ // tool_call.id 才会识别为有效工具调用;此处在缺失时生成本响应内唯一的占位 ID。
244
+ if (!id) {
245
+ const suffix = toolCallCounter++;
246
+ id = `gemini_tool_${suffix}`;
247
+ }
248
+ const toolCall = {
199
249
  id,
200
250
  type: 'function',
201
251
  function: { name, arguments: argsStr }
202
- });
252
+ };
253
+ if (thoughtSignature) {
254
+ toolCall.thought_signature = thoughtSignature;
255
+ toolCall.extra_content = {
256
+ google: {
257
+ thought_signature: thoughtSignature
258
+ }
259
+ };
260
+ }
261
+ toolCalls.push(toolCall);
262
+ continue;
263
+ }
264
+ // 6. Function response (tool result)
265
+ if (pObj.functionResponse && typeof pObj.functionResponse === 'object') {
266
+ const fr = pObj.functionResponse;
267
+ const callId = typeof fr.id === 'string' && fr.id.trim().length ? String(fr.id) : undefined;
268
+ const name = typeof fr.name === 'string' && fr.name.trim().length ? String(fr.name) : undefined;
269
+ const resp = fr.response;
270
+ let contentStr = '';
271
+ if (typeof resp === 'string') {
272
+ contentStr = resp;
273
+ }
274
+ else if (resp != null) {
275
+ try {
276
+ contentStr = JSON.stringify(resp);
277
+ }
278
+ catch {
279
+ contentStr = String(resp);
280
+ }
281
+ }
282
+ if (contentStr && contentStr.trim().length) {
283
+ toolResultTexts.push(contentStr);
284
+ if (callId || name) {
285
+ const entry = {
286
+ tool_call_id: callId ?? undefined,
287
+ id: callId ?? undefined,
288
+ content: contentStr
289
+ };
290
+ if (name) {
291
+ entry.name = name;
292
+ }
293
+ toolOutputs.push(entry);
294
+ }
295
+ }
296
+ continue;
297
+ }
298
+ // 7. Executable code (code_interpreter)
299
+ if (pObj.executableCode && typeof pObj.executableCode === 'object') {
300
+ const code = pObj.executableCode;
301
+ const language = typeof code.language === 'string' ? code.language : 'python';
302
+ const codeText = typeof code.code === 'string' ? code.code : '';
303
+ if (codeText.trim().length) {
304
+ // Append as text with code block formatting
305
+ textParts.push(`\`\`\`${language}\n${codeText}\n\`\`\``);
306
+ }
307
+ continue;
308
+ }
309
+ // 8. Code execution result
310
+ if (pObj.codeExecutionResult && typeof pObj.codeExecutionResult === 'object') {
311
+ const result = pObj.codeExecutionResult;
312
+ const outcome = typeof result.outcome === 'string' ? result.outcome : '';
313
+ const output = typeof result.output === 'string' ? result.output : '';
314
+ if (output.trim().length) {
315
+ textParts.push(`[Code Output${outcome ? ` (${outcome})` : ''}]:\n${output}`);
316
+ }
203
317
  continue;
204
318
  }
205
319
  }
320
+ const hasToolCalls = toolCalls.length > 0;
206
321
  const finish_reason = (() => {
322
+ // If the model is emitting tool calls, treat this turn as a tool_calls
323
+ // completion so downstream tool governance can continue the loop.
324
+ if (hasToolCalls)
325
+ return 'tool_calls';
207
326
  const fr = String(primary?.finishReason || '').toUpperCase();
208
327
  if (fr === 'MAX_TOKENS')
209
328
  return 'length';
@@ -228,9 +347,14 @@ export function buildOpenAIChatFromGeminiResponse(payload) {
228
347
  usage.total_tokens = totalTokens;
229
348
  const combinedText = textParts.join('\n');
230
349
  const normalized = combinedText.length ? normalizeChatMessageContent(combinedText) : { contentText: undefined, reasoningText: undefined };
350
+ const baseContent = normalized.contentText ?? combinedText ?? '';
351
+ const toolResultBlock = toolResultTexts.length ? toolResultTexts.join('\n') : '';
352
+ const finalContent = toolResultBlock && baseContent
353
+ ? `${baseContent}\n${toolResultBlock}`
354
+ : baseContent || toolResultBlock;
231
355
  const chatMsg = {
232
356
  role,
233
- content: normalized.contentText ?? combinedText ?? ''
357
+ content: finalContent
234
358
  };
235
359
  if (typeof normalized.reasoningText === 'string' && normalized.reasoningText.trim().length) {
236
360
  reasoningParts.push(normalized.reasoningText.trim());
@@ -277,6 +401,9 @@ export function buildOpenAIChatFromGeminiResponse(payload) {
277
401
  if (Object.keys(usage).length > 0) {
278
402
  chatResp.usage = usage;
279
403
  }
404
+ if (toolOutputs.length > 0) {
405
+ chatResp.tool_outputs = toolOutputs;
406
+ }
280
407
  const preservedReasoning = consumeResponsesReasoning(chatResp.id);
281
408
  if (preservedReasoning && preservedReasoning.length) {
282
409
  chatResp.__responses_reasoning = preservedReasoning;
@@ -398,7 +525,12 @@ export function buildGeminiFromOpenAIChat(chatResp) {
398
525
  const id = typeof tc.id === 'string' ? String(tc.id) : undefined;
399
526
  if (id)
400
527
  functionCall.id = id;
401
- parts.push({ functionCall });
528
+ const thoughtSignature = extractThoughtSignatureFromToolCall(tc) ?? DUMMY_THOUGHT_SIGNATURE;
529
+ const partEntry = { functionCall };
530
+ if (thoughtSignature) {
531
+ partEntry.thoughtSignature = thoughtSignature;
532
+ }
533
+ parts.push(partEntry);
402
534
  }
403
535
  const candidate = {
404
536
  content: {
@@ -0,0 +1,17 @@
1
+ import type { JsonObject } from '../../hub/types/json.js';
2
+ import type { AdapterContext } from '../../hub/types/chat-envelope.js';
3
+ /**
4
+ * Gemini web_search 请求适配(作用于 Gemini 请求 payload,而不是 ChatEnvelope):
5
+ *
6
+ * - 仅在 routeId 以 `web_search` 开头时生效(来自 AdapterContext.routeId);
7
+ * - 针对 Gemini 请求中的 `tools` 字段进行清洗:
8
+ * - 保留 name === 'web_search' 的 functionDeclarations(如果存在);
9
+ * - 丢弃其它 Codex 自身工具(exec_command / MCP 等),避免 Cloud Code 报
10
+ * “Multiple tools are supported only when they are all search tools.”;
11
+ * - 如果清洗后没有任何工具,则删除 `tools` 字段。
12
+ *
13
+ * 注意:
14
+ * - 这里处理的是 llmswitch-core 为 gemini-chat 构造的中间 payload(buildGeminiRequestFromChat 输出);
15
+ * - 对于 Gemini CLI 后续在传输层添加的 googleSearch 工具,本适配不负责构造或修改。
16
+ */
17
+ export declare function applyGeminiWebSearchCompat(payload: JsonObject, adapterContext?: AdapterContext): JsonObject;
@@ -0,0 +1,68 @@
1
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
2
+ /**
3
+ * Gemini web_search 请求适配(作用于 Gemini 请求 payload,而不是 ChatEnvelope):
4
+ *
5
+ * - 仅在 routeId 以 `web_search` 开头时生效(来自 AdapterContext.routeId);
6
+ * - 针对 Gemini 请求中的 `tools` 字段进行清洗:
7
+ * - 保留 name === 'web_search' 的 functionDeclarations(如果存在);
8
+ * - 丢弃其它 Codex 自身工具(exec_command / MCP 等),避免 Cloud Code 报
9
+ * “Multiple tools are supported only when they are all search tools.”;
10
+ * - 如果清洗后没有任何工具,则删除 `tools` 字段。
11
+ *
12
+ * 注意:
13
+ * - 这里处理的是 llmswitch-core 为 gemini-chat 构造的中间 payload(buildGeminiRequestFromChat 输出);
14
+ * - 对于 Gemini CLI 后续在传输层添加的 googleSearch 工具,本适配不负责构造或修改。
15
+ */
16
+ export function applyGeminiWebSearchCompat(payload, adapterContext) {
17
+ const routeId = typeof adapterContext?.routeId === 'string' ? adapterContext.routeId : '';
18
+ if (!routeId || !routeId.toLowerCase().startsWith('web_search')) {
19
+ return payload;
20
+ }
21
+ const cloned = { ...payload };
22
+ // 对于 Gemini Chat 后端,请求根节点不支持自定义 `web_search` 字段,
23
+ // 统一在 compat 层移除,避免触发
24
+ // "Unknown name \"web_search\" at 'request': Cannot find field." 错误。
25
+ if (cloned.web_search !== undefined) {
26
+ delete cloned.web_search;
27
+ }
28
+ const toolsRaw = cloned.tools;
29
+ // 当 web_search 路由下完全没有 tools 时,为 Gemini 搜索模型注入最小 googleSearch 工具,
30
+ // 保持与 gcli2api 类似的“搜索模型自动启用 Search 工具”行为。
31
+ if (!Array.isArray(toolsRaw)) {
32
+ cloned.tools = [{ googleSearch: {} }];
33
+ return cloned;
34
+ }
35
+ const nextTools = [];
36
+ for (const entry of toolsRaw) {
37
+ if (!isRecord(entry))
38
+ continue;
39
+ // 1) 保留 name === 'web_search' 的 functionDeclarations(单函数声明)。
40
+ const decls = Array.isArray(entry.functionDeclarations)
41
+ ? entry.functionDeclarations
42
+ : [];
43
+ const webSearchDecls = decls.filter((fn) => {
44
+ if (!isRecord(fn))
45
+ return false;
46
+ const name = typeof fn.name === 'string' ? fn.name.trim().toLowerCase() : '';
47
+ return name === 'web_search';
48
+ });
49
+ if (webSearchDecls.length) {
50
+ nextTools.push({
51
+ functionDeclarations: webSearchDecls
52
+ });
53
+ continue;
54
+ }
55
+ // 2) 若上游已经构造了 googleSearch 工具,则保留。
56
+ if (isRecord(entry.googleSearch)) {
57
+ nextTools.push({ googleSearch: entry.googleSearch });
58
+ }
59
+ }
60
+ if (nextTools.length > 0) {
61
+ cloned.tools = nextTools;
62
+ }
63
+ else {
64
+ // 3) 清洗后没有任何工具时,再次注入一个最小 googleSearch 工具,确保搜索模型仍然启用 Search。
65
+ cloned.tools = [{ googleSearch: {} }];
66
+ }
67
+ return cloned;
68
+ }
@@ -0,0 +1,2 @@
1
+ import type { JsonObject } from '../../hub/types/json.js';
2
+ export declare function applyGlmImageContentTransform(payload: JsonObject): JsonObject;
@@ -0,0 +1,83 @@
1
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
2
+ function normalizeImagePart(part) {
3
+ const rawType = typeof part.type === 'string' ? part.type.toLowerCase() : '';
4
+ if (rawType !== 'image' && rawType !== 'image_url') {
5
+ return null;
6
+ }
7
+ // Try multiple locations for the URL, since different inbound
8
+ // protocols may populate different keys.
9
+ const imageUrlBlock = isRecord(part.image_url)
10
+ ? part.image_url
11
+ : undefined;
12
+ let url;
13
+ if (imageUrlBlock && typeof imageUrlBlock.url === 'string') {
14
+ url = imageUrlBlock.url;
15
+ }
16
+ else if (typeof part.image_url === 'string') {
17
+ url = part.image_url;
18
+ }
19
+ else if (typeof part.url === 'string') {
20
+ url = part.url;
21
+ }
22
+ else if (typeof part.uri === 'string') {
23
+ url = part.uri;
24
+ }
25
+ else if (typeof part.data === 'string') {
26
+ // If caller passed a raw base64/data URI string, forward as-is.
27
+ url = part.data;
28
+ }
29
+ if (!url || !url.trim().length) {
30
+ return null;
31
+ }
32
+ const normalized = {
33
+ type: 'image_url',
34
+ image_url: {
35
+ url: url.trim()
36
+ }
37
+ };
38
+ // Preserve a best-effort "detail" field when present.
39
+ const detailValue = (imageUrlBlock && imageUrlBlock.detail) ?? part.detail;
40
+ if (typeof detailValue === 'string' && detailValue.trim().length) {
41
+ normalized.image_url.detail = detailValue.trim();
42
+ }
43
+ return normalized;
44
+ }
45
+ export function applyGlmImageContentTransform(payload) {
46
+ const root = structuredClone(payload);
47
+ const messagesValue = root.messages;
48
+ if (!Array.isArray(messagesValue)) {
49
+ return root;
50
+ }
51
+ const messages = [];
52
+ for (const msg of messagesValue) {
53
+ if (!isRecord(msg)) {
54
+ messages.push(msg);
55
+ continue;
56
+ }
57
+ const contentValue = msg.content;
58
+ if (!Array.isArray(contentValue)) {
59
+ messages.push(msg);
60
+ continue;
61
+ }
62
+ const newContent = [];
63
+ for (const part of contentValue) {
64
+ if (!isRecord(part)) {
65
+ newContent.push(part);
66
+ continue;
67
+ }
68
+ const normalizedImage = normalizeImagePart(part);
69
+ if (normalizedImage) {
70
+ newContent.push(normalizedImage);
71
+ }
72
+ else {
73
+ newContent.push(part);
74
+ }
75
+ }
76
+ messages.push({
77
+ ...msg,
78
+ content: newContent
79
+ });
80
+ }
81
+ root.messages = messages;
82
+ return root;
83
+ }
@@ -0,0 +1,11 @@
1
+ import type { JsonObject } from '../../hub/types/json.js';
2
+ /**
3
+ * GLM 4.6V 专用视觉提示裁剪:
4
+ * - 仅在 model 为 glm-4.6v 且存在携带图片的 user 消息时生效;
5
+ * - 丢弃原有 system 与历史对话,只保留一条新的 system + 一条 user;
6
+ * - system:要求模型以结构化 JSON 描述截图内容、标记(圈/箭头等)及其大致 bbox;
7
+ * - user:保留原始用户文字(如果有)+ 单一 image_url 块。
8
+ *
9
+ * 其他模型(包括 glm-4.7、Gemini 等)不受影响。
10
+ */
11
+ export declare function applyGlmVisionPromptTransform(payload: JsonObject): JsonObject;