@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,83 +0,0 @@
1
- // Server-side raw HTML fetcher (no markdown conversion)
2
- // Stage A: standalone utility, not yet wired into tool governance.
3
- function sanitizeHeaders(h) {
4
- if (!h)
5
- return undefined;
6
- const out = {};
7
- const allow = new Set(["user-agent", "accept", "accept-language"]);
8
- for (const [k, v] of Object.entries(h)) {
9
- const key = String(k).toLowerCase();
10
- if (!allow.has(key))
11
- continue;
12
- if (typeof v === 'string')
13
- out[key] = v;
14
- }
15
- return Object.keys(out).length ? out : undefined;
16
- }
17
- function isHtmlContentType(ct) {
18
- if (!ct)
19
- return false;
20
- const s = ct.toLowerCase();
21
- return s.includes('text/html');
22
- }
23
- export async function fetchRawHtml(url, opts = {}) {
24
- try {
25
- const u = new URL(String(url));
26
- if (u.protocol !== 'https:' && u.protocol !== 'http:') {
27
- return { ok: false, error: `unsupported_scheme: ${u.protocol}`, url };
28
- }
29
- }
30
- catch {
31
- return { ok: false, error: 'invalid_url', url };
32
- }
33
- const timeoutMs = typeof opts.timeoutMs === 'number' && opts.timeoutMs > 0 ? Math.min(opts.timeoutMs, 60000) : 15000;
34
- const follow = opts.followRedirects !== false;
35
- const maxBytes = typeof opts.maxBytes === 'number' && opts.maxBytes > 0 ? Math.min(opts.maxBytes, 5 * 1024 * 1024) : 512 * 1024;
36
- const headers = sanitizeHeaders(opts.headers);
37
- const ctrl = new AbortController();
38
- const to = setTimeout(() => ctrl.abort(), timeoutMs);
39
- try {
40
- const resp = await fetch(url, {
41
- redirect: follow ? 'follow' : 'manual',
42
- signal: ctrl.signal,
43
- headers
44
- });
45
- const status = resp.status;
46
- const ct = resp.headers.get('content-type');
47
- if (!isHtmlContentType(ct)) {
48
- return { ok: false, error: `unsupported_content_type: ${ct ?? 'unknown'}`, status, contentType: ct, url };
49
- }
50
- // If content-length provided and too big, abort early
51
- const cl = resp.headers.get('content-length');
52
- if (cl) {
53
- const n = Number(cl);
54
- if (!Number.isNaN(n) && n > maxBytes) {
55
- return { ok: false, error: `content_too_large: ${n} > ${maxBytes}`, status, contentType: ct, url };
56
- }
57
- }
58
- // Read text; enforce size after the fact if needed
59
- const text = await resp.text();
60
- const size = Buffer.byteLength(text, 'utf8');
61
- if (size > maxBytes) {
62
- // Truncate roughly to maxBytes
63
- // Convert to Buffer and slice; may cut multi-byte boundaries but acceptable for raw preview use
64
- const buf = Buffer.from(text, 'utf8');
65
- const truncated = buf.subarray(0, maxBytes).toString('utf8');
66
- return { ok: true, html: truncated, status, contentType: ct, url };
67
- }
68
- if (status < 200 || status >= 300) {
69
- return { ok: false, error: `url_not_accessible: ${status}`, status, contentType: ct, url };
70
- }
71
- return { ok: true, html: text, status, contentType: ct, url };
72
- }
73
- catch (e) {
74
- const msg = (e && typeof e.message === 'string') ? e.message : String(e);
75
- if (msg && /aborted|timeout/i.test(msg)) {
76
- return { ok: false, error: 'timeout', url };
77
- }
78
- return { ok: false, error: `network_error: ${msg}`, url };
79
- }
80
- finally {
81
- clearTimeout(to);
82
- }
83
- }
@@ -1,65 +0,0 @@
1
- /**
2
- * 核心转换适配器(V2)
3
- *
4
- * 不依赖旧版本符号,统一封装规范化、工具治理与协议桥接的入口。
5
- */
6
- /**
7
- * 核心适配器配置(V2)
8
- */
9
- export interface CoreAdapterConfig {
10
- baseDir?: string;
11
- /** Legacy alias for pipelineConfigPath */
12
- profilesPath?: string;
13
- pipelineConfigPath?: string;
14
- enableToolCanonicalization?: boolean;
15
- enableRequestNormalization?: boolean;
16
- }
17
- /**
18
- * 核心转换适配器(V2)
19
- */
20
- export declare class CoreConversionAdapter {
21
- private config;
22
- private initialized;
23
- constructor(config?: CoreAdapterConfig);
24
- /**
25
- * 初始化适配器
26
- */
27
- initialize(): Promise<void>;
28
- /**
29
- * 处理Chat请求(V2核心)
30
- */
31
- processChatRequest(request: any): Promise<any>;
32
- /**
33
- * 处理Messages请求(V2核心)
34
- */
35
- processMessagesRequest(request: any): Promise<any>;
36
- /**
37
- * 处理Responses请求(V2核心)
38
- */
39
- processResponsesRequest(request: any): Promise<any>;
40
- /**
41
- * 处理响应(V2核心)
42
- */
43
- processResponse(response: any, originalRequest: any, endpoint: string): Promise<any>;
44
- /**
45
- * 将Messages格式转换为Chat格式
46
- */
47
- private convertMessagesToChat;
48
- /**
49
- * 将Chat格式转换为Messages格式
50
- */
51
- private convertChatToMessages;
52
- /**
53
- * 将Responses格式转换为Chat格式
54
- */
55
- private convertResponsesToChat;
56
- /**
57
- * 将Chat格式转换为Responses格式
58
- */
59
- private convertChatToResponses;
60
- /**
61
- * 检查适配器是否可用
62
- */
63
- isAvailable(): boolean;
64
- }
65
- export declare const defaultCoreAdapter: CoreConversionAdapter;
@@ -1,183 +0,0 @@
1
- /**
2
- * 核心转换适配器(V2)
3
- *
4
- * 不依赖旧版本符号,统一封装规范化、工具治理与协议桥接的入口。
5
- */
6
- // SwitchOrchestrator removed; adapter no longer constructs pipelines
7
- import { normalizeChatRequest } from '../conversion/shared/openai-message-normalize.js';
8
- /**
9
- * 核心转换适配器(V2)
10
- */
11
- export class CoreConversionAdapter {
12
- config;
13
- initialized = false;
14
- constructor(config = {}) {
15
- this.config = {
16
- baseDir: process.cwd(),
17
- profilesPath: 'config/llmswitch/pipeline-config.json',
18
- enableToolCanonicalization: true,
19
- enableRequestNormalization: true,
20
- ...config
21
- };
22
- }
23
- /**
24
- * 初始化适配器
25
- */
26
- async initialize() {
27
- if (this.initialized)
28
- return;
29
- this.initialized = true;
30
- }
31
- /**
32
- * 处理Chat请求(V2核心)
33
- */
34
- async processChatRequest(request) {
35
- if (!this.initialized)
36
- await this.initialize();
37
- let processedRequest = { ...request };
38
- try {
39
- // 规范化请求
40
- processedRequest = this.config.enableRequestNormalization
41
- ? normalizeChatRequest(request)
42
- : request;
43
- // Tool governance is now handled exclusively in ChatProcessNode (conversion-v3)
44
- // Disabled to prevent bash double-wrapping
45
- // processedRequest = await processChatRequestTools(processedRequest);
46
- return processedRequest;
47
- }
48
- catch (error) {
49
- console.warn('Chat请求处理失败,返回原始请求:', error);
50
- return request;
51
- }
52
- }
53
- /**
54
- * 处理Messages请求(V2核心)
55
- */
56
- async processMessagesRequest(request) {
57
- if (!this.initialized)
58
- await this.initialize();
59
- let processedRequest = { ...request };
60
- try {
61
- // 转换Anthropic格式到OpenAI格式进行处理
62
- const chatFormatRequest = this.convertMessagesToChat(request);
63
- // 使用Chat规范化逻辑
64
- const processedChatRequest = await this.processChatRequest(chatFormatRequest);
65
- // 转换回Messages格式
66
- processedRequest = this.convertChatToMessages(processedChatRequest);
67
- return processedRequest;
68
- }
69
- catch (error) {
70
- console.warn('Messages请求处理失败,返回原始请求:', error);
71
- return request;
72
- }
73
- }
74
- /**
75
- * 处理Responses请求(V2核心)
76
- */
77
- async processResponsesRequest(request) {
78
- if (!this.initialized)
79
- await this.initialize();
80
- let processedRequest = { ...request };
81
- try {
82
- // 转换Responses格式到Chat格式进行处理
83
- const chatFormatRequest = this.convertResponsesToChat(request);
84
- // 使用Chat规范化逻辑
85
- const processedChatRequest = await this.processChatRequest(chatFormatRequest);
86
- // 转换回Responses格式
87
- processedRequest = this.convertChatToResponses(processedChatRequest);
88
- return processedRequest;
89
- }
90
- catch (error) {
91
- console.warn('Responses请求处理失败,返回原始请求:', error);
92
- return request;
93
- }
94
- }
95
- /**
96
- * 处理响应(V2核心)
97
- */
98
- async processResponse(response, originalRequest, endpoint) {
99
- if (!this.initialized)
100
- await this.initialize();
101
- try {
102
- return response;
103
- }
104
- catch (error) {
105
- console.warn('响应处理失败,返回原始响应:', error);
106
- return response;
107
- }
108
- }
109
- /**
110
- * 将Messages格式转换为Chat格式
111
- */
112
- convertMessagesToChat(messagesRequest) {
113
- return {
114
- model: messagesRequest.model,
115
- messages: [
116
- ...(messagesRequest.system ? [{ role: 'system', content: messagesRequest.system }] : []),
117
- ...messagesRequest.messages
118
- ],
119
- tools: messagesRequest.tools,
120
- temperature: messagesRequest.temperature,
121
- max_tokens: messagesRequest.max_tokens,
122
- stream: messagesRequest.stream
123
- };
124
- }
125
- /**
126
- * 将Chat格式转换为Messages格式
127
- */
128
- convertChatToMessages(chatRequest) {
129
- const messages = chatRequest.messages || [];
130
- const systemMessage = messages.find((m) => m.role === 'system');
131
- const chatMessages = messages.filter((m) => m.role !== 'system');
132
- return {
133
- model: chatRequest.model,
134
- messages: chatMessages,
135
- system: systemMessage?.content,
136
- tools: chatRequest.tools,
137
- temperature: chatRequest.temperature,
138
- max_tokens: chatRequest.max_tokens,
139
- stream: chatRequest.stream
140
- };
141
- }
142
- /**
143
- * 将Responses格式转换为Chat格式
144
- */
145
- convertResponsesToChat(responsesRequest) {
146
- return {
147
- model: responsesRequest.model,
148
- messages: [
149
- {
150
- role: 'user',
151
- content: responsesRequest.input
152
- }
153
- ],
154
- tools: responsesRequest.tools,
155
- temperature: responsesRequest.temperature,
156
- max_tokens: responsesRequest.max_tokens,
157
- stream: responsesRequest.stream
158
- };
159
- }
160
- /**
161
- * 将Chat格式转换为Responses格式
162
- */
163
- convertChatToResponses(chatRequest) {
164
- const messages = chatRequest.messages || [];
165
- const lastMessage = messages[messages.length - 1];
166
- return {
167
- model: chatRequest.model,
168
- input: typeof lastMessage?.content === 'string' ? lastMessage.content : '',
169
- tools: chatRequest.tools,
170
- temperature: chatRequest.temperature,
171
- max_tokens: chatRequest.max_tokens,
172
- stream: chatRequest.stream
173
- };
174
- }
175
- /**
176
- * 检查适配器是否可用
177
- */
178
- isAvailable() {
179
- return this.initialized; // Orchestrator 可选
180
- }
181
- }
182
- // 默认适配器实例
183
- export const defaultCoreAdapter = new CoreConversionAdapter();
@@ -1,88 +0,0 @@
1
- /**
2
- * 错误工厂
3
- *
4
- * 提供统一的错误创建机制,遵循零fallback原则
5
- */
6
- import type { LLMSwitchErrorInfo } from '../api/llmswitch-types.js';
7
- /**
8
- * 错误类型枚举
9
- */
10
- export declare enum ErrorType {
11
- VALIDATION_ERROR = "validation_error",
12
- CONVERSION_ERROR = "conversion_error",
13
- PROCESSING_ERROR = "processing_error",
14
- HOOK_ERROR = "hook_error",
15
- TIMEOUT_ERROR = "timeout_error",
16
- ENDPOINT_ERROR = "endpoint_error",
17
- PROTOCOL_ERROR = "protocol_error",
18
- TOOL_ERROR = "tool_error"
19
- }
20
- /**
21
- * LLMSwitch标准错误类
22
- */
23
- export declare class LLMSwitchError extends Error {
24
- readonly code: string;
25
- readonly type: ErrorType;
26
- readonly details?: any;
27
- readonly timestamp: number;
28
- readonly context?: Record<string, any>;
29
- constructor(type: ErrorType, message: string, code: string, details?: any, context?: Record<string, any>, cause?: Error);
30
- toJSON(): LLMSwitchErrorInfo;
31
- }
32
- /**
33
- * 错误工厂类
34
- */
35
- export declare class ErrorFactory {
36
- /**
37
- * 创建验证错误
38
- */
39
- static validationError(message: string, code?: string, details?: any, context?: Record<string, any>): LLMSwitchError;
40
- /**
41
- * 创建转换错误
42
- */
43
- static conversionError(message: string, code?: string, details?: any, context?: Record<string, any>): LLMSwitchError;
44
- /**
45
- * 创建处理错误
46
- */
47
- static processingError(message: string, code?: string, details?: any, context?: Record<string, any>): LLMSwitchError;
48
- /**
49
- * 创建Hook错误
50
- */
51
- static hookError(message: string, code?: string, details?: any, context?: Record<string, any>): LLMSwitchError;
52
- /**
53
- * 创建超时错误
54
- */
55
- static timeoutError(message: string, code?: string, details?: any, context?: Record<string, any>): LLMSwitchError;
56
- /**
57
- * 创建端点错误
58
- */
59
- static endpointError(message: string, code?: string, details?: any, context?: Record<string, any>): LLMSwitchError;
60
- /**
61
- * 创建协议错误
62
- */
63
- static protocolError(message: string, code?: string, details?: any, context?: Record<string, any>): LLMSwitchError;
64
- /**
65
- * 创建工具错误
66
- */
67
- static toolError(message: string, code?: string, details?: any, context?: Record<string, any>): LLMSwitchError;
68
- /**
69
- * 创建缺失必需字段错误
70
- */
71
- static missingRequiredField(fieldName: string, details?: any): LLMSwitchError;
72
- /**
73
- * 创建无效参数错误
74
- */
75
- static invalidParameter(parameterName: string, reason?: string, details?: any): LLMSwitchError;
76
- /**
77
- * 创建不支持的操作错误
78
- */
79
- static unsupportedOperation(operation: string, details?: any): LLMSwitchError;
80
- /**
81
- * 从标准Error创建LLMSwitch错误
82
- */
83
- static fromStandardError(error: Error, type?: ErrorType, context?: Record<string, any>): LLMSwitchError;
84
- /**
85
- * 包装错误以包含必要的错误信息
86
- */
87
- static wrapError(error: Error, defaultType?: ErrorType, context?: Record<string, any>): LLMSwitchError;
88
- }
@@ -1,138 +0,0 @@
1
- /**
2
- * 错误工厂
3
- *
4
- * 提供统一的错误创建机制,遵循零fallback原则
5
- */
6
- /**
7
- * 错误类型枚举
8
- */
9
- export var ErrorType;
10
- (function (ErrorType) {
11
- ErrorType["VALIDATION_ERROR"] = "validation_error";
12
- ErrorType["CONVERSION_ERROR"] = "conversion_error";
13
- ErrorType["PROCESSING_ERROR"] = "processing_error";
14
- ErrorType["HOOK_ERROR"] = "hook_error";
15
- ErrorType["TIMEOUT_ERROR"] = "timeout_error";
16
- ErrorType["ENDPOINT_ERROR"] = "endpoint_error";
17
- ErrorType["PROTOCOL_ERROR"] = "protocol_error";
18
- ErrorType["TOOL_ERROR"] = "tool_error";
19
- })(ErrorType || (ErrorType = {}));
20
- /**
21
- * LLMSwitch标准错误类
22
- */
23
- export class LLMSwitchError extends Error {
24
- code;
25
- type;
26
- details;
27
- timestamp;
28
- context;
29
- constructor(type, message, code, details, context, cause) {
30
- super(message);
31
- this.name = 'LLMSwitchError';
32
- this.type = type;
33
- this.message = message;
34
- this.code = code;
35
- this.details = details;
36
- this.timestamp = Date.now();
37
- this.context = context;
38
- if (cause) {
39
- this.stack = cause.stack;
40
- }
41
- }
42
- toJSON() {
43
- return {
44
- type: this.type,
45
- message: this.message,
46
- timestamp: this.timestamp,
47
- context: this.context,
48
- cause: this.cause
49
- };
50
- }
51
- }
52
- /**
53
- * 错误工厂类
54
- */
55
- export class ErrorFactory {
56
- /**
57
- * 创建验证错误
58
- */
59
- static validationError(message, code = 'VALIDATION_ERROR', details, context) {
60
- return new LLMSwitchError(ErrorType.VALIDATION_ERROR, message, code, details, context);
61
- }
62
- /**
63
- * 创建转换错误
64
- */
65
- static conversionError(message, code = 'CONVERSION_ERROR', details, context) {
66
- return new LLMSwitchError(ErrorType.CONVERSION_ERROR, message, code, details, context);
67
- }
68
- /**
69
- * 创建处理错误
70
- */
71
- static processingError(message, code = 'PROCESSING_ERROR', details, context) {
72
- return new LLMSwitchError(ErrorType.PROCESSING_ERROR, message, code, details, context);
73
- }
74
- /**
75
- * 创建Hook错误
76
- */
77
- static hookError(message, code = 'HOOK_ERROR', details, context) {
78
- return new LLMSwitchError(ErrorType.HOOK_ERROR, message, code, details, context);
79
- }
80
- /**
81
- * 创建超时错误
82
- */
83
- static timeoutError(message, code = 'TIMEOUT_ERROR', details, context) {
84
- return new LLMSwitchError(ErrorType.TIMEOUT_ERROR, message, code, details, context);
85
- }
86
- /**
87
- * 创建端点错误
88
- */
89
- static endpointError(message, code = 'ENDPOINT_ERROR', details, context) {
90
- return new LLMSwitchError(ErrorType.ENDPOINT_ERROR, message, code, details, context);
91
- }
92
- /**
93
- * 创建协议错误
94
- */
95
- static protocolError(message, code = 'PROTOCOL_ERROR', details, context) {
96
- return new LLMSwitchError(ErrorType.PROTOCOL_ERROR, message, code, details, context);
97
- }
98
- /**
99
- * 创建工具错误
100
- */
101
- static toolError(message, code = 'TOOL_ERROR', details, context) {
102
- return new LLMSwitchError(ErrorType.TOOL_ERROR, message, code, details, context);
103
- }
104
- /**
105
- * 创建缺失必需字段错误
106
- */
107
- static missingRequiredField(fieldName, details) {
108
- return this.validationError(`Missing required field: ${fieldName}`, 'MISSING_FIELD', details);
109
- }
110
- /**
111
- * 创建无效参数错误
112
- */
113
- static invalidParameter(parameterName, reason, details) {
114
- const message = reason ? `Invalid parameter: ${parameterName} (${reason})` : `Invalid parameter: ${parameterName}`;
115
- return this.validationError(message, 'INVALID_PARAMETER', details);
116
- }
117
- /**
118
- * 创建不支持的操作错误
119
- */
120
- static unsupportedOperation(operation, details) {
121
- return this.processingError(`Unsupported operation: ${operation}`, 'UNSUPPORTED_OPERATION', details);
122
- }
123
- /**
124
- * 从标准Error创建LLMSwitch错误
125
- */
126
- static fromStandardError(error, type = ErrorType.PROCESSING_ERROR, context) {
127
- return new LLMSwitchError(type, error.message, 'STANDARD_ERROR', { originalError: error }, context, error);
128
- }
129
- /**
130
- * 包装错误以包含必要的错误信息
131
- */
132
- static wrapError(error, defaultType = ErrorType.PROCESSING_ERROR, context) {
133
- if (error instanceof LLMSwitchError) {
134
- return error;
135
- }
136
- return this.fromStandardError(error, defaultType, context);
137
- }
138
- }