@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,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
- }