@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,330 +0,0 @@
1
- /**
2
- * 节点能力契约系统
3
- * 用于定义和验证节点权限、能力和职责边界
4
- */
5
- /**
6
- * 预定义的节点能力集合
7
- */
8
- export const PREDEFINED_CAPABILITIES = {
9
- // 基础能力
10
- BASIC: {
11
- canModifyTools: false,
12
- canAccessProvider: false,
13
- canModifyMetadata: false,
14
- canHandleStreaming: false,
15
- canAccessSnapshots: false
16
- },
17
- // 工具治理能力
18
- TOOL_GOVERNANCE: {
19
- canModifyTools: true,
20
- canAccessProvider: false,
21
- canModifyMetadata: false,
22
- canHandleStreaming: false,
23
- canAccessSnapshots: false
24
- },
25
- // Provider 访问能力
26
- PROVIDER_ACCESS: {
27
- canModifyTools: false,
28
- canAccessProvider: true,
29
- canModifyMetadata: true,
30
- canHandleStreaming: true,
31
- canAccessSnapshots: true
32
- },
33
- // 流式处理能力
34
- STREAMING: {
35
- canModifyTools: false,
36
- canAccessProvider: false,
37
- canModifyMetadata: false,
38
- canHandleStreaming: true,
39
- canAccessSnapshots: false
40
- },
41
- // 快照访问能力
42
- SNAPSHOT_ACCESS: {
43
- canModifyTools: false,
44
- canAccessProvider: false,
45
- canModifyMetadata: false,
46
- canHandleStreaming: false,
47
- canAccessSnapshots: true
48
- },
49
- // 元数据修改能力
50
- METADATA_MODIFY: {
51
- canModifyTools: false,
52
- canAccessProvider: false,
53
- canModifyMetadata: true,
54
- canHandleStreaming: false,
55
- canAccessSnapshots: false
56
- },
57
- // 全能力(仅限特殊节点)
58
- FULL: {
59
- canModifyTools: true,
60
- canAccessProvider: true,
61
- canModifyMetadata: true,
62
- canHandleStreaming: true,
63
- canAccessSnapshots: true
64
- }
65
- };
66
- /**
67
- * 节点类型与默认能力映射
68
- */
69
- export const NODE_TYPE_DEFAULT_CAPABILITIES = {
70
- 'sse-input': PREDEFINED_CAPABILITIES.STREAMING,
71
- 'input': PREDEFINED_CAPABILITIES.BASIC,
72
- 'process': PREDEFINED_CAPABILITIES.BASIC, // process 节点需要单独配置
73
- 'workflow': PREDEFINED_CAPABILITIES.METADATA_MODIFY,
74
- 'compatibility': PREDEFINED_CAPABILITIES.METADATA_MODIFY,
75
- 'provider': PREDEFINED_CAPABILITIES.PROVIDER_ACCESS,
76
- 'output': PREDEFINED_CAPABILITIES.BASIC,
77
- 'sse-output': PREDEFINED_CAPABILITIES.STREAMING
78
- };
79
- /**
80
- * 特殊节点的能力映射
81
- */
82
- export const SPECIAL_NODE_CAPABILITIES = {
83
- 'tool-governance': PREDEFINED_CAPABILITIES.TOOL_GOVERNANCE,
84
- 'chat-process': PREDEFINED_CAPABILITIES.TOOL_GOVERNANCE,
85
- 'passthrough-process': PREDEFINED_CAPABILITIES.BASIC,
86
- 'response-process': PREDEFINED_CAPABILITIES.BASIC,
87
- 'compatibility-process': PREDEFINED_CAPABILITIES.METADATA_MODIFY,
88
- 'streaming-control': PREDEFINED_CAPABILITIES.STREAMING,
89
- 'workflow-monitoring': PREDEFINED_CAPABILITIES.SNAPSHOT_ACCESS
90
- };
91
- /**
92
- * 预定义的能力验证规则
93
- */
94
- export const CAPABILITY_VALIDATION_RULES = [
95
- {
96
- name: 'tool-modification-restriction',
97
- description: '只有 process 类型的特定节点可以修改工具',
98
- priority: 100,
99
- validator: (capabilities, nodeId, nodeKind) => {
100
- if (capabilities.canModifyTools) {
101
- return nodeKind === 'process' && (nodeId === 'tool-governance' ||
102
- nodeId === 'chat-process' ||
103
- nodeId.includes('tool'));
104
- }
105
- return true;
106
- },
107
- errorMessage: 'Only authorized process nodes can modify tools'
108
- },
109
- {
110
- name: 'provider-access-restriction',
111
- description: '只有 provider 节点可以直接访问外部 Provider',
112
- priority: 90,
113
- validator: (capabilities, nodeId, nodeKind) => {
114
- if (capabilities.canAccessProvider) {
115
- return nodeKind === 'provider';
116
- }
117
- return true;
118
- },
119
- errorMessage: 'Only provider nodes can directly access external providers'
120
- },
121
- {
122
- name: 'streaming-handler-restriction',
123
- description: '只有 SSE 节点和专门的流式控制节点可以处理流式数据',
124
- priority: 80,
125
- validator: (capabilities, nodeId, nodeKind) => {
126
- if (capabilities.canHandleStreaming) {
127
- return nodeKind === 'sse-input' ||
128
- nodeKind === 'sse-output' ||
129
- nodeId === 'streaming-control' ||
130
- nodeId.includes('streaming');
131
- }
132
- return true;
133
- },
134
- errorMessage: 'Only SSE nodes and streaming control nodes can handle streaming data'
135
- },
136
- {
137
- name: 'metadata-modification-scope',
138
- description: '元数据修改权限应该合理分配',
139
- priority: 70,
140
- validator: (capabilities, nodeId, nodeKind) => {
141
- if (capabilities.canModifyMetadata) {
142
- return ['workflow', 'compatibility', 'provider'].includes(nodeKind) ||
143
- nodeId.includes('metadata') ||
144
- nodeId.includes('monitoring');
145
- }
146
- return true;
147
- },
148
- errorMessage: 'Metadata modification should be limited to workflow, compatibility and provider nodes'
149
- },
150
- {
151
- name: 'snapshot-access-control',
152
- description: '快照访问权限应该合理分配',
153
- priority: 60,
154
- validator: (capabilities, nodeId, nodeKind) => {
155
- if (capabilities.canAccessSnapshots) {
156
- return nodeKind === 'provider' ||
157
- nodeId.includes('monitoring') ||
158
- nodeId.includes('snapshot');
159
- }
160
- return true;
161
- },
162
- errorMessage: 'Snapshot access should be limited to provider and monitoring nodes'
163
- }
164
- ];
165
- /**
166
- * 能力验证器
167
- */
168
- export class CapabilityValidator {
169
- /**
170
- * 验证节点能力
171
- */
172
- static validateNodeCapabilities(nodeId, nodeKind, capabilities) {
173
- const errors = [];
174
- const warnings = [];
175
- // 按优先级排序验证规则
176
- const sortedRules = [...CAPABILITY_VALIDATION_RULES].sort((a, b) => b.priority - a.priority);
177
- for (const rule of sortedRules) {
178
- try {
179
- if (!rule.validator(capabilities, nodeId, nodeKind)) {
180
- errors.push({
181
- rule: rule.name,
182
- message: rule.errorMessage,
183
- severity: 'error',
184
- details: {
185
- nodeId,
186
- nodeKind,
187
- capabilities
188
- }
189
- });
190
- }
191
- }
192
- catch (error) {
193
- errors.push({
194
- rule: rule.name,
195
- message: `Validation rule execution failed: ${error instanceof Error ? error.message : String(error)}`,
196
- severity: 'error',
197
- details: {
198
- nodeId,
199
- nodeKind,
200
- capabilities,
201
- ruleError: error instanceof Error ? error.stack : String(error)
202
- }
203
- });
204
- }
205
- }
206
- // 检查能力冲突
207
- const conflictWarnings = this.detectCapabilityConflicts(nodeId, capabilities);
208
- warnings.push(...conflictWarnings);
209
- return {
210
- valid: errors.length === 0,
211
- errors,
212
- warnings
213
- };
214
- }
215
- /**
216
- * 检测能力冲突
217
- */
218
- static detectCapabilityConflicts(nodeId, capabilities) {
219
- const warnings = [];
220
- // 检查是否有不合理的权限组合
221
- if (capabilities.canModifyTools && !capabilities.canModifyMetadata) {
222
- warnings.push({
223
- rule: 'capability-conflict',
224
- message: 'Tool modification capability without metadata modification might be incomplete',
225
- severity: 'warning',
226
- details: {
227
- nodeId,
228
- conflictingCapabilities: ['canModifyTools', 'canModifyMetadata']
229
- }
230
- });
231
- }
232
- if (capabilities.canAccessProvider && !capabilities.canHandleStreaming) {
233
- warnings.push({
234
- rule: 'capability-conflict',
235
- message: 'Provider access without streaming capability might limit functionality',
236
- severity: 'warning',
237
- details: {
238
- nodeId,
239
- conflictingCapabilities: ['canAccessProvider', 'canHandleStreaming']
240
- }
241
- });
242
- }
243
- return warnings;
244
- }
245
- /**
246
- * 获取节点的推荐能力
247
- */
248
- static getRecommendedCapabilities(nodeId, nodeKind) {
249
- // 优先使用特殊节点能力
250
- if (SPECIAL_NODE_CAPABILITIES[nodeId]) {
251
- return { ...SPECIAL_NODE_CAPABILITIES[nodeId] };
252
- }
253
- // 使用类型默认能力
254
- return { ...NODE_TYPE_DEFAULT_CAPABILITIES[nodeKind] };
255
- }
256
- /**
257
- * 验证能力组合的合理性
258
- */
259
- static validateCapabilityCombination(capabilities) {
260
- const errors = [];
261
- const warnings = [];
262
- // 检查逻辑一致性
263
- if (capabilities.canAccessProvider && !capabilities.canModifyMetadata) {
264
- warnings.push({
265
- rule: 'logical-consistency',
266
- message: 'Provider access typically requires metadata modification',
267
- severity: 'warning',
268
- details: { capabilities }
269
- });
270
- }
271
- if (capabilities.canHandleStreaming && !capabilities.canAccessSnapshots) {
272
- warnings.push({
273
- rule: 'debugging-support',
274
- message: 'Streaming handlers should have snapshot access for debugging',
275
- severity: 'warning',
276
- details: { capabilities }
277
- });
278
- }
279
- return {
280
- valid: errors.length === 0,
281
- errors,
282
- warnings
283
- };
284
- }
285
- }
286
- /**
287
- * 所有能力的描述符
288
- */
289
- export const CAPABILITY_DESCRIPTORS = {
290
- canModifyTools: {
291
- name: '工具修改',
292
- description: '允许节点修改工具定义、工具调用和工具参数',
293
- riskLevel: 'high',
294
- requiresSpecialPermission: true,
295
- relatedNodeTypes: ['process'],
296
- usageExample: 'tool-governance, chat-process'
297
- },
298
- canAccessProvider: {
299
- name: 'Provider 访问',
300
- description: '允许节点直接访问外部 AI 服务提供商',
301
- riskLevel: 'medium',
302
- requiresSpecialPermission: false,
303
- relatedNodeTypes: ['provider'],
304
- usageExample: 'provider-http, provider-openai'
305
- },
306
- canModifyMetadata: {
307
- name: '元数据修改',
308
- description: '允许节点修改请求/响应的元数据',
309
- riskLevel: 'low',
310
- requiresSpecialPermission: false,
311
- relatedNodeTypes: ['workflow', 'compatibility', 'provider'],
312
- usageExample: 'compatibility-process, workflow-monitoring'
313
- },
314
- canHandleStreaming: {
315
- name: '流式处理',
316
- description: '允许节点处理 SSE 流式数据',
317
- riskLevel: 'medium',
318
- requiresSpecialPermission: false,
319
- relatedNodeTypes: ['sse-input', 'sse-output'],
320
- usageExample: 'sse-input, sse-output, streaming-control'
321
- },
322
- canAccessSnapshots: {
323
- name: '快照访问',
324
- description: '允许节点读写调试快照数据',
325
- riskLevel: 'low',
326
- requiresSpecialPermission: false,
327
- relatedNodeTypes: ['provider', 'workflow'],
328
- usageExample: 'workflow-monitoring, provider-http'
329
- }
330
- };
@@ -1,237 +0,0 @@
1
- /**
2
- * RouteCodex V2 标准 PipelineContext 接口
3
- * 严格对齐 pipeline-node-interface.md 规范
4
- */
5
- import type { StandardizedRequest, ToolCall } from '../types/request-types.js';
6
- import type { PipelineErrorCallbacks } from './errors.js';
7
- import type { TargetMetadata } from '../../../router/virtual-router/types.js';
8
- /**
9
- * 标准化响应接口
10
- * 与 StandardizedRequest 对应的响应格式
11
- */
12
- export interface StandardizedResponse {
13
- /** 响应消息 */
14
- message: {
15
- role: 'assistant';
16
- content: string | null;
17
- tool_calls?: ToolCall[];
18
- };
19
- /** 是否完成 */
20
- finish_reason: 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'function_call';
21
- /** 使用量统计 */
22
- usage?: {
23
- prompt_tokens: number;
24
- completion_tokens: number;
25
- total_tokens: number;
26
- };
27
- /** 响应模型 */
28
- model: string;
29
- /** 创建时间戳 */
30
- created?: number;
31
- /** 请求ID */
32
- id?: string;
33
- /** 额外元数据 */
34
- metadata?: Record<string, unknown>;
35
- }
36
- export type CanonicalRequest = StandardizedRequest;
37
- export type CanonicalResponse = StandardizedResponse;
38
- /**
39
- * 快照句柄接口
40
- */
41
- export interface SnapshotHandles {
42
- /** 写入请求快照 */
43
- writeRequestSnapshot?(data: CanonicalRequest, metadata?: Record<string, unknown>): Promise<void>;
44
- /** 写入响应快照 */
45
- writeResponseSnapshot?(data: CanonicalResponse, metadata?: Record<string, unknown>): Promise<void>;
46
- /** 写入调试快照 */
47
- writeDebugSnapshot?(stage: string, data: unknown, metadata?: Record<string, unknown>): Promise<void>;
48
- /** 快照配置 */
49
- config?: {
50
- enabled: boolean;
51
- channel?: string;
52
- baseDir?: string;
53
- };
54
- }
55
- /**
56
- * 标准 PipelineContext 接口
57
- * 严格对齐 pipeline-node-interface.md 规范
58
- */
59
- export interface PipelineContext {
60
- /** 请求对象(由 llmswitch inbound 节点生产) */
61
- request?: CanonicalRequest;
62
- /** 响应对象(由 llmswitch response inbound 节点生产) */
63
- response?: CanonicalResponse;
64
- /** 元数据 */
65
- metadata: {
66
- /** 请求ID */
67
- requestId: string;
68
- /** 入口端点 */
69
- entryEndpoint: string;
70
- /** Provider 协议 */
71
- providerProtocol: 'openai-chat' | 'openai-responses' | 'anthropic-messages' | 'gemini-chat' | string;
72
- /** 处理模式 */
73
- processMode: 'chat' | 'passthrough';
74
- /** 流式策略 */
75
- streaming: 'always' | 'never' | 'auto';
76
- /** 路由名称 */
77
- routeName: string;
78
- /** 流水线ID */
79
- pipelineId: string;
80
- /** Provider ID(可选) */
81
- providerId?: string;
82
- /** 模型ID(可选) */
83
- modelId?: string;
84
- /** Provider 类型(可选) */
85
- providerType?: string;
86
- /** 目标 Provider 元数据 */
87
- target?: TargetMetadata;
88
- /** 生命周期钩子阶段 */
89
- hookPhase?: 'inbound' | 'outbound' | 'pre-process' | 'post-process';
90
- /** 错误传播上下文 */
91
- errorContext?: {
92
- originalError: Error;
93
- stage: string;
94
- nodeId: string;
95
- timestamp: number;
96
- };
97
- /** 工具治理状态 */
98
- toolGovernanceApplied?: boolean;
99
- /** 工具治理执行时间戳 */
100
- toolGovernanceTimestamp?: number;
101
- };
102
- /** 调试信息 */
103
- debug: {
104
- /** 是否启用追踪 */
105
- traceEnabled: boolean;
106
- /** 各阶段调试数据 */
107
- stages: Record<string, unknown>;
108
- /** 流式语义追踪 */
109
- streamingContext?: {
110
- mode: 'sse' | 'json' | 'hybrid';
111
- buffer: unknown[];
112
- eventId: string;
113
- };
114
- };
115
- /** 快照句柄 */
116
- snapshots: SnapshotHandles | null;
117
- /** 错误/告警回调 */
118
- callbacks?: PipelineErrorCallbacks | null;
119
- /** 额外数据 */
120
- extra: Record<string, unknown>;
121
- /** 节点间通信契约 */
122
- nodeContracts: {
123
- [nodeId: string]: {
124
- /** 节点能力列表 */
125
- capabilities: string[];
126
- /** 节点需求列表 */
127
- requirements: string[];
128
- /** 节点权限列表 */
129
- permissions: string[];
130
- };
131
- };
132
- }
133
- /**
134
- * 节点能力契约接口
135
- */
136
- export interface NodeCapabilities {
137
- /** 是否可以修改工具 */
138
- canModifyTools: boolean;
139
- /** 是否可以访问 Provider */
140
- canAccessProvider: boolean;
141
- /** 是否可以修改元数据 */
142
- canModifyMetadata: boolean;
143
- /** 是否可以处理流式 */
144
- canHandleStreaming: boolean;
145
- /** 是否可以访问快照 */
146
- canAccessSnapshots: boolean;
147
- }
148
- /**
149
- * 节点类型枚举(对齐标准规范)
150
- */
151
- export type PipelineNodeKind = 'sse-input' | 'input' | 'process' | 'workflow' | 'compatibility' | 'provider' | 'output' | 'sse-output';
152
- /**
153
- * 错误传播上下文接口
154
- */
155
- export interface ErrorPropagationContext {
156
- /** 原始错误 */
157
- originalError: Error;
158
- /** 错误发生的阶段 */
159
- stage: string;
160
- /** 发生错误的节点ID */
161
- nodeId: string;
162
- /** 错误时间戳 */
163
- timestamp: number;
164
- /** 错误严重程度 */
165
- severity: 'low' | 'medium' | 'high' | 'critical';
166
- /** 是否应该中断流水线 */
167
- shouldTerminate: boolean;
168
- /** 错误标签 */
169
- tags: string[];
170
- }
171
- /**
172
- * 流式语义上下文接口
173
- */
174
- export interface StreamingContext {
175
- /** 流式模式 */
176
- mode: 'sse' | 'json' | 'hybrid';
177
- /** 事件缓冲区 */
178
- buffer: unknown[];
179
- /** 事件ID */
180
- eventId: string;
181
- /** 流式配置 */
182
- config?: {
183
- /** 缓冲区大小限制 */
184
- bufferSize?: number;
185
- /** 刷新间隔(毫秒) */
186
- flushInterval?: number;
187
- /** 是否启用压缩 */
188
- compression?: boolean;
189
- };
190
- /** 流式统计 */
191
- stats?: {
192
- /** 已处理事件数 */
193
- eventsProcessed: number;
194
- /** 总数据大小 */
195
- totalBytes: number;
196
- /** 平均延迟 */
197
- averageLatency: number;
198
- };
199
- }
200
- /**
201
- * 创建新的 PipelineContext
202
- */
203
- export declare function createPipelineContext(requestId: string, entryEndpoint: string, providerProtocol: string, initialMetadata?: Partial<PipelineContext['metadata']>): PipelineContext;
204
- /**
205
- * 从 StandardizedRequest 创建 PipelineContext
206
- */
207
- export declare function createPipelineContext(requestId: string, entryEndpoint: string, providerProtocol: string, request: StandardizedRequest, initialMetadata?: Partial<PipelineContext['metadata']>): PipelineContext;
208
- /**
209
- * 验证 PipelineContext 的完整性
210
- */
211
- export declare function validatePipelineContext(context: PipelineContext): ValidationResult;
212
- /**
213
- * 错误验证接口
214
- */
215
- export interface ValidationError {
216
- field: string;
217
- message: string;
218
- code: string;
219
- value?: unknown;
220
- }
221
- /**
222
- * 警告验证接口
223
- */
224
- export interface ValidationWarning {
225
- field: string;
226
- message: string;
227
- code: string;
228
- value?: unknown;
229
- }
230
- /**
231
- * 验证结果接口
232
- */
233
- export interface ValidationResult {
234
- valid: boolean;
235
- errors: ValidationError[];
236
- warnings: ValidationWarning[];
237
- }
@@ -1,84 +0,0 @@
1
- /**
2
- * RouteCodex V2 标准 PipelineContext 接口
3
- * 严格对齐 pipeline-node-interface.md 规范
4
- */
5
- export function createPipelineContext(requestId, entryEndpoint, providerProtocol, requestOrMetadata, initialMetadata) {
6
- // 检测第三个参数是请求对象还是元数据
7
- const isRequestObject = requestOrMetadata && 'model' in requestOrMetadata && 'messages' in requestOrMetadata;
8
- const request = isRequestObject ? requestOrMetadata : undefined;
9
- const metadata = isRequestObject ? initialMetadata : requestOrMetadata;
10
- const context = {
11
- request,
12
- metadata: {
13
- requestId,
14
- entryEndpoint,
15
- providerProtocol,
16
- processMode: 'chat',
17
- streaming: 'auto',
18
- routeName: 'default',
19
- pipelineId: 'default',
20
- // 从请求中提取模型ID
21
- modelId: request?.model,
22
- ...metadata
23
- },
24
- debug: {
25
- traceEnabled: false,
26
- stages: {}
27
- },
28
- snapshots: null,
29
- callbacks: null,
30
- extra: {},
31
- nodeContracts: {}
32
- };
33
- return context;
34
- }
35
- /**
36
- * 验证 PipelineContext 的完整性
37
- */
38
- export function validatePipelineContext(context) {
39
- const errors = [];
40
- const warnings = [];
41
- // 检查必需字段
42
- if (!context.metadata.requestId) {
43
- errors.push({
44
- field: 'metadata.requestId',
45
- message: 'Request ID is required',
46
- code: 'MISSING_REQUEST_ID'
47
- });
48
- }
49
- if (!context.metadata.entryEndpoint) {
50
- errors.push({
51
- field: 'metadata.entryEndpoint',
52
- message: 'Entry endpoint is required',
53
- code: 'MISSING_ENTRY_ENDPOINT'
54
- });
55
- }
56
- if (!context.metadata.providerProtocol) {
57
- errors.push({
58
- field: 'metadata.providerProtocol',
59
- message: 'Provider protocol is required',
60
- code: 'MISSING_PROVIDER_PROTOCOL'
61
- });
62
- }
63
- // 检查数据一致性
64
- if (context.request && context.response) {
65
- warnings.push({
66
- field: 'data_consistency',
67
- message: 'Both request and response present in context',
68
- code: 'BOTH_REQUEST_AND_RESPONSE'
69
- });
70
- }
71
- // 检查错误上下文
72
- if (context.metadata.errorContext && !context.debug.traceEnabled) {
73
- warnings.push({
74
- field: 'error_context',
75
- message: 'Error context present but trace is disabled',
76
- code: 'ERROR_CONTEXT_NO_TRACE'
77
- });
78
- }
79
- return {
80
- valid: errors.length === 0,
81
- errors,
82
- warnings
83
- };
84
- }