@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,196 +0,0 @@
1
- /**
2
- * 标准 PipelineNode 接口定义
3
- * 严格对齐 pipeline-node-interface.md 规范
4
- */
5
- import type { PipelineContext, NodeCapabilities, PipelineNodeKind } from './pipeline-context.js';
6
- /**
7
- * 标准 PipelineNode 接口
8
- * 对齐 pipeline-node-interface.md 规范
9
- */
10
- export interface PipelineNode {
11
- /** 节点唯一标识(对应 pipeline-config 中的 id) */
12
- readonly id: string;
13
- /** 节点类型(8种标准类型) */
14
- readonly kind: PipelineNodeKind;
15
- /** 实现名称(对应 pipeline-config 中的 implementation) */
16
- readonly implementation: string;
17
- /** 节点配置选项 */
18
- readonly options?: Record<string, unknown>;
19
- /** 节点能力 */
20
- readonly capabilities?: NodeCapabilities;
21
- /** 节点描述 */
22
- readonly description?: string;
23
- /**
24
- * 执行节点逻辑
25
- * @param ctx 流水线上下文
26
- * @returns 更新后的流水线上下文
27
- */
28
- execute(ctx: PipelineContext): Promise<PipelineContext>;
29
- /**
30
- * 验证节点配置
31
- * @param config 配置数据
32
- * @returns 验证结果
33
- */
34
- validate?(config: Record<string, unknown>): Promise<boolean>;
35
- /**
36
- * 清理资源
37
- */
38
- cleanup?(): Promise<void>;
39
- /**
40
- * 获取节点健康状态
41
- */
42
- getHealth?(): Promise<NodeHealthStatus>;
43
- /**
44
- * 获取节点指标
45
- */
46
- getMetrics?(): Promise<NodeMetrics>;
47
- }
48
- /**
49
- * 节点健康状态
50
- */
51
- export interface NodeHealthStatus {
52
- /** 是否健康 */
53
- healthy: boolean;
54
- /** 状态消息 */
55
- message?: string;
56
- /** 最后检查时间 */
57
- lastCheck: number;
58
- /** 详细状态 */
59
- details?: {
60
- memoryUsage?: number;
61
- cpuUsage?: number;
62
- activeRequests?: number;
63
- errorRate?: number;
64
- };
65
- }
66
- /**
67
- * 节点性能指标
68
- */
69
- export interface NodeMetrics {
70
- /** 总执行次数 */
71
- totalExecutions: number;
72
- /** 成功执行次数 */
73
- successfulExecutions: number;
74
- /** 失败执行次数 */
75
- failedExecutions: number;
76
- /** 平均执行时间(毫秒) */
77
- averageExecutionTime: number;
78
- /** 最小执行时间(毫秒) */
79
- minExecutionTime: number;
80
- /** 最大执行时间(毫秒) */
81
- maxExecutionTime: number;
82
- /** 最后执行时间 */
83
- lastExecutionTime?: number;
84
- /** 当前并发请求数 */
85
- currentConcurrency: number;
86
- /** 错误率 */
87
- errorRate: number;
88
- /** 吞吐量(每秒请求数) */
89
- throughput: number;
90
- }
91
- /**
92
- * 节点实现接口
93
- */
94
- export interface NodeImplementation {
95
- /** 实现ID */
96
- id: string;
97
- /** 节点类型 */
98
- kind: PipelineNodeKind;
99
- /** 工厂函数 */
100
- factory: (config?: Record<string, unknown>) => PipelineNode;
101
- /** 实现描述 */
102
- description?: string;
103
- /** 默认能力 */
104
- defaultCapabilities?: NodeCapabilities;
105
- /** 依赖的其他节点实现 */
106
- dependencies?: string[];
107
- /** 配置验证函数 */
108
- validateConfig?: (config: Record<string, unknown>) => ValidationResult;
109
- }
110
- /**
111
- * 验证结果接口
112
- */
113
- export interface ValidationResult {
114
- /** 是否验证通过 */
115
- valid: boolean;
116
- /** 错误信息 */
117
- errors: string[];
118
- /** 警告信息 */
119
- warnings: string[];
120
- }
121
- /**
122
- * 基础 PipelineNode 实现
123
- */
124
- export declare abstract class BasePipelineNode implements PipelineNode {
125
- readonly id: string;
126
- readonly kind: PipelineNodeKind;
127
- readonly implementation: string;
128
- readonly options: Record<string, unknown>;
129
- readonly capabilities?: NodeCapabilities;
130
- readonly description?: string;
131
- protected readonly _metrics: NodeMetrics;
132
- protected lastError?: Error;
133
- constructor(id: string, kind: PipelineNodeKind, implementation: string, options?: Record<string, unknown>, capabilities?: NodeCapabilities, description?: string);
134
- /**
135
- * 确保基础的元数据存在
136
- */
137
- protected ensureMetadata(ctx: PipelineContext): void;
138
- /**
139
- * 确保基础的元数据(构造时调用)
140
- */
141
- private ensureBasicMetadata;
142
- /**
143
- * 调试日志记录
144
- */
145
- protected debugLog(stage: string, data: unknown, ctx: PipelineContext): void;
146
- /**
147
- * 错误处理和传播
148
- */
149
- protected handleError(error: Error, ctx: PipelineContext, stage: string): Promise<never>;
150
- /**
151
- * 确定错误严重程度
152
- */
153
- private determineErrorSeverity;
154
- /**
155
- * 生成错误标签
156
- */
157
- private generateErrorTags;
158
- /**
159
- * 更新执行指标
160
- */
161
- protected updateMetrics(executionTime: number, success: boolean): void;
162
- /**
163
- * 执行节点并记录指标
164
- */
165
- protected executeWithMetrics(ctx: PipelineContext): Promise<PipelineContext>;
166
- /**
167
- * 子类需要实现的执行逻辑
168
- */
169
- protected abstract executeLogic(ctx: PipelineContext): Promise<PipelineContext>;
170
- /**
171
- * 获取节点需求
172
- */
173
- protected getRequirements(): string[];
174
- /**
175
- * 获取节点权限
176
- */
177
- protected getPermissions(): string[];
178
- execute(ctx: PipelineContext): Promise<PipelineContext>;
179
- validate(config: Record<string, unknown>): Promise<boolean>;
180
- cleanup(): Promise<void>;
181
- getHealth(): Promise<NodeHealthStatus>;
182
- getMetrics(): Promise<NodeMetrics>;
183
- private isPipelineNodeError;
184
- private wrapPipelineNodeError;
185
- private getExecutionPhase;
186
- private getExecutionStage;
187
- private invokeErrorCallback;
188
- }
189
- /**
190
- * 节点包装器 - 为现有 V3 节点提供适配
191
- */
192
- export declare class NodeWrapper extends BasePipelineNode {
193
- private readonly wrappedNode;
194
- constructor(wrappedNode: any, id: string, kind: PipelineNodeKind, implementation: string, options?: Record<string, unknown>, capabilities?: NodeCapabilities);
195
- protected executeLogic(ctx: PipelineContext): Promise<PipelineContext>;
196
- }
@@ -1,316 +0,0 @@
1
- /**
2
- * 标准 PipelineNode 接口定义
3
- * 严格对齐 pipeline-node-interface.md 规范
4
- */
5
- import { createPipelineNodeError } from './errors.js';
6
- /**
7
- * 基础 PipelineNode 实现
8
- */
9
- export class BasePipelineNode {
10
- id;
11
- kind;
12
- implementation;
13
- options;
14
- capabilities;
15
- description;
16
- _metrics = {
17
- totalExecutions: 0,
18
- successfulExecutions: 0,
19
- failedExecutions: 0,
20
- averageExecutionTime: 0,
21
- minExecutionTime: Infinity,
22
- maxExecutionTime: 0,
23
- currentConcurrency: 0,
24
- errorRate: 0,
25
- throughput: 0
26
- };
27
- lastError;
28
- constructor(id, kind, implementation, options = {}, capabilities, description) {
29
- this.id = id;
30
- this.kind = kind;
31
- this.implementation = implementation;
32
- this.options = options;
33
- this.capabilities = capabilities;
34
- this.description = description;
35
- // 确保基础的元数据
36
- this.ensureBasicMetadata();
37
- }
38
- /**
39
- * 确保基础的元数据存在
40
- */
41
- ensureMetadata(ctx) {
42
- if (!ctx.metadata.requestId) {
43
- ctx.metadata.requestId = `req_${Date.now()}_${Math.random().toString(36).slice(2)}`;
44
- }
45
- if (!ctx.nodeContracts[this.id]) {
46
- ctx.nodeContracts[this.id] = {
47
- capabilities: this.capabilities ? Object.keys(this.capabilities).filter(key => this.capabilities[key]) : [],
48
- requirements: this.getRequirements(),
49
- permissions: this.getPermissions()
50
- };
51
- }
52
- }
53
- /**
54
- * 确保基础的元数据(构造时调用)
55
- */
56
- ensureBasicMetadata() {
57
- // 基础元数据设置可以在这里实现
58
- }
59
- /**
60
- * 调试日志记录
61
- */
62
- debugLog(stage, data, ctx) {
63
- if (ctx.debug.traceEnabled) {
64
- ctx.debug.stages[`${this.id}:${stage}`] = {
65
- timestamp: Date.now(),
66
- data,
67
- nodeId: this.id,
68
- stage
69
- };
70
- }
71
- }
72
- /**
73
- * 错误处理和传播
74
- */
75
- async handleError(error, ctx, stage) {
76
- this.lastError = error;
77
- const errorContext = {
78
- originalError: error,
79
- stage,
80
- nodeId: this.id,
81
- timestamp: Date.now(),
82
- severity: this.determineErrorSeverity(error),
83
- shouldTerminate: true,
84
- tags: this.generateErrorTags(error)
85
- };
86
- ctx.metadata.errorContext = errorContext;
87
- this.debugLog('error', {
88
- message: error.message,
89
- stack: error.stack,
90
- stage
91
- }, ctx);
92
- const pipelineError = this.wrapPipelineNodeError(ctx, error, stage, errorContext);
93
- throw pipelineError;
94
- }
95
- /**
96
- * 确定错误严重程度
97
- */
98
- determineErrorSeverity(error) {
99
- if (error.name === 'ValidationError')
100
- return 'medium';
101
- if (error.name === 'TimeoutError')
102
- return 'high';
103
- if (error.name === 'SystemError')
104
- return 'critical';
105
- return 'low';
106
- }
107
- /**
108
- * 生成错误标签
109
- */
110
- generateErrorTags(error) {
111
- const tags = [error.name, this.kind, this.implementation];
112
- if (error.message.includes('timeout'))
113
- tags.push('timeout');
114
- if (error.message.includes('permission'))
115
- tags.push('permission');
116
- if (error.message.includes('validation'))
117
- tags.push('validation');
118
- return tags;
119
- }
120
- /**
121
- * 更新执行指标
122
- */
123
- updateMetrics(executionTime, success) {
124
- this._metrics.totalExecutions++;
125
- if (success) {
126
- this._metrics.successfulExecutions++;
127
- }
128
- else {
129
- this._metrics.failedExecutions++;
130
- }
131
- // 更新执行时间统计
132
- this._metrics.minExecutionTime = Math.min(this._metrics.minExecutionTime, executionTime);
133
- this._metrics.maxExecutionTime = Math.max(this._metrics.maxExecutionTime, executionTime);
134
- // 计算平均执行时间
135
- const totalTime = this._metrics.averageExecutionTime * (this._metrics.totalExecutions - 1) + executionTime;
136
- this._metrics.averageExecutionTime = totalTime / this._metrics.totalExecutions;
137
- // 更新错误率
138
- this._metrics.errorRate = this._metrics.failedExecutions / this._metrics.totalExecutions;
139
- // 更新最后执行时间
140
- this._metrics.lastExecutionTime = Date.now();
141
- }
142
- /**
143
- * 执行节点并记录指标
144
- */
145
- async executeWithMetrics(ctx) {
146
- const startTime = Date.now();
147
- this._metrics.currentConcurrency++;
148
- try {
149
- this.debugLog('start', {
150
- nodeId: this.id,
151
- kind: this.kind,
152
- timestamp: startTime
153
- }, ctx);
154
- const result = await this.executeLogic(ctx);
155
- const executionTime = Date.now() - startTime;
156
- this.updateMetrics(executionTime, true);
157
- this.debugLog('complete', {
158
- executionTime,
159
- success: true
160
- }, ctx);
161
- return result;
162
- }
163
- catch (error) {
164
- const executionTime = Date.now() - startTime;
165
- this.updateMetrics(executionTime, false);
166
- this.debugLog('failed', {
167
- executionTime,
168
- success: false,
169
- error: error instanceof Error ? error.message : String(error)
170
- }, ctx);
171
- throw error;
172
- }
173
- finally {
174
- this._metrics.currentConcurrency--;
175
- }
176
- }
177
- /**
178
- * 获取节点需求
179
- */
180
- getRequirements() {
181
- const requirements = [];
182
- if (this.capabilities?.canModifyTools) {
183
- requirements.push('tool-governance');
184
- }
185
- if (this.capabilities?.canAccessProvider) {
186
- requirements.push('provider-access');
187
- }
188
- if (this.capabilities?.canHandleStreaming) {
189
- requirements.push('streaming-support');
190
- }
191
- return requirements;
192
- }
193
- /**
194
- * 获取节点权限
195
- */
196
- getPermissions() {
197
- const permissions = ['read-context', 'write-debug'];
198
- if (this.capabilities?.canModifyTools) {
199
- permissions.push('modify-tools');
200
- }
201
- if (this.capabilities?.canAccessProvider) {
202
- permissions.push('access-provider');
203
- }
204
- if (this.capabilities?.canModifyMetadata) {
205
- permissions.push('modify-metadata');
206
- }
207
- if (this.capabilities?.canAccessSnapshots) {
208
- permissions.push('access-snapshots');
209
- }
210
- if (this.capabilities?.canHandleStreaming) {
211
- permissions.push('handle-streaming');
212
- }
213
- return permissions;
214
- }
215
- // 接口实现
216
- async execute(ctx) {
217
- this.ensureMetadata(ctx);
218
- try {
219
- return await this.executeWithMetrics(ctx);
220
- }
221
- catch (error) {
222
- if (this.isPipelineNodeError(error)) {
223
- await this.invokeErrorCallback(ctx, error);
224
- throw error;
225
- }
226
- await this.handleError(error instanceof Error ? error : new Error(String(error)), ctx, 'execute');
227
- }
228
- }
229
- async validate(config) {
230
- // 默认验证逻辑
231
- return true;
232
- }
233
- async cleanup() {
234
- // 默认清理逻辑
235
- }
236
- async getHealth() {
237
- return {
238
- healthy: !this.lastError,
239
- message: this.lastError ? this.lastError.message : 'Node is healthy',
240
- lastCheck: Date.now(),
241
- details: {
242
- activeRequests: this._metrics.currentConcurrency,
243
- errorRate: this._metrics.errorRate
244
- }
245
- };
246
- }
247
- async getMetrics() {
248
- return { ...this._metrics };
249
- }
250
- isPipelineNodeError(error) {
251
- return error instanceof Error && typeof error.nodeId === 'string' && typeof error.pipelineId === 'string';
252
- }
253
- wrapPipelineNodeError(ctx, error, stage, propagation) {
254
- if (this.isPipelineNodeError(error)) {
255
- error.metadata = {
256
- ...(error.metadata || {}),
257
- errorContext: propagation
258
- };
259
- return error;
260
- }
261
- const pipelineId = ctx.metadata.pipelineId || 'pipeline-default';
262
- const requestId = ctx.metadata.requestId || 'unknown-request';
263
- const nodeStage = this.getExecutionStage(ctx, stage);
264
- return createPipelineNodeError({
265
- nodeId: this.id,
266
- implementation: this.implementation,
267
- pipelineId,
268
- requestId,
269
- phase: this.getExecutionPhase(ctx),
270
- stage: nodeStage,
271
- error,
272
- metadata: {
273
- errorContext: propagation
274
- }
275
- });
276
- }
277
- getExecutionPhase(ctx) {
278
- const metadata = ctx.metadata;
279
- const direction = typeof metadata.direction === 'string' ? metadata.direction.toLowerCase() : undefined;
280
- if (direction === 'response')
281
- return 'response';
282
- if (ctx.metadata.hookPhase === 'outbound')
283
- return 'response';
284
- return 'request';
285
- }
286
- getExecutionStage(ctx, stage) {
287
- const hook = ctx.metadata.hookPhase ? `pipeline:${ctx.metadata.hookPhase}` : 'pipeline:execute';
288
- return `${hook}:${stage}`;
289
- }
290
- async invokeErrorCallback(ctx, error) {
291
- const callback = ctx.callbacks?.onError;
292
- if (!callback)
293
- return;
294
- try {
295
- await callback(error);
296
- }
297
- catch (callbackError) {
298
- console.error('[PipelineNode] error callback failed', callbackError);
299
- }
300
- }
301
- }
302
- /**
303
- * 节点包装器 - 为现有 V3 节点提供适配
304
- */
305
- export class NodeWrapper extends BasePipelineNode {
306
- wrappedNode;
307
- constructor(wrappedNode, id, kind, implementation, options, capabilities) {
308
- super(id, kind, implementation, options, capabilities);
309
- this.wrappedNode = wrappedNode;
310
- }
311
- async executeLogic(ctx) {
312
- // 这里应该调用适配器来转换 V3 节点
313
- // 暂时返回原始上下文
314
- return ctx;
315
- }
316
- }
@@ -1,24 +0,0 @@
1
- import type { SnapshotHandles, PipelineContext } from './pipeline-context.js';
2
- import type { NodeContext } from '../types/index.js';
3
- import type { FilterStage } from '../../../filters/types.js';
4
- export type SnapshotWriter = (options: SnapshotWriterOptions) => Promise<void>;
5
- export interface SnapshotWriterOptions {
6
- requestId?: string;
7
- endpoint?: string;
8
- profile?: string;
9
- stage: FilterStage;
10
- name?: string;
11
- tag?: string;
12
- data: unknown;
13
- }
14
- export interface SnapshotFactoryOptions {
15
- writer?: SnapshotWriter;
16
- }
17
- export interface SnapshotMetadata {
18
- requestId?: string;
19
- entryEndpoint?: string;
20
- profile?: string;
21
- tag?: string;
22
- nodeName?: string;
23
- }
24
- export declare function createSnapshotHandles(nodeContext: NodeContext, metadata: PipelineContext['metadata'], options?: SnapshotFactoryOptions): SnapshotHandles | null;
@@ -1,49 +0,0 @@
1
- import { writeFilterSnapshot } from '../../../filters/utils/snapshot-writer.js';
2
- class SnapshotHandlesImpl {
3
- meta;
4
- writer;
5
- config;
6
- constructor(meta, writer) {
7
- this.meta = meta;
8
- this.writer = writer;
9
- this.config = {
10
- enabled: true,
11
- channel: meta.channel
12
- };
13
- }
14
- async writeRequestSnapshot(data, metadata) {
15
- await this.writeSnapshot('request_post', data, metadata, 'pipeline_request');
16
- }
17
- async writeResponseSnapshot(data, metadata) {
18
- await this.writeSnapshot('response_post', data, metadata, 'pipeline_response');
19
- }
20
- async writeDebugSnapshot(stage, data, metadata) {
21
- await this.writeSnapshot('response_finalize', data, metadata, stage);
22
- }
23
- async writeSnapshot(stage, data, metadata = {}, defaultTag) {
24
- await this.writer({
25
- requestId: metadata.requestId ?? this.meta.requestId,
26
- endpoint: metadata.entryEndpoint ?? this.meta.entryEndpoint,
27
- profile: metadata.profile ?? this.meta.profile,
28
- stage,
29
- name: metadata.nodeName ?? this.meta.nodeId,
30
- tag: metadata.tag ?? defaultTag,
31
- data
32
- });
33
- }
34
- }
35
- export function createSnapshotHandles(nodeContext, metadata, options = {}) {
36
- const snapshotConfig = nodeContext.nodeConfig.snapshot;
37
- if (!snapshotConfig?.enabled) {
38
- return null;
39
- }
40
- const meta = {
41
- requestId: metadata.requestId,
42
- entryEndpoint: metadata.entryEndpoint,
43
- profile: metadata.providerProtocol,
44
- nodeId: nodeContext.nodeConfig.id,
45
- channel: snapshotConfig.channel,
46
- pipelineId: metadata.pipelineId
47
- };
48
- return new SnapshotHandlesImpl(meta, options.writer ?? writeFilterSnapshot);
49
- }