@jsonstudio/rcc 0.89.164 → 0.89.333

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 (337) hide show
  1. package/README.md +18 -15
  2. package/dist/build-info.js +3 -3
  3. package/dist/build-info.js.map +1 -1
  4. package/dist/cli.js +32 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/client/gemini-cli/gemini-cli-protocol-client.js +28 -5
  7. package/dist/client/gemini-cli/gemini-cli-protocol-client.js.map +1 -1
  8. package/dist/error-handling/quiet-error-handling-center.d.ts +9 -0
  9. package/dist/error-handling/quiet-error-handling-center.js +141 -0
  10. package/dist/error-handling/quiet-error-handling-center.js.map +1 -0
  11. package/dist/error-handling/route-error-hub.js +8 -2
  12. package/dist/error-handling/route-error-hub.js.map +1 -1
  13. package/dist/modules/pipeline/utils/colored-logger.d.ts +2 -0
  14. package/dist/modules/pipeline/utils/colored-logger.js +20 -3
  15. package/dist/modules/pipeline/utils/colored-logger.js.map +1 -1
  16. package/dist/providers/auth/antigravity-userinfo-helper.d.ts +10 -0
  17. package/dist/providers/auth/antigravity-userinfo-helper.js +140 -0
  18. package/dist/providers/auth/antigravity-userinfo-helper.js.map +1 -0
  19. package/dist/providers/auth/oauth-lifecycle.js +140 -8
  20. package/dist/providers/auth/oauth-lifecycle.js.map +1 -1
  21. package/dist/providers/auth/token-scanner/index.d.ts +32 -0
  22. package/dist/providers/auth/token-scanner/index.js +86 -0
  23. package/dist/providers/auth/token-scanner/index.js.map +1 -0
  24. package/dist/providers/auth/tokenfile-auth.d.ts +17 -0
  25. package/dist/providers/auth/tokenfile-auth.js +27 -5
  26. package/dist/providers/auth/tokenfile-auth.js.map +1 -1
  27. package/dist/providers/core/api/provider-types.d.ts +10 -0
  28. package/dist/providers/core/config/oauth-flows.d.ts +2 -0
  29. package/dist/providers/core/config/oauth-flows.js.map +1 -1
  30. package/dist/providers/core/config/provider-oauth-configs.js +85 -0
  31. package/dist/providers/core/config/provider-oauth-configs.js.map +1 -1
  32. package/dist/providers/core/config/service-profiles.js +15 -1
  33. package/dist/providers/core/config/service-profiles.js.map +1 -1
  34. package/dist/providers/core/runtime/base-provider.d.ts +8 -1
  35. package/dist/providers/core/runtime/base-provider.js +176 -108
  36. package/dist/providers/core/runtime/base-provider.js.map +1 -1
  37. package/dist/providers/core/runtime/gemini-cli-http-provider.d.ts +9 -5
  38. package/dist/providers/core/runtime/gemini-cli-http-provider.js +271 -69
  39. package/dist/providers/core/runtime/gemini-cli-http-provider.js.map +1 -1
  40. package/dist/providers/core/runtime/gemini-http-provider.d.ts +1 -2
  41. package/dist/providers/core/runtime/gemini-http-provider.js +0 -12
  42. package/dist/providers/core/runtime/gemini-http-provider.js.map +1 -1
  43. package/dist/providers/core/runtime/http-request-executor.d.ts +42 -0
  44. package/dist/providers/core/runtime/http-request-executor.js +133 -0
  45. package/dist/providers/core/runtime/http-request-executor.js.map +1 -0
  46. package/dist/providers/core/runtime/http-transport-provider.d.ts +32 -12
  47. package/dist/providers/core/runtime/http-transport-provider.js +464 -426
  48. package/dist/providers/core/runtime/http-transport-provider.js.map +1 -1
  49. package/dist/providers/core/runtime/provider-error-classifier.d.ts +25 -0
  50. package/dist/providers/core/runtime/provider-error-classifier.js +149 -0
  51. package/dist/providers/core/runtime/provider-error-classifier.js.map +1 -0
  52. package/dist/providers/core/runtime/provider-error-types.d.ts +23 -0
  53. package/dist/providers/core/runtime/provider-error-types.js +2 -0
  54. package/dist/providers/core/runtime/provider-error-types.js.map +1 -0
  55. package/dist/providers/core/runtime/provider-factory.d.ts +1 -0
  56. package/dist/providers/core/runtime/provider-factory.js +43 -8
  57. package/dist/providers/core/runtime/provider-factory.js.map +1 -1
  58. package/dist/providers/core/runtime/responses-provider.d.ts +3 -3
  59. package/dist/providers/core/runtime/responses-provider.js +48 -114
  60. package/dist/providers/core/runtime/responses-provider.js.map +1 -1
  61. package/dist/providers/core/strategies/oauth-auth-code-flow.js +11 -3
  62. package/dist/providers/core/strategies/oauth-auth-code-flow.js.map +1 -1
  63. package/dist/providers/core/utils/http-client.d.ts +5 -0
  64. package/dist/providers/core/utils/http-client.js +29 -3
  65. package/dist/providers/core/utils/http-client.js.map +1 -1
  66. package/dist/providers/core/utils/provider-error-reporter.js +8 -2
  67. package/dist/providers/core/utils/provider-error-reporter.js.map +1 -1
  68. package/dist/providers/core/utils/snapshot-writer.js +5 -1
  69. package/dist/providers/core/utils/snapshot-writer.js.map +1 -1
  70. package/dist/providers/profile/provider-profile-loader.js +8 -4
  71. package/dist/providers/profile/provider-profile-loader.js.map +1 -1
  72. package/dist/runtime/runtime-flags.d.ts +4 -0
  73. package/dist/runtime/runtime-flags.js +32 -0
  74. package/dist/runtime/runtime-flags.js.map +1 -0
  75. package/dist/server/handlers/handler-utils.js +29 -2
  76. package/dist/server/handlers/handler-utils.js.map +1 -1
  77. package/dist/server/handlers/messages-handler.js +27 -26
  78. package/dist/server/handlers/messages-handler.js.map +1 -1
  79. package/dist/server/handlers/responses-handler.js +35 -1
  80. package/dist/server/handlers/responses-handler.js.map +1 -1
  81. package/dist/server/runtime/http-server/index.d.ts +1 -0
  82. package/dist/server/runtime/http-server/index.js +39 -4
  83. package/dist/server/runtime/http-server/index.js.map +1 -1
  84. package/dist/server/runtime/http-server/request-executor.d.ts +4 -0
  85. package/dist/server/runtime/http-server/request-executor.js +99 -4
  86. package/dist/server/runtime/http-server/request-executor.js.map +1 -1
  87. package/dist/server/utils/sse-request-parser.d.ts +1 -0
  88. package/dist/server/utils/sse-request-parser.js +17 -6
  89. package/dist/server/utils/sse-request-parser.js.map +1 -1
  90. package/dist/server/utils/warmup-detector.d.ts +7 -0
  91. package/dist/server/utils/warmup-detector.js +125 -0
  92. package/dist/server/utils/warmup-detector.js.map +1 -0
  93. package/dist/server/utils/warmup-storm-tracker.d.ts +9 -0
  94. package/dist/server/utils/warmup-storm-tracker.js +61 -0
  95. package/dist/server/utils/warmup-storm-tracker.js.map +1 -0
  96. package/dist/utils/debug-utils.js +14 -0
  97. package/dist/utils/debug-utils.js.map +1 -1
  98. package/dist/utils/error-handler-registry.js +6 -5
  99. package/dist/utils/error-handler-registry.js.map +1 -1
  100. package/dist/utils/error-handling-utils.js +4 -3
  101. package/dist/utils/error-handling-utils.js.map +1 -1
  102. package/dist/utils/log-helpers.d.ts +6 -0
  103. package/dist/utils/log-helpers.js +90 -0
  104. package/dist/utils/log-helpers.js.map +1 -0
  105. package/dist/utils/logger.d.ts +8 -0
  106. package/dist/utils/logger.js +55 -2
  107. package/dist/utils/logger.js.map +1 -1
  108. package/dist/utils/snapshot-writer.js +2 -6
  109. package/dist/utils/snapshot-writer.js.map +1 -1
  110. package/node_modules/@jsonstudio/llms/dist/conversion/codecs/gemini-openai-codec.js +15 -1
  111. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/auto-thinking.d.ts +6 -0
  112. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/auto-thinking.js +25 -0
  113. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/field-mapping.d.ts +14 -0
  114. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/field-mapping.js +155 -0
  115. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/glm-tool-extraction.d.ts +2 -0
  116. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/glm-tool-extraction.js +264 -0
  117. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/qwen-transform.d.ts +3 -0
  118. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/qwen-transform.js +209 -0
  119. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/request-rules.d.ts +24 -0
  120. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/request-rules.js +63 -0
  121. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/response-blacklist.d.ts +14 -0
  122. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/response-blacklist.js +85 -0
  123. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/response-normalize.d.ts +5 -0
  124. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/response-normalize.js +121 -0
  125. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/response-validate.d.ts +5 -0
  126. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/response-validate.js +76 -0
  127. package/{dist/providers/compat/utils/snapshot-writer.d.ts → node_modules/@jsonstudio/llms/dist/conversion/compat/actions/snapshot.d.ts} +2 -2
  128. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/snapshot.js +21 -0
  129. package/node_modules/@jsonstudio/llms/dist/conversion/compat/actions/tool-schema.d.ts +6 -0
  130. package/{dist/providers/compat/glm/utils/tool-schema-helpers.js → node_modules/@jsonstudio/llms/dist/conversion/compat/actions/tool-schema.js} +6 -1
  131. package/{dist/providers/compat/filters → node_modules/@jsonstudio/llms/dist/conversion/compat/actions}/universal-shape-filter.d.ts +17 -22
  132. package/{dist/providers/compat/filters → node_modules/@jsonstudio/llms/dist/conversion/compat/actions}/universal-shape-filter.js +35 -99
  133. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-glm.json +187 -13
  134. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-iflow.json +177 -9
  135. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-lmstudio.json +10 -2
  136. package/node_modules/@jsonstudio/llms/dist/conversion/compat/profiles/chat-qwen.json +14 -10
  137. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/compat/compat-engine.d.ts +7 -2
  138. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/compat/compat-engine.js +5 -665
  139. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.d.ts +9 -0
  140. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.js +845 -0
  141. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/compat/compat-types.d.ts +47 -0
  142. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline.d.ts +2 -0
  143. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/hub-pipeline.js +35 -1
  144. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage3_compat/index.js +2 -2
  145. package/node_modules/@jsonstudio/llms/dist/conversion/hub/pipeline/target-utils.js +3 -0
  146. package/node_modules/@jsonstudio/llms/dist/conversion/hub/response/response-runtime.js +19 -2
  147. package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-host-policy.d.ts +6 -0
  148. package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-host-policy.js +14 -0
  149. package/node_modules/@jsonstudio/llms/dist/conversion/responses/responses-openai-bridge.js +51 -2
  150. package/node_modules/@jsonstudio/llms/dist/conversion/shared/anthropic-message-utils.js +6 -0
  151. package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-reasoning-registry.d.ts +4 -0
  152. package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-reasoning-registry.js +62 -1
  153. package/node_modules/@jsonstudio/llms/dist/conversion/shared/responses-response-utils.js +23 -1
  154. package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-canonicalizer.d.ts +2 -0
  155. package/node_modules/@jsonstudio/llms/dist/conversion/shared/tool-filter-pipeline.js +11 -0
  156. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/bootstrap.js +251 -12
  157. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/classifier.js +11 -4
  158. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/context-advisor.d.ts +21 -0
  159. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/context-advisor.js +76 -0
  160. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine.d.ts +11 -0
  161. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/engine.js +187 -28
  162. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/features.js +22 -457
  163. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/health-manager.js +2 -7
  164. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/message-utils.d.ts +7 -0
  165. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/message-utils.js +66 -0
  166. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/provider-registry.js +6 -2
  167. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/token-estimator.d.ts +2 -0
  168. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/token-estimator.js +16 -0
  169. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/token-file-scanner.d.ts +15 -0
  170. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/token-file-scanner.js +56 -0
  171. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/tool-signals.d.ts +13 -0
  172. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/tool-signals.js +403 -0
  173. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/types.d.ts +21 -1
  174. package/node_modules/@jsonstudio/llms/dist/router/virtual-router/types.js +1 -0
  175. package/node_modules/@jsonstudio/llms/package.json +2 -2
  176. package/package.json +13 -11
  177. package/scripts/README.md +26 -12
  178. package/scripts/auth-antigravity-token.mjs +64 -0
  179. package/scripts/auth-gemini-cli-token.mjs +96 -0
  180. package/scripts/auth-iflow-manual.mjs +81 -0
  181. package/scripts/auth-iflow-token-direct.mjs +87 -0
  182. package/scripts/auth-iflow-token.mjs +77 -0
  183. package/scripts/copy-compat-assets.mjs +3 -15
  184. package/scripts/install-verify.mjs +1 -0
  185. package/scripts/pack-mode.mjs +30 -1
  186. package/scripts/publish-rcc.mjs +31 -0
  187. package/scripts/replay-codex-sample.mjs +13 -8
  188. package/scripts/tests/chat-pipeline-blackbox.mjs +1 -1
  189. package/scripts/tools/capture-provider-goldens.mjs +8 -7
  190. package/scripts/verify-client-headers.mjs +224 -0
  191. package/dist/providers/compat/base-compatibility.d.ts +0 -27
  192. package/dist/providers/compat/base-compatibility.js +0 -143
  193. package/dist/providers/compat/base-compatibility.js.map +0 -1
  194. package/dist/providers/compat/compat-directory-loader.d.ts +0 -4
  195. package/dist/providers/compat/compat-directory-loader.js +0 -85
  196. package/dist/providers/compat/compat-directory-loader.js.map +0 -1
  197. package/dist/providers/compat/compatibility-adapter.d.ts +0 -18
  198. package/dist/providers/compat/compatibility-adapter.js +0 -104
  199. package/dist/providers/compat/compatibility-adapter.js.map +0 -1
  200. package/dist/providers/compat/compatibility-factory.d.ts +0 -57
  201. package/dist/providers/compat/compatibility-factory.js +0 -155
  202. package/dist/providers/compat/compatibility-factory.js.map +0 -1
  203. package/dist/providers/compat/compatibility-interface.d.ts +0 -35
  204. package/dist/providers/compat/compatibility-interface.js +0 -2
  205. package/dist/providers/compat/compatibility-interface.js.map +0 -1
  206. package/dist/providers/compat/compatibility-manager.d.ts +0 -85
  207. package/dist/providers/compat/compatibility-manager.js +0 -368
  208. package/dist/providers/compat/compatibility-manager.js.map +0 -1
  209. package/dist/providers/compat/config/config-compatibility.d.ts +0 -28
  210. package/dist/providers/compat/config/config-compatibility.js +0 -95
  211. package/dist/providers/compat/config/config-compatibility.js.map +0 -1
  212. package/dist/providers/compat/field-mapping.d.ts +0 -102
  213. package/dist/providers/compat/field-mapping.js +0 -447
  214. package/dist/providers/compat/field-mapping.js.map +0 -1
  215. package/dist/providers/compat/filters/blacklist-sanitizer.d.ts +0 -45
  216. package/dist/providers/compat/filters/blacklist-sanitizer.js +0 -133
  217. package/dist/providers/compat/filters/blacklist-sanitizer.js.map +0 -1
  218. package/dist/providers/compat/filters/response-blacklist-sanitizer.d.ts +0 -28
  219. package/dist/providers/compat/filters/response-blacklist-sanitizer.js +0 -138
  220. package/dist/providers/compat/filters/response-blacklist-sanitizer.js.map +0 -1
  221. package/dist/providers/compat/filters/universal-shape-filter.js.map +0 -1
  222. package/dist/providers/compat/glm/config/blacklist-rules.json +0 -22
  223. package/dist/providers/compat/glm/config/field-mappings.json +0 -92
  224. package/dist/providers/compat/glm/config/response-blacklist.json +0 -7
  225. package/dist/providers/compat/glm/config/shape-filters.json +0 -37
  226. package/dist/providers/compat/glm/field-mapping/field-mapping-processor.d.ts +0 -28
  227. package/dist/providers/compat/glm/field-mapping/field-mapping-processor.js +0 -306
  228. package/dist/providers/compat/glm/field-mapping/field-mapping-processor.js.map +0 -1
  229. package/dist/providers/compat/glm/functions/glm-processor.d.ts +0 -50
  230. package/dist/providers/compat/glm/functions/glm-processor.js +0 -134
  231. package/dist/providers/compat/glm/functions/glm-processor.js.map +0 -1
  232. package/dist/providers/compat/glm/glm-compatibility.d.ts +0 -34
  233. package/dist/providers/compat/glm/glm-compatibility.js +0 -117
  234. package/dist/providers/compat/glm/glm-compatibility.js.map +0 -1
  235. package/dist/providers/compat/glm/hooks/base-hook.d.ts +0 -21
  236. package/dist/providers/compat/glm/hooks/base-hook.js +0 -53
  237. package/dist/providers/compat/glm/hooks/base-hook.js.map +0 -1
  238. package/dist/providers/compat/glm/hooks/glm-request-validation-hook.d.ts +0 -24
  239. package/dist/providers/compat/glm/hooks/glm-request-validation-hook.js +0 -268
  240. package/dist/providers/compat/glm/hooks/glm-request-validation-hook.js.map +0 -1
  241. package/dist/providers/compat/glm/hooks/glm-response-normalization-hook.d.ts +0 -21
  242. package/dist/providers/compat/glm/hooks/glm-response-normalization-hook.js +0 -171
  243. package/dist/providers/compat/glm/hooks/glm-response-normalization-hook.js.map +0 -1
  244. package/dist/providers/compat/glm/hooks/glm-response-validation-hook.d.ts +0 -25
  245. package/dist/providers/compat/glm/hooks/glm-response-validation-hook.js +0 -236
  246. package/dist/providers/compat/glm/hooks/glm-response-validation-hook.js.map +0 -1
  247. package/dist/providers/compat/glm/hooks/glm-tool-cleaning-hook.d.ts +0 -26
  248. package/dist/providers/compat/glm/hooks/glm-tool-cleaning-hook.js +0 -186
  249. package/dist/providers/compat/glm/hooks/glm-tool-cleaning-hook.js.map +0 -1
  250. package/dist/providers/compat/glm/index.d.ts +0 -24
  251. package/dist/providers/compat/glm/index.js +0 -29
  252. package/dist/providers/compat/glm/index.js.map +0 -1
  253. package/dist/providers/compat/glm/utils/tool-schema-helpers.d.ts +0 -3
  254. package/dist/providers/compat/glm/utils/tool-schema-helpers.js.map +0 -1
  255. package/dist/providers/compat/iflow/config/field-mappings.json +0 -92
  256. package/dist/providers/compat/iflow/config/shape-filters.json +0 -37
  257. package/dist/providers/compat/iflow/field-mapping/iflow-field-mapping-processor.d.ts +0 -34
  258. package/dist/providers/compat/iflow/field-mapping/iflow-field-mapping-processor.js +0 -386
  259. package/dist/providers/compat/iflow/field-mapping/iflow-field-mapping-processor.js.map +0 -1
  260. package/dist/providers/compat/iflow/functions/iflow-processor.d.ts +0 -53
  261. package/dist/providers/compat/iflow/functions/iflow-processor.js +0 -215
  262. package/dist/providers/compat/iflow/functions/iflow-processor.js.map +0 -1
  263. package/dist/providers/compat/iflow/hooks/base-hook.d.ts +0 -23
  264. package/dist/providers/compat/iflow/hooks/base-hook.js +0 -59
  265. package/dist/providers/compat/iflow/hooks/base-hook.js.map +0 -1
  266. package/dist/providers/compat/iflow/hooks/iflow-request-validation-hook.d.ts +0 -23
  267. package/dist/providers/compat/iflow/hooks/iflow-request-validation-hook.js +0 -279
  268. package/dist/providers/compat/iflow/hooks/iflow-request-validation-hook.js.map +0 -1
  269. package/dist/providers/compat/iflow/hooks/iflow-response-normalization-hook.d.ts +0 -20
  270. package/dist/providers/compat/iflow/hooks/iflow-response-normalization-hook.js +0 -180
  271. package/dist/providers/compat/iflow/hooks/iflow-response-normalization-hook.js.map +0 -1
  272. package/dist/providers/compat/iflow/hooks/iflow-response-validation-hook.d.ts +0 -23
  273. package/dist/providers/compat/iflow/hooks/iflow-response-validation-hook.js +0 -232
  274. package/dist/providers/compat/iflow/hooks/iflow-response-validation-hook.js.map +0 -1
  275. package/dist/providers/compat/iflow/hooks/iflow-tool-cleaning-hook.d.ts +0 -25
  276. package/dist/providers/compat/iflow/hooks/iflow-tool-cleaning-hook.js +0 -216
  277. package/dist/providers/compat/iflow/hooks/iflow-tool-cleaning-hook.js.map +0 -1
  278. package/dist/providers/compat/iflow/iflow-compatibility.d.ts +0 -24
  279. package/dist/providers/compat/iflow/iflow-compatibility.js +0 -94
  280. package/dist/providers/compat/iflow/iflow-compatibility.js.map +0 -1
  281. package/dist/providers/compat/index.d.ts +0 -59
  282. package/dist/providers/compat/index.js +0 -83
  283. package/dist/providers/compat/index.js.map +0 -1
  284. package/dist/providers/compat/lmstudio-compatibility.d.ts +0 -44
  285. package/dist/providers/compat/lmstudio-compatibility.js +0 -193
  286. package/dist/providers/compat/lmstudio-compatibility.js.map +0 -1
  287. package/dist/providers/compat/passthrough-compatibility.d.ts +0 -29
  288. package/dist/providers/compat/passthrough-compatibility.js +0 -83
  289. package/dist/providers/compat/passthrough-compatibility.js.map +0 -1
  290. package/dist/providers/compat/profiles/chat/glm/index.d.ts +0 -6
  291. package/dist/providers/compat/profiles/chat/glm/index.js +0 -6
  292. package/dist/providers/compat/profiles/chat/glm/index.js.map +0 -1
  293. package/dist/providers/compat/profiles/chat/iflow/index.d.ts +0 -6
  294. package/dist/providers/compat/profiles/chat/iflow/index.js +0 -6
  295. package/dist/providers/compat/profiles/chat/iflow/index.js.map +0 -1
  296. package/dist/providers/compat/profiles/chat/lmstudio/index.d.ts +0 -6
  297. package/dist/providers/compat/profiles/chat/lmstudio/index.js +0 -6
  298. package/dist/providers/compat/profiles/chat/lmstudio/index.js.map +0 -1
  299. package/dist/providers/compat/profiles/chat/qwen/index.d.ts +0 -6
  300. package/dist/providers/compat/profiles/chat/qwen/index.js +0 -6
  301. package/dist/providers/compat/profiles/chat/qwen/index.js.map +0 -1
  302. package/dist/providers/compat/profiles/compat/passthrough/index.d.ts +0 -6
  303. package/dist/providers/compat/profiles/compat/passthrough/index.js +0 -6
  304. package/dist/providers/compat/profiles/compat/passthrough/index.js.map +0 -1
  305. package/dist/providers/compat/profiles/responses/c4m/index.d.ts +0 -6
  306. package/dist/providers/compat/profiles/responses/c4m/index.js +0 -6
  307. package/dist/providers/compat/profiles/responses/c4m/index.js.map +0 -1
  308. package/dist/providers/compat/profiles/responses/default/index.d.ts +0 -6
  309. package/dist/providers/compat/profiles/responses/default/index.js +0 -6
  310. package/dist/providers/compat/profiles/responses/default/index.js.map +0 -1
  311. package/dist/providers/compat/profiles/responses/fai/index.d.ts +0 -6
  312. package/dist/providers/compat/profiles/responses/fai/index.js +0 -6
  313. package/dist/providers/compat/profiles/responses/fai/index.js.map +0 -1
  314. package/dist/providers/compat/profiles/responses/fc/index.d.ts +0 -6
  315. package/dist/providers/compat/profiles/responses/fc/index.js +0 -6
  316. package/dist/providers/compat/profiles/responses/fc/index.js.map +0 -1
  317. package/dist/providers/compat/qwen/index.d.ts +0 -4
  318. package/dist/providers/compat/qwen/index.js +0 -6
  319. package/dist/providers/compat/qwen/index.js.map +0 -1
  320. package/dist/providers/compat/qwen-compatibility.d.ts +0 -52
  321. package/dist/providers/compat/qwen-compatibility.js +0 -330
  322. package/dist/providers/compat/qwen-compatibility.js.map +0 -1
  323. package/dist/providers/compat/register-compat-module.d.ts +0 -8
  324. package/dist/providers/compat/register-compat-module.js +0 -53
  325. package/dist/providers/compat/register-compat-module.js.map +0 -1
  326. package/dist/providers/compat/responses/c4m-responses-compatibility.d.ts +0 -27
  327. package/dist/providers/compat/responses/c4m-responses-compatibility.js +0 -197
  328. package/dist/providers/compat/responses/c4m-responses-compatibility.js.map +0 -1
  329. package/dist/providers/compat/standard-compatibility-utils.d.ts +0 -1
  330. package/dist/providers/compat/standard-compatibility-utils.js +0 -77
  331. package/dist/providers/compat/standard-compatibility-utils.js.map +0 -1
  332. package/dist/providers/compat/standard-compatibility.d.ts +0 -31
  333. package/dist/providers/compat/standard-compatibility.js +0 -118
  334. package/dist/providers/compat/standard-compatibility.js.map +0 -1
  335. package/dist/providers/compat/utils/snapshot-writer.js +0 -62
  336. package/dist/providers/compat/utils/snapshot-writer.js.map +0 -1
  337. package/scripts/check-glm-compat.mjs +0 -47
@@ -7,72 +7,152 @@
7
7
  * - 认证:OAuth2 Bearer token
8
8
  * - 特性:多 project 支持、token 共享、模型回退
9
9
  */
10
+ import { randomUUID } from 'node:crypto';
11
+ import { Transform } from 'node:stream';
10
12
  import { HttpTransportProvider } from './http-transport-provider.js';
11
13
  import { GeminiCLIProtocolClient } from '../../../client/gemini-cli/gemini-cli-protocol-client.js';
12
14
  import { getDefaultProjectId } from '../../auth/gemini-cli-userinfo-helper.js';
15
+ import { ANTIGRAVITY_HELPER_DEFAULTS } from '../../auth/antigravity-userinfo-helper.js';
13
16
  export class GeminiCLIHttpProvider extends HttpTransportProvider {
14
17
  constructor(config, dependencies) {
18
+ const providerId = typeof config.config?.providerId === 'string' && config.config.providerId.trim().length
19
+ ? config.config.providerId.trim()
20
+ : 'gemini-cli';
15
21
  const cfg = {
16
22
  ...config,
17
23
  config: {
18
24
  ...config.config,
19
25
  // 使用统一的 providerType=gemini,表示协议族与标准 Gemini 一致
20
26
  // gemini-cli 仅作为 Cloud Code Assist 变体,通过模块类型 + auth 配置区分
21
- providerType: 'gemini'
27
+ providerType: 'gemini',
28
+ providerId,
29
+ extensions: {
30
+ ...(config.config?.extensions || {}),
31
+ oauthProviderId: config.config?.extensions?.oauthProviderId ?? providerId
32
+ }
22
33
  }
23
34
  };
24
35
  super(cfg, dependencies, 'gemini-cli-http-provider', new GeminiCLIProtocolClient());
25
36
  }
26
- getServiceProfile() {
27
- // 完全依赖 service-profiles / config-core 提供的行为配置,避免在 Provider 内重复硬编码
28
- return super.getServiceProfile();
29
- }
30
37
  async preprocessRequest(request) {
31
- const adapter = this.resolvePayload(request);
38
+ const processedRequest = await super.preprocessRequest(request);
39
+ const adapter = this.resolvePayload(processedRequest);
32
40
  const payload = adapter.payload;
33
41
  // 从 auth provider 获取 project_id(仅做最小的 OAuth token 解析,不介入登录流程)
34
42
  if (!this.authProvider) {
35
43
  throw new Error('Gemini CLI: auth provider not found');
36
44
  }
37
- const oauthClient = this.authProvider.getOAuthClient?.();
38
- const tokenData = oauthClient?.getToken?.();
45
+ const anyAuth = this.authProvider;
46
+ let tokenData;
47
+ const oauthClient = anyAuth.getOAuthClient?.();
48
+ if (oauthClient && typeof oauthClient.getToken === 'function') {
49
+ tokenData = oauthClient.getToken();
50
+ }
51
+ else if (typeof anyAuth.getTokenPayload === 'function') {
52
+ // 兼容 TokenFileAuthProvider:直接从本地 token JSON 解析 project_id
53
+ tokenData = anyAuth.getTokenPayload();
54
+ }
39
55
  const projectId = getDefaultProjectId(tokenData || {});
40
56
  if (!projectId) {
41
57
  throw new Error('Gemini CLI: project_id not found in token. Please authenticate with Google OAuth first.');
42
58
  }
43
- // 构建 Gemini CLI 格式的请求
44
- const model = typeof payload.model === 'string' ? payload.model : '';
59
+ // 构建 Gemini CLI 格式的请求(仅做传输层整理,不做 OpenAI→Gemini 语义转换)
60
+ const model = typeof payload.model === 'string' && payload.model.trim().length > 0
61
+ ? payload.model
62
+ : '';
45
63
  if (!model) {
46
64
  throw new Error('Gemini CLI: model is required');
47
65
  }
48
- // 转换 messages 到 contents (如果存在)
49
- let contents = payload.contents;
50
- if (!contents && Array.isArray(payload.messages)) {
51
- contents = this.convertMessagesToContents(payload.messages);
52
- }
53
- // 构建 generationConfig
54
- const generationConfig = this.buildGenerationConfig(payload);
55
- const rebuilt = {
56
- ...payload,
57
- model,
58
- project: projectId
59
- };
60
- if (contents) {
61
- rebuilt.contents = contents;
62
- }
63
- if (Object.keys(generationConfig).length > 0) {
64
- rebuilt.generationConfig = generationConfig;
66
+ payload.model = model;
67
+ payload.project = projectId;
68
+ this.ensureRequestMetadata(payload);
69
+ // 删除与 Gemini 协议无关的字段,避免影响 Cloud Code Assist schema 校验
70
+ delete payload.messages;
71
+ delete payload.stream;
72
+ return processedRequest;
73
+ }
74
+ wantsUpstreamSse(request, context) {
75
+ const fromRequest = this.extractStreamFlag(request);
76
+ const fromContext = this.extractStreamFlag(context.metadata);
77
+ const wantsStream = typeof fromRequest === 'boolean'
78
+ ? fromRequest
79
+ : typeof fromContext === 'boolean'
80
+ ? fromContext
81
+ : false;
82
+ this.applyStreamAction(request, wantsStream);
83
+ return wantsStream;
84
+ }
85
+ async finalizeRequestHeaders(headers, request) {
86
+ const finalized = await super.finalizeRequestHeaders(headers, request);
87
+ if (this.isAntigravityRuntime()) {
88
+ finalized['User-Agent'] = ANTIGRAVITY_HELPER_DEFAULTS.userAgent;
89
+ if (!this.hasNonEmptyString(finalized['Accept-Encoding'])) {
90
+ finalized['Accept-Encoding'] = 'gzip, deflate, br';
91
+ }
65
92
  }
66
- // 删除不必要的字段
67
- delete rebuilt.messages;
68
- delete rebuilt.stream;
69
- return adapter.assign(rebuilt);
93
+ return finalized;
70
94
  }
71
95
  async postprocessResponse(response, context) {
96
+ const processingTime = Date.now() - context.startTime;
72
97
  if (response && typeof response === 'object') {
73
- return response;
98
+ const record = response;
99
+ // 保持与基类一致:优先透传上游 SSE 流
100
+ const sseStream = record.__sse_responses ||
101
+ (record.data && typeof record.data === 'object'
102
+ ? record.data.__sse_responses
103
+ : undefined);
104
+ if (sseStream) {
105
+ return { __sse_responses: sseStream };
106
+ }
107
+ // 非流式响应:HttpClient.post 返回的 data 是 Cloud Code Assist 的 envelope:{ response: <GeminiResponse>, ... }
108
+ const rawData = record.data ?? response;
109
+ let normalizedPayload = rawData;
110
+ if (rawData && typeof rawData === 'object' && 'response' in rawData) {
111
+ const inner = rawData.response;
112
+ if (inner && typeof inner === 'object') {
113
+ normalizedPayload = inner;
114
+ }
115
+ }
116
+ const payloadObject = normalizedPayload && typeof normalizedPayload === 'object'
117
+ ? normalizedPayload
118
+ : undefined;
119
+ const modelFromPayload = payloadObject && typeof payloadObject.model === 'string' && payloadObject.model.trim().length
120
+ ? payloadObject.model
121
+ : undefined;
122
+ const usageFromPayload = payloadObject && typeof payloadObject.usageMetadata === 'object'
123
+ ? payloadObject.usageMetadata
124
+ : undefined;
125
+ return {
126
+ data: normalizedPayload,
127
+ status: typeof record.status === 'number' ? record.status : undefined,
128
+ headers: record.headers,
129
+ metadata: {
130
+ requestId: context.requestId,
131
+ processingTime,
132
+ providerType: this.providerType,
133
+ model: context.model ?? modelFromPayload,
134
+ usage: usageFromPayload
135
+ }
136
+ };
74
137
  }
75
- return { data: response };
138
+ // 基本兜底:保留处理时间和 requestId,数据直接透传
139
+ return {
140
+ data: response,
141
+ metadata: {
142
+ requestId: context.requestId,
143
+ processingTime,
144
+ providerType: this.providerType,
145
+ model: context.model
146
+ }
147
+ };
148
+ }
149
+ async wrapUpstreamSseResponse(stream, context) {
150
+ const normalizer = new GeminiSseNormalizer();
151
+ stream.pipe(normalizer);
152
+ return super.wrapUpstreamSseResponse(normalizer, context);
153
+ }
154
+ isAntigravityRuntime() {
155
+ return (this.oauthProviderId || '').toLowerCase() === 'antigravity';
76
156
  }
77
157
  resolvePayload(source) {
78
158
  if (this.hasDataEnvelope(source)) {
@@ -99,42 +179,6 @@ export class GeminiCLIHttpProvider extends HttpTransportProvider {
99
179
  hasDataEnvelope(payload) {
100
180
  return typeof payload === 'object' && payload !== null && 'data' in payload;
101
181
  }
102
- convertMessagesToContents(messages) {
103
- return messages
104
- .filter((msg) => typeof msg === 'object' && msg !== null)
105
- .map((message) => {
106
- const role = (message.role === 'assistant' ? 'model' : 'user');
107
- const content = this.normalizeMessageContent(message.content);
108
- return { role, parts: [{ text: content }] };
109
- });
110
- }
111
- normalizeMessageContent(content) {
112
- if (typeof content === 'string') {
113
- return content;
114
- }
115
- if (Array.isArray(content)) {
116
- return content.map((c) => (typeof c === 'string' ? c : JSON.stringify(c))).join('\n');
117
- }
118
- return JSON.stringify(content ?? '');
119
- }
120
- buildGenerationConfig(payload) {
121
- const generationConfig = typeof payload.generationConfig === 'object' && payload.generationConfig !== null
122
- ? { ...payload.generationConfig }
123
- : {};
124
- if (typeof payload.max_tokens === 'number') {
125
- generationConfig.maxOutputTokens = payload.max_tokens;
126
- }
127
- if (typeof payload.temperature === 'number') {
128
- generationConfig.temperature = payload.temperature;
129
- }
130
- if (typeof payload.top_p === 'number') {
131
- generationConfig.topP = payload.top_p;
132
- }
133
- if (typeof payload.top_k === 'number') {
134
- generationConfig.topK = payload.top_k;
135
- }
136
- return generationConfig;
137
- }
138
182
  /**
139
183
  * 获取模型回退列表(用于处理 429 限流)
140
184
  * 参考 CLIProxyAPI 的 cliPreviewFallbackOrder
@@ -147,6 +191,164 @@ export class GeminiCLIHttpProvider extends HttpTransportProvider {
147
191
  };
148
192
  return fallbackMap[model] || [];
149
193
  }
194
+ applyStreamAction(target, wantsStream) {
195
+ const adapter = this.resolvePayload(target);
196
+ const payload = adapter.payload;
197
+ if (wantsStream) {
198
+ payload.action = 'streamGenerateContent';
199
+ return;
200
+ }
201
+ if (!this.hasNonEmptyString(payload.action)) {
202
+ payload.action = 'generateContent';
203
+ }
204
+ }
205
+ ensureRequestMetadata(payload) {
206
+ if (!this.hasNonEmptyString(payload.requestId)) {
207
+ payload.requestId = `req-${randomUUID()}`;
208
+ }
209
+ if (!this.hasNonEmptyString(payload.session_id)) {
210
+ payload.session_id = `session-${randomUUID()}`;
211
+ }
212
+ if (!this.hasNonEmptyString(payload.userAgent)) {
213
+ payload.userAgent = this.oauthProviderId === 'antigravity' ? 'antigravity' : 'routecodex';
214
+ }
215
+ }
216
+ hasNonEmptyString(value) {
217
+ return typeof value === 'string' && value.trim().length > 0;
218
+ }
219
+ extractStreamFlag(source) {
220
+ if (!source || typeof source !== 'object') {
221
+ return undefined;
222
+ }
223
+ const direct = source.stream;
224
+ if (typeof direct === 'boolean') {
225
+ return direct;
226
+ }
227
+ const metadataContainer = source.metadata;
228
+ if (metadataContainer && typeof metadataContainer === 'object') {
229
+ const metaStream = metadataContainer.stream;
230
+ if (typeof metaStream === 'boolean') {
231
+ return metaStream;
232
+ }
233
+ }
234
+ const dataContainer = source.data;
235
+ if (dataContainer && typeof dataContainer === 'object') {
236
+ const nested = this.extractStreamFlag(dataContainer);
237
+ if (typeof nested === 'boolean') {
238
+ return nested;
239
+ }
240
+ }
241
+ return undefined;
242
+ }
150
243
  }
151
244
  export default GeminiCLIHttpProvider;
245
+ class GeminiSseNormalizer extends Transform {
246
+ buffer = '';
247
+ lastDonePayload = null;
248
+ constructor() {
249
+ super();
250
+ }
251
+ _transform(chunk, _encoding, callback) {
252
+ if (chunk) {
253
+ const text = chunk instanceof Buffer ? chunk.toString('utf8') : String(chunk);
254
+ this.buffer += text.replace(/\r\n/g, '\n');
255
+ this.processBuffered();
256
+ }
257
+ callback();
258
+ }
259
+ _flush(callback) {
260
+ this.processBuffered(true);
261
+ if (this.lastDonePayload) {
262
+ this.pushEvent('gemini.done', this.lastDonePayload);
263
+ this.lastDonePayload = null;
264
+ }
265
+ callback();
266
+ }
267
+ processBuffered(flush = false) {
268
+ while (true) {
269
+ const separatorIndex = this.buffer.indexOf('\n\n');
270
+ if (separatorIndex === -1) {
271
+ break;
272
+ }
273
+ const rawEvent = this.buffer.slice(0, separatorIndex);
274
+ this.buffer = this.buffer.slice(separatorIndex + 2);
275
+ this.processEvent(rawEvent);
276
+ }
277
+ if (flush && this.buffer.trim().length) {
278
+ this.processEvent(this.buffer);
279
+ this.buffer = '';
280
+ }
281
+ }
282
+ processEvent(rawEvent) {
283
+ const trimmed = rawEvent.trim();
284
+ if (!trimmed.length) {
285
+ return;
286
+ }
287
+ const dataLines = trimmed
288
+ .split('\n')
289
+ .map((line) => line.trim())
290
+ .filter((line) => line.startsWith('data:'))
291
+ .map((line) => line.slice(5).trimStart());
292
+ if (!dataLines.length) {
293
+ return;
294
+ }
295
+ const payloadText = dataLines.join('\n').trim();
296
+ if (!payloadText || payloadText === '[DONE]') {
297
+ return;
298
+ }
299
+ try {
300
+ const parsed = JSON.parse(payloadText);
301
+ const response = parsed?.response;
302
+ if (!response || typeof response !== 'object') {
303
+ return;
304
+ }
305
+ this.emitCandidateParts(response);
306
+ }
307
+ catch {
308
+ // ignore malformed chunks
309
+ }
310
+ }
311
+ emitCandidateParts(response) {
312
+ const candidatesRaw = response.candidates;
313
+ const candidates = Array.isArray(candidatesRaw) ? candidatesRaw : [];
314
+ candidates.forEach((candidate, index) => {
315
+ const content = candidate && typeof candidate.content === 'object' && candidate.content !== null
316
+ ? candidate.content
317
+ : undefined;
318
+ const role = typeof content?.role === 'string' ? content.role : 'model';
319
+ const partsRaw = content?.parts;
320
+ const parts = Array.isArray(partsRaw) ? partsRaw : [];
321
+ for (const part of parts) {
322
+ this.pushEvent('gemini.data', {
323
+ candidateIndex: index,
324
+ role,
325
+ part
326
+ });
327
+ }
328
+ });
329
+ this.lastDonePayload = {
330
+ candidates: candidates.map((candidate, index) => ({
331
+ index,
332
+ finishReason: candidate && typeof candidate === 'object'
333
+ ? candidate.finishReason
334
+ : undefined,
335
+ safetyRatings: candidate && typeof candidate === 'object'
336
+ ? candidate.safetyRatings
337
+ : undefined
338
+ })),
339
+ usageMetadata: response.usageMetadata,
340
+ promptFeedback: response.promptFeedback,
341
+ modelVersion: response.modelVersion
342
+ };
343
+ }
344
+ pushEvent(eventName, payload) {
345
+ try {
346
+ const data = JSON.stringify(payload);
347
+ this.push(`event: ${eventName}\ndata: ${data}\n\n`);
348
+ }
349
+ catch {
350
+ // ignore serialization errors
351
+ }
352
+ }
353
+ }
152
354
  //# sourceMappingURL=gemini-cli-http-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-cli-http-provider.js","sourceRoot":"","sources":["../../../../src/providers/core/runtime/gemini-cli-http-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAKrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAY/E,MAAM,OAAO,qBAAsB,SAAQ,qBAAqB;IAC9D,YAAY,MAA4B,EAAE,YAAgC;QACxE,MAAM,GAAG,GAAyB;YAChC,GAAG,MAAM;YACT,MAAM,EAAE;gBACN,GAAG,MAAM,CAAC,MAAM;gBAChB,+CAA+C;gBAC/C,yDAAyD;gBACzD,YAAY,EAAE,QAAwB;aACvC;SACF,CAAC;QACF,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,0BAA0B,EAAE,IAAI,uBAAuB,EAAE,CAAC,CAAC;IACtF,CAAC;IAES,iBAAiB;QACzB,kEAAkE;QAClE,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACnC,CAAC;IAEkB,KAAK,CAAC,iBAAiB,CAAC,OAAsB;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAyB,CAAC;QAElD,8DAA8D;QAC9D,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,WAAW,GAAI,IAAI,CAAC,YAAoB,CAAC,cAAc,EAAE,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAEvD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,gCAAgC;QAChC,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAE,OAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAE,OAAe,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC;QAED,sBAAsB;QACtB,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE7D,MAAM,OAAO,GAAmB;YAC9B,GAAG,OAAO;YACV,KAAK;YACL,OAAO,EAAE,SAAS;SACnB,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC9C,CAAC;QAED,WAAW;QACX,OAAO,OAAO,CAAC,QAAQ,CAAC;QACxB,OAAO,OAAO,CAAC,MAAM,CAAC;QAEtB,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAEkB,KAAK,CAAC,mBAAmB,CAAC,QAAiB,EAAE,OAAwB;QACtF,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7C,OAAO,QAAyB,CAAC;QACnC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAmB,CAAC;IAC7C,CAAC;IAEO,cAAc,CAAC,MAAqB;QAI1C,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAsB,CAAC;YACxC,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;gBACrE,CAAC,CAAE,QAAQ,CAAC,IAAuB;gBACnC,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxD,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;YAC7B,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;oBAClB,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;oBACxB,OAAO,MAAM,CAAC;gBAChB,CAAC;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,MAAwB;YACjC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO;SAC7B,CAAC;IACJ,CAAC;IAES,eAAe,CAAC,OAAsB;QAC9C,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,MAAM,IAAI,OAAO,CAAC;IAC9E,CAAC;IAEO,yBAAyB,CAAC,QAAmB;QACnD,OAAO,QAAQ;aACZ,MAAM,CAAC,CAAC,GAAG,EAAwB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;aAC9E,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACf,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAW,CAAC;YACzE,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,uBAAuB,CAAC,OAAgB;QAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAEO,qBAAqB,CAAC,OAAuB;QACnD,MAAM,gBAAgB,GACpB,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI;YAC/E,CAAC,CAAC,EAAE,GAAI,OAAO,CAAC,gBAA4C,EAAE;YAC9D,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC3C,gBAAgB,CAAC,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;QACxD,CAAC;QACD,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC5C,gBAAgB,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtC,gBAAgB,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;QACxC,CAAC;QACD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtC,gBAAgB,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;QACxC,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACO,iBAAiB,CAAC,KAAa;QACvC,MAAM,WAAW,GAA6B;YAC5C,gBAAgB,EAAE,CAAC,8BAA8B,CAAC;YAClD,kBAAkB,EAAE,EAAE;YACtB,uBAAuB,EAAE,EAAE;SAC5B,CAAC;QACF,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;CACF;AAED,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"gemini-cli-http-provider.js","sourceRoot":"","sources":["../../../../src/providers/core/runtime/gemini-cli-http-provider.ts"],"names":[],"mappings":"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"}
@@ -9,12 +9,11 @@
9
9
  */
10
10
  import { HttpTransportProvider } from './http-transport-provider.js';
11
11
  import type { OpenAIStandardConfig } from '../api/provider-config.js';
12
- import type { ProviderContext, ServiceProfile } from '../api/provider-types.js';
12
+ import type { ProviderContext } from '../api/provider-types.js';
13
13
  import type { UnknownObject } from '../../../types/common-types.js';
14
14
  import type { ModuleDependencies } from '../../../modules/pipeline/interfaces/pipeline-interfaces.js';
15
15
  export declare class GeminiHttpProvider extends HttpTransportProvider {
16
16
  constructor(config: OpenAIStandardConfig, dependencies: ModuleDependencies);
17
- protected getServiceProfile(): ServiceProfile;
18
17
  protected preprocessRequest(request: UnknownObject): Promise<UnknownObject>;
19
18
  protected postprocessResponse(response: unknown, _context: ProviderContext): Promise<UnknownObject>;
20
19
  private resolvePayload;
@@ -20,18 +20,6 @@ export class GeminiHttpProvider extends HttpTransportProvider {
20
20
  };
21
21
  super(cfg, dependencies, 'gemini-http-provider', new GeminiProtocolClient());
22
22
  }
23
- getServiceProfile() {
24
- return {
25
- defaultBaseUrl: 'https://generativelanguage.googleapis.com/v1beta',
26
- defaultEndpoint: '/models:generateContent', // 实际发送时注入 /{model}:generateContent
27
- defaultModel: '',
28
- requiredAuth: ['apikey'],
29
- optionalAuth: [],
30
- headers: { 'Content-Type': 'application/json' },
31
- timeout: 300000,
32
- maxRetries: 2
33
- };
34
- }
35
23
  async preprocessRequest(request) {
36
24
  const adapter = this.resolvePayload(request);
37
25
  const payload = adapter.payload;
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-http-provider.js","sourceRoot":"","sources":["../../../../src/providers/core/runtime/gemini-http-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-http-provider.js","sourceRoot":"","sources":["../../../../src/providers/core/runtime/gemini-http-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { HttpClient } from '../utils/http-client.js';
2
+ import type { UnknownObject } from '../../../types/common-types.js';
3
+ import type { ProviderContext } from '../api/provider-types.js';
4
+ import type { ProviderErrorAugmented } from './provider-error-types.js';
5
+ export type PreparedHttpRequest = {
6
+ endpoint: string;
7
+ headers: Record<string, string>;
8
+ targetUrl: string;
9
+ body: UnknownObject;
10
+ entryEndpoint?: string;
11
+ clientRequestId?: string;
12
+ wantsSse: boolean;
13
+ };
14
+ export type HttpRequestExecutorDeps = {
15
+ wantsUpstreamSse(request: UnknownObject, context: ProviderContext): boolean;
16
+ getEffectiveEndpoint(): string;
17
+ resolveRequestEndpoint(request: UnknownObject, defaultEndpoint: string): string;
18
+ buildRequestHeaders(): Promise<Record<string, string>>;
19
+ finalizeRequestHeaders(headers: Record<string, string>, request: UnknownObject): Promise<Record<string, string>>;
20
+ applyStreamModeHeaders(headers: Record<string, string>, wantsSse: boolean): Record<string, string>;
21
+ getEffectiveBaseUrl(): string;
22
+ buildHttpRequestBody(request: UnknownObject): UnknownObject;
23
+ prepareSseRequestBody(body: UnknownObject, context: ProviderContext): void;
24
+ getEntryEndpointFromPayload(request: UnknownObject): string | undefined;
25
+ getClientRequestIdFromContext(context: ProviderContext): string | undefined;
26
+ wrapUpstreamSseResponse(stream: NodeJS.ReadableStream, context: ProviderContext): Promise<UnknownObject>;
27
+ getHttpRetryLimit(): number;
28
+ shouldRetryHttpError(error: unknown, attempt: number, maxAttempts: number): boolean;
29
+ delayBeforeHttpRetry(attempt: number): Promise<void>;
30
+ tryRecoverOAuthAndReplay?(error: unknown, requestInfo: PreparedHttpRequest, processedRequest: UnknownObject, captureSse: boolean, context: ProviderContext): Promise<unknown | undefined>;
31
+ normalizeHttpError(error: unknown, processedRequest: UnknownObject, requestInfo: PreparedHttpRequest, context: ProviderContext): Promise<ProviderErrorAugmented>;
32
+ };
33
+ export declare class HttpRequestExecutor {
34
+ private readonly httpClient;
35
+ private readonly deps;
36
+ constructor(httpClient: HttpClient, deps: HttpRequestExecutorDeps);
37
+ execute(processedRequest: UnknownObject, context: ProviderContext): Promise<unknown>;
38
+ private prepareHttpRequest;
39
+ private snapshotProviderRequest;
40
+ private executeHttpRequestWithRetries;
41
+ private executeHttpRequestOnce;
42
+ }
@@ -0,0 +1,133 @@
1
+ import { attachProviderSseSnapshotStream, shouldCaptureProviderStreamSnapshots, writeProviderSnapshot } from '../utils/snapshot-writer.js';
2
+ export class HttpRequestExecutor {
3
+ httpClient;
4
+ deps;
5
+ constructor(httpClient, deps) {
6
+ this.httpClient = httpClient;
7
+ this.deps = deps;
8
+ }
9
+ async execute(processedRequest, context) {
10
+ const prepared = await this.prepareHttpRequest(processedRequest, context);
11
+ await this.snapshotProviderRequest(prepared, context);
12
+ try {
13
+ return await this.executeHttpRequestWithRetries(prepared, processedRequest, context);
14
+ }
15
+ catch (error) {
16
+ const normalized = await this.deps.normalizeHttpError(error, processedRequest, prepared, context);
17
+ throw normalized;
18
+ }
19
+ }
20
+ async prepareHttpRequest(processedRequest, context) {
21
+ const wantsSse = this.deps.wantsUpstreamSse(processedRequest, context);
22
+ const defaultEndpoint = this.deps.getEffectiveEndpoint();
23
+ const endpoint = this.deps.resolveRequestEndpoint(processedRequest, defaultEndpoint);
24
+ const headers = await this.deps.buildRequestHeaders();
25
+ let finalHeaders = await this.deps.finalizeRequestHeaders(headers, processedRequest);
26
+ finalHeaders = this.deps.applyStreamModeHeaders(finalHeaders, wantsSse);
27
+ const targetUrl = `${this.deps.getEffectiveBaseUrl().replace(/\/$/, '')}/${endpoint.startsWith('/') ? endpoint.slice(1) : endpoint}`;
28
+ const finalBody = this.deps.buildHttpRequestBody(processedRequest);
29
+ if (wantsSse) {
30
+ this.deps.prepareSseRequestBody(finalBody, context);
31
+ }
32
+ const entryEndpoint = this.deps.getEntryEndpointFromPayload(processedRequest);
33
+ const clientRequestId = this.deps.getClientRequestIdFromContext(context);
34
+ return {
35
+ endpoint,
36
+ headers: finalHeaders,
37
+ targetUrl,
38
+ body: finalBody,
39
+ entryEndpoint,
40
+ clientRequestId,
41
+ wantsSse
42
+ };
43
+ }
44
+ async snapshotProviderRequest(requestInfo, context) {
45
+ try {
46
+ await writeProviderSnapshot({
47
+ phase: 'provider-request',
48
+ requestId: context.requestId,
49
+ data: requestInfo.body,
50
+ headers: requestInfo.headers,
51
+ url: requestInfo.targetUrl,
52
+ entryEndpoint: requestInfo.entryEndpoint,
53
+ clientRequestId: requestInfo.clientRequestId
54
+ });
55
+ }
56
+ catch {
57
+ /* ignore snapshot failures */
58
+ }
59
+ }
60
+ async executeHttpRequestWithRetries(requestInfo, processedRequest, context) {
61
+ const captureSse = shouldCaptureProviderStreamSnapshots();
62
+ const maxAttempts = this.deps.getHttpRetryLimit();
63
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
64
+ try {
65
+ return await this.executeHttpRequestOnce(requestInfo, context, captureSse);
66
+ }
67
+ catch (error) {
68
+ if (this.deps.tryRecoverOAuthAndReplay) {
69
+ const oauthReplay = await this.deps.tryRecoverOAuthAndReplay(error, requestInfo, processedRequest, captureSse, context);
70
+ if (oauthReplay) {
71
+ return oauthReplay;
72
+ }
73
+ }
74
+ const shouldRetry = this.deps.shouldRetryHttpError(error, attempt, maxAttempts);
75
+ if (shouldRetry) {
76
+ await this.deps.delayBeforeHttpRetry(attempt);
77
+ continue;
78
+ }
79
+ throw error;
80
+ }
81
+ }
82
+ throw new Error('provider-runtime-error: http retries exhausted');
83
+ }
84
+ async executeHttpRequestOnce(requestInfo, context, captureSse) {
85
+ if (requestInfo.wantsSse) {
86
+ const upstreamStream = await this.httpClient.postStream(requestInfo.endpoint, requestInfo.body, requestInfo.headers);
87
+ const streamForHost = captureSse
88
+ ? attachProviderSseSnapshotStream(upstreamStream, {
89
+ requestId: context.requestId,
90
+ headers: requestInfo.headers,
91
+ url: requestInfo.targetUrl,
92
+ entryEndpoint: requestInfo.entryEndpoint,
93
+ clientRequestId: requestInfo.clientRequestId
94
+ })
95
+ : upstreamStream;
96
+ const wrapped = await this.deps.wrapUpstreamSseResponse(streamForHost, context);
97
+ if (!captureSse) {
98
+ try {
99
+ await writeProviderSnapshot({
100
+ phase: 'provider-response',
101
+ requestId: context.requestId,
102
+ data: { mode: 'sse' },
103
+ headers: requestInfo.headers,
104
+ url: requestInfo.targetUrl,
105
+ entryEndpoint: requestInfo.entryEndpoint,
106
+ clientRequestId: requestInfo.clientRequestId
107
+ });
108
+ }
109
+ catch {
110
+ /* ignore snapshot failures */
111
+ }
112
+ }
113
+ return wrapped;
114
+ }
115
+ const response = await this.httpClient.post(requestInfo.endpoint, requestInfo.body, requestInfo.headers);
116
+ try {
117
+ await writeProviderSnapshot({
118
+ phase: 'provider-response',
119
+ requestId: context.requestId,
120
+ data: response,
121
+ headers: requestInfo.headers,
122
+ url: requestInfo.targetUrl,
123
+ entryEndpoint: requestInfo.entryEndpoint,
124
+ clientRequestId: requestInfo.clientRequestId
125
+ });
126
+ }
127
+ catch {
128
+ /* ignore snapshot failures */
129
+ }
130
+ return response;
131
+ }
132
+ }
133
+ //# sourceMappingURL=http-request-executor.js.map