@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
@@ -1,306 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
3
- import { sanitizeGLMToolsSchemaInPlace } from '../utils/tool-schema-helpers.js';
4
- const isRecord = (value) => typeof value === 'object' && value !== null;
5
- const cloneObject = (value) => ({ ...value });
6
- /**
7
- * GLM字段映射处理器
8
- * 负责OpenAI格式与GLM格式之间的字段转换
9
- */
10
- export class GLMFieldMappingProcessor {
11
- dependencies;
12
- config = null;
13
- isInitialized = false;
14
- constructor(dependencies) {
15
- this.dependencies = dependencies;
16
- }
17
- async initialize() {
18
- try {
19
- await this.loadConfig();
20
- this.isInitialized = true;
21
- this.dependencies.logger?.logModule('glm-field-mapping', 'initialized', {
22
- incomingMappings: this.config?.incomingMappings.length || 0,
23
- outgoingMappings: this.config?.outgoingMappings.length || 0
24
- });
25
- }
26
- catch (error) {
27
- this.dependencies.logger?.logError?.(error, {
28
- component: 'GLMFieldMappingProcessor',
29
- stage: 'initialize'
30
- });
31
- throw error;
32
- }
33
- }
34
- async mapIncoming(request) {
35
- if (!this.isInitialized || !this.config) {
36
- throw new Error('GLMFieldMappingProcessor not initialized');
37
- }
38
- this.dependencies.logger?.logModule('glm-field-mapping', 'mapIncoming-start', {
39
- mappingsCount: this.config.incomingMappings.length
40
- });
41
- try {
42
- sanitizeGLMToolsSchemaInPlace(request);
43
- const result = this.applyMappings(request, this.config.incomingMappings);
44
- this.dependencies.logger?.logModule('glm-field-mapping', 'mapIncoming-success', {
45
- appliedMappings: this.config.incomingMappings.length
46
- });
47
- return result;
48
- }
49
- catch (error) {
50
- this.dependencies.logger?.logError?.(error, {
51
- component: 'GLMFieldMappingProcessor',
52
- stage: 'mapIncoming'
53
- });
54
- throw error;
55
- }
56
- }
57
- async mapOutgoing(response) {
58
- if (!this.isInitialized || !this.config) {
59
- throw new Error('GLMFieldMappingProcessor not initialized');
60
- }
61
- this.dependencies.logger?.logModule('glm-field-mapping', 'mapOutgoing-start', {
62
- mappingsCount: this.config.outgoingMappings.length
63
- });
64
- try {
65
- const result = this.applyMappings(response, this.config.outgoingMappings);
66
- this.dependencies.logger?.logModule('glm-field-mapping', 'mapOutgoing-success', {
67
- appliedMappings: this.config.outgoingMappings.length
68
- });
69
- return result;
70
- }
71
- catch (error) {
72
- this.dependencies.logger?.logError?.(error, {
73
- component: 'GLMFieldMappingProcessor',
74
- stage: 'mapOutgoing'
75
- });
76
- throw error;
77
- }
78
- }
79
- async cleanup() {
80
- this.config = null;
81
- this.isInitialized = false;
82
- this.dependencies.logger?.logModule('glm-field-mapping', 'cleanup-complete', {});
83
- }
84
- async loadConfig() {
85
- try {
86
- const configPath = path.join(__dirname, '../config/field-mappings.json');
87
- const configData = await fs.readFile(configPath, 'utf-8');
88
- this.config = JSON.parse(configData);
89
- this.validateConfig();
90
- }
91
- catch (error) {
92
- this.config = this.getDefaultConfig();
93
- this.dependencies.logger?.logModule('glm-field-mapping', 'using-default-config', {});
94
- }
95
- }
96
- validateConfig() {
97
- if (!this.config) {
98
- throw new Error('Field mapping config is null');
99
- }
100
- if (!Array.isArray(this.config.incomingMappings)) {
101
- throw new Error('incomingMappings must be an array');
102
- }
103
- if (!Array.isArray(this.config.outgoingMappings)) {
104
- throw new Error('outgoingMappings must be an array');
105
- }
106
- for (const mapping of [...this.config.incomingMappings, ...this.config.outgoingMappings]) {
107
- if (!mapping.sourcePath || !mapping.targetPath) {
108
- throw new Error('Mapping must have sourcePath and targetPath');
109
- }
110
- }
111
- }
112
- getDefaultConfig() {
113
- return {
114
- incomingMappings: [
115
- {
116
- sourcePath: 'usage.prompt_tokens',
117
- targetPath: 'usage.input_tokens',
118
- type: 'number',
119
- direction: 'incoming'
120
- },
121
- {
122
- sourcePath: 'usage.completion_tokens',
123
- targetPath: 'usage.completion_tokens',
124
- type: 'number',
125
- direction: 'incoming'
126
- },
127
- {
128
- sourcePath: 'usage.output_tokens',
129
- targetPath: 'usage.completion_tokens',
130
- type: 'number',
131
- direction: 'incoming'
132
- },
133
- {
134
- sourcePath: 'created_at',
135
- targetPath: 'created',
136
- type: 'number',
137
- direction: 'incoming'
138
- }
139
- ],
140
- outgoingMappings: [
141
- {
142
- sourcePath: 'usage.input_tokens',
143
- targetPath: 'usage.prompt_tokens',
144
- type: 'number',
145
- direction: 'outgoing'
146
- },
147
- {
148
- sourcePath: 'usage.completion_tokens',
149
- targetPath: 'usage.output_tokens',
150
- type: 'number',
151
- direction: 'outgoing'
152
- },
153
- {
154
- sourcePath: 'created',
155
- targetPath: 'created_at',
156
- type: 'number',
157
- direction: 'outgoing'
158
- }
159
- ]
160
- };
161
- }
162
- applyMappings(data, mappings) {
163
- const result = cloneObject(data);
164
- for (const mapping of mappings) {
165
- this.applyMapping(result, mapping);
166
- }
167
- return result;
168
- }
169
- applyMapping(data, mapping) {
170
- const sourceValue = this.getNestedProperty(data, mapping.sourcePath);
171
- if (sourceValue === undefined) {
172
- return;
173
- }
174
- let transformedValue = sourceValue;
175
- if (mapping.transform) {
176
- transformedValue = this.applyTransform(transformedValue, mapping.transform);
177
- }
178
- transformedValue = this.convertType(transformedValue, mapping.type);
179
- this.setNestedProperty(data, mapping.targetPath, transformedValue);
180
- }
181
- getNestedProperty(obj, pathExpression) {
182
- const keys = pathExpression.split('.');
183
- if (pathExpression.includes('[*]')) {
184
- return this.getWildcardProperty(obj, keys);
185
- }
186
- return keys.reduce((current, key) => {
187
- if (!isRecord(current)) {
188
- return undefined;
189
- }
190
- return current[key];
191
- }, obj);
192
- }
193
- getWildcardProperty(obj, keys) {
194
- const results = [];
195
- const processWildcard = (current, keyIndex) => {
196
- if (keyIndex >= keys.length) {
197
- results.push(current);
198
- return;
199
- }
200
- const key = keys[keyIndex];
201
- if (key === '[*]') {
202
- if (Array.isArray(current)) {
203
- current.forEach(item => processWildcard(item, keyIndex + 1));
204
- }
205
- return;
206
- }
207
- if (isRecord(current) && current[key] !== undefined) {
208
- processWildcard(current[key], keyIndex + 1);
209
- }
210
- };
211
- processWildcard(obj, 0);
212
- return results;
213
- }
214
- setNestedProperty(obj, pathExpression, value) {
215
- const keys = pathExpression.split('.');
216
- if (pathExpression.includes('[*]')) {
217
- this.setWildcardProperty(obj, keys, value);
218
- return;
219
- }
220
- const lastKey = keys.pop();
221
- if (!lastKey) {
222
- return;
223
- }
224
- const target = keys.reduce((current, key) => {
225
- if (!isRecord(current[key])) {
226
- current[key] = {};
227
- }
228
- return current[key];
229
- }, obj);
230
- target[lastKey] = value;
231
- }
232
- setWildcardProperty(obj, keys, value) {
233
- const processSetWildcard = (current, keyIndex) => {
234
- if (keyIndex >= keys.length - 1) {
235
- const lastKey = keys[keys.length - 1].replace('[*]', '');
236
- if (Array.isArray(current)) {
237
- current.forEach(item => {
238
- if (isRecord(item)) {
239
- item[lastKey] = value;
240
- }
241
- });
242
- }
243
- return;
244
- }
245
- const key = keys[keyIndex];
246
- if (key === '[*]') {
247
- if (Array.isArray(current)) {
248
- current.forEach(item => processSetWildcard(item, keyIndex + 1));
249
- }
250
- return;
251
- }
252
- if (isRecord(current)) {
253
- processSetWildcard(current[key], keyIndex + 1);
254
- }
255
- };
256
- processSetWildcard(obj, 0);
257
- }
258
- convertType(value, targetType) {
259
- if (value === null || value === undefined) {
260
- return value;
261
- }
262
- switch (targetType) {
263
- case 'string':
264
- return String(value);
265
- case 'number': {
266
- const num = Number(value);
267
- return Number.isNaN(num) ? 0 : num;
268
- }
269
- case 'boolean':
270
- return Boolean(value);
271
- case 'object':
272
- return isRecord(value) ? value : {};
273
- case 'array':
274
- return Array.isArray(value) ? value : [value];
275
- default:
276
- return value;
277
- }
278
- }
279
- applyTransform(value, transform) {
280
- switch (transform) {
281
- case 'timestamp':
282
- return typeof value === 'number' ? value : Date.now();
283
- case 'lowercase':
284
- return typeof value === 'string' ? value.toLowerCase() : value;
285
- case 'uppercase':
286
- return typeof value === 'string' ? value.toUpperCase() : value;
287
- case 'normalizeModelName':
288
- return typeof value === 'string' ? value.replace(/^gpt-/, 'glm-') : value;
289
- case 'normalizeFinishReason':
290
- return typeof value === 'string' ? this.normalizeFinishReason(value) : value;
291
- default:
292
- return value;
293
- }
294
- }
295
- normalizeFinishReason(reason) {
296
- const reasonMap = {
297
- 'tool_calls': 'tool_calls',
298
- 'stop': 'stop',
299
- 'length': 'length',
300
- 'sensitive': 'content_filter',
301
- 'network_error': 'error'
302
- };
303
- return reasonMap[reason] || reason;
304
- }
305
- }
306
- //# sourceMappingURL=field-mapping-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-mapping-processor.js","sourceRoot":"","sources":["../../../../../src/providers/compat/glm/field-mapping/field-mapping-processor.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import type { UnknownObject } from '../../../../modules/pipeline/types/common-types.js';
2
- import type { ModuleDependencies } from '../../../../modules/pipeline/types/module.types.js';
3
- import type { CompatibilityContext } from '../../compatibility-interface.js';
4
- import { GLMFieldMappingProcessor } from '../field-mapping/field-mapping-processor.js';
5
- import { BaseCompatibility } from '../../base-compatibility.js';
6
- /**
7
- * GLM处理配置接口
8
- */
9
- export interface GLMProcessConfig {
10
- shapeFilterConfigPath?: string;
11
- fieldMappingProcessor: GLMFieldMappingProcessor;
12
- dependencies: ModuleDependencies;
13
- baseCompat: BaseCompatibility;
14
- preflightEnabled: boolean;
15
- compatibilityId: string;
16
- }
17
- interface DtoEnvelope {
18
- payload: UnknownObject;
19
- isDto: boolean;
20
- original: UnknownObject;
21
- }
22
- /**
23
- * DTO解包函数
24
- */
25
- export declare const unwrapDTO: (request: UnknownObject) => DtoEnvelope;
26
- /**
27
- * DTO重新包装函数
28
- */
29
- export declare const rewrapDTO: (original: UnknownObject, payload: UnknownObject, isDto: boolean) => UnknownObject;
30
- /**
31
- * 检查Provider家族匹配
32
- */
33
- export declare const shouldSkipProvider: (context: CompatibilityContext, providerType: string) => boolean;
34
- /**
35
- * GLM预检验证函数
36
- */
37
- export declare const performGLMValidation: (data: UnknownObject, dependencies: ModuleDependencies, requestId: string, compatibilityId: string) => Promise<UnknownObject>;
38
- /**
39
- * GLM请求处理核心函数
40
- */
41
- export declare const processGLMIncoming: (request: UnknownObject, config: GLMProcessConfig, context: CompatibilityContext) => Promise<UnknownObject>;
42
- /**
43
- * GLM响应处理核心函数
44
- */
45
- export declare const processGLMOutgoing: (response: UnknownObject, config: GLMProcessConfig, context: CompatibilityContext) => Promise<UnknownObject>;
46
- /**
47
- * 创建GLM处理配置
48
- */
49
- export declare const createGLMProcessConfig: (dependencies: ModuleDependencies, _injectedConfig: UnknownObject | undefined, fieldMappingProcessor: GLMFieldMappingProcessor, baseCompat: BaseCompatibility, compatibilityId: string) => Promise<GLMProcessConfig>;
50
- export {};
@@ -1,134 +0,0 @@
1
- import { GLMFieldMappingProcessor } from '../field-mapping/field-mapping-processor.js';
2
- import { BaseCompatibility } from '../../base-compatibility.js';
3
- import { sanitizeAndValidateOpenAIChat } from '../../../core/utils/preflight-validator.js';
4
- import { sanitizeGLMToolsSchema } from '../utils/tool-schema-helpers.js';
5
- const isRecord = (value) => typeof value === 'object' && value !== null;
6
- const hasDtoShape = (value) => ('data' in value || 'route' in value || 'metadata' in value);
7
- /**
8
- * DTO解包函数
9
- */
10
- export const unwrapDTO = (request) => {
11
- const isDto = hasDtoShape(request);
12
- if (isDto && isRecord(request.data)) {
13
- const payload = { ...request.data };
14
- return { payload, isDto: true, original: request };
15
- }
16
- return { payload: request, isDto: false, original: request };
17
- };
18
- /**
19
- * DTO重新包装函数
20
- */
21
- export const rewrapDTO = (original, payload, isDto) => {
22
- if (isDto) {
23
- return { ...original, data: payload };
24
- }
25
- return payload;
26
- };
27
- /**
28
- * 检查Provider家族匹配
29
- */
30
- export const shouldSkipProvider = (context, providerType) => {
31
- const providerFamily = String(context.providerFamily || context.providerId || '').toLowerCase();
32
- return Boolean(providerFamily && providerFamily !== providerType);
33
- };
34
- /**
35
- * GLM预检验证函数
36
- */
37
- export const performGLMValidation = async (data, dependencies, requestId, compatibilityId) => {
38
- const options = { target: 'glm', enableTools: true, glmPolicy: 'compat' };
39
- const pre = sanitizeAndValidateOpenAIChat(data, options);
40
- if (Array.isArray(pre.issues) && pre.issues.length) {
41
- const errs = pre.issues.filter(issue => issue.level === 'error');
42
- if (errs.length) {
43
- const detail = errs.map(issue => issue.code).join(',');
44
- const validationError = new Error(`compat-validation-failed: ${detail}`);
45
- validationError.status = 400;
46
- validationError.code = 'compat_validation_failed';
47
- throw validationError;
48
- }
49
- dependencies.logger?.logModule('glm-processor', 'preflight-warnings', {
50
- compatibilityId,
51
- requestId,
52
- count: pre.issues.length
53
- });
54
- }
55
- return pre.payload;
56
- };
57
- const sanitizeToolsSchema = (payload) => sanitizeGLMToolsSchema(payload);
58
- /**
59
- * GLM请求处理核心函数
60
- */
61
- export const processGLMIncoming = async (request, config, context) => {
62
- const requestId = context.requestId || 'unknown';
63
- config.dependencies.logger?.logModule('glm-processor', 'processIncoming-start', {
64
- compatibilityId: config.compatibilityId,
65
- requestId
66
- });
67
- try {
68
- if (shouldSkipProvider(context, 'glm')) {
69
- return request;
70
- }
71
- const { payload, isDto, original } = unwrapDTO(request);
72
- let processedPayload = await config.baseCompat.processIncoming(payload, context);
73
- processedPayload = sanitizeToolsSchema(processedPayload);
74
- if (config.preflightEnabled) {
75
- processedPayload = await performGLMValidation(processedPayload, config.dependencies, requestId, config.compatibilityId);
76
- }
77
- config.dependencies.logger?.logModule('glm-processor', 'processIncoming-success', {
78
- compatibilityId: config.compatibilityId,
79
- requestId
80
- });
81
- return rewrapDTO(original, processedPayload, isDto);
82
- }
83
- catch (error) {
84
- config.dependencies.logger?.logError?.(error, {
85
- compatibilityId: config.compatibilityId,
86
- requestId,
87
- stage: 'processIncoming'
88
- });
89
- throw error;
90
- }
91
- };
92
- /**
93
- * GLM响应处理核心函数
94
- */
95
- export const processGLMOutgoing = async (response, config, context) => {
96
- const requestId = context.requestId || 'unknown';
97
- config.dependencies.logger?.logModule('glm-processor', 'processOutgoing-start', {
98
- compatibilityId: config.compatibilityId,
99
- requestId
100
- });
101
- try {
102
- if (shouldSkipProvider(context, 'glm')) {
103
- return response;
104
- }
105
- const result = await config.baseCompat.processOutgoing(response, context);
106
- config.dependencies.logger?.logModule('glm-processor', 'processOutgoing-success', {
107
- compatibilityId: config.compatibilityId,
108
- requestId
109
- });
110
- return result;
111
- }
112
- catch (error) {
113
- config.dependencies.logger?.logError?.(error, {
114
- compatibilityId: config.compatibilityId,
115
- requestId,
116
- stage: 'processOutgoing'
117
- });
118
- throw error;
119
- }
120
- };
121
- /**
122
- * 创建GLM处理配置
123
- */
124
- export const createGLMProcessConfig = async (dependencies, _injectedConfig, fieldMappingProcessor, baseCompat, compatibilityId) => {
125
- const preflightEnabled = false;
126
- return {
127
- fieldMappingProcessor,
128
- dependencies,
129
- baseCompat,
130
- preflightEnabled,
131
- compatibilityId
132
- };
133
- };
134
- //# sourceMappingURL=glm-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"glm-processor.js","sourceRoot":"","sources":["../../../../../src/providers/compat/glm/functions/glm-processor.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import type { CompatibilityModule, CompatibilityContext } from '../compatibility-interface.js';
2
- import type { UnknownObject } from '../../../modules/pipeline/types/common-types.js';
3
- import type { ModuleDependencies } from '../../../modules/pipeline/types/module.types.js';
4
- type ShapeFilterOverrides = {
5
- shapeFilterFile?: string;
6
- shapeProfile?: string;
7
- };
8
- export interface GLMCompatibilityConfig extends Record<string, unknown> {
9
- config?: ShapeFilterOverrides & Record<string, unknown>;
10
- profileId?: string;
11
- }
12
- /**
13
- * GLM兼容模块
14
- * 实现OpenAI格式与GLM格式之间的双向转换
15
- */
16
- export declare class GLMCompatibility implements CompatibilityModule {
17
- readonly id: string;
18
- readonly type = "chat:glm";
19
- readonly providerType = "openai";
20
- private readonly fieldMappingProcessor;
21
- private readonly dependencies;
22
- private baseCompat;
23
- private injectedConfig;
24
- private processConfig;
25
- getConfig(): GLMCompatibilityConfig | null;
26
- constructor(dependencies: ModuleDependencies);
27
- setConfig(config: unknown): void;
28
- initialize(): Promise<void>;
29
- processIncoming(request: UnknownObject, context: CompatibilityContext): Promise<UnknownObject>;
30
- processOutgoing(response: UnknownObject, context: CompatibilityContext): Promise<UnknownObject>;
31
- cleanup(): Promise<void>;
32
- private resolveShapeFilterFile;
33
- }
34
- export {};
@@ -1,117 +0,0 @@
1
- import { GLMFieldMappingProcessor } from './field-mapping/field-mapping-processor.js';
2
- import { BaseCompatibility } from '../base-compatibility.js';
3
- import { processGLMIncoming, processGLMOutgoing, createGLMProcessConfig } from './functions/glm-processor.js';
4
- const isRecord = (value) => typeof value === 'object' && value !== null;
5
- /**
6
- * GLM兼容模块
7
- * 实现OpenAI格式与GLM格式之间的双向转换
8
- */
9
- export class GLMCompatibility {
10
- id;
11
- type = 'chat:glm';
12
- providerType = 'openai';
13
- fieldMappingProcessor;
14
- dependencies;
15
- baseCompat = null;
16
- injectedConfig = null; // via setConfig
17
- processConfig = null; // 函数化处理配置
18
- getConfig() {
19
- return this.injectedConfig;
20
- }
21
- constructor(dependencies) {
22
- this.id = `chat-glm-${Date.now()}`;
23
- this.dependencies = dependencies;
24
- // 初始化组件(仅字段映射;hooks 留空)
25
- this.fieldMappingProcessor = new GLMFieldMappingProcessor(dependencies);
26
- }
27
- // 允许 V2 工厂在创建后注入配置(与V1保持同一配置输入)
28
- setConfig(config) {
29
- this.injectedConfig = isRecord(config) ? config : null;
30
- }
31
- async initialize() {
32
- this.dependencies.logger?.logModule(this.type, 'initializing', {
33
- compatibilityId: this.id,
34
- providerType: this.providerType
35
- });
36
- // 初始化各个组件
37
- await this.fieldMappingProcessor.initialize();
38
- // 基础兼容:通用逻辑 + GLM 配置 + hooks
39
- // 运行时路径:dist/providers/compat/glm/glm-compatibility.js
40
- // JSON 位于同级的 ./config/shape-filters.json
41
- let shapePath;
42
- try {
43
- const { fileURLToPath } = await import('url');
44
- const { dirname, join } = await import('path');
45
- const __filename = fileURLToPath(import.meta.url);
46
- const __dirname = dirname(__filename);
47
- const shapeFile = this.resolveShapeFilterFile();
48
- shapePath = join(__dirname, 'config', shapeFile);
49
- }
50
- catch { /* keep undefined to be safe */ }
51
- this.baseCompat = new BaseCompatibility(this.dependencies, {
52
- providerType: 'glm',
53
- shapeFilterConfigPath: shapePath || '',
54
- mapper: {
55
- mapIncoming: (req) => this.fieldMappingProcessor.mapIncoming(req),
56
- mapOutgoing: (res) => this.fieldMappingProcessor.mapOutgoing(res)
57
- },
58
- // hooks 留空,仅保留快照
59
- });
60
- await this.baseCompat.initialize();
61
- // 创建函数化处理配置
62
- this.processConfig = await createGLMProcessConfig(this.dependencies, this.injectedConfig ?? undefined, this.fieldMappingProcessor, this.baseCompat, this.id);
63
- this.dependencies.logger?.logModule(this.type, 'initialized', {
64
- compatibilityId: this.id,
65
- providerType: this.providerType
66
- });
67
- }
68
- async processIncoming(request, context) {
69
- if (!this.processConfig) {
70
- throw new Error('GLMCompatibility not properly initialized - processConfig missing');
71
- }
72
- // 委托给函数化实现,保持接口完全不变
73
- return await processGLMIncoming(request, this.processConfig, context);
74
- }
75
- async processOutgoing(response, context) {
76
- if (!this.processConfig) {
77
- throw new Error('GLMCompatibility not properly initialized - processConfig missing');
78
- }
79
- // 委托给函数化实现,保持接口完全不变
80
- return await processGLMOutgoing(response, this.processConfig, context);
81
- }
82
- async cleanup() {
83
- this.dependencies.logger?.logModule(this.type, 'cleanup-start', {
84
- compatibilityId: this.id
85
- });
86
- // 清理各个组件(仅映射器)
87
- await this.fieldMappingProcessor.cleanup();
88
- // 清理函数化配置
89
- this.processConfig = null;
90
- this.dependencies.logger?.logModule(this.type, 'cleanup-complete', {
91
- compatibilityId: this.id
92
- });
93
- }
94
- resolveShapeFilterFile() {
95
- const overrides = this.injectedConfig?.config;
96
- const fileOverride = typeof overrides?.shapeFilterFile === 'string'
97
- ? overrides.shapeFilterFile.trim()
98
- : '';
99
- if (fileOverride) {
100
- return fileOverride;
101
- }
102
- const profileOverride = (() => {
103
- if (typeof overrides?.shapeProfile === 'string' && overrides.shapeProfile.trim()) {
104
- return overrides.shapeProfile.trim();
105
- }
106
- if (typeof this.injectedConfig?.profileId === 'string' && this.injectedConfig.profileId.trim()) {
107
- return this.injectedConfig.profileId.trim();
108
- }
109
- return '';
110
- })();
111
- if (profileOverride) {
112
- return `shape-filters.${profileOverride}.json`;
113
- }
114
- return 'shape-filters.json';
115
- }
116
- }
117
- //# sourceMappingURL=glm-compatibility.js.map