@jsonstudio/llms 0.4.2

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 (538) hide show
  1. package/README.md +265 -0
  2. package/dist/api/index.d.ts +10 -0
  3. package/dist/api/index.js +11 -0
  4. package/dist/api/llmswitch-config.d.ts +15 -0
  5. package/dist/api/llmswitch-config.js +415 -0
  6. package/dist/api/llmswitch-types.d.ts +412 -0
  7. package/dist/api/llmswitch-types.js +60 -0
  8. package/dist/bridge/routecodex-adapter.d.ts +74 -0
  9. package/dist/bridge/routecodex-adapter.js +226 -0
  10. package/dist/config/index.d.ts +3 -0
  11. package/dist/config/index.js +5 -0
  12. package/dist/config-unified/enhanced-path-resolver.d.ts +5 -0
  13. package/dist/config-unified/enhanced-path-resolver.js +38 -0
  14. package/dist/config-unified/unified-config.d.ts +26 -0
  15. package/dist/config-unified/unified-config.js +187 -0
  16. package/dist/conversion/codec-registry.d.ts +10 -0
  17. package/dist/conversion/codec-registry.js +25 -0
  18. package/dist/conversion/codecs/anthropic-openai-codec.d.ts +23 -0
  19. package/dist/conversion/codecs/anthropic-openai-codec.js +546 -0
  20. package/dist/conversion/codecs/gemini-openai-codec.d.ts +16 -0
  21. package/dist/conversion/codecs/gemini-openai-codec.js +437 -0
  22. package/dist/conversion/codecs/openai-openai-codec.d.ts +12 -0
  23. package/dist/conversion/codecs/openai-openai-codec.js +125 -0
  24. package/dist/conversion/codecs/responses-openai-codec.d.ts +12 -0
  25. package/dist/conversion/codecs/responses-openai-codec.js +154 -0
  26. package/dist/conversion/config/config-manager.d.ts +212 -0
  27. package/dist/conversion/config/config-manager.js +310 -0
  28. package/dist/conversion/conversion-v3/adapters/index.d.ts +2 -0
  29. package/dist/conversion/conversion-v3/adapters/index.js +1 -0
  30. package/dist/conversion/conversion-v3/adapters/v3-to-standard-adapter.d.ts +38 -0
  31. package/dist/conversion/conversion-v3/adapters/v3-to-standard-adapter.js +55 -0
  32. package/dist/conversion/conversion-v3/compatibility/compatibility-profiles.d.ts +22 -0
  33. package/dist/conversion/conversion-v3/compatibility/compatibility-profiles.js +84 -0
  34. package/dist/conversion/conversion-v3/compatibility/compatibility-stages.d.ts +4 -0
  35. package/dist/conversion/conversion-v3/compatibility/compatibility-stages.js +285 -0
  36. package/dist/conversion/conversion-v3/compatibility/index.d.ts +3 -0
  37. package/dist/conversion/conversion-v3/compatibility/index.js +2 -0
  38. package/dist/conversion/conversion-v3/config/default-configs.d.ts +48 -0
  39. package/dist/conversion/conversion-v3/config/default-configs.js +1083 -0
  40. package/dist/conversion/conversion-v3/config/index.d.ts +5 -0
  41. package/dist/conversion/conversion-v3/config/index.js +5 -0
  42. package/dist/conversion/conversion-v3/config/pipeline-config-manager.d.ts +49 -0
  43. package/dist/conversion/conversion-v3/config/pipeline-config-manager.js +65 -0
  44. package/dist/conversion/conversion-v3/index.d.ts +11 -0
  45. package/dist/conversion/conversion-v3/index.js +17 -0
  46. package/dist/conversion/conversion-v3/nodes/index.d.ts +56 -0
  47. package/dist/conversion/conversion-v3/nodes/index.js +149 -0
  48. package/dist/conversion/conversion-v3/nodes/input/anthropic-input-node.d.ts +25 -0
  49. package/dist/conversion/conversion-v3/nodes/input/anthropic-input-node.js +56 -0
  50. package/dist/conversion/conversion-v3/nodes/input/base-input-node.d.ts +75 -0
  51. package/dist/conversion/conversion-v3/nodes/input/base-input-node.js +237 -0
  52. package/dist/conversion/conversion-v3/nodes/input/chat-input-node.d.ts +25 -0
  53. package/dist/conversion/conversion-v3/nodes/input/chat-input-node.js +56 -0
  54. package/dist/conversion/conversion-v3/nodes/input/chat-shape-helpers.d.ts +4 -0
  55. package/dist/conversion/conversion-v3/nodes/input/chat-shape-helpers.js +197 -0
  56. package/dist/conversion/conversion-v3/nodes/input/gemini-input-node.d.ts +16 -0
  57. package/dist/conversion/conversion-v3/nodes/input/gemini-input-node.js +125 -0
  58. package/dist/conversion/conversion-v3/nodes/input/index.d.ts +8 -0
  59. package/dist/conversion/conversion-v3/nodes/input/index.js +8 -0
  60. package/dist/conversion/conversion-v3/nodes/input/input-decision.d.ts +46 -0
  61. package/dist/conversion/conversion-v3/nodes/input/input-decision.js +125 -0
  62. package/dist/conversion/conversion-v3/nodes/input/responses-input-node.d.ts +20 -0
  63. package/dist/conversion/conversion-v3/nodes/input/responses-input-node.js +51 -0
  64. package/dist/conversion/conversion-v3/nodes/output/anthropic-output-node.d.ts +71 -0
  65. package/dist/conversion/conversion-v3/nodes/output/anthropic-output-node.js +320 -0
  66. package/dist/conversion/conversion-v3/nodes/output/base-output-node.d.ts +116 -0
  67. package/dist/conversion/conversion-v3/nodes/output/base-output-node.js +512 -0
  68. package/dist/conversion/conversion-v3/nodes/output/index.d.ts +7 -0
  69. package/dist/conversion/conversion-v3/nodes/output/index.js +7 -0
  70. package/dist/conversion/conversion-v3/nodes/output/openai-output-node.d.ts +71 -0
  71. package/dist/conversion/conversion-v3/nodes/output/openai-output-node.js +293 -0
  72. package/dist/conversion/conversion-v3/nodes/output/output-decision.d.ts +68 -0
  73. package/dist/conversion/conversion-v3/nodes/output/output-decision.js +161 -0
  74. package/dist/conversion/conversion-v3/nodes/output/responses-output-node.d.ts +64 -0
  75. package/dist/conversion/conversion-v3/nodes/output/responses-output-node.js +323 -0
  76. package/dist/conversion/conversion-v3/nodes/process/base-process-node.d.ts +72 -0
  77. package/dist/conversion/conversion-v3/nodes/process/base-process-node.js +246 -0
  78. package/dist/conversion/conversion-v3/nodes/process/chat-process-node.d.ts +135 -0
  79. package/dist/conversion/conversion-v3/nodes/process/chat-process-node.js +854 -0
  80. package/dist/conversion/conversion-v3/nodes/process/compatibility-process-node.d.ts +29 -0
  81. package/dist/conversion/conversion-v3/nodes/process/compatibility-process-node.js +181 -0
  82. package/dist/conversion/conversion-v3/nodes/process/index.d.ts +10 -0
  83. package/dist/conversion/conversion-v3/nodes/process/index.js +10 -0
  84. package/dist/conversion/conversion-v3/nodes/process/passthrough-process-node.d.ts +59 -0
  85. package/dist/conversion/conversion-v3/nodes/process/passthrough-process-node.js +243 -0
  86. package/dist/conversion/conversion-v3/nodes/process/response-process-node.d.ts +17 -0
  87. package/dist/conversion/conversion-v3/nodes/process/response-process-node.js +213 -0
  88. package/dist/conversion/conversion-v3/nodes/process/tool-process-node.d.ts +26 -0
  89. package/dist/conversion/conversion-v3/nodes/process/tool-process-node.js +299 -0
  90. package/dist/conversion/conversion-v3/nodes/process/virtual-router-process-node.d.ts +40 -0
  91. package/dist/conversion/conversion-v3/nodes/process/virtual-router-process-node.js +430 -0
  92. package/dist/conversion/conversion-v3/nodes/response/anthropic-response-input-node.d.ts +12 -0
  93. package/dist/conversion/conversion-v3/nodes/response/anthropic-response-input-node.js +129 -0
  94. package/dist/conversion/conversion-v3/nodes/response/chat-to-responses-response-node.d.ts +15 -0
  95. package/dist/conversion/conversion-v3/nodes/response/chat-to-responses-response-node.js +57 -0
  96. package/dist/conversion/conversion-v3/nodes/response/index.d.ts +4 -0
  97. package/dist/conversion/conversion-v3/nodes/response/index.js +4 -0
  98. package/dist/conversion/conversion-v3/nodes/response/openai-response-input-node.d.ts +15 -0
  99. package/dist/conversion/conversion-v3/nodes/response/openai-response-input-node.js +87 -0
  100. package/dist/conversion/conversion-v3/nodes/response/response-utils.d.ts +1 -0
  101. package/dist/conversion/conversion-v3/nodes/response/response-utils.js +1 -0
  102. package/dist/conversion/conversion-v3/nodes/response/responses-response-input-node.d.ts +12 -0
  103. package/dist/conversion/conversion-v3/nodes/response/responses-response-input-node.js +67 -0
  104. package/dist/conversion/conversion-v3/nodes/sse/index.d.ts +3 -0
  105. package/dist/conversion/conversion-v3/nodes/sse/index.js +3 -0
  106. package/dist/conversion/conversion-v3/nodes/sse/sse-input-node.d.ts +27 -0
  107. package/dist/conversion/conversion-v3/nodes/sse/sse-input-node.js +165 -0
  108. package/dist/conversion/conversion-v3/nodes/sse/sse-output-node.d.ts +19 -0
  109. package/dist/conversion/conversion-v3/nodes/sse/sse-output-node.js +267 -0
  110. package/dist/conversion/conversion-v3/nodes/sse/sse-passthrough-node.d.ts +18 -0
  111. package/dist/conversion/conversion-v3/nodes/sse/sse-passthrough-node.js +48 -0
  112. package/dist/conversion/conversion-v3/pipelines/index.d.ts +6 -0
  113. package/dist/conversion/conversion-v3/pipelines/index.js +6 -0
  114. package/dist/conversion/conversion-v3/pipelines/super-pipeline.d.ts +112 -0
  115. package/dist/conversion/conversion-v3/pipelines/super-pipeline.js +566 -0
  116. package/dist/conversion/conversion-v3/response/provider-response-converter.d.ts +28 -0
  117. package/dist/conversion/conversion-v3/response/provider-response-converter.js +249 -0
  118. package/dist/conversion/conversion-v3/sse/index.d.ts +140 -0
  119. package/dist/conversion/conversion-v3/sse/index.js +115 -0
  120. package/dist/conversion/conversion-v3/sse/json-to-sse/anthropic-json-to-sse-converter.d.ts +11 -0
  121. package/dist/conversion/conversion-v3/sse/json-to-sse/anthropic-json-to-sse-converter.js +79 -0
  122. package/dist/conversion/conversion-v3/sse/json-to-sse/chat-json-to-sse-converter.d.ts +79 -0
  123. package/dist/conversion/conversion-v3/sse/json-to-sse/chat-json-to-sse-converter.js +296 -0
  124. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/chat.d.ts +55 -0
  125. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/chat.js +233 -0
  126. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/responses.d.ts +99 -0
  127. package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/responses.js +599 -0
  128. package/dist/conversion/conversion-v3/sse/json-to-sse/index.d.ts +6 -0
  129. package/dist/conversion/conversion-v3/sse/json-to-sse/index.js +7 -0
  130. package/dist/conversion/conversion-v3/sse/json-to-sse/responses-json-to-sse-converter.d.ts +79 -0
  131. package/dist/conversion/conversion-v3/sse/json-to-sse/responses-json-to-sse-converter.js +322 -0
  132. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/chat-sequencer.d.ts +37 -0
  133. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/chat-sequencer.js +218 -0
  134. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/responses-sequencer.d.ts +40 -0
  135. package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/responses-sequencer.js +263 -0
  136. package/dist/conversion/conversion-v3/sse/registry/sse-codec-registry.d.ts +32 -0
  137. package/dist/conversion/conversion-v3/sse/registry/sse-codec-registry.js +106 -0
  138. package/dist/conversion/conversion-v3/sse/shared/chat-serializer.d.ts +4 -0
  139. package/dist/conversion/conversion-v3/sse/shared/chat-serializer.js +40 -0
  140. package/dist/conversion/conversion-v3/sse/shared/constants.d.ts +272 -0
  141. package/dist/conversion/conversion-v3/sse/shared/constants.js +321 -0
  142. package/dist/conversion/conversion-v3/sse/shared/serializers/base-serializer.d.ts +158 -0
  143. package/dist/conversion/conversion-v3/sse/shared/serializers/base-serializer.js +210 -0
  144. package/dist/conversion/conversion-v3/sse/shared/serializers/chat-event-serializer.d.ts +82 -0
  145. package/dist/conversion/conversion-v3/sse/shared/serializers/chat-event-serializer.js +275 -0
  146. package/dist/conversion/conversion-v3/sse/shared/serializers/index.d.ts +39 -0
  147. package/dist/conversion/conversion-v3/sse/shared/serializers/index.js +54 -0
  148. package/dist/conversion/conversion-v3/sse/shared/serializers/responses-event-serializer.d.ts +123 -0
  149. package/dist/conversion/conversion-v3/sse/shared/serializers/responses-event-serializer.js +356 -0
  150. package/dist/conversion/conversion-v3/sse/shared/serializers/types.d.ts +51 -0
  151. package/dist/conversion/conversion-v3/sse/shared/serializers/types.js +4 -0
  152. package/dist/conversion/conversion-v3/sse/shared/utils.d.ts +254 -0
  153. package/dist/conversion/conversion-v3/sse/shared/utils.js +543 -0
  154. package/dist/conversion/conversion-v3/sse/shared/writer.d.ts +111 -0
  155. package/dist/conversion/conversion-v3/sse/shared/writer.js +268 -0
  156. package/dist/conversion/conversion-v3/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +13 -0
  157. package/dist/conversion/conversion-v3/sse/sse-to-json/anthropic-sse-to-json-converter.js +139 -0
  158. package/dist/conversion/conversion-v3/sse/sse-to-json/builders/response-builder.d.ts +165 -0
  159. package/dist/conversion/conversion-v3/sse/sse-to-json/builders/response-builder.js +776 -0
  160. package/dist/conversion/conversion-v3/sse/sse-to-json/chat-sse-to-json-converter.d.ts +106 -0
  161. package/dist/conversion/conversion-v3/sse/sse-to-json/chat-sse-to-json-converter.js +540 -0
  162. package/dist/conversion/conversion-v3/sse/sse-to-json/index.d.ts +6 -0
  163. package/dist/conversion/conversion-v3/sse/sse-to-json/index.js +7 -0
  164. package/dist/conversion/conversion-v3/sse/sse-to-json/parsers/sse-parser.d.ts +73 -0
  165. package/dist/conversion/conversion-v3/sse/sse-to-json/parsers/sse-parser.js +332 -0
  166. package/dist/conversion/conversion-v3/sse/sse-to-json/responses-sse-to-json-converter.d.ts +59 -0
  167. package/dist/conversion/conversion-v3/sse/sse-to-json/responses-sse-to-json-converter.js +270 -0
  168. package/dist/conversion/conversion-v3/sse/types/anthropic-types.d.ts +87 -0
  169. package/dist/conversion/conversion-v3/sse/types/anthropic-types.js +5 -0
  170. package/dist/conversion/conversion-v3/sse/types/chat-types.d.ts +308 -0
  171. package/dist/conversion/conversion-v3/sse/types/chat-types.js +32 -0
  172. package/dist/conversion/conversion-v3/sse/types/conversion-context.d.ts +211 -0
  173. package/dist/conversion/conversion-v3/sse/types/conversion-context.js +20 -0
  174. package/dist/conversion/conversion-v3/sse/types/core-interfaces.d.ts +90 -0
  175. package/dist/conversion/conversion-v3/sse/types/core-interfaces.js +5 -0
  176. package/dist/conversion/conversion-v3/sse/types/index.d.ts +14 -0
  177. package/dist/conversion/conversion-v3/sse/types/index.js +7 -0
  178. package/dist/conversion/conversion-v3/sse/types/responses-types.d.ts +328 -0
  179. package/dist/conversion/conversion-v3/sse/types/responses-types.js +38 -0
  180. package/dist/conversion/conversion-v3/sse/types/sse-events.d.ts +180 -0
  181. package/dist/conversion/conversion-v3/sse/types/sse-events.js +150 -0
  182. package/dist/conversion/conversion-v3/sse/types/stream-state.d.ts +204 -0
  183. package/dist/conversion/conversion-v3/sse/types/stream-state.js +44 -0
  184. package/dist/conversion/conversion-v3/sse/types/utility-types.d.ts +230 -0
  185. package/dist/conversion/conversion-v3/sse/types/utility-types.js +49 -0
  186. package/dist/conversion/conversion-v3/standards/context-adapter.d.ts +146 -0
  187. package/dist/conversion/conversion-v3/standards/context-adapter.js +438 -0
  188. package/dist/conversion/conversion-v3/standards/errors.d.ts +38 -0
  189. package/dist/conversion/conversion-v3/standards/errors.js +27 -0
  190. package/dist/conversion/conversion-v3/standards/index.d.ts +15 -0
  191. package/dist/conversion/conversion-v3/standards/index.js +11 -0
  192. package/dist/conversion/conversion-v3/standards/node-capabilities.d.ts +123 -0
  193. package/dist/conversion/conversion-v3/standards/node-capabilities.js +330 -0
  194. package/dist/conversion/conversion-v3/standards/pipeline-context.d.ts +237 -0
  195. package/dist/conversion/conversion-v3/standards/pipeline-context.js +84 -0
  196. package/dist/conversion/conversion-v3/standards/pipeline-node.d.ts +196 -0
  197. package/dist/conversion/conversion-v3/standards/pipeline-node.js +316 -0
  198. package/dist/conversion/conversion-v3/standards/snapshot-handles.d.ts +24 -0
  199. package/dist/conversion/conversion-v3/standards/snapshot-handles.js +49 -0
  200. package/dist/conversion/conversion-v3/types/config-types.d.ts +242 -0
  201. package/dist/conversion/conversion-v3/types/config-types.js +13 -0
  202. package/dist/conversion/conversion-v3/types/index.d.ts +8 -0
  203. package/dist/conversion/conversion-v3/types/index.js +11 -0
  204. package/dist/conversion/conversion-v3/types/node-types.d.ts +211 -0
  205. package/dist/conversion/conversion-v3/types/node-types.js +20 -0
  206. package/dist/conversion/conversion-v3/types/pipeline-types.d.ts +246 -0
  207. package/dist/conversion/conversion-v3/types/pipeline-types.js +26 -0
  208. package/dist/conversion/conversion-v3/types/request-types.d.ts +293 -0
  209. package/dist/conversion/conversion-v3/types/request-types.js +26 -0
  210. package/dist/conversion/conversion-v3/utils/provider-payload-sanitizer.d.ts +10 -0
  211. package/dist/conversion/conversion-v3/utils/provider-payload-sanitizer.js +103 -0
  212. package/dist/conversion/conversion-v3/validations/index.d.ts +8 -0
  213. package/dist/conversion/conversion-v3/validations/index.js +7 -0
  214. package/dist/conversion/conversion-v3/validations/node-graph-validator.d.ts +116 -0
  215. package/dist/conversion/conversion-v3/validations/node-graph-validator.js +505 -0
  216. package/dist/conversion/conversion-v3/validations/tool-governance-enforcer.d.ts +139 -0
  217. package/dist/conversion/conversion-v3/validations/tool-governance-enforcer.js +338 -0
  218. package/dist/conversion/hub/config/types.d.ts +26 -0
  219. package/dist/conversion/hub/config/types.js +1 -0
  220. package/dist/conversion/hub/core/detour-registry.d.ts +9 -0
  221. package/dist/conversion/hub/core/detour-registry.js +23 -0
  222. package/dist/conversion/hub/core/hub-context.d.ts +21 -0
  223. package/dist/conversion/hub/core/hub-context.js +1 -0
  224. package/dist/conversion/hub/core/index.d.ts +3 -0
  225. package/dist/conversion/hub/core/index.js +3 -0
  226. package/dist/conversion/hub/core/stage-driver.d.ts +30 -0
  227. package/dist/conversion/hub/core/stage-driver.js +31 -0
  228. package/dist/conversion/hub/format-adapters/anthropic-format-adapter.d.ts +16 -0
  229. package/dist/conversion/hub/format-adapters/anthropic-format-adapter.js +23 -0
  230. package/dist/conversion/hub/format-adapters/chat-format-adapter.d.ts +17 -0
  231. package/dist/conversion/hub/format-adapters/chat-format-adapter.js +23 -0
  232. package/dist/conversion/hub/format-adapters/gemini-format-adapter.d.ts +16 -0
  233. package/dist/conversion/hub/format-adapters/gemini-format-adapter.js +23 -0
  234. package/dist/conversion/hub/format-adapters/index.d.ts +21 -0
  235. package/dist/conversion/hub/format-adapters/index.js +4 -0
  236. package/dist/conversion/hub/format-adapters/responses-format-adapter.d.ts +17 -0
  237. package/dist/conversion/hub/format-adapters/responses-format-adapter.js +23 -0
  238. package/dist/conversion/hub/hub-feature.d.ts +1 -0
  239. package/dist/conversion/hub/hub-feature.js +25 -0
  240. package/dist/conversion/hub/node-support.d.ts +19 -0
  241. package/dist/conversion/hub/node-support.js +115 -0
  242. package/dist/conversion/hub/pipeline/hub-pipeline.d.ts +68 -0
  243. package/dist/conversion/hub/pipeline/hub-pipeline.js +421 -0
  244. package/dist/conversion/hub/pipelines/inbound.d.ts +22 -0
  245. package/dist/conversion/hub/pipelines/inbound.js +64 -0
  246. package/dist/conversion/hub/pipelines/outbound.d.ts +22 -0
  247. package/dist/conversion/hub/pipelines/outbound.js +57 -0
  248. package/dist/conversion/hub/process/chat-process.d.ts +13 -0
  249. package/dist/conversion/hub/process/chat-process.js +50 -0
  250. package/dist/conversion/hub/registry.d.ts +28 -0
  251. package/dist/conversion/hub/registry.js +98 -0
  252. package/dist/conversion/hub/response/chat-response-utils.d.ts +6 -0
  253. package/dist/conversion/hub/response/chat-response-utils.js +89 -0
  254. package/dist/conversion/hub/response/provider-response.d.ts +20 -0
  255. package/dist/conversion/hub/response/provider-response.js +196 -0
  256. package/dist/conversion/hub/response/response-mappers.d.ts +19 -0
  257. package/dist/conversion/hub/response/response-mappers.js +23 -0
  258. package/dist/conversion/hub/response/response-runtime.d.ts +3 -0
  259. package/dist/conversion/hub/response/response-runtime.js +206 -0
  260. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.d.ts +7 -0
  261. package/dist/conversion/hub/semantic-mappers/anthropic-mapper.js +308 -0
  262. package/dist/conversion/hub/semantic-mappers/chat-mapper.d.ts +7 -0
  263. package/dist/conversion/hub/semantic-mappers/chat-mapper.js +304 -0
  264. package/dist/conversion/hub/semantic-mappers/gemini-mapper.d.ts +7 -0
  265. package/dist/conversion/hub/semantic-mappers/gemini-mapper.js +477 -0
  266. package/dist/conversion/hub/semantic-mappers/index.d.ts +4 -0
  267. package/dist/conversion/hub/semantic-mappers/index.js +4 -0
  268. package/dist/conversion/hub/semantic-mappers/responses-mapper.d.ts +21 -0
  269. package/dist/conversion/hub/semantic-mappers/responses-mapper.js +379 -0
  270. package/dist/conversion/hub/snapshot-recorder.d.ts +12 -0
  271. package/dist/conversion/hub/snapshot-recorder.js +69 -0
  272. package/dist/conversion/hub/standardized-bridge.d.ts +12 -0
  273. package/dist/conversion/hub/standardized-bridge.js +248 -0
  274. package/dist/conversion/hub/types/chat-envelope.d.ts +67 -0
  275. package/dist/conversion/hub/types/chat-envelope.js +1 -0
  276. package/dist/conversion/hub/types/chat-schema.d.ts +112 -0
  277. package/dist/conversion/hub/types/chat-schema.js +1 -0
  278. package/dist/conversion/hub/types/errors.d.ts +5 -0
  279. package/dist/conversion/hub/types/errors.js +13 -0
  280. package/dist/conversion/hub/types/format-envelope.d.ts +7 -0
  281. package/dist/conversion/hub/types/format-envelope.js +1 -0
  282. package/dist/conversion/hub/types/index.d.ts +6 -0
  283. package/dist/conversion/hub/types/index.js +6 -0
  284. package/dist/conversion/hub/types/json.d.ts +9 -0
  285. package/dist/conversion/hub/types/json.js +9 -0
  286. package/dist/conversion/hub/types/node.d.ts +31 -0
  287. package/dist/conversion/hub/types/node.js +1 -0
  288. package/dist/conversion/hub/types/standardized.d.ts +94 -0
  289. package/dist/conversion/hub/types/standardized.js +1 -0
  290. package/dist/conversion/index.d.ts +28 -0
  291. package/dist/conversion/index.js +28 -0
  292. package/dist/conversion/responses/responses-openai-bridge.d.ts +95 -0
  293. package/dist/conversion/responses/responses-openai-bridge.js +1330 -0
  294. package/dist/conversion/schema-validator.d.ts +7 -0
  295. package/dist/conversion/schema-validator.js +67 -0
  296. package/dist/conversion/shared/args-mapping.d.ts +18 -0
  297. package/dist/conversion/shared/args-mapping.js +213 -0
  298. package/dist/conversion/shared/chat-request-filters.d.ts +9 -0
  299. package/dist/conversion/shared/chat-request-filters.js +74 -0
  300. package/dist/conversion/shared/jsonish.d.ts +3 -0
  301. package/dist/conversion/shared/jsonish.js +177 -0
  302. package/dist/conversion/shared/mcp-injection.d.ts +2 -0
  303. package/dist/conversion/shared/mcp-injection.js +89 -0
  304. package/dist/conversion/shared/media.d.ts +1 -0
  305. package/dist/conversion/shared/media.js +9 -0
  306. package/dist/conversion/shared/openai-finalizer.d.ts +9 -0
  307. package/dist/conversion/shared/openai-finalizer.js +104 -0
  308. package/dist/conversion/shared/openai-message-normalize.d.ts +1 -0
  309. package/dist/conversion/shared/openai-message-normalize.js +442 -0
  310. package/dist/conversion/shared/payload-budget.d.ts +13 -0
  311. package/dist/conversion/shared/payload-budget.js +248 -0
  312. package/dist/conversion/shared/reasoning-mapping.d.ts +5 -0
  313. package/dist/conversion/shared/reasoning-mapping.js +8 -0
  314. package/dist/conversion/shared/responses-conversation-store.d.ts +41 -0
  315. package/dist/conversion/shared/responses-conversation-store.js +285 -0
  316. package/dist/conversion/shared/responses-id-utils.d.ts +7 -0
  317. package/dist/conversion/shared/responses-id-utils.js +29 -0
  318. package/dist/conversion/shared/responses-instructions.d.ts +1 -0
  319. package/dist/conversion/shared/responses-instructions.js +113 -0
  320. package/dist/conversion/shared/responses-metadata.d.ts +1 -0
  321. package/dist/conversion/shared/responses-metadata.js +1 -0
  322. package/dist/conversion/shared/responses-request-adapter.d.ts +66 -0
  323. package/dist/conversion/shared/responses-request-adapter.js +461 -0
  324. package/dist/conversion/shared/snapshot-hooks.d.ts +12 -0
  325. package/dist/conversion/shared/snapshot-hooks.js +7 -0
  326. package/dist/conversion/shared/streaming-text-extractor.d.ts +26 -0
  327. package/dist/conversion/shared/streaming-text-extractor.js +145 -0
  328. package/dist/conversion/shared/text-markup-normalizer.d.ts +9 -0
  329. package/dist/conversion/shared/text-markup-normalizer.js +319 -0
  330. package/dist/conversion/shared/tool-canonicalizer.d.ts +2 -0
  331. package/dist/conversion/shared/tool-canonicalizer.js +50 -0
  332. package/dist/conversion/shared/tool-filter-pipeline.d.ts +17 -0
  333. package/dist/conversion/shared/tool-filter-pipeline.js +79 -0
  334. package/dist/conversion/shared/tool-governor.d.ts +27 -0
  335. package/dist/conversion/shared/tool-governor.js +269 -0
  336. package/dist/conversion/shared/tool-harvester.d.ts +31 -0
  337. package/dist/conversion/shared/tool-harvester.js +321 -0
  338. package/dist/conversion/shared/tool-mapping.d.ts +10 -0
  339. package/dist/conversion/shared/tool-mapping.js +10 -0
  340. package/dist/conversion/shared/tooling.d.ts +26 -0
  341. package/dist/conversion/shared/tooling.js +143 -0
  342. package/dist/conversion/types.d.ts +33 -0
  343. package/dist/conversion/types.js +1 -0
  344. package/dist/core/index.d.ts +6 -0
  345. package/dist/core/index.js +9 -0
  346. package/dist/core/llmswitch-engine-v2.d.ts +132 -0
  347. package/dist/core/llmswitch-engine-v2.js +649 -0
  348. package/dist/core/llmswitch-factory-v2.d.ts +123 -0
  349. package/dist/core/llmswitch-factory-v2.js +521 -0
  350. package/dist/endpoints/base-endpoint-handler.d.ts +128 -0
  351. package/dist/endpoints/base-endpoint-handler.js +545 -0
  352. package/dist/endpoints/chat-endpoint-handler.d.ts +115 -0
  353. package/dist/endpoints/chat-endpoint-handler.js +218 -0
  354. package/dist/endpoints/endpoint-router.d.ts +127 -0
  355. package/dist/endpoints/endpoint-router.js +438 -0
  356. package/dist/endpoints/index.d.ts +13 -0
  357. package/dist/endpoints/index.js +11 -0
  358. package/dist/endpoints/messages-endpoint-handler.d.ts +171 -0
  359. package/dist/endpoints/messages-endpoint-handler.js +238 -0
  360. package/dist/endpoints/responses-endpoint-handler.d.ts +147 -0
  361. package/dist/endpoints/responses-endpoint-handler.js +233 -0
  362. package/dist/filters/builtin/add-fields-filter.d.ts +8 -0
  363. package/dist/filters/builtin/add-fields-filter.js +16 -0
  364. package/dist/filters/builtin/blacklist-filter.d.ts +8 -0
  365. package/dist/filters/builtin/blacklist-filter.js +19 -0
  366. package/dist/filters/builtin/whitelist-filter.d.ts +8 -0
  367. package/dist/filters/builtin/whitelist-filter.js +19 -0
  368. package/dist/filters/engine.d.ts +16 -0
  369. package/dist/filters/engine.js +167 -0
  370. package/dist/filters/index.d.ts +19 -0
  371. package/dist/filters/index.js +24 -0
  372. package/dist/filters/special/request-streaming-to-nonstreaming.d.ts +12 -0
  373. package/dist/filters/special/request-streaming-to-nonstreaming.js +27 -0
  374. package/dist/filters/special/request-tool-choice-policy.d.ts +11 -0
  375. package/dist/filters/special/request-tool-choice-policy.js +27 -0
  376. package/dist/filters/special/request-tool-list-filter.d.ts +11 -0
  377. package/dist/filters/special/request-tool-list-filter.js +167 -0
  378. package/dist/filters/special/request-toolcalls-stringify.d.ts +10 -0
  379. package/dist/filters/special/request-toolcalls-stringify.js +44 -0
  380. package/dist/filters/special/request-tools-normalize.d.ts +12 -0
  381. package/dist/filters/special/request-tools-normalize.js +140 -0
  382. package/dist/filters/special/response-finish-invariants.d.ts +11 -0
  383. package/dist/filters/special/response-finish-invariants.js +30 -0
  384. package/dist/filters/special/response-openai-to-responses-bridge.d.ts +13 -0
  385. package/dist/filters/special/response-openai-to-responses-bridge.js +24 -0
  386. package/dist/filters/special/response-tool-arguments-blacklist.d.ts +12 -0
  387. package/dist/filters/special/response-tool-arguments-blacklist.js +63 -0
  388. package/dist/filters/special/response-tool-arguments-schema-converge.d.ts +13 -0
  389. package/dist/filters/special/response-tool-arguments-schema-converge.js +63 -0
  390. package/dist/filters/special/response-tool-arguments-stringify.d.ts +9 -0
  391. package/dist/filters/special/response-tool-arguments-stringify.js +134 -0
  392. package/dist/filters/special/response-tool-arguments-toon-decode.d.ts +10 -0
  393. package/dist/filters/special/response-tool-arguments-toon-decode.js +94 -0
  394. package/dist/filters/special/response-tool-arguments-whitelist.d.ts +11 -0
  395. package/dist/filters/special/response-tool-arguments-whitelist.js +56 -0
  396. package/dist/filters/special/response-tool-text-canonicalize.d.ts +10 -0
  397. package/dist/filters/special/response-tool-text-canonicalize.js +20 -0
  398. package/dist/filters/special/tool-filter-hooks.d.ts +19 -0
  399. package/dist/filters/special/tool-filter-hooks.js +341 -0
  400. package/dist/filters/special/tool-post-constraints.d.ts +31 -0
  401. package/dist/filters/special/tool-post-constraints.js +120 -0
  402. package/dist/filters/types.d.ts +68 -0
  403. package/dist/filters/types.js +3 -0
  404. package/dist/filters/utils/fieldmap-loader.d.ts +2 -0
  405. package/dist/filters/utils/fieldmap-loader.js +16 -0
  406. package/dist/filters/utils/snapshot-writer.d.ts +10 -0
  407. package/dist/filters/utils/snapshot-writer.js +47 -0
  408. package/dist/guidance/index.d.ts +3 -0
  409. package/dist/guidance/index.js +228 -0
  410. package/dist/hooks/hooks-integration.d.ts +161 -0
  411. package/dist/hooks/hooks-integration.js +519 -0
  412. package/dist/hooks/index.d.ts +10 -0
  413. package/dist/hooks/index.js +13 -0
  414. package/dist/html-to-markdown.d.ts +5 -0
  415. package/dist/html-to-markdown.js +66 -0
  416. package/dist/http/sse-response.d.ts +22 -0
  417. package/dist/http/sse-response.js +103 -0
  418. package/dist/index.d.ts +10 -0
  419. package/dist/index.js +10 -0
  420. package/dist/router/virtual-router/bootstrap.d.ts +6 -0
  421. package/dist/router/virtual-router/bootstrap.js +620 -0
  422. package/dist/router/virtual-router/classifier.d.ts +10 -0
  423. package/dist/router/virtual-router/classifier.js +99 -0
  424. package/dist/router/virtual-router/engine.d.ts +35 -0
  425. package/dist/router/virtual-router/engine.js +260 -0
  426. package/dist/router/virtual-router/error-center.d.ts +10 -0
  427. package/dist/router/virtual-router/error-center.js +39 -0
  428. package/dist/router/virtual-router/features.d.ts +3 -0
  429. package/dist/router/virtual-router/features.js +162 -0
  430. package/dist/router/virtual-router/health-manager.d.ts +18 -0
  431. package/dist/router/virtual-router/health-manager.js +98 -0
  432. package/dist/router/virtual-router/load-balancer.d.ts +18 -0
  433. package/dist/router/virtual-router/load-balancer.js +67 -0
  434. package/dist/router/virtual-router/provider-registry.d.ts +11 -0
  435. package/dist/router/virtual-router/provider-registry.js +74 -0
  436. package/dist/router/virtual-router/types.d.ts +206 -0
  437. package/dist/router/virtual-router/types.js +31 -0
  438. package/dist/sse/index.d.ts +140 -0
  439. package/dist/sse/index.js +115 -0
  440. package/dist/sse/json-to-sse/anthropic-json-to-sse-converter.d.ts +11 -0
  441. package/dist/sse/json-to-sse/anthropic-json-to-sse-converter.js +79 -0
  442. package/dist/sse/json-to-sse/chat-json-to-sse-converter.d.ts +79 -0
  443. package/dist/sse/json-to-sse/chat-json-to-sse-converter.js +296 -0
  444. package/dist/sse/json-to-sse/event-generators/chat.d.ts +55 -0
  445. package/dist/sse/json-to-sse/event-generators/chat.js +233 -0
  446. package/dist/sse/json-to-sse/event-generators/responses.d.ts +99 -0
  447. package/dist/sse/json-to-sse/event-generators/responses.js +599 -0
  448. package/dist/sse/json-to-sse/index.d.ts +6 -0
  449. package/dist/sse/json-to-sse/index.js +7 -0
  450. package/dist/sse/json-to-sse/responses-json-to-sse-converter.d.ts +79 -0
  451. package/dist/sse/json-to-sse/responses-json-to-sse-converter.js +322 -0
  452. package/dist/sse/json-to-sse/sequencers/chat-sequencer.d.ts +37 -0
  453. package/dist/sse/json-to-sse/sequencers/chat-sequencer.js +218 -0
  454. package/dist/sse/json-to-sse/sequencers/responses-sequencer.d.ts +40 -0
  455. package/dist/sse/json-to-sse/sequencers/responses-sequencer.js +263 -0
  456. package/dist/sse/registry/sse-codec-registry.d.ts +32 -0
  457. package/dist/sse/registry/sse-codec-registry.js +106 -0
  458. package/dist/sse/shared/chat-serializer.d.ts +4 -0
  459. package/dist/sse/shared/chat-serializer.js +40 -0
  460. package/dist/sse/shared/constants.d.ts +272 -0
  461. package/dist/sse/shared/constants.js +321 -0
  462. package/dist/sse/shared/serializers/base-serializer.d.ts +158 -0
  463. package/dist/sse/shared/serializers/base-serializer.js +210 -0
  464. package/dist/sse/shared/serializers/chat-event-serializer.d.ts +82 -0
  465. package/dist/sse/shared/serializers/chat-event-serializer.js +275 -0
  466. package/dist/sse/shared/serializers/index.d.ts +39 -0
  467. package/dist/sse/shared/serializers/index.js +54 -0
  468. package/dist/sse/shared/serializers/responses-event-serializer.d.ts +123 -0
  469. package/dist/sse/shared/serializers/responses-event-serializer.js +356 -0
  470. package/dist/sse/shared/serializers/types.d.ts +51 -0
  471. package/dist/sse/shared/serializers/types.js +4 -0
  472. package/dist/sse/shared/utils.d.ts +254 -0
  473. package/dist/sse/shared/utils.js +543 -0
  474. package/dist/sse/shared/writer.d.ts +111 -0
  475. package/dist/sse/shared/writer.js +268 -0
  476. package/dist/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +13 -0
  477. package/dist/sse/sse-to-json/anthropic-sse-to-json-converter.js +139 -0
  478. package/dist/sse/sse-to-json/builders/response-builder.d.ts +165 -0
  479. package/dist/sse/sse-to-json/builders/response-builder.js +776 -0
  480. package/dist/sse/sse-to-json/chat-sse-to-json-converter.d.ts +106 -0
  481. package/dist/sse/sse-to-json/chat-sse-to-json-converter.js +540 -0
  482. package/dist/sse/sse-to-json/index.d.ts +6 -0
  483. package/dist/sse/sse-to-json/index.js +7 -0
  484. package/dist/sse/sse-to-json/parsers/sse-parser.d.ts +73 -0
  485. package/dist/sse/sse-to-json/parsers/sse-parser.js +340 -0
  486. package/dist/sse/sse-to-json/responses-sse-to-json-converter.d.ts +59 -0
  487. package/dist/sse/sse-to-json/responses-sse-to-json-converter.js +270 -0
  488. package/dist/sse/types/anthropic-types.d.ts +87 -0
  489. package/dist/sse/types/anthropic-types.js +5 -0
  490. package/dist/sse/types/chat-types.d.ts +308 -0
  491. package/dist/sse/types/chat-types.js +32 -0
  492. package/dist/sse/types/conversion-context.d.ts +211 -0
  493. package/dist/sse/types/conversion-context.js +20 -0
  494. package/dist/sse/types/core-interfaces.d.ts +90 -0
  495. package/dist/sse/types/core-interfaces.js +5 -0
  496. package/dist/sse/types/index.d.ts +14 -0
  497. package/dist/sse/types/index.js +7 -0
  498. package/dist/sse/types/responses-types.d.ts +328 -0
  499. package/dist/sse/types/responses-types.js +38 -0
  500. package/dist/sse/types/sse-events.d.ts +180 -0
  501. package/dist/sse/types/sse-events.js +150 -0
  502. package/dist/sse/types/stream-state.d.ts +204 -0
  503. package/dist/sse/types/stream-state.js +44 -0
  504. package/dist/sse/types/utility-types.d.ts +230 -0
  505. package/dist/sse/types/utility-types.js +49 -0
  506. package/dist/tools/proxy/anthropic-tool-proxy.d.ts +19 -0
  507. package/dist/tools/proxy/anthropic-tool-proxy.js +57 -0
  508. package/dist/tools/proxy/executors/web-fetch.d.ts +6 -0
  509. package/dist/tools/proxy/executors/web-fetch.js +39 -0
  510. package/dist/tools/proxy/registry.d.ts +8 -0
  511. package/dist/tools/proxy/registry.js +14 -0
  512. package/dist/tools/proxy/types.d.ts +29 -0
  513. package/dist/tools/proxy/types.js +1 -0
  514. package/dist/tools/tool-registry.d.ts +8 -0
  515. package/dist/tools/tool-registry.js +154 -0
  516. package/dist/tools/web-fetch-html.d.ts +15 -0
  517. package/dist/tools/web-fetch-html.js +83 -0
  518. package/dist/utils/conversion-adapter.d.ts +65 -0
  519. package/dist/utils/conversion-adapter.js +183 -0
  520. package/dist/utils/error-factory.d.ts +88 -0
  521. package/dist/utils/error-factory.js +138 -0
  522. package/dist/utils/error-utils.d.ts +334 -0
  523. package/dist/utils/error-utils.js +782 -0
  524. package/dist/utils/index.d.ts +8 -0
  525. package/dist/utils/index.js +13 -0
  526. package/dist/utils/performance-utils.d.ts +205 -0
  527. package/dist/utils/performance-utils.js +440 -0
  528. package/dist/utils/profile-mapper.d.ts +32 -0
  529. package/dist/utils/profile-mapper.js +269 -0
  530. package/dist/utils/request-processor.d.ts +52 -0
  531. package/dist/utils/request-processor.js +210 -0
  532. package/dist/utils/request-utils.d.ts +117 -0
  533. package/dist/utils/request-utils.js +333 -0
  534. package/dist/utils/response-utils.d.ts +127 -0
  535. package/dist/utils/response-utils.js +516 -0
  536. package/dist/utils/token-counter.d.ts +89 -0
  537. package/dist/utils/token-counter.js +541 -0
  538. package/package.json +65 -0
@@ -0,0 +1,272 @@
1
+ /**
2
+ * 共享常量定义
3
+ * 定义JSON↔SSE双向转换中使用的常量
4
+ */
5
+ export declare const PROTOCOL_TYPES: {
6
+ readonly CHAT: "chat";
7
+ readonly RESPONSES: "responses";
8
+ };
9
+ export declare const CONVERSION_DIRECTIONS: {
10
+ readonly JSON_TO_SSE: "json_to_sse";
11
+ readonly SSE_TO_JSON: "sse_to_json";
12
+ };
13
+ export declare const TIMEOUT_CONSTANTS: {
14
+ readonly DEFAULT_TIMEOUT_MS: 30000;
15
+ readonly HEARTBEAT_INTERVAL_MS: 15000;
16
+ readonly INACTIVITY_TIMEOUT_MS: 60000;
17
+ readonly EVENT_PROCESSING_TIMEOUT_MS: 5000;
18
+ readonly CHUNK_TIMEOUT_MS: 10000;
19
+ readonly TOTAL_TIMEOUT_MS: 300000;
20
+ };
21
+ export declare const CHUNK_CONSTANTS: {
22
+ readonly DEFAULT_CHUNK_SIZE: 12;
23
+ readonly DEFAULT_DELAY_MS: 8;
24
+ readonly REASONING_CHUNK_SIZE: 24;
25
+ readonly TEXT_CHUNK_SIZE: 12;
26
+ readonly FUNCTION_CALL_CHUNK_SIZE: 24;
27
+ readonly MAX_CHUNK_SIZE: 1024;
28
+ readonly MIN_CHUNK_SIZE: 1;
29
+ };
30
+ export declare const BUFFER_CONSTANTS: {
31
+ readonly DEFAULT_BUFFER_SIZE: 1000;
32
+ readonly MAX_BUFFER_SIZE: 10000;
33
+ readonly HIGH_WATER_MARK: 8000;
34
+ readonly LOW_WATER_MARK: 2000;
35
+ readonly BACKPRESSURE_THRESHOLD: 0.8;
36
+ };
37
+ export declare const RETRY_CONSTANTS: {
38
+ readonly DEFAULT_MAX_RETRIES: 3;
39
+ readonly INITIAL_DELAY_MS: 1000;
40
+ readonly MAX_DELAY_MS: 30000;
41
+ readonly BACKOFF_MULTIPLIER: 2;
42
+ readonly JITTER_FACTOR: 0.1;
43
+ };
44
+ export declare const VALIDATION_CONSTANTS: {
45
+ readonly MAX_SEQUENCE_NUMBER: 10000;
46
+ readonly MAX_OUTPUT_ITEMS: 100;
47
+ readonly MAX_CONTENT_PARTS: 1000;
48
+ readonly MAX_TOOL_CALLS: 50;
49
+ readonly MAX_MESSAGE_LENGTH: 1000000;
50
+ readonly MAX_ARGUMENTS_LENGTH: 100000;
51
+ };
52
+ export declare const ERROR_CODES: {
53
+ readonly TIMEOUT: "TIMEOUT";
54
+ readonly INVALID_INPUT: "INVALID_INPUT";
55
+ readonly PARSE_ERROR: "PARSE_ERROR";
56
+ readonly VALIDATION_ERROR: "VALIDATION_ERROR";
57
+ readonly STREAM_ERROR: "STREAM_ERROR";
58
+ readonly CHAT_TIMEOUT: "CHAT_TIMEOUT";
59
+ readonly CHAT_INVALID_CHUNK: "CHAT_INVALID_CHUNK";
60
+ readonly CHAT_SEQUENCE_ERROR: "CHAT_SEQUENCE_ERROR";
61
+ readonly CHAT_TOOL_CALL_ERROR: "CHAT_TOOL_CALL_ERROR";
62
+ readonly CHAT_PARSE_ERROR: "CHAT_PARSE_ERROR";
63
+ readonly CHAT_VALIDATION_ERROR: "CHAT_VALIDATION_ERROR";
64
+ readonly CHAT_STREAM_ERROR: "CHAT_STREAM_ERROR";
65
+ readonly RESPONSES_TIMEOUT: "RESPONSES_TIMEOUT";
66
+ readonly RESPONSES_INVALID_EVENT: "RESPONSES_INVALID_EVENT";
67
+ readonly RESPONSES_SEQUENCE_ERROR: "RESPONSES_SEQUENCE_ERROR";
68
+ readonly RESPONSES_OUTPUT_ITEM_ERROR: "RESPONSES_OUTPUT_ITEM_ERROR";
69
+ readonly RESPONSES_CONTENT_PART_ERROR: "RESPONSES_CONTENT_PART_ERROR";
70
+ readonly RESPONSES_PARSE_ERROR: "RESPONSES_PARSE_ERROR";
71
+ readonly RESPONSES_VALIDATION_ERROR: "RESPONSES_VALIDATION_ERROR";
72
+ readonly RESPONSES_STREAM_ERROR: "RESPONSES_STREAM_ERROR";
73
+ };
74
+ export declare const STREAM_STATUS: {
75
+ readonly IDLE: "idle";
76
+ readonly STARTING: "starting";
77
+ readonly ACTIVE: "active";
78
+ readonly PAUSED: "paused";
79
+ readonly COMPLETING: "completing";
80
+ readonly COMPLETED: "completed";
81
+ readonly ERROR: "error";
82
+ readonly TIMEOUT: "timeout";
83
+ readonly ABORTED: "aborted";
84
+ };
85
+ export declare const CHAT_EVENT_TYPES: {
86
+ readonly CHUNK: "chat_chunk";
87
+ readonly DONE: "chat.done";
88
+ readonly ERROR: "error";
89
+ readonly PING: "ping";
90
+ };
91
+ export declare const RESPONSES_EVENT_TYPES: {
92
+ readonly RESPONSE_CREATED: "response.created";
93
+ readonly RESPONSE_IN_PROGRESS: "response.in_progress";
94
+ readonly RESPONSE_COMPLETED: "response.completed";
95
+ readonly RESPONSE_REQUIRED_ACTION: "response.required_action";
96
+ readonly RESPONSE_DONE: "response.done";
97
+ readonly OUTPUT_ITEM_ADDED: "response.output_item.added";
98
+ readonly OUTPUT_ITEM_DONE: "response.output_item.done";
99
+ readonly CONTENT_PART_ADDED: "response.content_part.added";
100
+ readonly CONTENT_PART_DONE: "response.content_part.done";
101
+ readonly OUTPUT_TEXT_DELTA: "response.output_text.delta";
102
+ readonly OUTPUT_TEXT_DONE: "response.output_text.done";
103
+ readonly REASONING_TEXT_DELTA: "response.reasoning_text.delta";
104
+ readonly REASONING_TEXT_DONE: "response.reasoning_text.done";
105
+ readonly FUNCTION_CALL_ARGUMENTS_DELTA: "response.function_call_arguments.delta";
106
+ readonly FUNCTION_CALL_ARGUMENTS_DONE: "response.function_call_arguments.done";
107
+ };
108
+ export declare const OUTPUT_ITEM_TYPES: {
109
+ readonly REASONING: "reasoning";
110
+ readonly MESSAGE: "message";
111
+ readonly FUNCTION_CALL: "function_call";
112
+ readonly SYSTEM_MESSAGE: "system_message";
113
+ readonly FUNCTION_CALL_OUTPUT: "function_call_output";
114
+ };
115
+ export declare const CONTENT_PART_TYPES: {
116
+ readonly REASONING_TEXT: "reasoning_text";
117
+ readonly REASONING_SIGNATURE: "reasoning_signature";
118
+ readonly REASONING_IMAGE: "reasoning_image";
119
+ readonly OUTPUT_TEXT: "output_text";
120
+ readonly INPUT_TEXT: "input_text";
121
+ readonly INPUT_IMAGE: "input_image";
122
+ readonly COMMENTARY: "commentary";
123
+ };
124
+ export declare const TOOL_CALL_TYPES: {
125
+ readonly FUNCTION: "function";
126
+ };
127
+ export declare const RESPONSE_STATUS: {
128
+ readonly IN_PROGRESS: "in_progress";
129
+ readonly REQUIRES_ACTION: "requires_action";
130
+ readonly COMPLETED: "completed";
131
+ readonly FAILED: "failed";
132
+ readonly INCOMPLETE: "incomplete";
133
+ };
134
+ export declare const FINISH_REASONS: {
135
+ readonly STOP: "stop";
136
+ readonly LENGTH: "length";
137
+ readonly TOOL_CALLS: "tool_calls";
138
+ readonly CONTENT_FILTER: "content_filter";
139
+ readonly FUNCTION_CALL: "function_call";
140
+ };
141
+ export declare const REQUIRED_ACTION_TYPES: {
142
+ readonly SUBMIT_TOOL_OUTPUTS: "submit_tool_outputs";
143
+ readonly RUN_PARALLEL_TOOLS: "run_parallel_tools";
144
+ };
145
+ export declare const DEFAULT_CONFIG: {
146
+ readonly TIMEOUT_MS: 30000;
147
+ readonly HEARTBEAT_INTERVAL_MS: 15000;
148
+ readonly CHUNK_SIZE: 12;
149
+ readonly DELAY_MS: 8;
150
+ readonly VALIDATION_MODE: "basic";
151
+ readonly DEBUG_MODE: false;
152
+ readonly CHAT: {
153
+ readonly TIMEOUT_MS: 30000;
154
+ readonly HEARTBEAT_INTERVAL_MS: 15000;
155
+ readonly CHUNK_DELAY_MS: 10;
156
+ readonly MAX_TOKENS_PER_CHUNK: 100;
157
+ readonly VALIDATE_CHUNKS: true;
158
+ readonly STRICT_MODE: false;
159
+ readonly VALIDATE_TOOL_CALLS: true;
160
+ readonly MAX_CONCURRENT_CHOICES: 10;
161
+ readonly MAX_CONCURRENT_TOOL_CALLS: 50;
162
+ };
163
+ readonly RESPONSES: {
164
+ readonly TIMEOUT_MS: 30000;
165
+ readonly HEARTBEAT_INTERVAL_MS: 15000;
166
+ readonly REASONING_CHUNK_SIZE: 24;
167
+ readonly TEXT_CHUNK_SIZE: 12;
168
+ readonly FUNCTION_CALL_CHUNK_SIZE: 24;
169
+ readonly ENABLE_EVENT_VALIDATION: true;
170
+ readonly ENABLE_SEQUENCE_VALIDATION: true;
171
+ readonly STRICT_MODE: false;
172
+ readonly VALIDATE_OUTPUT_ITEMS: true;
173
+ readonly MAX_CONCURRENT_OUTPUT_ITEMS: 10;
174
+ readonly MAX_CONCURRENT_CONTENT_PARTS: 50;
175
+ };
176
+ };
177
+ export declare const ENV_KEYS: {
178
+ readonly SSE_DEFAULT_TIMEOUT_MS: "SSE_DEFAULT_TIMEOUT_MS";
179
+ readonly SSE_HEARTBEAT_INTERVAL_MS: "SSE_HEARTBEAT_INTERVAL_MS";
180
+ readonly SSE_INACTIVITY_TIMEOUT_MS: "SSE_INACTIVITY_TIMEOUT_MS";
181
+ readonly SSE_EVENT_PROCESSING_TIMEOUT_MS: "SSE_EVENT_PROCESSING_TIMEOUT_MS";
182
+ readonly SSE_DEFAULT_CHUNK_SIZE: "SSE_DEFAULT_CHUNK_SIZE";
183
+ readonly SSE_DEFAULT_DELAY_MS: "SSE_DEFAULT_DELAY_MS";
184
+ readonly SSE_REASONING_CHUNK_SIZE: "SSE_REASONING_CHUNK_SIZE";
185
+ readonly SSE_TEXT_CHUNK_SIZE: "SSE_TEXT_CHUNK_SIZE";
186
+ readonly SSE_ARGS_CHUNK_SIZE: "SSE_ARGS_CHUNK_SIZE";
187
+ readonly SSE_ARGS_DELAY_MS: "SSE_ARGS_DELAY_MS";
188
+ readonly SSE_MAX_BUFFER_SIZE: "SSE_MAX_BUFFER_SIZE";
189
+ readonly SSE_HIGH_WATER_MARK: "SSE_HIGH_WATER_MARK";
190
+ readonly SSE_LOW_WATER_MARK: "SSE_LOW_WATER_MARK";
191
+ readonly SSE_ENABLE_VALIDATION: "SSE_ENABLE_VALIDATION";
192
+ readonly SSE_ENABLE_SEQUENCE_VALIDATION: "SSE_ENABLE_SEQUENCE_VALIDATION";
193
+ readonly SSE_MAX_SEQUENCE_NUMBER: "SSE_MAX_SEQUENCE_NUMBER";
194
+ readonly SSE_STRICT_MODE: "SSE_STRICT_MODE";
195
+ readonly SSE_DEBUG_EVENTS: "SSE_DEBUG_EVENTS";
196
+ readonly SSE_DEBUG_MODE: "SSE_DEBUG_MODE";
197
+ readonly SSE_LOG_LEVEL: "SSE_LOG_LEVEL";
198
+ readonly SSE_ENABLE_METRICS: "SSE_ENABLE_METRICS";
199
+ readonly RCC_STREAM_HEARTBEAT: "RCC_STREAM_HEARTBEAT";
200
+ readonly RCC_STREAM_PRE_HEARTBEAT: "RCC_STREAM_PRE_HEARTBEAT";
201
+ readonly RCC_RESP_GENERIC_ONMESSAGE: "RCC_RESP_GENERIC_ONMESSAGE";
202
+ readonly LMSTUDIO_BASE_URL: "LMSTUDIO_BASEURL";
203
+ readonly LMSTUDIO_API_KEY: "LMSTUDIO_API_KEY";
204
+ };
205
+ export declare const HTTP_STATUS_CODES: {
206
+ readonly OK: 200;
207
+ readonly BAD_REQUEST: 400;
208
+ readonly UNAUTHORIZED: 401;
209
+ readonly FORBIDDEN: 403;
210
+ readonly NOT_FOUND: 404;
211
+ readonly METHOD_NOT_ALLOWED: 405;
212
+ readonly TIMEOUT: 408;
213
+ readonly TOO_MANY_REQUESTS: 429;
214
+ readonly INTERNAL_SERVER_ERROR: 500;
215
+ readonly BAD_GATEWAY: 502;
216
+ readonly SERVICE_UNAVAILABLE: 503;
217
+ readonly GATEWAY_TIMEOUT: 504;
218
+ };
219
+ export declare const CONTENT_TYPES: {
220
+ readonly JSON: "application/json";
221
+ readonly SSE: "text/event-stream";
222
+ readonly TEXT: "text/plain";
223
+ readonly HTML: "text/html";
224
+ };
225
+ export declare const SSE_FIELDS: {
226
+ readonly EVENT: "event";
227
+ readonly DATA: "data";
228
+ readonly ID: "id";
229
+ readonly RETRY: "retry";
230
+ };
231
+ export declare const STANDARD_SSE_EVENTS: {
232
+ readonly OPEN: "open";
233
+ readonly MESSAGE: "message";
234
+ readonly ERROR: "error";
235
+ readonly CLOSE: "close";
236
+ };
237
+ export declare const CACHE_PREFIXES: {
238
+ readonly CONVERSION: "conversion:";
239
+ readonly VALIDATION: "validation:";
240
+ readonly METRICS: "metrics:";
241
+ readonly CONFIG: "config:";
242
+ };
243
+ export declare const METRIC_NAMES: {
244
+ readonly CONVERSION_REQUESTS_TOTAL: "conversion_requests_total";
245
+ readonly CONVERSION_ERRORS_TOTAL: "conversion_errors_total";
246
+ readonly EVENTS_PROCESSED_TOTAL: "events_processed_total";
247
+ readonly TIMEOUTS_TOTAL: "timeouts_total";
248
+ readonly CONVERSION_DURATION_SECONDS: "conversion_duration_seconds";
249
+ readonly EVENT_PROCESSING_DURATION_SECONDS: "event_processing_duration_seconds";
250
+ readonly BUFFER_SIZE_BYTES: "buffer_size_bytes";
251
+ readonly ACTIVE_CONVERSIONS: "active_conversions";
252
+ readonly BUFFER_UTILIZATION_RATIO: "buffer_utilization_ratio";
253
+ readonly ERROR_RATE: "error_rate";
254
+ };
255
+ export declare const LOG_LEVELS: {
256
+ readonly DEBUG: "debug";
257
+ readonly INFO: "info";
258
+ readonly WARN: "warn";
259
+ readonly ERROR: "error";
260
+ };
261
+ export declare const REGEX_PATTERNS: {
262
+ readonly WORD_BOUNDARY: RegExp;
263
+ readonly SENTENCE_BOUNDARY: RegExp;
264
+ readonly PARAGRAPH_BOUNDARY: RegExp;
265
+ readonly JSON_STRING: RegExp;
266
+ readonly SSE_LINE: RegExp;
267
+ readonly SSE_DATA_LINE: RegExp;
268
+ readonly REQUEST_ID: RegExp;
269
+ readonly RESPONSE_ID: RegExp;
270
+ readonly ITEM_ID: RegExp;
271
+ readonly CALL_ID: RegExp;
272
+ };
@@ -0,0 +1,321 @@
1
+ /**
2
+ * 共享常量定义
3
+ * 定义JSON↔SSE双向转换中使用的常量
4
+ */
5
+ // 协议常量
6
+ export const PROTOCOL_TYPES = {
7
+ CHAT: 'chat',
8
+ RESPONSES: 'responses'
9
+ };
10
+ export const CONVERSION_DIRECTIONS = {
11
+ JSON_TO_SSE: 'json_to_sse',
12
+ SSE_TO_JSON: 'sse_to_json'
13
+ };
14
+ // 超时常量
15
+ export const TIMEOUT_CONSTANTS = {
16
+ DEFAULT_TIMEOUT_MS: 30000,
17
+ HEARTBEAT_INTERVAL_MS: 15000,
18
+ INACTIVITY_TIMEOUT_MS: 60000,
19
+ EVENT_PROCESSING_TIMEOUT_MS: 5000,
20
+ CHUNK_TIMEOUT_MS: 10000,
21
+ TOTAL_TIMEOUT_MS: 300000 // 5分钟
22
+ };
23
+ // 分块常量
24
+ export const CHUNK_CONSTANTS = {
25
+ DEFAULT_CHUNK_SIZE: 12,
26
+ DEFAULT_DELAY_MS: 8,
27
+ REASONING_CHUNK_SIZE: 24,
28
+ TEXT_CHUNK_SIZE: 12,
29
+ FUNCTION_CALL_CHUNK_SIZE: 24,
30
+ MAX_CHUNK_SIZE: 1024,
31
+ MIN_CHUNK_SIZE: 1
32
+ };
33
+ // 缓冲区常量
34
+ export const BUFFER_CONSTANTS = {
35
+ DEFAULT_BUFFER_SIZE: 1000,
36
+ MAX_BUFFER_SIZE: 10000,
37
+ HIGH_WATER_MARK: 8000,
38
+ LOW_WATER_MARK: 2000,
39
+ BACKPRESSURE_THRESHOLD: 0.8
40
+ };
41
+ // 重试常量
42
+ export const RETRY_CONSTANTS = {
43
+ DEFAULT_MAX_RETRIES: 3,
44
+ INITIAL_DELAY_MS: 1000,
45
+ MAX_DELAY_MS: 30000,
46
+ BACKOFF_MULTIPLIER: 2,
47
+ JITTER_FACTOR: 0.1
48
+ };
49
+ // 验证常量
50
+ export const VALIDATION_CONSTANTS = {
51
+ MAX_SEQUENCE_NUMBER: 10000,
52
+ MAX_OUTPUT_ITEMS: 100,
53
+ MAX_CONTENT_PARTS: 1000,
54
+ MAX_TOOL_CALLS: 50,
55
+ MAX_MESSAGE_LENGTH: 1000000,
56
+ MAX_ARGUMENTS_LENGTH: 100000
57
+ };
58
+ // 错误代码常量
59
+ export const ERROR_CODES = {
60
+ // 通用错误
61
+ TIMEOUT: 'TIMEOUT',
62
+ INVALID_INPUT: 'INVALID_INPUT',
63
+ PARSE_ERROR: 'PARSE_ERROR',
64
+ VALIDATION_ERROR: 'VALIDATION_ERROR',
65
+ STREAM_ERROR: 'STREAM_ERROR',
66
+ // Chat协议错误
67
+ CHAT_TIMEOUT: 'CHAT_TIMEOUT',
68
+ CHAT_INVALID_CHUNK: 'CHAT_INVALID_CHUNK',
69
+ CHAT_SEQUENCE_ERROR: 'CHAT_SEQUENCE_ERROR',
70
+ CHAT_TOOL_CALL_ERROR: 'CHAT_TOOL_CALL_ERROR',
71
+ CHAT_PARSE_ERROR: 'CHAT_PARSE_ERROR',
72
+ CHAT_VALIDATION_ERROR: 'CHAT_VALIDATION_ERROR',
73
+ CHAT_STREAM_ERROR: 'CHAT_STREAM_ERROR',
74
+ // Responses协议错误
75
+ RESPONSES_TIMEOUT: 'RESPONSES_TIMEOUT',
76
+ RESPONSES_INVALID_EVENT: 'RESPONSES_INVALID_EVENT',
77
+ RESPONSES_SEQUENCE_ERROR: 'RESPONSES_SEQUENCE_ERROR',
78
+ RESPONSES_OUTPUT_ITEM_ERROR: 'RESPONSES_OUTPUT_ITEM_ERROR',
79
+ RESPONSES_CONTENT_PART_ERROR: 'RESPONSES_CONTENT_PART_ERROR',
80
+ RESPONSES_PARSE_ERROR: 'RESPONSES_PARSE_ERROR',
81
+ RESPONSES_VALIDATION_ERROR: 'RESPONSES_VALIDATION_ERROR',
82
+ RESPONSES_STREAM_ERROR: 'RESPONSES_STREAM_ERROR'
83
+ };
84
+ // 状态常量
85
+ export const STREAM_STATUS = {
86
+ IDLE: 'idle',
87
+ STARTING: 'starting',
88
+ ACTIVE: 'active',
89
+ PAUSED: 'paused',
90
+ COMPLETING: 'completing',
91
+ COMPLETED: 'completed',
92
+ ERROR: 'error',
93
+ TIMEOUT: 'timeout',
94
+ ABORTED: 'aborted'
95
+ };
96
+ // 事件类型常量 - Chat协议
97
+ export const CHAT_EVENT_TYPES = {
98
+ CHUNK: 'chat_chunk',
99
+ DONE: 'chat.done',
100
+ ERROR: 'error',
101
+ PING: 'ping'
102
+ };
103
+ // 事件类型常量 - Responses协议
104
+ export const RESPONSES_EVENT_TYPES = {
105
+ // Response生命周期
106
+ RESPONSE_CREATED: 'response.created',
107
+ RESPONSE_IN_PROGRESS: 'response.in_progress',
108
+ RESPONSE_COMPLETED: 'response.completed',
109
+ RESPONSE_REQUIRED_ACTION: 'response.required_action',
110
+ RESPONSE_DONE: 'response.done',
111
+ // Output Item事件
112
+ OUTPUT_ITEM_ADDED: 'response.output_item.added',
113
+ OUTPUT_ITEM_DONE: 'response.output_item.done',
114
+ // Content Part事件
115
+ CONTENT_PART_ADDED: 'response.content_part.added',
116
+ CONTENT_PART_DONE: 'response.content_part.done',
117
+ // 内容增量事件
118
+ OUTPUT_TEXT_DELTA: 'response.output_text.delta',
119
+ OUTPUT_TEXT_DONE: 'response.output_text.done',
120
+ REASONING_TEXT_DELTA: 'response.reasoning_text.delta',
121
+ REASONING_TEXT_DONE: 'response.reasoning_text.done',
122
+ FUNCTION_CALL_ARGUMENTS_DELTA: 'response.function_call_arguments.delta',
123
+ FUNCTION_CALL_ARGUMENTS_DONE: 'response.function_call_arguments.done'
124
+ };
125
+ // 输出项类型常量
126
+ export const OUTPUT_ITEM_TYPES = {
127
+ REASONING: 'reasoning',
128
+ MESSAGE: 'message',
129
+ FUNCTION_CALL: 'function_call',
130
+ SYSTEM_MESSAGE: 'system_message',
131
+ FUNCTION_CALL_OUTPUT: 'function_call_output'
132
+ };
133
+ // 内容部分类型常量
134
+ export const CONTENT_PART_TYPES = {
135
+ REASONING_TEXT: 'reasoning_text',
136
+ REASONING_SIGNATURE: 'reasoning_signature',
137
+ REASONING_IMAGE: 'reasoning_image',
138
+ OUTPUT_TEXT: 'output_text',
139
+ INPUT_TEXT: 'input_text',
140
+ INPUT_IMAGE: 'input_image',
141
+ COMMENTARY: 'commentary'
142
+ };
143
+ // 工具调用类型常量
144
+ export const TOOL_CALL_TYPES = {
145
+ FUNCTION: 'function'
146
+ };
147
+ // 响应状态常量
148
+ export const RESPONSE_STATUS = {
149
+ IN_PROGRESS: 'in_progress',
150
+ REQUIRES_ACTION: 'requires_action',
151
+ COMPLETED: 'completed',
152
+ FAILED: 'failed',
153
+ INCOMPLETE: 'incomplete'
154
+ };
155
+ // 完成原因常量
156
+ export const FINISH_REASONS = {
157
+ STOP: 'stop',
158
+ LENGTH: 'length',
159
+ TOOL_CALLS: 'tool_calls',
160
+ CONTENT_FILTER: 'content_filter',
161
+ FUNCTION_CALL: 'function_call'
162
+ };
163
+ // 必需动作类型常量
164
+ export const REQUIRED_ACTION_TYPES = {
165
+ SUBMIT_TOOL_OUTPUTS: 'submit_tool_outputs',
166
+ RUN_PARALLEL_TOOLS: 'run_parallel_tools'
167
+ };
168
+ // 默认配置常量
169
+ export const DEFAULT_CONFIG = {
170
+ // 通用默认值
171
+ TIMEOUT_MS: TIMEOUT_CONSTANTS.DEFAULT_TIMEOUT_MS,
172
+ HEARTBEAT_INTERVAL_MS: TIMEOUT_CONSTANTS.HEARTBEAT_INTERVAL_MS,
173
+ CHUNK_SIZE: CHUNK_CONSTANTS.DEFAULT_CHUNK_SIZE,
174
+ DELAY_MS: CHUNK_CONSTANTS.DEFAULT_DELAY_MS,
175
+ VALIDATION_MODE: 'basic',
176
+ DEBUG_MODE: false,
177
+ // Chat协议默认值
178
+ CHAT: {
179
+ TIMEOUT_MS: TIMEOUT_CONSTANTS.DEFAULT_TIMEOUT_MS,
180
+ HEARTBEAT_INTERVAL_MS: TIMEOUT_CONSTANTS.HEARTBEAT_INTERVAL_MS,
181
+ CHUNK_DELAY_MS: 10,
182
+ MAX_TOKENS_PER_CHUNK: 100,
183
+ VALIDATE_CHUNKS: true,
184
+ STRICT_MODE: false,
185
+ VALIDATE_TOOL_CALLS: true,
186
+ MAX_CONCURRENT_CHOICES: 10,
187
+ MAX_CONCURRENT_TOOL_CALLS: 50
188
+ },
189
+ // Responses协议默认值
190
+ RESPONSES: {
191
+ TIMEOUT_MS: TIMEOUT_CONSTANTS.DEFAULT_TIMEOUT_MS,
192
+ HEARTBEAT_INTERVAL_MS: TIMEOUT_CONSTANTS.HEARTBEAT_INTERVAL_MS,
193
+ REASONING_CHUNK_SIZE: CHUNK_CONSTANTS.REASONING_CHUNK_SIZE,
194
+ TEXT_CHUNK_SIZE: CHUNK_CONSTANTS.TEXT_CHUNK_SIZE,
195
+ FUNCTION_CALL_CHUNK_SIZE: CHUNK_CONSTANTS.FUNCTION_CALL_CHUNK_SIZE,
196
+ ENABLE_EVENT_VALIDATION: true,
197
+ ENABLE_SEQUENCE_VALIDATION: true,
198
+ STRICT_MODE: false,
199
+ VALIDATE_OUTPUT_ITEMS: true,
200
+ MAX_CONCURRENT_OUTPUT_ITEMS: 10,
201
+ MAX_CONCURRENT_CONTENT_PARTS: 50
202
+ }
203
+ };
204
+ // 环境变量键名
205
+ export const ENV_KEYS = {
206
+ // 超时配置
207
+ SSE_DEFAULT_TIMEOUT_MS: 'SSE_DEFAULT_TIMEOUT_MS',
208
+ SSE_HEARTBEAT_INTERVAL_MS: 'SSE_HEARTBEAT_INTERVAL_MS',
209
+ SSE_INACTIVITY_TIMEOUT_MS: 'SSE_INACTIVITY_TIMEOUT_MS',
210
+ SSE_EVENT_PROCESSING_TIMEOUT_MS: 'SSE_EVENT_PROCESSING_TIMEOUT_MS',
211
+ // 分块配置
212
+ SSE_DEFAULT_CHUNK_SIZE: 'SSE_DEFAULT_CHUNK_SIZE',
213
+ SSE_DEFAULT_DELAY_MS: 'SSE_DEFAULT_DELAY_MS',
214
+ SSE_REASONING_CHUNK_SIZE: 'SSE_REASONING_CHUNK_SIZE',
215
+ SSE_TEXT_CHUNK_SIZE: 'SSE_TEXT_CHUNK_SIZE',
216
+ SSE_ARGS_CHUNK_SIZE: 'SSE_ARGS_CHUNK_SIZE',
217
+ SSE_ARGS_DELAY_MS: 'SSE_ARGS_DELAY_MS',
218
+ // 缓冲区配置
219
+ SSE_MAX_BUFFER_SIZE: 'SSE_MAX_BUFFER_SIZE',
220
+ SSE_HIGH_WATER_MARK: 'SSE_HIGH_WATER_MARK',
221
+ SSE_LOW_WATER_MARK: 'SSE_LOW_WATER_MARK',
222
+ // 验证配置
223
+ SSE_ENABLE_VALIDATION: 'SSE_ENABLE_VALIDATION',
224
+ SSE_ENABLE_SEQUENCE_VALIDATION: 'SSE_ENABLE_SEQUENCE_VALIDATION',
225
+ SSE_MAX_SEQUENCE_NUMBER: 'SSE_MAX_SEQUENCE_NUMBER',
226
+ SSE_STRICT_MODE: 'SSE_STRICT_MODE',
227
+ // 调试配置
228
+ SSE_DEBUG_EVENTS: 'SSE_DEBUG_EVENTS',
229
+ SSE_DEBUG_MODE: 'SSE_DEBUG_MODE',
230
+ SSE_LOG_LEVEL: 'SSE_LOG_LEVEL',
231
+ SSE_ENABLE_METRICS: 'SSE_ENABLE_METRICS',
232
+ // 兼容性配置
233
+ RCC_STREAM_HEARTBEAT: 'RCC_STREAM_HEARTBEAT',
234
+ RCC_STREAM_PRE_HEARTBEAT: 'RCC_STREAM_PRE_HEARTBEAT',
235
+ RCC_RESP_GENERIC_ONMESSAGE: 'RCC_RESP_GENERIC_ONMESSAGE',
236
+ // LM Studio兼容
237
+ LMSTUDIO_BASE_URL: 'LMSTUDIO_BASEURL',
238
+ LMSTUDIO_API_KEY: 'LMSTUDIO_API_KEY'
239
+ };
240
+ // HTTP状态码常量
241
+ export const HTTP_STATUS_CODES = {
242
+ OK: 200,
243
+ BAD_REQUEST: 400,
244
+ UNAUTHORIZED: 401,
245
+ FORBIDDEN: 403,
246
+ NOT_FOUND: 404,
247
+ METHOD_NOT_ALLOWED: 405,
248
+ TIMEOUT: 408,
249
+ TOO_MANY_REQUESTS: 429,
250
+ INTERNAL_SERVER_ERROR: 500,
251
+ BAD_GATEWAY: 502,
252
+ SERVICE_UNAVAILABLE: 503,
253
+ GATEWAY_TIMEOUT: 504
254
+ };
255
+ // Content-Type常量
256
+ export const CONTENT_TYPES = {
257
+ JSON: 'application/json',
258
+ SSE: 'text/event-stream',
259
+ TEXT: 'text/plain',
260
+ HTML: 'text/html'
261
+ };
262
+ // SSE标准字段
263
+ export const SSE_FIELDS = {
264
+ EVENT: 'event',
265
+ DATA: 'data',
266
+ ID: 'id',
267
+ RETRY: 'retry'
268
+ };
269
+ // 标准SSE事件
270
+ export const STANDARD_SSE_EVENTS = {
271
+ OPEN: 'open',
272
+ MESSAGE: 'message',
273
+ ERROR: 'error',
274
+ CLOSE: 'close'
275
+ };
276
+ // 缓存键前缀
277
+ export const CACHE_PREFIXES = {
278
+ CONVERSION: 'conversion:',
279
+ VALIDATION: 'validation:',
280
+ METRICS: 'metrics:',
281
+ CONFIG: 'config:'
282
+ };
283
+ // 指标名称常量
284
+ export const METRIC_NAMES = {
285
+ // 计数器指标
286
+ CONVERSION_REQUESTS_TOTAL: 'conversion_requests_total',
287
+ CONVERSION_ERRORS_TOTAL: 'conversion_errors_total',
288
+ EVENTS_PROCESSED_TOTAL: 'events_processed_total',
289
+ TIMEOUTS_TOTAL: 'timeouts_total',
290
+ // 直方图指标
291
+ CONVERSION_DURATION_SECONDS: 'conversion_duration_seconds',
292
+ EVENT_PROCESSING_DURATION_SECONDS: 'event_processing_duration_seconds',
293
+ BUFFER_SIZE_BYTES: 'buffer_size_bytes',
294
+ // 仪表盘指标
295
+ ACTIVE_CONVERSIONS: 'active_conversions',
296
+ BUFFER_UTILIZATION_RATIO: 'buffer_utilization_ratio',
297
+ ERROR_RATE: 'error_rate'
298
+ };
299
+ // 日志级别常量
300
+ export const LOG_LEVELS = {
301
+ DEBUG: 'debug',
302
+ INFO: 'info',
303
+ WARN: 'warn',
304
+ ERROR: 'error'
305
+ };
306
+ // 正则表达式常量
307
+ export const REGEX_PATTERNS = {
308
+ // 文本分词边界
309
+ WORD_BOUNDARY: /[\n\r\t,。、"''!?,\.\-:\u3000\s]/,
310
+ SENTENCE_BOUNDARY: /[。!?.!?]/,
311
+ PARAGRAPH_BOUNDARY: /[\n\r]{2,}/,
312
+ // JSON验证
313
+ JSON_STRING: /^[\s\S]*$/,
314
+ SSE_LINE: /^(\w+):\s*(.*)$/,
315
+ SSE_DATA_LINE: /^data:\s*(.*)$/,
316
+ // ID验证
317
+ REQUEST_ID: /^req_\d+$/,
318
+ RESPONSE_ID: /^resp_[a-f0-9]+$/,
319
+ ITEM_ID: /^[a-z]{2}_[a-z0-9]+$/,
320
+ CALL_ID: /^call_[a-z0-9]+$/
321
+ };