@jsonstudio/llms 0.4.3 → 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 (416) 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/sse/sse-to-json/builders/response-builder.js +2 -1
  20. package/dist/sse/sse-to-json/chat-sse-to-json-converter.js +37 -23
  21. package/dist/sse/sse-to-json/parsers/sse-parser.js +20 -12
  22. package/dist/sse/sse-to-json/responses-sse-to-json-converter.d.ts +1 -0
  23. package/dist/sse/sse-to-json/responses-sse-to-json-converter.js +10 -8
  24. package/dist/sse/types/chat-types.d.ts +9 -6
  25. package/dist/sse/types/conversion-context.d.ts +14 -11
  26. package/dist/sse/types/core-interfaces.d.ts +6 -2
  27. package/dist/sse/types/index.d.ts +1 -1
  28. package/dist/sse/types/responses-types.d.ts +20 -20
  29. package/dist/sse/types/sse-events.d.ts +4 -3
  30. package/dist/sse/types/stream-state.d.ts +34 -39
  31. package/dist/sse/types/utility-types.d.ts +47 -43
  32. package/dist/sse/types/utility-types.js +10 -13
  33. package/dist/tools/tool-registry.js +156 -98
  34. package/package.json +7 -7
  35. package/dist/api/index.d.ts +0 -10
  36. package/dist/api/index.js +0 -11
  37. package/dist/api/llmswitch-config.d.ts +0 -15
  38. package/dist/api/llmswitch-config.js +0 -415
  39. package/dist/api/llmswitch-types.d.ts +0 -412
  40. package/dist/api/llmswitch-types.js +0 -60
  41. package/dist/bridge/routecodex-adapter.d.ts +0 -74
  42. package/dist/config/index.d.ts +0 -3
  43. package/dist/config/index.js +0 -5
  44. package/dist/config-unified/enhanced-path-resolver.d.ts +0 -5
  45. package/dist/config-unified/unified-config.d.ts +0 -26
  46. package/dist/conversion/codec-registry.d.ts +0 -10
  47. package/dist/conversion/codecs/anthropic-openai-codec.d.ts +0 -23
  48. package/dist/conversion/codecs/gemini-openai-codec.d.ts +0 -16
  49. package/dist/conversion/codecs/openai-openai-codec.d.ts +0 -12
  50. package/dist/conversion/codecs/responses-openai-codec.d.ts +0 -12
  51. package/dist/conversion/config/config-manager.d.ts +0 -212
  52. package/dist/conversion/conversion-v3/adapters/index.d.ts +0 -2
  53. package/dist/conversion/conversion-v3/adapters/index.js +0 -1
  54. package/dist/conversion/conversion-v3/adapters/v3-to-standard-adapter.d.ts +0 -38
  55. package/dist/conversion/conversion-v3/adapters/v3-to-standard-adapter.js +0 -55
  56. package/dist/conversion/conversion-v3/compatibility/compatibility-profiles.d.ts +0 -22
  57. package/dist/conversion/conversion-v3/compatibility/compatibility-profiles.js +0 -84
  58. package/dist/conversion/conversion-v3/compatibility/compatibility-stages.d.ts +0 -4
  59. package/dist/conversion/conversion-v3/compatibility/compatibility-stages.js +0 -285
  60. package/dist/conversion/conversion-v3/compatibility/index.d.ts +0 -3
  61. package/dist/conversion/conversion-v3/compatibility/index.js +0 -2
  62. package/dist/conversion/conversion-v3/config/default-configs.d.ts +0 -48
  63. package/dist/conversion/conversion-v3/config/default-configs.js +0 -1007
  64. package/dist/conversion/conversion-v3/config/index.d.ts +0 -5
  65. package/dist/conversion/conversion-v3/config/index.js +0 -5
  66. package/dist/conversion/conversion-v3/config/pipeline-config-manager.d.ts +0 -49
  67. package/dist/conversion/conversion-v3/config/pipeline-config-manager.js +0 -65
  68. package/dist/conversion/conversion-v3/index.d.ts +0 -11
  69. package/dist/conversion/conversion-v3/index.js +0 -17
  70. package/dist/conversion/conversion-v3/nodes/index.d.ts +0 -56
  71. package/dist/conversion/conversion-v3/nodes/index.js +0 -149
  72. package/dist/conversion/conversion-v3/nodes/input/anthropic-input-node.d.ts +0 -25
  73. package/dist/conversion/conversion-v3/nodes/input/anthropic-input-node.js +0 -56
  74. package/dist/conversion/conversion-v3/nodes/input/base-input-node.d.ts +0 -75
  75. package/dist/conversion/conversion-v3/nodes/input/base-input-node.js +0 -237
  76. package/dist/conversion/conversion-v3/nodes/input/chat-input-node.d.ts +0 -25
  77. package/dist/conversion/conversion-v3/nodes/input/chat-input-node.js +0 -56
  78. package/dist/conversion/conversion-v3/nodes/input/chat-shape-helpers.d.ts +0 -4
  79. package/dist/conversion/conversion-v3/nodes/input/chat-shape-helpers.js +0 -197
  80. package/dist/conversion/conversion-v3/nodes/input/gemini-input-node.d.ts +0 -16
  81. package/dist/conversion/conversion-v3/nodes/input/gemini-input-node.js +0 -125
  82. package/dist/conversion/conversion-v3/nodes/input/index.d.ts +0 -8
  83. package/dist/conversion/conversion-v3/nodes/input/index.js +0 -8
  84. package/dist/conversion/conversion-v3/nodes/input/input-decision.d.ts +0 -46
  85. package/dist/conversion/conversion-v3/nodes/input/input-decision.js +0 -125
  86. package/dist/conversion/conversion-v3/nodes/input/responses-input-node.d.ts +0 -20
  87. package/dist/conversion/conversion-v3/nodes/input/responses-input-node.js +0 -51
  88. package/dist/conversion/conversion-v3/nodes/output/anthropic-output-node.d.ts +0 -71
  89. package/dist/conversion/conversion-v3/nodes/output/anthropic-output-node.js +0 -320
  90. package/dist/conversion/conversion-v3/nodes/output/base-output-node.d.ts +0 -116
  91. package/dist/conversion/conversion-v3/nodes/output/base-output-node.js +0 -512
  92. package/dist/conversion/conversion-v3/nodes/output/index.d.ts +0 -7
  93. package/dist/conversion/conversion-v3/nodes/output/index.js +0 -7
  94. package/dist/conversion/conversion-v3/nodes/output/openai-output-node.d.ts +0 -71
  95. package/dist/conversion/conversion-v3/nodes/output/openai-output-node.js +0 -293
  96. package/dist/conversion/conversion-v3/nodes/output/output-decision.d.ts +0 -68
  97. package/dist/conversion/conversion-v3/nodes/output/output-decision.js +0 -161
  98. package/dist/conversion/conversion-v3/nodes/output/responses-output-node.d.ts +0 -64
  99. package/dist/conversion/conversion-v3/nodes/output/responses-output-node.js +0 -323
  100. package/dist/conversion/conversion-v3/nodes/process/base-process-node.d.ts +0 -72
  101. package/dist/conversion/conversion-v3/nodes/process/base-process-node.js +0 -246
  102. package/dist/conversion/conversion-v3/nodes/process/chat-process-node.d.ts +0 -135
  103. package/dist/conversion/conversion-v3/nodes/process/chat-process-node.js +0 -854
  104. package/dist/conversion/conversion-v3/nodes/process/compatibility-process-node.d.ts +0 -29
  105. package/dist/conversion/conversion-v3/nodes/process/compatibility-process-node.js +0 -181
  106. package/dist/conversion/conversion-v3/nodes/process/index.d.ts +0 -10
  107. package/dist/conversion/conversion-v3/nodes/process/index.js +0 -10
  108. package/dist/conversion/conversion-v3/nodes/process/passthrough-process-node.d.ts +0 -59
  109. package/dist/conversion/conversion-v3/nodes/process/passthrough-process-node.js +0 -243
  110. package/dist/conversion/conversion-v3/nodes/process/response-process-node.d.ts +0 -17
  111. package/dist/conversion/conversion-v3/nodes/process/response-process-node.js +0 -213
  112. package/dist/conversion/conversion-v3/nodes/process/tool-process-node.d.ts +0 -30
  113. package/dist/conversion/conversion-v3/nodes/process/tool-process-node.js +0 -360
  114. package/dist/conversion/conversion-v3/nodes/process/virtual-router-process-node.d.ts +0 -40
  115. package/dist/conversion/conversion-v3/nodes/process/virtual-router-process-node.js +0 -430
  116. package/dist/conversion/conversion-v3/nodes/response/anthropic-response-input-node.d.ts +0 -12
  117. package/dist/conversion/conversion-v3/nodes/response/anthropic-response-input-node.js +0 -129
  118. package/dist/conversion/conversion-v3/nodes/response/chat-to-responses-response-node.d.ts +0 -15
  119. package/dist/conversion/conversion-v3/nodes/response/chat-to-responses-response-node.js +0 -57
  120. package/dist/conversion/conversion-v3/nodes/response/index.d.ts +0 -4
  121. package/dist/conversion/conversion-v3/nodes/response/index.js +0 -4
  122. package/dist/conversion/conversion-v3/nodes/response/openai-response-input-node.d.ts +0 -15
  123. package/dist/conversion/conversion-v3/nodes/response/openai-response-input-node.js +0 -87
  124. package/dist/conversion/conversion-v3/nodes/response/response-utils.d.ts +0 -1
  125. package/dist/conversion/conversion-v3/nodes/response/response-utils.js +0 -1
  126. package/dist/conversion/conversion-v3/nodes/response/responses-response-input-node.d.ts +0 -12
  127. package/dist/conversion/conversion-v3/nodes/response/responses-response-input-node.js +0 -67
  128. package/dist/conversion/conversion-v3/nodes/sse/index.d.ts +0 -3
  129. package/dist/conversion/conversion-v3/nodes/sse/index.js +0 -3
  130. package/dist/conversion/conversion-v3/nodes/sse/sse-input-node.d.ts +0 -27
  131. package/dist/conversion/conversion-v3/nodes/sse/sse-input-node.js +0 -165
  132. package/dist/conversion/conversion-v3/nodes/sse/sse-output-node.d.ts +0 -19
  133. package/dist/conversion/conversion-v3/nodes/sse/sse-output-node.js +0 -267
  134. package/dist/conversion/conversion-v3/nodes/sse/sse-passthrough-node.d.ts +0 -18
  135. package/dist/conversion/conversion-v3/nodes/sse/sse-passthrough-node.js +0 -48
  136. package/dist/conversion/conversion-v3/pipelines/index.d.ts +0 -6
  137. package/dist/conversion/conversion-v3/pipelines/index.js +0 -6
  138. package/dist/conversion/conversion-v3/pipelines/super-pipeline.d.ts +0 -112
  139. package/dist/conversion/conversion-v3/pipelines/super-pipeline.js +0 -566
  140. package/dist/conversion/conversion-v3/response/provider-response-converter.d.ts +0 -28
  141. package/dist/conversion/conversion-v3/response/provider-response-converter.js +0 -249
  142. package/dist/conversion/conversion-v3/sse/index.d.ts +0 -140
  143. package/dist/conversion/conversion-v3/sse/index.js +0 -115
  144. package/dist/conversion/conversion-v3/sse/json-to-sse/anthropic-json-to-sse-converter.d.ts +0 -11
  145. package/dist/conversion/conversion-v3/sse/json-to-sse/anthropic-json-to-sse-converter.js +0 -79
  146. package/dist/conversion/conversion-v3/sse/json-to-sse/chat-json-to-sse-converter.d.ts +0 -79
  147. package/dist/conversion/conversion-v3/sse/json-to-sse/chat-json-to-sse-converter.js +0 -296
  148. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/chat.d.ts +0 -55
  149. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/chat.js +0 -233
  150. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/responses.d.ts +0 -99
  151. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/responses.js +0 -599
  152. package/dist/conversion/conversion-v3/sse/json-to-sse/index.d.ts +0 -6
  153. package/dist/conversion/conversion-v3/sse/json-to-sse/index.js +0 -7
  154. package/dist/conversion/conversion-v3/sse/json-to-sse/responses-json-to-sse-converter.d.ts +0 -79
  155. package/dist/conversion/conversion-v3/sse/json-to-sse/responses-json-to-sse-converter.js +0 -322
  156. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/chat-sequencer.d.ts +0 -37
  157. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/chat-sequencer.js +0 -218
  158. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/responses-sequencer.d.ts +0 -40
  159. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/responses-sequencer.js +0 -263
  160. package/dist/conversion/conversion-v3/sse/registry/sse-codec-registry.d.ts +0 -32
  161. package/dist/conversion/conversion-v3/sse/registry/sse-codec-registry.js +0 -106
  162. package/dist/conversion/conversion-v3/sse/shared/chat-serializer.d.ts +0 -4
  163. package/dist/conversion/conversion-v3/sse/shared/chat-serializer.js +0 -40
  164. package/dist/conversion/conversion-v3/sse/shared/constants.d.ts +0 -272
  165. package/dist/conversion/conversion-v3/sse/shared/constants.js +0 -321
  166. package/dist/conversion/conversion-v3/sse/shared/serializers/base-serializer.d.ts +0 -158
  167. package/dist/conversion/conversion-v3/sse/shared/serializers/base-serializer.js +0 -210
  168. package/dist/conversion/conversion-v3/sse/shared/serializers/chat-event-serializer.d.ts +0 -82
  169. package/dist/conversion/conversion-v3/sse/shared/serializers/chat-event-serializer.js +0 -275
  170. package/dist/conversion/conversion-v3/sse/shared/serializers/index.d.ts +0 -39
  171. package/dist/conversion/conversion-v3/sse/shared/serializers/index.js +0 -54
  172. package/dist/conversion/conversion-v3/sse/shared/serializers/responses-event-serializer.d.ts +0 -123
  173. package/dist/conversion/conversion-v3/sse/shared/serializers/responses-event-serializer.js +0 -356
  174. package/dist/conversion/conversion-v3/sse/shared/serializers/types.d.ts +0 -51
  175. package/dist/conversion/conversion-v3/sse/shared/serializers/types.js +0 -4
  176. package/dist/conversion/conversion-v3/sse/shared/utils.d.ts +0 -254
  177. package/dist/conversion/conversion-v3/sse/shared/utils.js +0 -543
  178. package/dist/conversion/conversion-v3/sse/shared/writer.d.ts +0 -111
  179. package/dist/conversion/conversion-v3/sse/shared/writer.js +0 -268
  180. package/dist/conversion/conversion-v3/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +0 -13
  181. package/dist/conversion/conversion-v3/sse/sse-to-json/anthropic-sse-to-json-converter.js +0 -139
  182. package/dist/conversion/conversion-v3/sse/sse-to-json/builders/response-builder.d.ts +0 -165
  183. package/dist/conversion/conversion-v3/sse/sse-to-json/builders/response-builder.js +0 -776
  184. package/dist/conversion/conversion-v3/sse/sse-to-json/chat-sse-to-json-converter.d.ts +0 -106
  185. package/dist/conversion/conversion-v3/sse/sse-to-json/chat-sse-to-json-converter.js +0 -540
  186. package/dist/conversion/conversion-v3/sse/sse-to-json/index.d.ts +0 -6
  187. package/dist/conversion/conversion-v3/sse/sse-to-json/index.js +0 -7
  188. package/dist/conversion/conversion-v3/sse/sse-to-json/parsers/sse-parser.d.ts +0 -73
  189. package/dist/conversion/conversion-v3/sse/sse-to-json/parsers/sse-parser.js +0 -332
  190. package/dist/conversion/conversion-v3/sse/sse-to-json/responses-sse-to-json-converter.d.ts +0 -59
  191. package/dist/conversion/conversion-v3/sse/sse-to-json/responses-sse-to-json-converter.js +0 -270
  192. package/dist/conversion/conversion-v3/sse/types/anthropic-types.d.ts +0 -87
  193. package/dist/conversion/conversion-v3/sse/types/anthropic-types.js +0 -5
  194. package/dist/conversion/conversion-v3/sse/types/chat-types.d.ts +0 -308
  195. package/dist/conversion/conversion-v3/sse/types/chat-types.js +0 -32
  196. package/dist/conversion/conversion-v3/sse/types/conversion-context.d.ts +0 -211
  197. package/dist/conversion/conversion-v3/sse/types/conversion-context.js +0 -20
  198. package/dist/conversion/conversion-v3/sse/types/core-interfaces.d.ts +0 -90
  199. package/dist/conversion/conversion-v3/sse/types/core-interfaces.js +0 -5
  200. package/dist/conversion/conversion-v3/sse/types/index.d.ts +0 -14
  201. package/dist/conversion/conversion-v3/sse/types/index.js +0 -7
  202. package/dist/conversion/conversion-v3/sse/types/responses-types.d.ts +0 -328
  203. package/dist/conversion/conversion-v3/sse/types/responses-types.js +0 -38
  204. package/dist/conversion/conversion-v3/sse/types/sse-events.d.ts +0 -180
  205. package/dist/conversion/conversion-v3/sse/types/sse-events.js +0 -150
  206. package/dist/conversion/conversion-v3/sse/types/stream-state.d.ts +0 -204
  207. package/dist/conversion/conversion-v3/sse/types/stream-state.js +0 -44
  208. package/dist/conversion/conversion-v3/sse/types/utility-types.d.ts +0 -230
  209. package/dist/conversion/conversion-v3/sse/types/utility-types.js +0 -49
  210. package/dist/conversion/conversion-v3/standards/context-adapter.d.ts +0 -146
  211. package/dist/conversion/conversion-v3/standards/context-adapter.js +0 -438
  212. package/dist/conversion/conversion-v3/standards/errors.d.ts +0 -38
  213. package/dist/conversion/conversion-v3/standards/errors.js +0 -27
  214. package/dist/conversion/conversion-v3/standards/index.d.ts +0 -15
  215. package/dist/conversion/conversion-v3/standards/index.js +0 -11
  216. package/dist/conversion/conversion-v3/standards/node-capabilities.d.ts +0 -123
  217. package/dist/conversion/conversion-v3/standards/node-capabilities.js +0 -330
  218. package/dist/conversion/conversion-v3/standards/pipeline-context.d.ts +0 -237
  219. package/dist/conversion/conversion-v3/standards/pipeline-context.js +0 -84
  220. package/dist/conversion/conversion-v3/standards/pipeline-node.d.ts +0 -196
  221. package/dist/conversion/conversion-v3/standards/pipeline-node.js +0 -316
  222. package/dist/conversion/conversion-v3/standards/snapshot-handles.d.ts +0 -24
  223. package/dist/conversion/conversion-v3/standards/snapshot-handles.js +0 -49
  224. package/dist/conversion/conversion-v3/types/config-types.d.ts +0 -242
  225. package/dist/conversion/conversion-v3/types/config-types.js +0 -13
  226. package/dist/conversion/conversion-v3/types/index.d.ts +0 -8
  227. package/dist/conversion/conversion-v3/types/index.js +0 -11
  228. package/dist/conversion/conversion-v3/types/node-types.d.ts +0 -211
  229. package/dist/conversion/conversion-v3/types/node-types.js +0 -20
  230. package/dist/conversion/conversion-v3/types/pipeline-types.d.ts +0 -246
  231. package/dist/conversion/conversion-v3/types/pipeline-types.js +0 -26
  232. package/dist/conversion/conversion-v3/types/request-types.d.ts +0 -293
  233. package/dist/conversion/conversion-v3/types/request-types.js +0 -26
  234. package/dist/conversion/conversion-v3/utils/provider-payload-sanitizer.d.ts +0 -10
  235. package/dist/conversion/conversion-v3/utils/provider-payload-sanitizer.js +0 -103
  236. package/dist/conversion/conversion-v3/validations/index.d.ts +0 -8
  237. package/dist/conversion/conversion-v3/validations/index.js +0 -7
  238. package/dist/conversion/conversion-v3/validations/node-graph-validator.d.ts +0 -116
  239. package/dist/conversion/conversion-v3/validations/node-graph-validator.js +0 -505
  240. package/dist/conversion/conversion-v3/validations/tool-governance-enforcer.d.ts +0 -139
  241. package/dist/conversion/conversion-v3/validations/tool-governance-enforcer.js +0 -338
  242. package/dist/conversion/hub/config/types.d.ts +0 -26
  243. package/dist/conversion/hub/core/detour-registry.d.ts +0 -9
  244. package/dist/conversion/hub/core/hub-context.d.ts +0 -21
  245. package/dist/conversion/hub/core/index.d.ts +0 -3
  246. package/dist/conversion/hub/core/stage-driver.d.ts +0 -30
  247. package/dist/conversion/hub/format-adapters/anthropic-format-adapter.d.ts +0 -16
  248. package/dist/conversion/hub/format-adapters/chat-format-adapter.d.ts +0 -17
  249. package/dist/conversion/hub/format-adapters/gemini-format-adapter.d.ts +0 -16
  250. package/dist/conversion/hub/format-adapters/index.d.ts +0 -21
  251. package/dist/conversion/hub/format-adapters/responses-format-adapter.d.ts +0 -17
  252. package/dist/conversion/hub/hub-feature.d.ts +0 -1
  253. package/dist/conversion/hub/node-support.d.ts +0 -19
  254. package/dist/conversion/hub/pipeline/hub-pipeline.d.ts +0 -68
  255. package/dist/conversion/hub/pipelines/inbound.d.ts +0 -22
  256. package/dist/conversion/hub/pipelines/outbound.d.ts +0 -22
  257. package/dist/conversion/hub/process/chat-process.d.ts +0 -13
  258. package/dist/conversion/hub/registry.d.ts +0 -28
  259. package/dist/conversion/hub/response/chat-response-utils.d.ts +0 -6
  260. package/dist/conversion/hub/response/provider-response.d.ts +0 -20
  261. package/dist/conversion/hub/response/response-mappers.d.ts +0 -19
  262. package/dist/conversion/hub/response/response-runtime.d.ts +0 -3
  263. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.d.ts +0 -7
  264. package/dist/conversion/hub/semantic-mappers/chat-mapper.d.ts +0 -7
  265. package/dist/conversion/hub/semantic-mappers/gemini-mapper.d.ts +0 -7
  266. package/dist/conversion/hub/semantic-mappers/index.d.ts +0 -4
  267. package/dist/conversion/hub/semantic-mappers/responses-mapper.d.ts +0 -21
  268. package/dist/conversion/hub/snapshot-recorder.d.ts +0 -12
  269. package/dist/conversion/hub/standardized-bridge.d.ts +0 -12
  270. package/dist/conversion/hub/types/chat-envelope.d.ts +0 -67
  271. package/dist/conversion/hub/types/chat-schema.d.ts +0 -112
  272. package/dist/conversion/hub/types/errors.d.ts +0 -5
  273. package/dist/conversion/hub/types/format-envelope.d.ts +0 -7
  274. package/dist/conversion/hub/types/index.d.ts +0 -6
  275. package/dist/conversion/hub/types/json.d.ts +0 -9
  276. package/dist/conversion/hub/types/node.d.ts +0 -31
  277. package/dist/conversion/hub/types/standardized.d.ts +0 -94
  278. package/dist/conversion/responses/responses-openai-bridge.d.ts +0 -95
  279. package/dist/conversion/schema-validator.d.ts +0 -7
  280. package/dist/conversion/shared/args-mapping.d.ts +0 -18
  281. package/dist/conversion/shared/chat-request-filters.d.ts +0 -9
  282. package/dist/conversion/shared/jsonish.d.ts +0 -3
  283. package/dist/conversion/shared/mcp-injection.d.ts +0 -2
  284. package/dist/conversion/shared/media.d.ts +0 -1
  285. package/dist/conversion/shared/openai-finalizer.d.ts +0 -9
  286. package/dist/conversion/shared/openai-message-normalize.d.ts +0 -1
  287. package/dist/conversion/shared/payload-budget.d.ts +0 -13
  288. package/dist/conversion/shared/reasoning-mapping.d.ts +0 -5
  289. package/dist/conversion/shared/responses-conversation-store.d.ts +0 -41
  290. package/dist/conversion/shared/responses-id-utils.d.ts +0 -7
  291. package/dist/conversion/shared/responses-instructions.d.ts +0 -1
  292. package/dist/conversion/shared/responses-metadata.d.ts +0 -1
  293. package/dist/conversion/shared/responses-request-adapter.d.ts +0 -66
  294. package/dist/conversion/shared/snapshot-hooks.d.ts +0 -12
  295. package/dist/conversion/shared/streaming-text-extractor.d.ts +0 -26
  296. package/dist/conversion/shared/text-markup-normalizer.d.ts +0 -9
  297. package/dist/conversion/shared/tool-canonicalizer.d.ts +0 -2
  298. package/dist/conversion/shared/tool-filter-pipeline.d.ts +0 -17
  299. package/dist/conversion/shared/tool-governor.d.ts +0 -27
  300. package/dist/conversion/shared/tool-harvester.d.ts +0 -31
  301. package/dist/conversion/shared/tool-mapping.d.ts +0 -10
  302. package/dist/conversion/shared/tooling.d.ts +0 -26
  303. package/dist/conversion/types.d.ts +0 -33
  304. package/dist/core/index.d.ts +0 -6
  305. package/dist/core/index.js +0 -9
  306. package/dist/core/llmswitch-engine-v2.d.ts +0 -132
  307. package/dist/core/llmswitch-engine-v2.js +0 -649
  308. package/dist/core/llmswitch-factory-v2.d.ts +0 -123
  309. package/dist/core/llmswitch-factory-v2.js +0 -521
  310. package/dist/endpoints/base-endpoint-handler.d.ts +0 -128
  311. package/dist/endpoints/base-endpoint-handler.js +0 -545
  312. package/dist/endpoints/chat-endpoint-handler.d.ts +0 -115
  313. package/dist/endpoints/chat-endpoint-handler.js +0 -218
  314. package/dist/endpoints/endpoint-router.d.ts +0 -127
  315. package/dist/endpoints/endpoint-router.js +0 -438
  316. package/dist/endpoints/index.d.ts +0 -13
  317. package/dist/endpoints/index.js +0 -11
  318. package/dist/endpoints/messages-endpoint-handler.d.ts +0 -171
  319. package/dist/endpoints/messages-endpoint-handler.js +0 -238
  320. package/dist/endpoints/responses-endpoint-handler.d.ts +0 -147
  321. package/dist/endpoints/responses-endpoint-handler.js +0 -233
  322. package/dist/filters/builtin/add-fields-filter.d.ts +0 -8
  323. package/dist/filters/builtin/blacklist-filter.d.ts +0 -8
  324. package/dist/filters/builtin/whitelist-filter.d.ts +0 -8
  325. package/dist/filters/engine.d.ts +0 -16
  326. package/dist/filters/index.d.ts +0 -19
  327. package/dist/filters/special/request-streaming-to-nonstreaming.d.ts +0 -12
  328. package/dist/filters/special/request-tool-choice-policy.d.ts +0 -11
  329. package/dist/filters/special/request-tool-list-filter.d.ts +0 -11
  330. package/dist/filters/special/request-toolcalls-stringify.d.ts +0 -10
  331. package/dist/filters/special/request-tools-normalize.d.ts +0 -12
  332. package/dist/filters/special/response-finish-invariants.d.ts +0 -11
  333. package/dist/filters/special/response-openai-to-responses-bridge.d.ts +0 -13
  334. package/dist/filters/special/response-tool-arguments-blacklist.d.ts +0 -12
  335. package/dist/filters/special/response-tool-arguments-schema-converge.d.ts +0 -13
  336. package/dist/filters/special/response-tool-arguments-stringify.d.ts +0 -9
  337. package/dist/filters/special/response-tool-arguments-toon-decode.d.ts +0 -10
  338. package/dist/filters/special/response-tool-arguments-whitelist.d.ts +0 -11
  339. package/dist/filters/special/response-tool-text-canonicalize.d.ts +0 -10
  340. package/dist/filters/special/tool-filter-hooks.d.ts +0 -19
  341. package/dist/filters/special/tool-post-constraints.d.ts +0 -31
  342. package/dist/filters/types.d.ts +0 -68
  343. package/dist/filters/utils/fieldmap-loader.d.ts +0 -2
  344. package/dist/filters/utils/snapshot-writer.d.ts +0 -10
  345. package/dist/guidance/index.d.ts +0 -3
  346. package/dist/hooks/hooks-integration.d.ts +0 -161
  347. package/dist/hooks/hooks-integration.js +0 -519
  348. package/dist/hooks/index.d.ts +0 -10
  349. package/dist/hooks/index.js +0 -13
  350. package/dist/html-to-markdown.d.ts +0 -5
  351. package/dist/html-to-markdown.js +0 -66
  352. package/dist/http/sse-response.d.ts +0 -22
  353. package/dist/router/virtual-router/bootstrap.d.ts +0 -6
  354. package/dist/router/virtual-router/classifier.d.ts +0 -10
  355. package/dist/router/virtual-router/engine.d.ts +0 -35
  356. package/dist/router/virtual-router/error-center.d.ts +0 -10
  357. package/dist/router/virtual-router/features.d.ts +0 -3
  358. package/dist/router/virtual-router/health-manager.d.ts +0 -18
  359. package/dist/router/virtual-router/load-balancer.d.ts +0 -18
  360. package/dist/router/virtual-router/provider-registry.d.ts +0 -11
  361. package/dist/router/virtual-router/types.d.ts +0 -206
  362. package/dist/sse/json-to-sse/anthropic-json-to-sse-converter.d.ts +0 -11
  363. package/dist/sse/json-to-sse/chat-json-to-sse-converter.d.ts +0 -79
  364. package/dist/sse/json-to-sse/event-generators/chat.d.ts +0 -55
  365. package/dist/sse/json-to-sse/event-generators/responses.d.ts +0 -99
  366. package/dist/sse/json-to-sse/index.d.ts +0 -6
  367. package/dist/sse/json-to-sse/responses-json-to-sse-converter.d.ts +0 -79
  368. package/dist/sse/json-to-sse/sequencers/chat-sequencer.d.ts +0 -37
  369. package/dist/sse/json-to-sse/sequencers/responses-sequencer.d.ts +0 -40
  370. package/dist/sse/registry/sse-codec-registry.d.ts +0 -32
  371. package/dist/sse/shared/chat-serializer.d.ts +0 -4
  372. package/dist/sse/shared/constants.d.ts +0 -272
  373. package/dist/sse/shared/serializers/base-serializer.d.ts +0 -158
  374. package/dist/sse/shared/serializers/chat-event-serializer.d.ts +0 -82
  375. package/dist/sse/shared/serializers/index.d.ts +0 -39
  376. package/dist/sse/shared/serializers/responses-event-serializer.d.ts +0 -123
  377. package/dist/sse/shared/serializers/types.d.ts +0 -51
  378. package/dist/sse/shared/utils.d.ts +0 -254
  379. package/dist/sse/shared/writer.d.ts +0 -111
  380. package/dist/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +0 -13
  381. package/dist/sse/sse-to-json/builders/response-builder.d.ts +0 -165
  382. package/dist/sse/sse-to-json/chat-sse-to-json-converter.d.ts +0 -106
  383. package/dist/sse/sse-to-json/index.d.ts +0 -6
  384. package/dist/sse/sse-to-json/parsers/sse-parser.d.ts +0 -73
  385. package/dist/sse/types/anthropic-types.d.ts +0 -87
  386. package/dist/tools/proxy/anthropic-tool-proxy.d.ts +0 -19
  387. package/dist/tools/proxy/anthropic-tool-proxy.js +0 -57
  388. package/dist/tools/proxy/executors/web-fetch.d.ts +0 -6
  389. package/dist/tools/proxy/executors/web-fetch.js +0 -39
  390. package/dist/tools/proxy/registry.d.ts +0 -8
  391. package/dist/tools/proxy/registry.js +0 -14
  392. package/dist/tools/proxy/types.d.ts +0 -29
  393. package/dist/tools/tool-registry.d.ts +0 -8
  394. package/dist/tools/web-fetch-html.d.ts +0 -15
  395. package/dist/tools/web-fetch-html.js +0 -83
  396. package/dist/utils/conversion-adapter.d.ts +0 -65
  397. package/dist/utils/conversion-adapter.js +0 -183
  398. package/dist/utils/error-factory.d.ts +0 -88
  399. package/dist/utils/error-factory.js +0 -138
  400. package/dist/utils/error-utils.d.ts +0 -334
  401. package/dist/utils/error-utils.js +0 -782
  402. package/dist/utils/index.d.ts +0 -8
  403. package/dist/utils/index.js +0 -13
  404. package/dist/utils/performance-utils.d.ts +0 -205
  405. package/dist/utils/performance-utils.js +0 -440
  406. package/dist/utils/profile-mapper.d.ts +0 -32
  407. package/dist/utils/profile-mapper.js +0 -269
  408. package/dist/utils/request-processor.d.ts +0 -52
  409. package/dist/utils/request-processor.js +0 -210
  410. package/dist/utils/request-utils.d.ts +0 -117
  411. package/dist/utils/request-utils.js +0 -333
  412. package/dist/utils/response-utils.d.ts +0 -127
  413. package/dist/utils/response-utils.js +0 -516
  414. package/dist/utils/token-counter.d.ts +0 -89
  415. package/dist/utils/token-counter.js +0 -541
  416. /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
- }