@jsonstudio/llms 0.4.2 → 0.4.4

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 (417) hide show
  1. package/README.md +3 -1
  2. package/dist/bridge/routecodex-adapter.js +6 -3
  3. package/dist/config-unified/enhanced-path-resolver.js +14 -6
  4. package/dist/config-unified/unified-config.js +103 -59
  5. package/dist/conversion/codec-registry.js +4 -2
  6. package/dist/conversion/hub/pipeline/hub-pipeline.js +4 -5
  7. package/dist/conversion/hub/process/chat-process.js +258 -41
  8. package/dist/conversion/hub/response/provider-response.js +8 -2
  9. package/dist/conversion/hub/tool-governance/engine.d.ts +16 -0
  10. package/dist/conversion/hub/tool-governance/engine.js +266 -0
  11. package/dist/conversion/hub/tool-governance/index.d.ts +3 -0
  12. package/dist/conversion/hub/tool-governance/index.js +2 -0
  13. package/dist/conversion/hub/tool-governance/rules.d.ts +2 -0
  14. package/dist/conversion/hub/tool-governance/rules.js +76 -0
  15. package/dist/conversion/hub/tool-governance/types.d.ts +38 -0
  16. package/dist/conversion/index.d.ts +1 -0
  17. package/dist/conversion/index.js +1 -0
  18. package/dist/conversion/responses/responses-openai-bridge.js +5 -3
  19. package/dist/conversion/shared/responses-id-utils.js +18 -5
  20. package/dist/sse/sse-to-json/builders/response-builder.js +2 -1
  21. package/dist/sse/sse-to-json/chat-sse-to-json-converter.js +37 -23
  22. package/dist/sse/sse-to-json/parsers/sse-parser.js +20 -12
  23. package/dist/sse/sse-to-json/responses-sse-to-json-converter.d.ts +1 -0
  24. package/dist/sse/sse-to-json/responses-sse-to-json-converter.js +10 -8
  25. package/dist/sse/types/chat-types.d.ts +9 -6
  26. package/dist/sse/types/conversion-context.d.ts +14 -11
  27. package/dist/sse/types/core-interfaces.d.ts +6 -2
  28. package/dist/sse/types/index.d.ts +1 -1
  29. package/dist/sse/types/responses-types.d.ts +20 -20
  30. package/dist/sse/types/sse-events.d.ts +4 -3
  31. package/dist/sse/types/stream-state.d.ts +34 -39
  32. package/dist/sse/types/utility-types.d.ts +47 -43
  33. package/dist/sse/types/utility-types.js +10 -13
  34. package/dist/tools/tool-registry.js +156 -98
  35. package/package.json +6 -6
  36. package/dist/api/index.d.ts +0 -10
  37. package/dist/api/index.js +0 -11
  38. package/dist/api/llmswitch-config.d.ts +0 -15
  39. package/dist/api/llmswitch-config.js +0 -415
  40. package/dist/api/llmswitch-types.d.ts +0 -412
  41. package/dist/api/llmswitch-types.js +0 -60
  42. package/dist/bridge/routecodex-adapter.d.ts +0 -74
  43. package/dist/config/index.d.ts +0 -3
  44. package/dist/config/index.js +0 -5
  45. package/dist/config-unified/enhanced-path-resolver.d.ts +0 -5
  46. package/dist/config-unified/unified-config.d.ts +0 -26
  47. package/dist/conversion/codec-registry.d.ts +0 -10
  48. package/dist/conversion/codecs/anthropic-openai-codec.d.ts +0 -23
  49. package/dist/conversion/codecs/gemini-openai-codec.d.ts +0 -16
  50. package/dist/conversion/codecs/openai-openai-codec.d.ts +0 -12
  51. package/dist/conversion/codecs/responses-openai-codec.d.ts +0 -12
  52. package/dist/conversion/config/config-manager.d.ts +0 -212
  53. package/dist/conversion/conversion-v3/adapters/index.d.ts +0 -2
  54. package/dist/conversion/conversion-v3/adapters/index.js +0 -1
  55. package/dist/conversion/conversion-v3/adapters/v3-to-standard-adapter.d.ts +0 -38
  56. package/dist/conversion/conversion-v3/adapters/v3-to-standard-adapter.js +0 -55
  57. package/dist/conversion/conversion-v3/compatibility/compatibility-profiles.d.ts +0 -22
  58. package/dist/conversion/conversion-v3/compatibility/compatibility-profiles.js +0 -84
  59. package/dist/conversion/conversion-v3/compatibility/compatibility-stages.d.ts +0 -4
  60. package/dist/conversion/conversion-v3/compatibility/compatibility-stages.js +0 -285
  61. package/dist/conversion/conversion-v3/compatibility/index.d.ts +0 -3
  62. package/dist/conversion/conversion-v3/compatibility/index.js +0 -2
  63. package/dist/conversion/conversion-v3/config/default-configs.d.ts +0 -48
  64. package/dist/conversion/conversion-v3/config/default-configs.js +0 -1083
  65. package/dist/conversion/conversion-v3/config/index.d.ts +0 -5
  66. package/dist/conversion/conversion-v3/config/index.js +0 -5
  67. package/dist/conversion/conversion-v3/config/pipeline-config-manager.d.ts +0 -49
  68. package/dist/conversion/conversion-v3/config/pipeline-config-manager.js +0 -65
  69. package/dist/conversion/conversion-v3/index.d.ts +0 -11
  70. package/dist/conversion/conversion-v3/index.js +0 -17
  71. package/dist/conversion/conversion-v3/nodes/index.d.ts +0 -56
  72. package/dist/conversion/conversion-v3/nodes/index.js +0 -149
  73. package/dist/conversion/conversion-v3/nodes/input/anthropic-input-node.d.ts +0 -25
  74. package/dist/conversion/conversion-v3/nodes/input/anthropic-input-node.js +0 -56
  75. package/dist/conversion/conversion-v3/nodes/input/base-input-node.d.ts +0 -75
  76. package/dist/conversion/conversion-v3/nodes/input/base-input-node.js +0 -237
  77. package/dist/conversion/conversion-v3/nodes/input/chat-input-node.d.ts +0 -25
  78. package/dist/conversion/conversion-v3/nodes/input/chat-input-node.js +0 -56
  79. package/dist/conversion/conversion-v3/nodes/input/chat-shape-helpers.d.ts +0 -4
  80. package/dist/conversion/conversion-v3/nodes/input/chat-shape-helpers.js +0 -197
  81. package/dist/conversion/conversion-v3/nodes/input/gemini-input-node.d.ts +0 -16
  82. package/dist/conversion/conversion-v3/nodes/input/gemini-input-node.js +0 -125
  83. package/dist/conversion/conversion-v3/nodes/input/index.d.ts +0 -8
  84. package/dist/conversion/conversion-v3/nodes/input/index.js +0 -8
  85. package/dist/conversion/conversion-v3/nodes/input/input-decision.d.ts +0 -46
  86. package/dist/conversion/conversion-v3/nodes/input/input-decision.js +0 -125
  87. package/dist/conversion/conversion-v3/nodes/input/responses-input-node.d.ts +0 -20
  88. package/dist/conversion/conversion-v3/nodes/input/responses-input-node.js +0 -51
  89. package/dist/conversion/conversion-v3/nodes/output/anthropic-output-node.d.ts +0 -71
  90. package/dist/conversion/conversion-v3/nodes/output/anthropic-output-node.js +0 -320
  91. package/dist/conversion/conversion-v3/nodes/output/base-output-node.d.ts +0 -116
  92. package/dist/conversion/conversion-v3/nodes/output/base-output-node.js +0 -512
  93. package/dist/conversion/conversion-v3/nodes/output/index.d.ts +0 -7
  94. package/dist/conversion/conversion-v3/nodes/output/index.js +0 -7
  95. package/dist/conversion/conversion-v3/nodes/output/openai-output-node.d.ts +0 -71
  96. package/dist/conversion/conversion-v3/nodes/output/openai-output-node.js +0 -293
  97. package/dist/conversion/conversion-v3/nodes/output/output-decision.d.ts +0 -68
  98. package/dist/conversion/conversion-v3/nodes/output/output-decision.js +0 -161
  99. package/dist/conversion/conversion-v3/nodes/output/responses-output-node.d.ts +0 -64
  100. package/dist/conversion/conversion-v3/nodes/output/responses-output-node.js +0 -323
  101. package/dist/conversion/conversion-v3/nodes/process/base-process-node.d.ts +0 -72
  102. package/dist/conversion/conversion-v3/nodes/process/base-process-node.js +0 -246
  103. package/dist/conversion/conversion-v3/nodes/process/chat-process-node.d.ts +0 -135
  104. package/dist/conversion/conversion-v3/nodes/process/chat-process-node.js +0 -854
  105. package/dist/conversion/conversion-v3/nodes/process/compatibility-process-node.d.ts +0 -29
  106. package/dist/conversion/conversion-v3/nodes/process/compatibility-process-node.js +0 -181
  107. package/dist/conversion/conversion-v3/nodes/process/index.d.ts +0 -10
  108. package/dist/conversion/conversion-v3/nodes/process/index.js +0 -10
  109. package/dist/conversion/conversion-v3/nodes/process/passthrough-process-node.d.ts +0 -59
  110. package/dist/conversion/conversion-v3/nodes/process/passthrough-process-node.js +0 -243
  111. package/dist/conversion/conversion-v3/nodes/process/response-process-node.d.ts +0 -17
  112. package/dist/conversion/conversion-v3/nodes/process/response-process-node.js +0 -213
  113. package/dist/conversion/conversion-v3/nodes/process/tool-process-node.d.ts +0 -26
  114. package/dist/conversion/conversion-v3/nodes/process/tool-process-node.js +0 -299
  115. package/dist/conversion/conversion-v3/nodes/process/virtual-router-process-node.d.ts +0 -40
  116. package/dist/conversion/conversion-v3/nodes/process/virtual-router-process-node.js +0 -430
  117. package/dist/conversion/conversion-v3/nodes/response/anthropic-response-input-node.d.ts +0 -12
  118. package/dist/conversion/conversion-v3/nodes/response/anthropic-response-input-node.js +0 -129
  119. package/dist/conversion/conversion-v3/nodes/response/chat-to-responses-response-node.d.ts +0 -15
  120. package/dist/conversion/conversion-v3/nodes/response/chat-to-responses-response-node.js +0 -57
  121. package/dist/conversion/conversion-v3/nodes/response/index.d.ts +0 -4
  122. package/dist/conversion/conversion-v3/nodes/response/index.js +0 -4
  123. package/dist/conversion/conversion-v3/nodes/response/openai-response-input-node.d.ts +0 -15
  124. package/dist/conversion/conversion-v3/nodes/response/openai-response-input-node.js +0 -87
  125. package/dist/conversion/conversion-v3/nodes/response/response-utils.d.ts +0 -1
  126. package/dist/conversion/conversion-v3/nodes/response/response-utils.js +0 -1
  127. package/dist/conversion/conversion-v3/nodes/response/responses-response-input-node.d.ts +0 -12
  128. package/dist/conversion/conversion-v3/nodes/response/responses-response-input-node.js +0 -67
  129. package/dist/conversion/conversion-v3/nodes/sse/index.d.ts +0 -3
  130. package/dist/conversion/conversion-v3/nodes/sse/index.js +0 -3
  131. package/dist/conversion/conversion-v3/nodes/sse/sse-input-node.d.ts +0 -27
  132. package/dist/conversion/conversion-v3/nodes/sse/sse-input-node.js +0 -165
  133. package/dist/conversion/conversion-v3/nodes/sse/sse-output-node.d.ts +0 -19
  134. package/dist/conversion/conversion-v3/nodes/sse/sse-output-node.js +0 -267
  135. package/dist/conversion/conversion-v3/nodes/sse/sse-passthrough-node.d.ts +0 -18
  136. package/dist/conversion/conversion-v3/nodes/sse/sse-passthrough-node.js +0 -48
  137. package/dist/conversion/conversion-v3/pipelines/index.d.ts +0 -6
  138. package/dist/conversion/conversion-v3/pipelines/index.js +0 -6
  139. package/dist/conversion/conversion-v3/pipelines/super-pipeline.d.ts +0 -112
  140. package/dist/conversion/conversion-v3/pipelines/super-pipeline.js +0 -566
  141. package/dist/conversion/conversion-v3/response/provider-response-converter.d.ts +0 -28
  142. package/dist/conversion/conversion-v3/response/provider-response-converter.js +0 -249
  143. package/dist/conversion/conversion-v3/sse/index.d.ts +0 -140
  144. package/dist/conversion/conversion-v3/sse/index.js +0 -115
  145. package/dist/conversion/conversion-v3/sse/json-to-sse/anthropic-json-to-sse-converter.d.ts +0 -11
  146. package/dist/conversion/conversion-v3/sse/json-to-sse/anthropic-json-to-sse-converter.js +0 -79
  147. package/dist/conversion/conversion-v3/sse/json-to-sse/chat-json-to-sse-converter.d.ts +0 -79
  148. package/dist/conversion/conversion-v3/sse/json-to-sse/chat-json-to-sse-converter.js +0 -296
  149. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/chat.d.ts +0 -55
  150. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/chat.js +0 -233
  151. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/responses.d.ts +0 -99
  152. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/responses.js +0 -599
  153. package/dist/conversion/conversion-v3/sse/json-to-sse/index.d.ts +0 -6
  154. package/dist/conversion/conversion-v3/sse/json-to-sse/index.js +0 -7
  155. package/dist/conversion/conversion-v3/sse/json-to-sse/responses-json-to-sse-converter.d.ts +0 -79
  156. package/dist/conversion/conversion-v3/sse/json-to-sse/responses-json-to-sse-converter.js +0 -322
  157. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/chat-sequencer.d.ts +0 -37
  158. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/chat-sequencer.js +0 -218
  159. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/responses-sequencer.d.ts +0 -40
  160. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/responses-sequencer.js +0 -263
  161. package/dist/conversion/conversion-v3/sse/registry/sse-codec-registry.d.ts +0 -32
  162. package/dist/conversion/conversion-v3/sse/registry/sse-codec-registry.js +0 -106
  163. package/dist/conversion/conversion-v3/sse/shared/chat-serializer.d.ts +0 -4
  164. package/dist/conversion/conversion-v3/sse/shared/chat-serializer.js +0 -40
  165. package/dist/conversion/conversion-v3/sse/shared/constants.d.ts +0 -272
  166. package/dist/conversion/conversion-v3/sse/shared/constants.js +0 -321
  167. package/dist/conversion/conversion-v3/sse/shared/serializers/base-serializer.d.ts +0 -158
  168. package/dist/conversion/conversion-v3/sse/shared/serializers/base-serializer.js +0 -210
  169. package/dist/conversion/conversion-v3/sse/shared/serializers/chat-event-serializer.d.ts +0 -82
  170. package/dist/conversion/conversion-v3/sse/shared/serializers/chat-event-serializer.js +0 -275
  171. package/dist/conversion/conversion-v3/sse/shared/serializers/index.d.ts +0 -39
  172. package/dist/conversion/conversion-v3/sse/shared/serializers/index.js +0 -54
  173. package/dist/conversion/conversion-v3/sse/shared/serializers/responses-event-serializer.d.ts +0 -123
  174. package/dist/conversion/conversion-v3/sse/shared/serializers/responses-event-serializer.js +0 -356
  175. package/dist/conversion/conversion-v3/sse/shared/serializers/types.d.ts +0 -51
  176. package/dist/conversion/conversion-v3/sse/shared/serializers/types.js +0 -4
  177. package/dist/conversion/conversion-v3/sse/shared/utils.d.ts +0 -254
  178. package/dist/conversion/conversion-v3/sse/shared/utils.js +0 -543
  179. package/dist/conversion/conversion-v3/sse/shared/writer.d.ts +0 -111
  180. package/dist/conversion/conversion-v3/sse/shared/writer.js +0 -268
  181. package/dist/conversion/conversion-v3/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +0 -13
  182. package/dist/conversion/conversion-v3/sse/sse-to-json/anthropic-sse-to-json-converter.js +0 -139
  183. package/dist/conversion/conversion-v3/sse/sse-to-json/builders/response-builder.d.ts +0 -165
  184. package/dist/conversion/conversion-v3/sse/sse-to-json/builders/response-builder.js +0 -776
  185. package/dist/conversion/conversion-v3/sse/sse-to-json/chat-sse-to-json-converter.d.ts +0 -106
  186. package/dist/conversion/conversion-v3/sse/sse-to-json/chat-sse-to-json-converter.js +0 -540
  187. package/dist/conversion/conversion-v3/sse/sse-to-json/index.d.ts +0 -6
  188. package/dist/conversion/conversion-v3/sse/sse-to-json/index.js +0 -7
  189. package/dist/conversion/conversion-v3/sse/sse-to-json/parsers/sse-parser.d.ts +0 -73
  190. package/dist/conversion/conversion-v3/sse/sse-to-json/parsers/sse-parser.js +0 -332
  191. package/dist/conversion/conversion-v3/sse/sse-to-json/responses-sse-to-json-converter.d.ts +0 -59
  192. package/dist/conversion/conversion-v3/sse/sse-to-json/responses-sse-to-json-converter.js +0 -270
  193. package/dist/conversion/conversion-v3/sse/types/anthropic-types.d.ts +0 -87
  194. package/dist/conversion/conversion-v3/sse/types/anthropic-types.js +0 -5
  195. package/dist/conversion/conversion-v3/sse/types/chat-types.d.ts +0 -308
  196. package/dist/conversion/conversion-v3/sse/types/chat-types.js +0 -32
  197. package/dist/conversion/conversion-v3/sse/types/conversion-context.d.ts +0 -211
  198. package/dist/conversion/conversion-v3/sse/types/conversion-context.js +0 -20
  199. package/dist/conversion/conversion-v3/sse/types/core-interfaces.d.ts +0 -90
  200. package/dist/conversion/conversion-v3/sse/types/core-interfaces.js +0 -5
  201. package/dist/conversion/conversion-v3/sse/types/index.d.ts +0 -14
  202. package/dist/conversion/conversion-v3/sse/types/index.js +0 -7
  203. package/dist/conversion/conversion-v3/sse/types/responses-types.d.ts +0 -328
  204. package/dist/conversion/conversion-v3/sse/types/responses-types.js +0 -38
  205. package/dist/conversion/conversion-v3/sse/types/sse-events.d.ts +0 -180
  206. package/dist/conversion/conversion-v3/sse/types/sse-events.js +0 -150
  207. package/dist/conversion/conversion-v3/sse/types/stream-state.d.ts +0 -204
  208. package/dist/conversion/conversion-v3/sse/types/stream-state.js +0 -44
  209. package/dist/conversion/conversion-v3/sse/types/utility-types.d.ts +0 -230
  210. package/dist/conversion/conversion-v3/sse/types/utility-types.js +0 -49
  211. package/dist/conversion/conversion-v3/standards/context-adapter.d.ts +0 -146
  212. package/dist/conversion/conversion-v3/standards/context-adapter.js +0 -438
  213. package/dist/conversion/conversion-v3/standards/errors.d.ts +0 -38
  214. package/dist/conversion/conversion-v3/standards/errors.js +0 -27
  215. package/dist/conversion/conversion-v3/standards/index.d.ts +0 -15
  216. package/dist/conversion/conversion-v3/standards/index.js +0 -11
  217. package/dist/conversion/conversion-v3/standards/node-capabilities.d.ts +0 -123
  218. package/dist/conversion/conversion-v3/standards/node-capabilities.js +0 -330
  219. package/dist/conversion/conversion-v3/standards/pipeline-context.d.ts +0 -237
  220. package/dist/conversion/conversion-v3/standards/pipeline-context.js +0 -84
  221. package/dist/conversion/conversion-v3/standards/pipeline-node.d.ts +0 -196
  222. package/dist/conversion/conversion-v3/standards/pipeline-node.js +0 -316
  223. package/dist/conversion/conversion-v3/standards/snapshot-handles.d.ts +0 -24
  224. package/dist/conversion/conversion-v3/standards/snapshot-handles.js +0 -49
  225. package/dist/conversion/conversion-v3/types/config-types.d.ts +0 -242
  226. package/dist/conversion/conversion-v3/types/config-types.js +0 -13
  227. package/dist/conversion/conversion-v3/types/index.d.ts +0 -8
  228. package/dist/conversion/conversion-v3/types/index.js +0 -11
  229. package/dist/conversion/conversion-v3/types/node-types.d.ts +0 -211
  230. package/dist/conversion/conversion-v3/types/node-types.js +0 -20
  231. package/dist/conversion/conversion-v3/types/pipeline-types.d.ts +0 -246
  232. package/dist/conversion/conversion-v3/types/pipeline-types.js +0 -26
  233. package/dist/conversion/conversion-v3/types/request-types.d.ts +0 -293
  234. package/dist/conversion/conversion-v3/types/request-types.js +0 -26
  235. package/dist/conversion/conversion-v3/utils/provider-payload-sanitizer.d.ts +0 -10
  236. package/dist/conversion/conversion-v3/utils/provider-payload-sanitizer.js +0 -103
  237. package/dist/conversion/conversion-v3/validations/index.d.ts +0 -8
  238. package/dist/conversion/conversion-v3/validations/index.js +0 -7
  239. package/dist/conversion/conversion-v3/validations/node-graph-validator.d.ts +0 -116
  240. package/dist/conversion/conversion-v3/validations/node-graph-validator.js +0 -505
  241. package/dist/conversion/conversion-v3/validations/tool-governance-enforcer.d.ts +0 -139
  242. package/dist/conversion/conversion-v3/validations/tool-governance-enforcer.js +0 -338
  243. package/dist/conversion/hub/config/types.d.ts +0 -26
  244. package/dist/conversion/hub/core/detour-registry.d.ts +0 -9
  245. package/dist/conversion/hub/core/hub-context.d.ts +0 -21
  246. package/dist/conversion/hub/core/index.d.ts +0 -3
  247. package/dist/conversion/hub/core/stage-driver.d.ts +0 -30
  248. package/dist/conversion/hub/format-adapters/anthropic-format-adapter.d.ts +0 -16
  249. package/dist/conversion/hub/format-adapters/chat-format-adapter.d.ts +0 -17
  250. package/dist/conversion/hub/format-adapters/gemini-format-adapter.d.ts +0 -16
  251. package/dist/conversion/hub/format-adapters/index.d.ts +0 -21
  252. package/dist/conversion/hub/format-adapters/responses-format-adapter.d.ts +0 -17
  253. package/dist/conversion/hub/hub-feature.d.ts +0 -1
  254. package/dist/conversion/hub/node-support.d.ts +0 -19
  255. package/dist/conversion/hub/pipeline/hub-pipeline.d.ts +0 -68
  256. package/dist/conversion/hub/pipelines/inbound.d.ts +0 -22
  257. package/dist/conversion/hub/pipelines/outbound.d.ts +0 -22
  258. package/dist/conversion/hub/process/chat-process.d.ts +0 -13
  259. package/dist/conversion/hub/registry.d.ts +0 -28
  260. package/dist/conversion/hub/response/chat-response-utils.d.ts +0 -6
  261. package/dist/conversion/hub/response/provider-response.d.ts +0 -20
  262. package/dist/conversion/hub/response/response-mappers.d.ts +0 -19
  263. package/dist/conversion/hub/response/response-runtime.d.ts +0 -3
  264. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.d.ts +0 -7
  265. package/dist/conversion/hub/semantic-mappers/chat-mapper.d.ts +0 -7
  266. package/dist/conversion/hub/semantic-mappers/gemini-mapper.d.ts +0 -7
  267. package/dist/conversion/hub/semantic-mappers/index.d.ts +0 -4
  268. package/dist/conversion/hub/semantic-mappers/responses-mapper.d.ts +0 -21
  269. package/dist/conversion/hub/snapshot-recorder.d.ts +0 -12
  270. package/dist/conversion/hub/standardized-bridge.d.ts +0 -12
  271. package/dist/conversion/hub/types/chat-envelope.d.ts +0 -67
  272. package/dist/conversion/hub/types/chat-schema.d.ts +0 -112
  273. package/dist/conversion/hub/types/errors.d.ts +0 -5
  274. package/dist/conversion/hub/types/format-envelope.d.ts +0 -7
  275. package/dist/conversion/hub/types/index.d.ts +0 -6
  276. package/dist/conversion/hub/types/json.d.ts +0 -9
  277. package/dist/conversion/hub/types/node.d.ts +0 -31
  278. package/dist/conversion/hub/types/standardized.d.ts +0 -94
  279. package/dist/conversion/responses/responses-openai-bridge.d.ts +0 -95
  280. package/dist/conversion/schema-validator.d.ts +0 -7
  281. package/dist/conversion/shared/args-mapping.d.ts +0 -18
  282. package/dist/conversion/shared/chat-request-filters.d.ts +0 -9
  283. package/dist/conversion/shared/jsonish.d.ts +0 -3
  284. package/dist/conversion/shared/mcp-injection.d.ts +0 -2
  285. package/dist/conversion/shared/media.d.ts +0 -1
  286. package/dist/conversion/shared/openai-finalizer.d.ts +0 -9
  287. package/dist/conversion/shared/openai-message-normalize.d.ts +0 -1
  288. package/dist/conversion/shared/payload-budget.d.ts +0 -13
  289. package/dist/conversion/shared/reasoning-mapping.d.ts +0 -5
  290. package/dist/conversion/shared/responses-conversation-store.d.ts +0 -41
  291. package/dist/conversion/shared/responses-id-utils.d.ts +0 -7
  292. package/dist/conversion/shared/responses-instructions.d.ts +0 -1
  293. package/dist/conversion/shared/responses-metadata.d.ts +0 -1
  294. package/dist/conversion/shared/responses-request-adapter.d.ts +0 -66
  295. package/dist/conversion/shared/snapshot-hooks.d.ts +0 -12
  296. package/dist/conversion/shared/streaming-text-extractor.d.ts +0 -26
  297. package/dist/conversion/shared/text-markup-normalizer.d.ts +0 -9
  298. package/dist/conversion/shared/tool-canonicalizer.d.ts +0 -2
  299. package/dist/conversion/shared/tool-filter-pipeline.d.ts +0 -17
  300. package/dist/conversion/shared/tool-governor.d.ts +0 -27
  301. package/dist/conversion/shared/tool-harvester.d.ts +0 -31
  302. package/dist/conversion/shared/tool-mapping.d.ts +0 -10
  303. package/dist/conversion/shared/tooling.d.ts +0 -26
  304. package/dist/conversion/types.d.ts +0 -33
  305. package/dist/core/index.d.ts +0 -6
  306. package/dist/core/index.js +0 -9
  307. package/dist/core/llmswitch-engine-v2.d.ts +0 -132
  308. package/dist/core/llmswitch-engine-v2.js +0 -649
  309. package/dist/core/llmswitch-factory-v2.d.ts +0 -123
  310. package/dist/core/llmswitch-factory-v2.js +0 -521
  311. package/dist/endpoints/base-endpoint-handler.d.ts +0 -128
  312. package/dist/endpoints/base-endpoint-handler.js +0 -545
  313. package/dist/endpoints/chat-endpoint-handler.d.ts +0 -115
  314. package/dist/endpoints/chat-endpoint-handler.js +0 -218
  315. package/dist/endpoints/endpoint-router.d.ts +0 -127
  316. package/dist/endpoints/endpoint-router.js +0 -438
  317. package/dist/endpoints/index.d.ts +0 -13
  318. package/dist/endpoints/index.js +0 -11
  319. package/dist/endpoints/messages-endpoint-handler.d.ts +0 -171
  320. package/dist/endpoints/messages-endpoint-handler.js +0 -238
  321. package/dist/endpoints/responses-endpoint-handler.d.ts +0 -147
  322. package/dist/endpoints/responses-endpoint-handler.js +0 -233
  323. package/dist/filters/builtin/add-fields-filter.d.ts +0 -8
  324. package/dist/filters/builtin/blacklist-filter.d.ts +0 -8
  325. package/dist/filters/builtin/whitelist-filter.d.ts +0 -8
  326. package/dist/filters/engine.d.ts +0 -16
  327. package/dist/filters/index.d.ts +0 -19
  328. package/dist/filters/special/request-streaming-to-nonstreaming.d.ts +0 -12
  329. package/dist/filters/special/request-tool-choice-policy.d.ts +0 -11
  330. package/dist/filters/special/request-tool-list-filter.d.ts +0 -11
  331. package/dist/filters/special/request-toolcalls-stringify.d.ts +0 -10
  332. package/dist/filters/special/request-tools-normalize.d.ts +0 -12
  333. package/dist/filters/special/response-finish-invariants.d.ts +0 -11
  334. package/dist/filters/special/response-openai-to-responses-bridge.d.ts +0 -13
  335. package/dist/filters/special/response-tool-arguments-blacklist.d.ts +0 -12
  336. package/dist/filters/special/response-tool-arguments-schema-converge.d.ts +0 -13
  337. package/dist/filters/special/response-tool-arguments-stringify.d.ts +0 -9
  338. package/dist/filters/special/response-tool-arguments-toon-decode.d.ts +0 -10
  339. package/dist/filters/special/response-tool-arguments-whitelist.d.ts +0 -11
  340. package/dist/filters/special/response-tool-text-canonicalize.d.ts +0 -10
  341. package/dist/filters/special/tool-filter-hooks.d.ts +0 -19
  342. package/dist/filters/special/tool-post-constraints.d.ts +0 -31
  343. package/dist/filters/types.d.ts +0 -68
  344. package/dist/filters/utils/fieldmap-loader.d.ts +0 -2
  345. package/dist/filters/utils/snapshot-writer.d.ts +0 -10
  346. package/dist/guidance/index.d.ts +0 -3
  347. package/dist/hooks/hooks-integration.d.ts +0 -161
  348. package/dist/hooks/hooks-integration.js +0 -519
  349. package/dist/hooks/index.d.ts +0 -10
  350. package/dist/hooks/index.js +0 -13
  351. package/dist/html-to-markdown.d.ts +0 -5
  352. package/dist/html-to-markdown.js +0 -66
  353. package/dist/http/sse-response.d.ts +0 -22
  354. package/dist/router/virtual-router/bootstrap.d.ts +0 -6
  355. package/dist/router/virtual-router/classifier.d.ts +0 -10
  356. package/dist/router/virtual-router/engine.d.ts +0 -35
  357. package/dist/router/virtual-router/error-center.d.ts +0 -10
  358. package/dist/router/virtual-router/features.d.ts +0 -3
  359. package/dist/router/virtual-router/health-manager.d.ts +0 -18
  360. package/dist/router/virtual-router/load-balancer.d.ts +0 -18
  361. package/dist/router/virtual-router/provider-registry.d.ts +0 -11
  362. package/dist/router/virtual-router/types.d.ts +0 -206
  363. package/dist/sse/json-to-sse/anthropic-json-to-sse-converter.d.ts +0 -11
  364. package/dist/sse/json-to-sse/chat-json-to-sse-converter.d.ts +0 -79
  365. package/dist/sse/json-to-sse/event-generators/chat.d.ts +0 -55
  366. package/dist/sse/json-to-sse/event-generators/responses.d.ts +0 -99
  367. package/dist/sse/json-to-sse/index.d.ts +0 -6
  368. package/dist/sse/json-to-sse/responses-json-to-sse-converter.d.ts +0 -79
  369. package/dist/sse/json-to-sse/sequencers/chat-sequencer.d.ts +0 -37
  370. package/dist/sse/json-to-sse/sequencers/responses-sequencer.d.ts +0 -40
  371. package/dist/sse/registry/sse-codec-registry.d.ts +0 -32
  372. package/dist/sse/shared/chat-serializer.d.ts +0 -4
  373. package/dist/sse/shared/constants.d.ts +0 -272
  374. package/dist/sse/shared/serializers/base-serializer.d.ts +0 -158
  375. package/dist/sse/shared/serializers/chat-event-serializer.d.ts +0 -82
  376. package/dist/sse/shared/serializers/index.d.ts +0 -39
  377. package/dist/sse/shared/serializers/responses-event-serializer.d.ts +0 -123
  378. package/dist/sse/shared/serializers/types.d.ts +0 -51
  379. package/dist/sse/shared/utils.d.ts +0 -254
  380. package/dist/sse/shared/writer.d.ts +0 -111
  381. package/dist/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +0 -13
  382. package/dist/sse/sse-to-json/builders/response-builder.d.ts +0 -165
  383. package/dist/sse/sse-to-json/chat-sse-to-json-converter.d.ts +0 -106
  384. package/dist/sse/sse-to-json/index.d.ts +0 -6
  385. package/dist/sse/sse-to-json/parsers/sse-parser.d.ts +0 -73
  386. package/dist/sse/types/anthropic-types.d.ts +0 -87
  387. package/dist/tools/proxy/anthropic-tool-proxy.d.ts +0 -19
  388. package/dist/tools/proxy/anthropic-tool-proxy.js +0 -57
  389. package/dist/tools/proxy/executors/web-fetch.d.ts +0 -6
  390. package/dist/tools/proxy/executors/web-fetch.js +0 -39
  391. package/dist/tools/proxy/registry.d.ts +0 -8
  392. package/dist/tools/proxy/registry.js +0 -14
  393. package/dist/tools/proxy/types.d.ts +0 -29
  394. package/dist/tools/tool-registry.d.ts +0 -8
  395. package/dist/tools/web-fetch-html.d.ts +0 -15
  396. package/dist/tools/web-fetch-html.js +0 -83
  397. package/dist/utils/conversion-adapter.d.ts +0 -65
  398. package/dist/utils/conversion-adapter.js +0 -183
  399. package/dist/utils/error-factory.d.ts +0 -88
  400. package/dist/utils/error-factory.js +0 -138
  401. package/dist/utils/error-utils.d.ts +0 -334
  402. package/dist/utils/error-utils.js +0 -782
  403. package/dist/utils/index.d.ts +0 -8
  404. package/dist/utils/index.js +0 -13
  405. package/dist/utils/performance-utils.d.ts +0 -205
  406. package/dist/utils/performance-utils.js +0 -440
  407. package/dist/utils/profile-mapper.d.ts +0 -32
  408. package/dist/utils/profile-mapper.js +0 -269
  409. package/dist/utils/request-processor.d.ts +0 -52
  410. package/dist/utils/request-processor.js +0 -210
  411. package/dist/utils/request-utils.d.ts +0 -117
  412. package/dist/utils/request-utils.js +0 -333
  413. package/dist/utils/response-utils.d.ts +0 -127
  414. package/dist/utils/response-utils.js +0 -516
  415. package/dist/utils/token-counter.d.ts +0 -89
  416. package/dist/utils/token-counter.js +0 -541
  417. /package/dist/{tools/proxy → conversion/hub/tool-governance}/types.js +0 -0
@@ -1,438 +0,0 @@
1
- /**
2
- * 端点路由器
3
- *
4
- * 根据请求路径和协议自动路由到对应的端点处理器
5
- */
6
- import { ChatEndpointHandler } from './chat-endpoint-handler.js';
7
- import { ResponsesEndpointHandler } from './responses-endpoint-handler.js';
8
- import { MessagesEndpointHandler } from './messages-endpoint-handler.js';
9
- import { ErrorHandler, ErrorFactory } from '../utils/error-utils.js';
10
- /**
11
- * 端点路由器
12
- */
13
- export class EndpointRouter {
14
- handlers = new Map();
15
- routingRules = [];
16
- hooksAdapter;
17
- config;
18
- constructor(hooksAdapter, config) {
19
- this.hooksAdapter = hooksAdapter;
20
- this.config = config;
21
- this.initializeHandlers();
22
- this.initializeRoutingRules();
23
- }
24
- /**
25
- * 路由请求到对应端点
26
- */
27
- async routeRequest(path, method, request, headers) {
28
- let endpoint;
29
- try {
30
- // 检测端点类型
31
- endpoint = this.detectEndpoint(path, method, headers);
32
- if (!endpoint) {
33
- if (this.config.fallbackEnabled) {
34
- endpoint = this.config.defaultEndpoint;
35
- }
36
- else {
37
- throw ErrorFactory.endpointNotFound(`${path} ${method}`, {
38
- path,
39
- method,
40
- availableEndpoints: Array.from(this.handlers.keys()),
41
- fallbackEnabled: false
42
- });
43
- }
44
- }
45
- // 获取处理器
46
- const endpointType = endpoint;
47
- const handler = this.handlers.get(endpointType);
48
- if (!handler) {
49
- throw ErrorFactory.internalError(`No handler found for endpoint: ${endpoint}`, undefined, {
50
- endpoint: endpointType,
51
- availableHandlers: Array.from(this.handlers.keys()),
52
- stage: 'routing_handler_lookup'
53
- });
54
- }
55
- // 检查处理器是否启用
56
- const endpointInfo = handler.getEndpointInfo();
57
- if (!endpointInfo.enabled) {
58
- throw ErrorFactory.endpointUnavailable(endpointType, 'Endpoint is disabled', {
59
- path,
60
- method,
61
- endpointInfo,
62
- stage: 'routing_endpoint_disabled'
63
- });
64
- }
65
- // 路由到对应处理器
66
- return await handler.processRequest(request, {
67
- requestId: this.extractRequestId(headers),
68
- metadata: {
69
- originalPath: path,
70
- method,
71
- headers
72
- }
73
- });
74
- }
75
- catch (error) {
76
- const requestId = this.extractRequestId(headers);
77
- const handledError = ErrorHandler.handle(error, {
78
- requestId,
79
- endpoint: endpoint || undefined,
80
- stage: 'route_request'
81
- });
82
- return {
83
- success: false,
84
- error: handledError,
85
- executionTime: 0,
86
- metadata: {
87
- endpoint: (endpoint || 'chat'),
88
- originalProtocol: 'openai-chat',
89
- targetProtocol: 'openai-chat',
90
- processingMode: 'non-streaming',
91
- stage: 'routing_failed'
92
- }
93
- };
94
- }
95
- }
96
- /**
97
- * 路由流式请求
98
- */
99
- async routeStreamingRequest(path, method, request, headers) {
100
- const requestId = this.extractRequestId(headers);
101
- try {
102
- // 检测端点类型
103
- const endpoint = this.detectEndpoint(path, method, headers);
104
- if (!endpoint) {
105
- if (this.config.fallbackEnabled) {
106
- throw ErrorFactory.endpointUnavailable(`${path} ${method}`, 'Streaming fallback not supported', {
107
- path,
108
- method,
109
- fallbackEnabled: true,
110
- streaming: true
111
- });
112
- }
113
- else {
114
- throw ErrorFactory.endpointNotFound(`${path} ${method}`, {
115
- path,
116
- method,
117
- availableEndpoints: Array.from(this.handlers.keys()),
118
- streaming: true
119
- });
120
- }
121
- }
122
- // 获取处理器
123
- const handler = this.handlers.get(endpoint);
124
- if (!handler) {
125
- throw ErrorFactory.internalError(`No handler found for endpoint: ${endpoint}`, undefined, {
126
- endpoint,
127
- availableHandlers: Array.from(this.handlers.keys()),
128
- streaming: true,
129
- stage: 'streaming_handler_lookup'
130
- });
131
- }
132
- // 检查处理器是否启用
133
- const endpointInfo = handler.getEndpointInfo();
134
- if (!endpointInfo.enabled) {
135
- throw ErrorFactory.endpointUnavailable(endpoint, 'Endpoint is disabled for streaming', {
136
- path,
137
- method,
138
- endpointInfo,
139
- streaming: true,
140
- stage: 'streaming_endpoint_disabled'
141
- });
142
- }
143
- // 路由到对应处理器
144
- return await handler.preprocessStreamingRequest(request, {
145
- requestId,
146
- metadata: {
147
- originalPath: path,
148
- method,
149
- headers
150
- }
151
- });
152
- }
153
- catch (error) {
154
- const handledError = ErrorHandler.handle(error, {
155
- requestId,
156
- stage: 'route_streaming_request'
157
- });
158
- // 将错误重新抛出,让调用者处理
159
- throw handledError;
160
- }
161
- }
162
- /**
163
- * 检测端点类型
164
- */
165
- detectEndpoint(path, method, headers) {
166
- // 1. 基于路径模式的精确匹配
167
- for (const rule of this.routingRules) {
168
- if (rule.pathPattern.test(path) && rule.method.toUpperCase() === method.toUpperCase()) {
169
- return rule.endpoint;
170
- }
171
- }
172
- // 2. 基于路径的模糊匹配
173
- if (path.includes('/chat/completions')) {
174
- return 'chat';
175
- }
176
- if (path.includes('/responses')) {
177
- return 'responses';
178
- }
179
- if (path.includes('/messages')) {
180
- return 'messages';
181
- }
182
- // 3. 基于Content-Type的检测
183
- const contentType = headers?.['content-type'] || headers?.['Content-Type'];
184
- if (contentType) {
185
- if (contentType.includes('application/json')) {
186
- // 进一步分析请求内容
187
- return this.detectEndpointFromRequestStructure(path);
188
- }
189
- }
190
- // 4. 自动检测模式
191
- if (this.config.autoDetect) {
192
- return this.performAutoDetection(path, method, headers);
193
- }
194
- return null;
195
- }
196
- /**
197
- * 从请求结构检测端点
198
- */
199
- detectEndpointFromRequestStructure(path) {
200
- // 这里可以基于请求体的结构来检测端点类型
201
- // 由于这里只看到路径,返回默认的chat端点
202
- if (path.includes('/v1/')) {
203
- return 'chat';
204
- }
205
- return null;
206
- }
207
- /**
208
- * 执行自动检测
209
- */
210
- performAutoDetection(path, method, headers) {
211
- // 优先级顺序:Chat > Responses > Messages
212
- if (path.includes('chat') || method === 'POST' && path.includes('/completions')) {
213
- return 'chat';
214
- }
215
- if (path.includes('responses') || path.includes('response')) {
216
- return 'responses';
217
- }
218
- if (path.includes('messages') || path.includes('message')) {
219
- return 'messages';
220
- }
221
- return null;
222
- }
223
- /**
224
- * 初始化处理器
225
- */
226
- initializeHandlers() {
227
- for (const [endpoint, config] of Object.entries(this.config.endpointConfigs)) {
228
- const endpointType = endpoint;
229
- switch (endpointType) {
230
- case 'chat':
231
- this.handlers.set(endpointType, new ChatEndpointHandler(this.hooksAdapter));
232
- break;
233
- case 'responses':
234
- this.handlers.set(endpointType, new ResponsesEndpointHandler(this.hooksAdapter));
235
- break;
236
- case 'messages':
237
- this.handlers.set(endpointType, new MessagesEndpointHandler(this.hooksAdapter));
238
- break;
239
- default:
240
- console.warn(`Unknown endpoint type: ${endpointType}`);
241
- }
242
- }
243
- }
244
- /**
245
- * 初始化路由规则
246
- */
247
- initializeRoutingRules() {
248
- this.routingRules = [
249
- // Chat端点规则
250
- {
251
- pathPattern: /^\/v1\/chat\/completions$/,
252
- method: 'POST',
253
- endpoint: 'chat',
254
- protocol: 'openai-chat',
255
- priority: 1
256
- },
257
- {
258
- pathPattern: /^\/chat\/completions$/,
259
- method: 'POST',
260
- endpoint: 'chat',
261
- protocol: 'openai-chat',
262
- priority: 1
263
- },
264
- // Responses端点规则
265
- {
266
- pathPattern: /^\/v1\/responses$/,
267
- method: 'POST',
268
- endpoint: 'responses',
269
- protocol: 'openai-responses',
270
- priority: 2
271
- },
272
- {
273
- pathPattern: /^\/responses$/,
274
- method: 'POST',
275
- endpoint: 'responses',
276
- protocol: 'openai-responses',
277
- priority: 2
278
- },
279
- // Messages端点规则
280
- {
281
- pathPattern: /^\/v1\/messages$/,
282
- method: 'POST',
283
- endpoint: 'messages',
284
- protocol: 'anthropic-messages',
285
- priority: 3
286
- },
287
- {
288
- pathPattern: /^\/messages$/,
289
- method: 'POST',
290
- endpoint: 'messages',
291
- protocol: 'anthropic-messages',
292
- priority: 3
293
- }
294
- ];
295
- // 按优先级排序
296
- this.routingRules.sort((a, b) => a.priority - b.priority);
297
- }
298
- /**
299
- * 提取请求ID
300
- */
301
- extractRequestId(headers) {
302
- // 尝试从各种头部字段中提取请求ID
303
- const idHeaders = [
304
- 'x-request-id',
305
- 'request-id',
306
- 'x-trace-id',
307
- 'trace-id',
308
- 'x-correlation-id',
309
- 'correlation-id'
310
- ];
311
- for (const header of idHeaders) {
312
- const id = headers?.[header] || headers?.[header.toLowerCase()];
313
- if (id) {
314
- return id;
315
- }
316
- }
317
- return undefined;
318
- }
319
- /**
320
- * 添加路由规则
321
- */
322
- addRoutingRule(rule) {
323
- this.routingRules.push(rule);
324
- // 重新排序
325
- this.routingRules.sort((a, b) => a.priority - b.priority);
326
- }
327
- /**
328
- * 移除路由规则
329
- */
330
- removeRoutingRule(pattern, method) {
331
- const index = this.routingRules.findIndex(rule => rule.pathPattern.source === pattern && rule.method === method);
332
- if (index >= 0) {
333
- this.routingRules.splice(index, 1);
334
- return true;
335
- }
336
- return false;
337
- }
338
- /**
339
- * 获取所有路由规则
340
- */
341
- getRoutingRules() {
342
- return [...this.routingRules];
343
- }
344
- /**
345
- * 获取端点处理器
346
- */
347
- getHandler(endpoint) {
348
- return this.handlers.get(endpoint);
349
- }
350
- /**
351
- * 获取所有端点处理器
352
- */
353
- getAllHandlers() {
354
- return new Map(this.handlers);
355
- }
356
- /**
357
- * 更新端点配置
358
- */
359
- updateEndpointConfig(endpoint, config) {
360
- const handler = this.handlers.get(endpoint);
361
- if (handler) {
362
- handler.updateConfig(config);
363
- }
364
- }
365
- /**
366
- * 启用/禁用端点
367
- */
368
- setEndpointEnabled(endpoint, enabled) {
369
- this.updateEndpointConfig(endpoint, { enabled });
370
- }
371
- /**
372
- * 健康检查所有端点
373
- */
374
- async healthCheck() {
375
- const results = {};
376
- for (const [endpoint, handler] of this.handlers) {
377
- try {
378
- results[endpoint] = await handler.healthCheck();
379
- }
380
- catch (error) {
381
- results[endpoint] = false;
382
- }
383
- }
384
- return results;
385
- }
386
- /**
387
- * 获取路由统计信息
388
- */
389
- getRoutingStats() {
390
- const endpointStatus = {};
391
- let enabledCount = 0;
392
- for (const [endpoint, handler] of this.handlers) {
393
- const status = handler.getEndpointInfo().enabled;
394
- endpointStatus[endpoint] = status;
395
- if (status)
396
- enabledCount++;
397
- }
398
- return {
399
- totalEndpoints: this.handlers.size,
400
- enabledEndpoints: enabledCount,
401
- totalRules: this.routingRules.length,
402
- endpointStatus: endpointStatus
403
- };
404
- }
405
- /**
406
- * 初始化路由器
407
- */
408
- async initialize() {
409
- console.log('EndpointRouter initialized');
410
- }
411
- /**
412
- * 启动路由器
413
- */
414
- async start() {
415
- console.log('EndpointRouter started');
416
- }
417
- /**
418
- * 停止路由器
419
- */
420
- async stop() {
421
- console.log('EndpointRouter stopped');
422
- }
423
- /**
424
- * 销毁路由器
425
- */
426
- async destroy() {
427
- // 清理所有处理器
428
- for (const handler of this.handlers.values()) {
429
- // 如果处理器有清理方法,调用它
430
- if ('destroy' in handler && typeof handler.destroy === 'function') {
431
- await handler.destroy();
432
- }
433
- }
434
- this.handlers.clear();
435
- this.routingRules.length = 0;
436
- console.log('EndpointRouter destroyed');
437
- }
438
- }
@@ -1,13 +0,0 @@
1
- /**
2
- * 端点处理器模块导出
3
- */
4
- export { BaseEndpointHandler } from './base-endpoint-handler.js';
5
- export type { EndpointHandlerConfig } from './base-endpoint-handler.js';
6
- export { ChatEndpointHandler } from './chat-endpoint-handler.js';
7
- export type { ChatRequest, ChatResponse } from './chat-endpoint-handler.js';
8
- export { ResponsesEndpointHandler } from './responses-endpoint-handler.js';
9
- export type { ResponsesRequest, ResponsesResponse } from './responses-endpoint-handler.js';
10
- export { MessagesEndpointHandler } from './messages-endpoint-handler.js';
11
- export type { MessagesRequest, MessagesResponse } from './messages-endpoint-handler.js';
12
- export { EndpointRouter } from './endpoint-router.js';
13
- export type { RouterConfig, RoutingRule } from './endpoint-router.js';
@@ -1,11 +0,0 @@
1
- /**
2
- * 端点处理器模块导出
3
- */
4
- // 基础处理器
5
- export { BaseEndpointHandler } from './base-endpoint-handler.js';
6
- // 具体端点处理器
7
- export { ChatEndpointHandler } from './chat-endpoint-handler.js';
8
- export { ResponsesEndpointHandler } from './responses-endpoint-handler.js';
9
- export { MessagesEndpointHandler } from './messages-endpoint-handler.js';
10
- // 端点路由器
11
- export { EndpointRouter } from './endpoint-router.js';
@@ -1,171 +0,0 @@
1
- /**
2
- * Messages端点处理器
3
- *
4
- * 处理/v1/messages端点的请求和响应 (Anthropic Messages API)
5
- */
6
- import type { LLMSwitchHookContext, LLMSwitchProcessingResult, ProcessingMode, SSEEvent } from '../api/llmswitch-types.js';
7
- import { BaseEndpointHandler } from './base-endpoint-handler.js';
8
- import type { HooksIntegration } from '../hooks/hooks-integration.js';
9
- /**
10
- * Anthropic Messages请求接口
11
- */
12
- export interface MessagesRequest {
13
- model: string;
14
- messages: Array<{
15
- role: 'user' | 'assistant';
16
- content: string | Array<{
17
- type: 'text' | 'image';
18
- text?: string;
19
- source?: {
20
- type: 'base64';
21
- media_type: string;
22
- data: string;
23
- };
24
- }>;
25
- }>;
26
- system?: string;
27
- max_tokens: number;
28
- temperature?: number;
29
- top_p?: number;
30
- top_k?: number;
31
- stop_sequences?: string[];
32
- stream?: boolean;
33
- tools?: any[];
34
- tool_choice?: any;
35
- metadata?: any;
36
- }
37
- /**
38
- * Anthropic Messages响应接口
39
- */
40
- export interface MessagesResponse {
41
- id: string;
42
- type: 'message';
43
- role: 'assistant';
44
- content: Array<{
45
- type: 'text' | 'tool_use' | 'tool_result';
46
- text?: string;
47
- id?: string;
48
- name?: string;
49
- input?: any;
50
- content?: any;
51
- is_error?: boolean;
52
- }>;
53
- model: string;
54
- stop_reason: 'end_turn' | 'max_tokens' | 'stop_sequence' | 'tool_use';
55
- stop_sequence?: string | null;
56
- usage: {
57
- input_tokens: number;
58
- output_tokens: number;
59
- };
60
- error?: any;
61
- }
62
- /**
63
- * Messages请求格式 (Anthropic)
64
- */
65
- export interface MessagesRequest {
66
- model: string;
67
- messages: Array<{
68
- role: 'user' | 'assistant';
69
- content: string | Array<{
70
- type: 'text' | 'image';
71
- text?: string;
72
- source?: {
73
- type: 'base64';
74
- media_type: string;
75
- data: string;
76
- };
77
- }>;
78
- }>;
79
- system?: string;
80
- max_tokens: number;
81
- temperature?: number;
82
- top_p?: number;
83
- top_k?: number;
84
- stop_sequences?: string[];
85
- stream?: boolean;
86
- tools?: any[];
87
- tool_choice?: any;
88
- metadata?: any;
89
- }
90
- /**
91
- * Messages响应格式 (Anthropic)
92
- */
93
- export interface MessagesResponse {
94
- id: string;
95
- type: 'message';
96
- role: 'assistant';
97
- content: Array<{
98
- type: 'text' | 'tool_use' | 'tool_result';
99
- text?: string;
100
- id?: string;
101
- name?: string;
102
- input?: any;
103
- content?: any;
104
- is_error?: boolean;
105
- }>;
106
- model: string;
107
- stop_reason: 'end_turn' | 'max_tokens' | 'stop_sequence' | 'tool_use';
108
- stop_sequence?: string | null;
109
- usage: {
110
- input_tokens: number;
111
- output_tokens: number;
112
- };
113
- }
114
- /**
115
- * Messages端点处理器
116
- */
117
- export declare class MessagesEndpointHandler extends BaseEndpointHandler {
118
- constructor(hooksAdapter: HooksIntegration);
119
- /**
120
- * 处理Messages端点请求预处理 - llmswitch-core只负责预处理
121
- */
122
- protected processEndpointRequest(request: any, context: LLMSwitchHookContext): Promise<LLMSwitchProcessingResult>;
123
- /**
124
- * 处理流式Messages请求
125
- */
126
- protected processStreamingEndpointRequest(request: any, context: LLMSwitchHookContext): AsyncIterable<SSEEvent>;
127
- /**
128
- * 验证Messages请求格式
129
- */
130
- private validateMessagesRequest;
131
- /**
132
- * 预处理请求 - 协议转换、工具调用规范化等
133
- */
134
- protected preprocessRequest(request: any, context: LLMSwitchHookContext): Promise<any>;
135
- /**
136
- * 规范化工具调用
137
- */
138
- private normalizeTools;
139
- /**
140
- * 规范化消息
141
- */
142
- private normalizeMessages;
143
- /**
144
- * 处理内容项
145
- */
146
- private processContentItems;
147
- /**
148
- * 验证响应格式
149
- */
150
- private validateResponse;
151
- /**
152
- * 生成模拟响应内容
153
- */
154
- private generateMockResponse;
155
- /**
156
- * 计算Token数量(使用精确计算)
157
- */
158
- private calculateTokens;
159
- /**
160
- * 计算请求的token数量(使用精确计算)
161
- */
162
- private calculateRequestTokens;
163
- /**
164
- * 生成路径标识符
165
- */
166
- protected generatePathIdentifier(request: any): string;
167
- /**
168
- * 检测处理模式
169
- */
170
- protected detectProcessingMode(request: any): ProcessingMode;
171
- }