@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,216 +0,0 @@
1
- import { BaseHook } from './base-hook.js';
2
- // 统一的工具结果文本提取器:保证 tool 消息 content 为非空字符串
3
- import { extractToolText } from '../../../core/utils/tool-result-text.js';
4
- const isRecord = (value) => typeof value === 'object' && value !== null;
5
- /**
6
- * iFlow工具清洗Hook
7
- * 处理iFlow特有的工具消息清洗逻辑
8
- */
9
- export class iFlowToolCleaningHook extends BaseHook {
10
- name = 'glm.01.tool-cleaning';
11
- stage = 'incoming_preprocessing';
12
- priority = 100;
13
- MAX_TOOL_CONTENT_LENGTH = 512;
14
- NOISE_PATTERNS = [
15
- 'failed in sandbox',
16
- 'unsupported call',
17
- '工具调用不可用',
18
- 'tool execution failed',
19
- 'function not available'
20
- ];
21
- TRUNCATION_MARKER = '...[truncated to 512B]';
22
- async execute(data, context) {
23
- this.checkInitialized();
24
- if (!this.shouldExecute(data, context)) {
25
- return data;
26
- }
27
- this.logExecution(context, { stage: 'tool-cleaning-start' });
28
- try {
29
- const result = { ...data };
30
- // 处理messages字段
31
- if (Array.isArray(result.messages)) {
32
- result.messages = this.cleanMessages(result.messages);
33
- }
34
- // 处理tools字段(最小清理:移除 function.strict,仅做噪声清理;规范化交由形状过滤器处理)
35
- if (Array.isArray(result.tools)) {
36
- result.tools = this.cleanTools(result.tools);
37
- }
38
- // 处理tool_calls字段(如果存在)
39
- if (Array.isArray(result.tool_calls)) {
40
- result.tool_calls = this.cleanToolCalls(result.tool_calls);
41
- }
42
- this.logExecution(context, { stage: 'tool-cleaning-complete' });
43
- return result;
44
- }
45
- catch (error) {
46
- this.logError(error, context, { stage: 'tool-cleaning-error' });
47
- throw error;
48
- }
49
- }
50
- cleanMessages(messages) {
51
- const cleanedMessages = [];
52
- for (let i = 0; i < messages.length; i++) {
53
- const message = this.coerceMessage(messages[i]);
54
- if (!message) {
55
- cleanedMessages.push(messages[i]);
56
- continue;
57
- }
58
- const cleanedMessage = { ...message };
59
- // 对 role:'tool' 的消息,统一拍平为非空字符串(失败严格报错;禁止兜底/静默)
60
- if (cleanedMessage.role === 'tool') {
61
- const text = extractToolText(cleanedMessage.content);
62
- if (!(typeof text === 'string' && text.trim().length)) {
63
- const err = new Error('ERR_COMPAT_TOOL_TEXT_EMPTY: tool message content is empty or invalid');
64
- err.code = 'ERR_COMPAT_TOOL_TEXT_EMPTY';
65
- throw err;
66
- }
67
- cleanedMessage.content = text.trim();
68
- }
69
- // 处理最后一条role=tool的消息(在文本拍平后,再做噪声清理与截断)
70
- if (this.isLastToolMessage(messages, i)) {
71
- const toolContent = typeof cleanedMessage.content === 'string'
72
- ? cleanedMessage.content
73
- : String(cleanedMessage.content ?? '');
74
- cleanedMessage.content = this.cleanToolContent(toolContent);
75
- }
76
- // 处理assistant消息中的大段工具结果回灌
77
- if (message.role === 'assistant') {
78
- const assistantContent = typeof cleanedMessage.content === 'string' ? cleanedMessage.content : '';
79
- cleanedMessage.content = this.cleanAssistantContent(assistantContent, messages, i);
80
- }
81
- // 不在此处处理 tool_calls 参数形状;交由形状过滤器统一处理
82
- // llmswitch-core现在返回字符串,不再需要数组拍平处理
83
- // 保留此逻辑仅用于兼容旧的数组格式数据
84
- if (Array.isArray(cleanedMessage.content)) {
85
- console.warn('iFlow Tool Cleaning: 接收到数组格式的content,可能来自旧版本兼容');
86
- cleanedMessage.content = cleanedMessage.content.map(item => typeof item === 'string' ? item : JSON.stringify(item)).join('');
87
- }
88
- cleanedMessages.push(cleanedMessage);
89
- }
90
- return cleanedMessages;
91
- }
92
- cleanTools(tools) {
93
- // 最小清理:仅移除 tools[].function.strict(iFlow不识别),其余规范化由形状过滤器处理
94
- return tools.map(tool => {
95
- if (!isRecord(tool)) {
96
- return tool;
97
- }
98
- const cleanedTool = { ...tool };
99
- const fn = isRecord(cleanedTool.function) ? { ...cleanedTool.function } : undefined;
100
- if (fn) {
101
- if ('strict' in fn) {
102
- delete fn.strict;
103
- }
104
- cleanedTool.function = fn;
105
- }
106
- return cleanedTool;
107
- });
108
- }
109
- cleanToolCalls(toolCalls) {
110
- return toolCalls.map(tc => {
111
- if (!isRecord(tc)) {
112
- return tc;
113
- }
114
- const copy = { ...tc };
115
- const fn = isRecord(copy.function) ? { ...copy.function } : {};
116
- const args = 'arguments' in fn ? fn.arguments : undefined;
117
- if (typeof args === 'string') {
118
- try {
119
- fn.arguments = JSON.parse(args);
120
- }
121
- catch {
122
- const err = new Error('ERR_COMPAT_TOOLCALL_ARGS_INVALID: arguments not JSON');
123
- err.code = 'ERR_COMPAT_TOOLCALL_ARGS_INVALID';
124
- throw err;
125
- }
126
- }
127
- copy.function = fn;
128
- return copy;
129
- });
130
- }
131
- isLastToolMessage(messages, index) {
132
- if (index !== messages.length - 1) {
133
- return false;
134
- }
135
- const message = this.coerceMessage(messages[index]);
136
- return message?.role === 'tool';
137
- }
138
- cleanToolContent(content) {
139
- if (typeof content !== 'string') {
140
- return String(content);
141
- }
142
- let cleanedContent = content;
143
- // 去掉噪声片段
144
- for (const noise of this.NOISE_PATTERNS) {
145
- const regex = new RegExp(noise, 'gi');
146
- cleanedContent = cleanedContent.replace(regex, '');
147
- }
148
- // 清理多余的空白字符
149
- cleanedContent = cleanedContent.trim().replace(/\s+/g, ' ');
150
- // 检查是否需要截断
151
- if (cleanedContent.length > this.MAX_TOOL_CONTENT_LENGTH) {
152
- cleanedContent = cleanedContent.substring(0, this.MAX_TOOL_CONTENT_LENGTH) + this.TRUNCATION_MARKER;
153
- }
154
- return cleanedContent;
155
- }
156
- cleanAssistantContent(content, messages, currentIndex) {
157
- if (typeof content !== 'string') {
158
- return String(content);
159
- }
160
- // 检查是否是最后一轮含tool_calls的assistant
161
- const isLastToolCallAssistant = this.isLastToolCallAssistant(messages, currentIndex);
162
- // 检查是否有大段工具结果回灌
163
- const hasToolResultWrap = this.detectToolResultWrap(content);
164
- if (isLastToolCallAssistant && hasToolResultWrap) {
165
- // 将content置空,避免再次被上游当作自由文本误处理
166
- return '';
167
- }
168
- return content;
169
- }
170
- isLastToolCallAssistant(messages, currentIndex) {
171
- const currentMessage = this.coerceMessage(messages[currentIndex]);
172
- if (!currentMessage || currentMessage.role !== 'assistant') {
173
- return false;
174
- }
175
- // 检查当前消息是否有tool_calls
176
- if (!Array.isArray(currentMessage.tool_calls)) {
177
- return false;
178
- }
179
- // 检查是否是最后一个含tool_calls的assistant消息
180
- for (let i = currentIndex + 1; i < messages.length; i++) {
181
- const message = this.coerceMessage(messages[i]);
182
- if (message?.role === 'assistant' && Array.isArray(message.tool_calls)) {
183
- return false; // 后面还有含tool_calls的assistant消息
184
- }
185
- }
186
- return true;
187
- }
188
- detectToolResultWrap(content) {
189
- // 检测大段工具结果回灌的模式
190
- const toolResultPatterns = [
191
- /tool_result/i,
192
- /function_result/i,
193
- /execution_result/i,
194
- /\{.*result.*\}/i,
195
- /"result"\s*:/i
196
- ];
197
- // 检查内容长度(大段文本)
198
- if (content.length > 1000) {
199
- return true;
200
- }
201
- // 检查是否包含工具结果模式
202
- for (const pattern of toolResultPatterns) {
203
- if (pattern.test(content)) {
204
- return true;
205
- }
206
- }
207
- return false;
208
- }
209
- coerceMessage(candidate) {
210
- if (!isRecord(candidate)) {
211
- return null;
212
- }
213
- return candidate;
214
- }
215
- }
216
- //# sourceMappingURL=iflow-tool-cleaning-hook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"iflow-tool-cleaning-hook.js","sourceRoot":"","sources":["../../../../../src/providers/compat/iflow/hooks/iflow-tool-cleaning-hook.ts"],"names":[],"mappings":"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"}
@@ -1,24 +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
- /**
5
- * iFlow兼容模块
6
- * 实现OpenAI格式与iFlow格式之间的双向转换
7
- */
8
- export declare class iFlowCompatibility implements CompatibilityModule {
9
- readonly id: string;
10
- readonly type = "chat:iflow";
11
- readonly providerType = "iflow";
12
- private fieldMappingProcessor;
13
- private dependencies;
14
- private baseCompat;
15
- private processConfig;
16
- private injectedConfig;
17
- constructor(dependencies: ModuleDependencies);
18
- setConfig(config: unknown): void;
19
- getConfig(): UnknownObject | null;
20
- initialize(): Promise<void>;
21
- processIncoming(request: UnknownObject, context: CompatibilityContext): Promise<UnknownObject>;
22
- processOutgoing(response: UnknownObject, context: CompatibilityContext): Promise<UnknownObject>;
23
- cleanup(): Promise<void>;
24
- }
@@ -1,94 +0,0 @@
1
- import { iFlowFieldMappingProcessor } from './field-mapping/iflow-field-mapping-processor.js';
2
- import { BaseCompatibility } from '../base-compatibility.js';
3
- import { processiFlowIncoming, processiFlowOutgoing, createiFlowProcessConfig } from './functions/iflow-processor.js';
4
- const isRecord = (value) => typeof value === 'object' && value !== null;
5
- /**
6
- * iFlow兼容模块
7
- * 实现OpenAI格式与iFlow格式之间的双向转换
8
- */
9
- export class iFlowCompatibility {
10
- id;
11
- type = 'chat:iflow';
12
- providerType = 'iflow';
13
- fieldMappingProcessor;
14
- dependencies;
15
- baseCompat = null;
16
- processConfig = null; // 函数化处理配置
17
- injectedConfig = null;
18
- constructor(dependencies) {
19
- this.id = `chat-iflow-${Date.now()}`;
20
- this.dependencies = dependencies;
21
- // 初始化组件(仅字段映射;hooks 留空)
22
- this.fieldMappingProcessor = new iFlowFieldMappingProcessor(dependencies);
23
- }
24
- // 允许配置注入(与GLM模块保持一致)
25
- setConfig(config) {
26
- this.injectedConfig = isRecord(config) ? { ...config } : null;
27
- }
28
- getConfig() {
29
- return this.injectedConfig;
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
- // 基础兼容:通用逻辑 + iFlow 配置 + hooks
39
- // 运行时路径:dist/providers/compat/iflow/iflow-compatibility.js
40
- // JSON 位于同级的 ./config/shape-filters.json
41
- let shapePath = undefined;
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
- shapePath = join(__dirname, 'config', 'shape-filters.json');
48
- }
49
- catch { /* keep undefined to be safe */ }
50
- this.baseCompat = new BaseCompatibility(this.dependencies, {
51
- providerType: "iflow",
52
- shapeFilterConfigPath: shapePath || '',
53
- mapper: {
54
- mapIncoming: async (req) => await this.fieldMappingProcessor.mapIncoming(req),
55
- mapOutgoing: async (res) => await this.fieldMappingProcessor.mapOutgoing(res)
56
- },
57
- // hooks 留空,仅保留快照
58
- });
59
- await this.baseCompat.initialize();
60
- // 创建函数化处理配置
61
- this.processConfig = await createiFlowProcessConfig(this.dependencies, this.fieldMappingProcessor, this.baseCompat, this.id);
62
- this.dependencies.logger?.logModule(this.type, 'initialized', {
63
- compatibilityId: this.id,
64
- providerType: this.providerType
65
- });
66
- }
67
- async processIncoming(request, context) {
68
- if (!this.processConfig) {
69
- throw new Error('iFlowCompatibility not properly initialized - processConfig missing');
70
- }
71
- // 委托给函数化实现,保持接口完全不变
72
- return await processiFlowIncoming(request, this.processConfig, context);
73
- }
74
- async processOutgoing(response, context) {
75
- if (!this.processConfig) {
76
- throw new Error('iFlowCompatibility not properly initialized - processConfig missing');
77
- }
78
- // 委托给函数化实现,保持接口完全不变
79
- return await processiFlowOutgoing(response, this.processConfig, context);
80
- }
81
- async cleanup() {
82
- this.dependencies.logger?.logModule(this.type, 'cleanup-start', {
83
- compatibilityId: this.id
84
- });
85
- // 清理各个组件(仅映射器)
86
- await this.fieldMappingProcessor.cleanup();
87
- // 清理函数化配置
88
- this.processConfig = null;
89
- this.dependencies.logger?.logModule(this.type, 'cleanup-complete', {
90
- compatibilityId: this.id
91
- });
92
- }
93
- }
94
- //# sourceMappingURL=iflow-compatibility.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"iflow-compatibility.js","sourceRoot":"","sources":["../../../../src/providers/compat/iflow/iflow-compatibility.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,gCAAgC,CAAC;AAExC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AAE9C;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IACpB,EAAE,CAAS;IACX,IAAI,GAAG,YAAY,CAAC;IACpB,YAAY,GAAG,OAAO,CAAC;IAExB,qBAAqB,CAA6B;IAClD,YAAY,CAAqB;IACjC,UAAU,GAA6B,IAAI,CAAC;IAC5C,aAAa,GAA8B,IAAI,CAAC,CAAC,UAAU;IAC3D,cAAc,GAAyB,IAAI,CAAC;IAEpD,YAAY,YAAgC;QAC1C,IAAI,CAAC,EAAE,GAAG,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,wBAAwB;QACxB,IAAI,CAAC,qBAAqB,GAAG,IAAI,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAC5E,CAAC;IAED,qBAAqB;IACrB,SAAS,CAAC,MAAe;QACvB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE;YAC7D,eAAe,EAAE,IAAI,CAAC,EAAE;YACxB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;QAEH,UAAU;QACV,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;QAE9C,+BAA+B;QAC/B,2DAA2D;QAC3D,yCAAyC;QACzC,IAAI,SAAS,GAAuB,SAAS,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAE9D,CAAC;QAAC,MAAM,CAAC,CAAC,+BAA+B,CAAC,CAAC;QAE3C,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE;YACzD,YAAY,EAAE,OAAO;YACrB,qBAAqB,EAAE,SAAS,IAAI,EAAE;YACtC,MAAM,EAAE;gBACN,WAAW,EAAE,KAAK,EAAE,GAAkB,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,GAAG,CAAC;gBAC5F,WAAW,EAAE,KAAK,EAAE,GAAkB,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,GAAG,CAAC;aAC7F;YACD,iBAAiB;SAClB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAEnC,YAAY;QACZ,IAAI,CAAC,aAAa,GAAG,MAAM,wBAAwB,CACjD,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,EAAE,CACR,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE;YAC5D,eAAe,EAAE,IAAI,CAAC,EAAE;YACxB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAsB,EAAE,OAA6B;QACzE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QAED,oBAAoB;QACpB,OAAO,MAAM,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAuB,EAAE,OAA6B;QAC1E,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QAED,oBAAoB;QACpB,OAAO,MAAM,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE;YAC9D,eAAe,EAAE,IAAI,CAAC,EAAE;SACzB,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;QAE3C,UAAU;QACV,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE;YACjE,eAAe,EAAE,IAAI,CAAC,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,59 +0,0 @@
1
- /**
2
- * 兼容性模块主导出文件
3
- * 提供统一的对外API接口
4
- */
5
- export type { CompatibilityContext, CompatibilityModule } from './compatibility-interface.js';
6
- export type { CompatibilityModuleConfig } from './compatibility-factory.js';
7
- export { CompatibilityModuleFactory } from './compatibility-factory.js';
8
- export { CompatibilityManager } from './compatibility-manager.js';
9
- import type { ModuleDependencies } from '../../modules/pipeline/types/module.types.js';
10
- import type { UnknownObject } from '../../modules/pipeline/types/common-types.js';
11
- import type { CompatibilityContext as CompatCtx } from './compatibility-interface.js';
12
- import type { CompatibilityModuleConfig as CompatConfig } from './compatibility-factory.js';
13
- /**
14
- * 兼容性模块API
15
- * 提供标准的创建和管理接口
16
- */
17
- export declare class CompatibilityAPI {
18
- private manager;
19
- private isInitialized;
20
- constructor(dependencies: ModuleDependencies);
21
- /**
22
- * 初始化兼容性API
23
- */
24
- initialize(): Promise<void>;
25
- /**
26
- * 创建兼容性模块
27
- */
28
- createModule(config: CompatConfig): Promise<string>;
29
- /**
30
- * 处理请求
31
- */
32
- processRequest(moduleId: string, request: UnknownObject, context?: CompatCtx): Promise<UnknownObject>;
33
- /**
34
- * 处理响应
35
- */
36
- processResponse(moduleId: string, response: UnknownObject, context?: CompatCtx): Promise<UnknownObject>;
37
- /**
38
- * 获取模块
39
- */
40
- getModule(moduleId: string): import("./compatibility-interface.js").CompatibilityModule | undefined;
41
- /**
42
- * 获取统计信息
43
- */
44
- getStats(): {
45
- totalModules: number;
46
- isInitialized: boolean;
47
- registeredTypes: string[];
48
- modulesByType: Record<string, number>;
49
- modulesByProvider: Record<string, number>;
50
- };
51
- /**
52
- * 清理资源
53
- */
54
- cleanup(): Promise<void>;
55
- }
56
- /**
57
- * 创建兼容性API实例
58
- */
59
- export declare function createCompatibilityAPI(dependencies: ModuleDependencies): CompatibilityAPI;
@@ -1,83 +0,0 @@
1
- /**
2
- * 兼容性模块主导出文件
3
- * 提供统一的对外API接口
4
- */
5
- export { CompatibilityModuleFactory } from './compatibility-factory.js';
6
- export { CompatibilityManager } from './compatibility-manager.js';
7
- import { CompatibilityManager } from './compatibility-manager.js';
8
- /**
9
- * 兼容性模块API
10
- * 提供标准的创建和管理接口
11
- */
12
- export class CompatibilityAPI {
13
- manager;
14
- isInitialized = false;
15
- constructor(dependencies) {
16
- this.manager = new CompatibilityManager(dependencies);
17
- }
18
- /**
19
- * 初始化兼容性API
20
- */
21
- async initialize() {
22
- if (this.isInitialized) {
23
- return;
24
- }
25
- await this.manager.initialize();
26
- this.isInitialized = true;
27
- }
28
- /**
29
- * 创建兼容性模块
30
- */
31
- async createModule(config) {
32
- if (!this.isInitialized) {
33
- throw new Error('CompatibilityAPI not initialized');
34
- }
35
- return await this.manager.createModule(config);
36
- }
37
- /**
38
- * 处理请求
39
- */
40
- async processRequest(moduleId, request, context) {
41
- if (!this.isInitialized) {
42
- throw new Error('CompatibilityAPI not initialized');
43
- }
44
- return await this.manager.processRequest(moduleId, request, context);
45
- }
46
- /**
47
- * 处理响应
48
- */
49
- async processResponse(moduleId, response, context) {
50
- if (!this.isInitialized) {
51
- throw new Error('CompatibilityAPI not initialized');
52
- }
53
- return await this.manager.processResponse(moduleId, response, context);
54
- }
55
- /**
56
- * 获取模块
57
- */
58
- getModule(moduleId) {
59
- return this.manager.getModule(moduleId);
60
- }
61
- /**
62
- * 获取统计信息
63
- */
64
- getStats() {
65
- return this.manager.getStats();
66
- }
67
- /**
68
- * 清理资源
69
- */
70
- async cleanup() {
71
- if (this.isInitialized) {
72
- await this.manager.cleanup();
73
- this.isInitialized = false;
74
- }
75
- }
76
- }
77
- /**
78
- * 创建兼容性API实例
79
- */
80
- export function createCompatibilityAPI(dependencies) {
81
- return new CompatibilityAPI(dependencies);
82
- }
83
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/compat/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAKlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACnB,OAAO,CAAuB;IAC9B,aAAa,GAAG,KAAK,CAAC;IAE9B,YAAY,YAAgC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,MAAoB;QACrC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,OAAsB,EACtB,OAAmB;QAEnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,QAAuB,EACvB,OAAmB;QAEnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,YAAgC;IACrE,OAAO,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,44 +0,0 @@
1
- /**
2
- * LM Studio Compatibility Module
3
- *
4
- * Adapts OpenAI-style requests and responses to LM Studio's expectations.
5
- * This slimmer implementation focuses on strict typing and the minimal
6
- * transformation logic still in use today (tool choice normalization and
7
- * response metadata patching) so we can remove the legacy `any` usage.
8
- */
9
- import type { ModuleConfig, TransformationRule } from '../../modules/pipeline/interfaces/pipeline-interfaces.js';
10
- import type { ModuleDependencies } from '../../modules/pipeline/types/module.types.js';
11
- import type { UnknownObject } from '../../modules/pipeline/types/common-types.js';
12
- import type { CompatibilityContext, CompatibilityModule } from './compatibility-interface.js';
13
- export declare class LMStudioCompatibility implements CompatibilityModule {
14
- readonly id: string;
15
- readonly type = "chat:lmstudio";
16
- readonly providerType = "openai";
17
- private readonly dependencies;
18
- private _config;
19
- private transformationEngine;
20
- private rules;
21
- private isInitialized;
22
- constructor(dependencies: ModuleDependencies);
23
- get config(): ModuleConfig;
24
- setConfig(config: ModuleConfig): void;
25
- initialize(): Promise<void>;
26
- processIncoming(request: UnknownObject, _context: CompatibilityContext): Promise<UnknownObject>;
27
- processOutgoing(response: UnknownObject, _context: CompatibilityContext): Promise<UnknownObject>;
28
- cleanup(): Promise<void>;
29
- getStatus(): {
30
- id: string;
31
- type: string;
32
- isInitialized: boolean;
33
- ruleCount: number;
34
- lastActivity: number;
35
- };
36
- applyTransformations(data: UnknownObject, rules: TransformationRule[]): Promise<UnknownObject>;
37
- private ensureInitialized;
38
- private initializeTransformationRules;
39
- private getRequestTransformationRules;
40
- private getResponseTransformationRules;
41
- private applyRules;
42
- private extractTransformationResult;
43
- private patchResponseMetadata;
44
- }