@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.
- package/README.md +3 -1
- package/dist/bridge/routecodex-adapter.js +6 -3
- package/dist/config-unified/enhanced-path-resolver.js +14 -6
- package/dist/config-unified/unified-config.js +103 -59
- package/dist/conversion/codec-registry.js +4 -2
- package/dist/conversion/hub/pipeline/hub-pipeline.js +4 -5
- package/dist/conversion/hub/process/chat-process.js +258 -41
- package/dist/conversion/hub/response/provider-response.js +8 -2
- package/dist/conversion/hub/tool-governance/engine.d.ts +16 -0
- package/dist/conversion/hub/tool-governance/engine.js +266 -0
- package/dist/conversion/hub/tool-governance/index.d.ts +3 -0
- package/dist/conversion/hub/tool-governance/index.js +2 -0
- package/dist/conversion/hub/tool-governance/rules.d.ts +2 -0
- package/dist/conversion/hub/tool-governance/rules.js +76 -0
- package/dist/conversion/hub/tool-governance/types.d.ts +38 -0
- package/dist/conversion/index.d.ts +1 -0
- package/dist/conversion/index.js +1 -0
- package/dist/conversion/responses/responses-openai-bridge.js +5 -3
- package/dist/sse/sse-to-json/builders/response-builder.js +2 -1
- package/dist/sse/sse-to-json/chat-sse-to-json-converter.js +37 -23
- package/dist/sse/sse-to-json/parsers/sse-parser.js +20 -12
- package/dist/sse/sse-to-json/responses-sse-to-json-converter.d.ts +1 -0
- package/dist/sse/sse-to-json/responses-sse-to-json-converter.js +10 -8
- package/dist/sse/types/chat-types.d.ts +9 -6
- package/dist/sse/types/conversion-context.d.ts +14 -11
- package/dist/sse/types/core-interfaces.d.ts +6 -2
- package/dist/sse/types/index.d.ts +1 -1
- package/dist/sse/types/responses-types.d.ts +20 -20
- package/dist/sse/types/sse-events.d.ts +4 -3
- package/dist/sse/types/stream-state.d.ts +34 -39
- package/dist/sse/types/utility-types.d.ts +47 -43
- package/dist/sse/types/utility-types.js +10 -13
- package/dist/tools/tool-registry.js +156 -98
- package/package.json +7 -7
- package/dist/api/index.d.ts +0 -10
- package/dist/api/index.js +0 -11
- package/dist/api/llmswitch-config.d.ts +0 -15
- package/dist/api/llmswitch-config.js +0 -415
- package/dist/api/llmswitch-types.d.ts +0 -412
- package/dist/api/llmswitch-types.js +0 -60
- package/dist/bridge/routecodex-adapter.d.ts +0 -74
- package/dist/config/index.d.ts +0 -3
- package/dist/config/index.js +0 -5
- package/dist/config-unified/enhanced-path-resolver.d.ts +0 -5
- package/dist/config-unified/unified-config.d.ts +0 -26
- package/dist/conversion/codec-registry.d.ts +0 -10
- package/dist/conversion/codecs/anthropic-openai-codec.d.ts +0 -23
- package/dist/conversion/codecs/gemini-openai-codec.d.ts +0 -16
- package/dist/conversion/codecs/openai-openai-codec.d.ts +0 -12
- package/dist/conversion/codecs/responses-openai-codec.d.ts +0 -12
- package/dist/conversion/config/config-manager.d.ts +0 -212
- package/dist/conversion/conversion-v3/adapters/index.d.ts +0 -2
- package/dist/conversion/conversion-v3/adapters/index.js +0 -1
- package/dist/conversion/conversion-v3/adapters/v3-to-standard-adapter.d.ts +0 -38
- package/dist/conversion/conversion-v3/adapters/v3-to-standard-adapter.js +0 -55
- package/dist/conversion/conversion-v3/compatibility/compatibility-profiles.d.ts +0 -22
- package/dist/conversion/conversion-v3/compatibility/compatibility-profiles.js +0 -84
- package/dist/conversion/conversion-v3/compatibility/compatibility-stages.d.ts +0 -4
- package/dist/conversion/conversion-v3/compatibility/compatibility-stages.js +0 -285
- package/dist/conversion/conversion-v3/compatibility/index.d.ts +0 -3
- package/dist/conversion/conversion-v3/compatibility/index.js +0 -2
- package/dist/conversion/conversion-v3/config/default-configs.d.ts +0 -48
- package/dist/conversion/conversion-v3/config/default-configs.js +0 -1007
- package/dist/conversion/conversion-v3/config/index.d.ts +0 -5
- package/dist/conversion/conversion-v3/config/index.js +0 -5
- package/dist/conversion/conversion-v3/config/pipeline-config-manager.d.ts +0 -49
- package/dist/conversion/conversion-v3/config/pipeline-config-manager.js +0 -65
- package/dist/conversion/conversion-v3/index.d.ts +0 -11
- package/dist/conversion/conversion-v3/index.js +0 -17
- package/dist/conversion/conversion-v3/nodes/index.d.ts +0 -56
- package/dist/conversion/conversion-v3/nodes/index.js +0 -149
- package/dist/conversion/conversion-v3/nodes/input/anthropic-input-node.d.ts +0 -25
- package/dist/conversion/conversion-v3/nodes/input/anthropic-input-node.js +0 -56
- package/dist/conversion/conversion-v3/nodes/input/base-input-node.d.ts +0 -75
- package/dist/conversion/conversion-v3/nodes/input/base-input-node.js +0 -237
- package/dist/conversion/conversion-v3/nodes/input/chat-input-node.d.ts +0 -25
- package/dist/conversion/conversion-v3/nodes/input/chat-input-node.js +0 -56
- package/dist/conversion/conversion-v3/nodes/input/chat-shape-helpers.d.ts +0 -4
- package/dist/conversion/conversion-v3/nodes/input/chat-shape-helpers.js +0 -197
- package/dist/conversion/conversion-v3/nodes/input/gemini-input-node.d.ts +0 -16
- package/dist/conversion/conversion-v3/nodes/input/gemini-input-node.js +0 -125
- package/dist/conversion/conversion-v3/nodes/input/index.d.ts +0 -8
- package/dist/conversion/conversion-v3/nodes/input/index.js +0 -8
- package/dist/conversion/conversion-v3/nodes/input/input-decision.d.ts +0 -46
- package/dist/conversion/conversion-v3/nodes/input/input-decision.js +0 -125
- package/dist/conversion/conversion-v3/nodes/input/responses-input-node.d.ts +0 -20
- package/dist/conversion/conversion-v3/nodes/input/responses-input-node.js +0 -51
- package/dist/conversion/conversion-v3/nodes/output/anthropic-output-node.d.ts +0 -71
- package/dist/conversion/conversion-v3/nodes/output/anthropic-output-node.js +0 -320
- package/dist/conversion/conversion-v3/nodes/output/base-output-node.d.ts +0 -116
- package/dist/conversion/conversion-v3/nodes/output/base-output-node.js +0 -512
- package/dist/conversion/conversion-v3/nodes/output/index.d.ts +0 -7
- package/dist/conversion/conversion-v3/nodes/output/index.js +0 -7
- package/dist/conversion/conversion-v3/nodes/output/openai-output-node.d.ts +0 -71
- package/dist/conversion/conversion-v3/nodes/output/openai-output-node.js +0 -293
- package/dist/conversion/conversion-v3/nodes/output/output-decision.d.ts +0 -68
- package/dist/conversion/conversion-v3/nodes/output/output-decision.js +0 -161
- package/dist/conversion/conversion-v3/nodes/output/responses-output-node.d.ts +0 -64
- package/dist/conversion/conversion-v3/nodes/output/responses-output-node.js +0 -323
- package/dist/conversion/conversion-v3/nodes/process/base-process-node.d.ts +0 -72
- package/dist/conversion/conversion-v3/nodes/process/base-process-node.js +0 -246
- package/dist/conversion/conversion-v3/nodes/process/chat-process-node.d.ts +0 -135
- package/dist/conversion/conversion-v3/nodes/process/chat-process-node.js +0 -854
- package/dist/conversion/conversion-v3/nodes/process/compatibility-process-node.d.ts +0 -29
- package/dist/conversion/conversion-v3/nodes/process/compatibility-process-node.js +0 -181
- package/dist/conversion/conversion-v3/nodes/process/index.d.ts +0 -10
- package/dist/conversion/conversion-v3/nodes/process/index.js +0 -10
- package/dist/conversion/conversion-v3/nodes/process/passthrough-process-node.d.ts +0 -59
- package/dist/conversion/conversion-v3/nodes/process/passthrough-process-node.js +0 -243
- package/dist/conversion/conversion-v3/nodes/process/response-process-node.d.ts +0 -17
- package/dist/conversion/conversion-v3/nodes/process/response-process-node.js +0 -213
- package/dist/conversion/conversion-v3/nodes/process/tool-process-node.d.ts +0 -30
- package/dist/conversion/conversion-v3/nodes/process/tool-process-node.js +0 -360
- package/dist/conversion/conversion-v3/nodes/process/virtual-router-process-node.d.ts +0 -40
- package/dist/conversion/conversion-v3/nodes/process/virtual-router-process-node.js +0 -430
- package/dist/conversion/conversion-v3/nodes/response/anthropic-response-input-node.d.ts +0 -12
- package/dist/conversion/conversion-v3/nodes/response/anthropic-response-input-node.js +0 -129
- package/dist/conversion/conversion-v3/nodes/response/chat-to-responses-response-node.d.ts +0 -15
- package/dist/conversion/conversion-v3/nodes/response/chat-to-responses-response-node.js +0 -57
- package/dist/conversion/conversion-v3/nodes/response/index.d.ts +0 -4
- package/dist/conversion/conversion-v3/nodes/response/index.js +0 -4
- package/dist/conversion/conversion-v3/nodes/response/openai-response-input-node.d.ts +0 -15
- package/dist/conversion/conversion-v3/nodes/response/openai-response-input-node.js +0 -87
- package/dist/conversion/conversion-v3/nodes/response/response-utils.d.ts +0 -1
- package/dist/conversion/conversion-v3/nodes/response/response-utils.js +0 -1
- package/dist/conversion/conversion-v3/nodes/response/responses-response-input-node.d.ts +0 -12
- package/dist/conversion/conversion-v3/nodes/response/responses-response-input-node.js +0 -67
- package/dist/conversion/conversion-v3/nodes/sse/index.d.ts +0 -3
- package/dist/conversion/conversion-v3/nodes/sse/index.js +0 -3
- package/dist/conversion/conversion-v3/nodes/sse/sse-input-node.d.ts +0 -27
- package/dist/conversion/conversion-v3/nodes/sse/sse-input-node.js +0 -165
- package/dist/conversion/conversion-v3/nodes/sse/sse-output-node.d.ts +0 -19
- package/dist/conversion/conversion-v3/nodes/sse/sse-output-node.js +0 -267
- package/dist/conversion/conversion-v3/nodes/sse/sse-passthrough-node.d.ts +0 -18
- package/dist/conversion/conversion-v3/nodes/sse/sse-passthrough-node.js +0 -48
- package/dist/conversion/conversion-v3/pipelines/index.d.ts +0 -6
- package/dist/conversion/conversion-v3/pipelines/index.js +0 -6
- package/dist/conversion/conversion-v3/pipelines/super-pipeline.d.ts +0 -112
- package/dist/conversion/conversion-v3/pipelines/super-pipeline.js +0 -566
- package/dist/conversion/conversion-v3/response/provider-response-converter.d.ts +0 -28
- package/dist/conversion/conversion-v3/response/provider-response-converter.js +0 -249
- package/dist/conversion/conversion-v3/sse/index.d.ts +0 -140
- package/dist/conversion/conversion-v3/sse/index.js +0 -115
- package/dist/conversion/conversion-v3/sse/json-to-sse/anthropic-json-to-sse-converter.d.ts +0 -11
- package/dist/conversion/conversion-v3/sse/json-to-sse/anthropic-json-to-sse-converter.js +0 -79
- package/dist/conversion/conversion-v3/sse/json-to-sse/chat-json-to-sse-converter.d.ts +0 -79
- package/dist/conversion/conversion-v3/sse/json-to-sse/chat-json-to-sse-converter.js +0 -296
- package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/chat.d.ts +0 -55
- package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/chat.js +0 -233
- package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/responses.d.ts +0 -99
- package/dist/conversion/conversion-v3/sse/json-to-sse/event-generators/responses.js +0 -599
- package/dist/conversion/conversion-v3/sse/json-to-sse/index.d.ts +0 -6
- package/dist/conversion/conversion-v3/sse/json-to-sse/index.js +0 -7
- package/dist/conversion/conversion-v3/sse/json-to-sse/responses-json-to-sse-converter.d.ts +0 -79
- package/dist/conversion/conversion-v3/sse/json-to-sse/responses-json-to-sse-converter.js +0 -322
- package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/chat-sequencer.d.ts +0 -37
- package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/chat-sequencer.js +0 -218
- package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/responses-sequencer.d.ts +0 -40
- package/dist/conversion/conversion-v3/sse/json-to-sse/sequencers/responses-sequencer.js +0 -263
- package/dist/conversion/conversion-v3/sse/registry/sse-codec-registry.d.ts +0 -32
- package/dist/conversion/conversion-v3/sse/registry/sse-codec-registry.js +0 -106
- package/dist/conversion/conversion-v3/sse/shared/chat-serializer.d.ts +0 -4
- package/dist/conversion/conversion-v3/sse/shared/chat-serializer.js +0 -40
- package/dist/conversion/conversion-v3/sse/shared/constants.d.ts +0 -272
- package/dist/conversion/conversion-v3/sse/shared/constants.js +0 -321
- package/dist/conversion/conversion-v3/sse/shared/serializers/base-serializer.d.ts +0 -158
- package/dist/conversion/conversion-v3/sse/shared/serializers/base-serializer.js +0 -210
- package/dist/conversion/conversion-v3/sse/shared/serializers/chat-event-serializer.d.ts +0 -82
- package/dist/conversion/conversion-v3/sse/shared/serializers/chat-event-serializer.js +0 -275
- package/dist/conversion/conversion-v3/sse/shared/serializers/index.d.ts +0 -39
- package/dist/conversion/conversion-v3/sse/shared/serializers/index.js +0 -54
- package/dist/conversion/conversion-v3/sse/shared/serializers/responses-event-serializer.d.ts +0 -123
- package/dist/conversion/conversion-v3/sse/shared/serializers/responses-event-serializer.js +0 -356
- package/dist/conversion/conversion-v3/sse/shared/serializers/types.d.ts +0 -51
- package/dist/conversion/conversion-v3/sse/shared/serializers/types.js +0 -4
- package/dist/conversion/conversion-v3/sse/shared/utils.d.ts +0 -254
- package/dist/conversion/conversion-v3/sse/shared/utils.js +0 -543
- package/dist/conversion/conversion-v3/sse/shared/writer.d.ts +0 -111
- package/dist/conversion/conversion-v3/sse/shared/writer.js +0 -268
- package/dist/conversion/conversion-v3/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +0 -13
- package/dist/conversion/conversion-v3/sse/sse-to-json/anthropic-sse-to-json-converter.js +0 -139
- package/dist/conversion/conversion-v3/sse/sse-to-json/builders/response-builder.d.ts +0 -165
- package/dist/conversion/conversion-v3/sse/sse-to-json/builders/response-builder.js +0 -776
- package/dist/conversion/conversion-v3/sse/sse-to-json/chat-sse-to-json-converter.d.ts +0 -106
- package/dist/conversion/conversion-v3/sse/sse-to-json/chat-sse-to-json-converter.js +0 -540
- package/dist/conversion/conversion-v3/sse/sse-to-json/index.d.ts +0 -6
- package/dist/conversion/conversion-v3/sse/sse-to-json/index.js +0 -7
- package/dist/conversion/conversion-v3/sse/sse-to-json/parsers/sse-parser.d.ts +0 -73
- package/dist/conversion/conversion-v3/sse/sse-to-json/parsers/sse-parser.js +0 -332
- package/dist/conversion/conversion-v3/sse/sse-to-json/responses-sse-to-json-converter.d.ts +0 -59
- package/dist/conversion/conversion-v3/sse/sse-to-json/responses-sse-to-json-converter.js +0 -270
- package/dist/conversion/conversion-v3/sse/types/anthropic-types.d.ts +0 -87
- package/dist/conversion/conversion-v3/sse/types/anthropic-types.js +0 -5
- package/dist/conversion/conversion-v3/sse/types/chat-types.d.ts +0 -308
- package/dist/conversion/conversion-v3/sse/types/chat-types.js +0 -32
- package/dist/conversion/conversion-v3/sse/types/conversion-context.d.ts +0 -211
- package/dist/conversion/conversion-v3/sse/types/conversion-context.js +0 -20
- package/dist/conversion/conversion-v3/sse/types/core-interfaces.d.ts +0 -90
- package/dist/conversion/conversion-v3/sse/types/core-interfaces.js +0 -5
- package/dist/conversion/conversion-v3/sse/types/index.d.ts +0 -14
- package/dist/conversion/conversion-v3/sse/types/index.js +0 -7
- package/dist/conversion/conversion-v3/sse/types/responses-types.d.ts +0 -328
- package/dist/conversion/conversion-v3/sse/types/responses-types.js +0 -38
- package/dist/conversion/conversion-v3/sse/types/sse-events.d.ts +0 -180
- package/dist/conversion/conversion-v3/sse/types/sse-events.js +0 -150
- package/dist/conversion/conversion-v3/sse/types/stream-state.d.ts +0 -204
- package/dist/conversion/conversion-v3/sse/types/stream-state.js +0 -44
- package/dist/conversion/conversion-v3/sse/types/utility-types.d.ts +0 -230
- package/dist/conversion/conversion-v3/sse/types/utility-types.js +0 -49
- package/dist/conversion/conversion-v3/standards/context-adapter.d.ts +0 -146
- package/dist/conversion/conversion-v3/standards/context-adapter.js +0 -438
- package/dist/conversion/conversion-v3/standards/errors.d.ts +0 -38
- package/dist/conversion/conversion-v3/standards/errors.js +0 -27
- package/dist/conversion/conversion-v3/standards/index.d.ts +0 -15
- package/dist/conversion/conversion-v3/standards/index.js +0 -11
- package/dist/conversion/conversion-v3/standards/node-capabilities.d.ts +0 -123
- package/dist/conversion/conversion-v3/standards/node-capabilities.js +0 -330
- package/dist/conversion/conversion-v3/standards/pipeline-context.d.ts +0 -237
- package/dist/conversion/conversion-v3/standards/pipeline-context.js +0 -84
- package/dist/conversion/conversion-v3/standards/pipeline-node.d.ts +0 -196
- package/dist/conversion/conversion-v3/standards/pipeline-node.js +0 -316
- package/dist/conversion/conversion-v3/standards/snapshot-handles.d.ts +0 -24
- package/dist/conversion/conversion-v3/standards/snapshot-handles.js +0 -49
- package/dist/conversion/conversion-v3/types/config-types.d.ts +0 -242
- package/dist/conversion/conversion-v3/types/config-types.js +0 -13
- package/dist/conversion/conversion-v3/types/index.d.ts +0 -8
- package/dist/conversion/conversion-v3/types/index.js +0 -11
- package/dist/conversion/conversion-v3/types/node-types.d.ts +0 -211
- package/dist/conversion/conversion-v3/types/node-types.js +0 -20
- package/dist/conversion/conversion-v3/types/pipeline-types.d.ts +0 -246
- package/dist/conversion/conversion-v3/types/pipeline-types.js +0 -26
- package/dist/conversion/conversion-v3/types/request-types.d.ts +0 -293
- package/dist/conversion/conversion-v3/types/request-types.js +0 -26
- package/dist/conversion/conversion-v3/utils/provider-payload-sanitizer.d.ts +0 -10
- package/dist/conversion/conversion-v3/utils/provider-payload-sanitizer.js +0 -103
- package/dist/conversion/conversion-v3/validations/index.d.ts +0 -8
- package/dist/conversion/conversion-v3/validations/index.js +0 -7
- package/dist/conversion/conversion-v3/validations/node-graph-validator.d.ts +0 -116
- package/dist/conversion/conversion-v3/validations/node-graph-validator.js +0 -505
- package/dist/conversion/conversion-v3/validations/tool-governance-enforcer.d.ts +0 -139
- package/dist/conversion/conversion-v3/validations/tool-governance-enforcer.js +0 -338
- package/dist/conversion/hub/config/types.d.ts +0 -26
- package/dist/conversion/hub/core/detour-registry.d.ts +0 -9
- package/dist/conversion/hub/core/hub-context.d.ts +0 -21
- package/dist/conversion/hub/core/index.d.ts +0 -3
- package/dist/conversion/hub/core/stage-driver.d.ts +0 -30
- package/dist/conversion/hub/format-adapters/anthropic-format-adapter.d.ts +0 -16
- package/dist/conversion/hub/format-adapters/chat-format-adapter.d.ts +0 -17
- package/dist/conversion/hub/format-adapters/gemini-format-adapter.d.ts +0 -16
- package/dist/conversion/hub/format-adapters/index.d.ts +0 -21
- package/dist/conversion/hub/format-adapters/responses-format-adapter.d.ts +0 -17
- package/dist/conversion/hub/hub-feature.d.ts +0 -1
- package/dist/conversion/hub/node-support.d.ts +0 -19
- package/dist/conversion/hub/pipeline/hub-pipeline.d.ts +0 -68
- package/dist/conversion/hub/pipelines/inbound.d.ts +0 -22
- package/dist/conversion/hub/pipelines/outbound.d.ts +0 -22
- package/dist/conversion/hub/process/chat-process.d.ts +0 -13
- package/dist/conversion/hub/registry.d.ts +0 -28
- package/dist/conversion/hub/response/chat-response-utils.d.ts +0 -6
- package/dist/conversion/hub/response/provider-response.d.ts +0 -20
- package/dist/conversion/hub/response/response-mappers.d.ts +0 -19
- package/dist/conversion/hub/response/response-runtime.d.ts +0 -3
- package/dist/conversion/hub/semantic-mappers/anthropic-mapper.d.ts +0 -7
- package/dist/conversion/hub/semantic-mappers/chat-mapper.d.ts +0 -7
- package/dist/conversion/hub/semantic-mappers/gemini-mapper.d.ts +0 -7
- package/dist/conversion/hub/semantic-mappers/index.d.ts +0 -4
- package/dist/conversion/hub/semantic-mappers/responses-mapper.d.ts +0 -21
- package/dist/conversion/hub/snapshot-recorder.d.ts +0 -12
- package/dist/conversion/hub/standardized-bridge.d.ts +0 -12
- package/dist/conversion/hub/types/chat-envelope.d.ts +0 -67
- package/dist/conversion/hub/types/chat-schema.d.ts +0 -112
- package/dist/conversion/hub/types/errors.d.ts +0 -5
- package/dist/conversion/hub/types/format-envelope.d.ts +0 -7
- package/dist/conversion/hub/types/index.d.ts +0 -6
- package/dist/conversion/hub/types/json.d.ts +0 -9
- package/dist/conversion/hub/types/node.d.ts +0 -31
- package/dist/conversion/hub/types/standardized.d.ts +0 -94
- package/dist/conversion/responses/responses-openai-bridge.d.ts +0 -95
- package/dist/conversion/schema-validator.d.ts +0 -7
- package/dist/conversion/shared/args-mapping.d.ts +0 -18
- package/dist/conversion/shared/chat-request-filters.d.ts +0 -9
- package/dist/conversion/shared/jsonish.d.ts +0 -3
- package/dist/conversion/shared/mcp-injection.d.ts +0 -2
- package/dist/conversion/shared/media.d.ts +0 -1
- package/dist/conversion/shared/openai-finalizer.d.ts +0 -9
- package/dist/conversion/shared/openai-message-normalize.d.ts +0 -1
- package/dist/conversion/shared/payload-budget.d.ts +0 -13
- package/dist/conversion/shared/reasoning-mapping.d.ts +0 -5
- package/dist/conversion/shared/responses-conversation-store.d.ts +0 -41
- package/dist/conversion/shared/responses-id-utils.d.ts +0 -7
- package/dist/conversion/shared/responses-instructions.d.ts +0 -1
- package/dist/conversion/shared/responses-metadata.d.ts +0 -1
- package/dist/conversion/shared/responses-request-adapter.d.ts +0 -66
- package/dist/conversion/shared/snapshot-hooks.d.ts +0 -12
- package/dist/conversion/shared/streaming-text-extractor.d.ts +0 -26
- package/dist/conversion/shared/text-markup-normalizer.d.ts +0 -9
- package/dist/conversion/shared/tool-canonicalizer.d.ts +0 -2
- package/dist/conversion/shared/tool-filter-pipeline.d.ts +0 -17
- package/dist/conversion/shared/tool-governor.d.ts +0 -27
- package/dist/conversion/shared/tool-harvester.d.ts +0 -31
- package/dist/conversion/shared/tool-mapping.d.ts +0 -10
- package/dist/conversion/shared/tooling.d.ts +0 -26
- package/dist/conversion/types.d.ts +0 -33
- package/dist/core/index.d.ts +0 -6
- package/dist/core/index.js +0 -9
- package/dist/core/llmswitch-engine-v2.d.ts +0 -132
- package/dist/core/llmswitch-engine-v2.js +0 -649
- package/dist/core/llmswitch-factory-v2.d.ts +0 -123
- package/dist/core/llmswitch-factory-v2.js +0 -521
- package/dist/endpoints/base-endpoint-handler.d.ts +0 -128
- package/dist/endpoints/base-endpoint-handler.js +0 -545
- package/dist/endpoints/chat-endpoint-handler.d.ts +0 -115
- package/dist/endpoints/chat-endpoint-handler.js +0 -218
- package/dist/endpoints/endpoint-router.d.ts +0 -127
- package/dist/endpoints/endpoint-router.js +0 -438
- package/dist/endpoints/index.d.ts +0 -13
- package/dist/endpoints/index.js +0 -11
- package/dist/endpoints/messages-endpoint-handler.d.ts +0 -171
- package/dist/endpoints/messages-endpoint-handler.js +0 -238
- package/dist/endpoints/responses-endpoint-handler.d.ts +0 -147
- package/dist/endpoints/responses-endpoint-handler.js +0 -233
- package/dist/filters/builtin/add-fields-filter.d.ts +0 -8
- package/dist/filters/builtin/blacklist-filter.d.ts +0 -8
- package/dist/filters/builtin/whitelist-filter.d.ts +0 -8
- package/dist/filters/engine.d.ts +0 -16
- package/dist/filters/index.d.ts +0 -19
- package/dist/filters/special/request-streaming-to-nonstreaming.d.ts +0 -12
- package/dist/filters/special/request-tool-choice-policy.d.ts +0 -11
- package/dist/filters/special/request-tool-list-filter.d.ts +0 -11
- package/dist/filters/special/request-toolcalls-stringify.d.ts +0 -10
- package/dist/filters/special/request-tools-normalize.d.ts +0 -12
- package/dist/filters/special/response-finish-invariants.d.ts +0 -11
- package/dist/filters/special/response-openai-to-responses-bridge.d.ts +0 -13
- package/dist/filters/special/response-tool-arguments-blacklist.d.ts +0 -12
- package/dist/filters/special/response-tool-arguments-schema-converge.d.ts +0 -13
- package/dist/filters/special/response-tool-arguments-stringify.d.ts +0 -9
- package/dist/filters/special/response-tool-arguments-toon-decode.d.ts +0 -10
- package/dist/filters/special/response-tool-arguments-whitelist.d.ts +0 -11
- package/dist/filters/special/response-tool-text-canonicalize.d.ts +0 -10
- package/dist/filters/special/tool-filter-hooks.d.ts +0 -19
- package/dist/filters/special/tool-post-constraints.d.ts +0 -31
- package/dist/filters/types.d.ts +0 -68
- package/dist/filters/utils/fieldmap-loader.d.ts +0 -2
- package/dist/filters/utils/snapshot-writer.d.ts +0 -10
- package/dist/guidance/index.d.ts +0 -3
- package/dist/hooks/hooks-integration.d.ts +0 -161
- package/dist/hooks/hooks-integration.js +0 -519
- package/dist/hooks/index.d.ts +0 -10
- package/dist/hooks/index.js +0 -13
- package/dist/html-to-markdown.d.ts +0 -5
- package/dist/html-to-markdown.js +0 -66
- package/dist/http/sse-response.d.ts +0 -22
- package/dist/router/virtual-router/bootstrap.d.ts +0 -6
- package/dist/router/virtual-router/classifier.d.ts +0 -10
- package/dist/router/virtual-router/engine.d.ts +0 -35
- package/dist/router/virtual-router/error-center.d.ts +0 -10
- package/dist/router/virtual-router/features.d.ts +0 -3
- package/dist/router/virtual-router/health-manager.d.ts +0 -18
- package/dist/router/virtual-router/load-balancer.d.ts +0 -18
- package/dist/router/virtual-router/provider-registry.d.ts +0 -11
- package/dist/router/virtual-router/types.d.ts +0 -206
- package/dist/sse/json-to-sse/anthropic-json-to-sse-converter.d.ts +0 -11
- package/dist/sse/json-to-sse/chat-json-to-sse-converter.d.ts +0 -79
- package/dist/sse/json-to-sse/event-generators/chat.d.ts +0 -55
- package/dist/sse/json-to-sse/event-generators/responses.d.ts +0 -99
- package/dist/sse/json-to-sse/index.d.ts +0 -6
- package/dist/sse/json-to-sse/responses-json-to-sse-converter.d.ts +0 -79
- package/dist/sse/json-to-sse/sequencers/chat-sequencer.d.ts +0 -37
- package/dist/sse/json-to-sse/sequencers/responses-sequencer.d.ts +0 -40
- package/dist/sse/registry/sse-codec-registry.d.ts +0 -32
- package/dist/sse/shared/chat-serializer.d.ts +0 -4
- package/dist/sse/shared/constants.d.ts +0 -272
- package/dist/sse/shared/serializers/base-serializer.d.ts +0 -158
- package/dist/sse/shared/serializers/chat-event-serializer.d.ts +0 -82
- package/dist/sse/shared/serializers/index.d.ts +0 -39
- package/dist/sse/shared/serializers/responses-event-serializer.d.ts +0 -123
- package/dist/sse/shared/serializers/types.d.ts +0 -51
- package/dist/sse/shared/utils.d.ts +0 -254
- package/dist/sse/shared/writer.d.ts +0 -111
- package/dist/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +0 -13
- package/dist/sse/sse-to-json/builders/response-builder.d.ts +0 -165
- package/dist/sse/sse-to-json/chat-sse-to-json-converter.d.ts +0 -106
- package/dist/sse/sse-to-json/index.d.ts +0 -6
- package/dist/sse/sse-to-json/parsers/sse-parser.d.ts +0 -73
- package/dist/sse/types/anthropic-types.d.ts +0 -87
- package/dist/tools/proxy/anthropic-tool-proxy.d.ts +0 -19
- package/dist/tools/proxy/anthropic-tool-proxy.js +0 -57
- package/dist/tools/proxy/executors/web-fetch.d.ts +0 -6
- package/dist/tools/proxy/executors/web-fetch.js +0 -39
- package/dist/tools/proxy/registry.d.ts +0 -8
- package/dist/tools/proxy/registry.js +0 -14
- package/dist/tools/proxy/types.d.ts +0 -29
- package/dist/tools/tool-registry.d.ts +0 -8
- package/dist/tools/web-fetch-html.d.ts +0 -15
- package/dist/tools/web-fetch-html.js +0 -83
- package/dist/utils/conversion-adapter.d.ts +0 -65
- package/dist/utils/conversion-adapter.js +0 -183
- package/dist/utils/error-factory.d.ts +0 -88
- package/dist/utils/error-factory.js +0 -138
- package/dist/utils/error-utils.d.ts +0 -334
- package/dist/utils/error-utils.js +0 -782
- package/dist/utils/index.d.ts +0 -8
- package/dist/utils/index.js +0 -13
- package/dist/utils/performance-utils.d.ts +0 -205
- package/dist/utils/performance-utils.js +0 -440
- package/dist/utils/profile-mapper.d.ts +0 -32
- package/dist/utils/profile-mapper.js +0 -269
- package/dist/utils/request-processor.d.ts +0 -52
- package/dist/utils/request-processor.js +0 -210
- package/dist/utils/request-utils.d.ts +0 -117
- package/dist/utils/request-utils.js +0 -333
- package/dist/utils/response-utils.d.ts +0 -127
- package/dist/utils/response-utils.js +0 -516
- package/dist/utils/token-counter.d.ts +0 -89
- package/dist/utils/token-counter.js +0 -541
- /package/dist/{tools/proxy → conversion/hub/tool-governance}/types.js +0 -0
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ProviderErrorEvent } from './types.js';
|
|
2
|
-
type ProviderErrorListener = (event: ProviderErrorEvent) => void;
|
|
3
|
-
export declare class ProviderErrorCenter {
|
|
4
|
-
private readonly listeners;
|
|
5
|
-
subscribe(listener: ProviderErrorListener): () => void;
|
|
6
|
-
emit(event: ProviderErrorEvent): ProviderErrorEvent;
|
|
7
|
-
private normalize;
|
|
8
|
-
}
|
|
9
|
-
export declare const providerErrorCenter: ProviderErrorCenter;
|
|
10
|
-
export {};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { ProcessedRequest, StandardizedRequest } from '../../conversion/hub/types/standardized.js';
|
|
2
|
-
import type { RouterMetadataInput, RoutingFeatures } from './types.js';
|
|
3
|
-
export declare function buildRoutingFeatures(request: StandardizedRequest | ProcessedRequest, metadata: RouterMetadataInput): RoutingFeatures;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { ProviderHealthConfig, ProviderHealthState } from './types.js';
|
|
2
|
-
interface ProviderInternalState extends ProviderHealthState {
|
|
3
|
-
lastFailureAt?: number;
|
|
4
|
-
}
|
|
5
|
-
export declare class ProviderHealthManager {
|
|
6
|
-
private readonly states;
|
|
7
|
-
private config;
|
|
8
|
-
configure(config?: ProviderHealthConfig): void;
|
|
9
|
-
registerProviders(providerKeys: string[]): void;
|
|
10
|
-
recordFailure(providerKey: string, reason?: string): ProviderInternalState;
|
|
11
|
-
recordSuccess(providerKey: string): ProviderInternalState;
|
|
12
|
-
tripProvider(providerKey: string, reason?: string, cooldownOverrideMs?: number): ProviderInternalState;
|
|
13
|
-
isAvailable(providerKey: string): boolean;
|
|
14
|
-
getSnapshot(): ProviderHealthState[];
|
|
15
|
-
getConfig(): Required<ProviderHealthConfig>;
|
|
16
|
-
private getState;
|
|
17
|
-
}
|
|
18
|
-
export {};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { LoadBalancingPolicy } from './types.js';
|
|
2
|
-
export interface LoadBalancingOptions {
|
|
3
|
-
routeName: string;
|
|
4
|
-
candidates: string[];
|
|
5
|
-
stickyKey?: string;
|
|
6
|
-
availabilityCheck: (providerKey: string) => boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare class RouteLoadBalancer {
|
|
9
|
-
private policy;
|
|
10
|
-
private readonly states;
|
|
11
|
-
constructor(policy?: LoadBalancingPolicy);
|
|
12
|
-
updatePolicy(policy?: LoadBalancingPolicy): void;
|
|
13
|
-
select(options: LoadBalancingOptions): string | null;
|
|
14
|
-
private selectRoundRobin;
|
|
15
|
-
private selectWeighted;
|
|
16
|
-
private selectSticky;
|
|
17
|
-
private getState;
|
|
18
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ProviderProfile, TargetMetadata } from './types.js';
|
|
2
|
-
export declare class ProviderRegistry {
|
|
3
|
-
private readonly providers;
|
|
4
|
-
constructor(profiles?: Record<string, ProviderProfile>);
|
|
5
|
-
load(profiles: Record<string, ProviderProfile>): void;
|
|
6
|
-
get(providerKey: string): ProviderProfile;
|
|
7
|
-
has(providerKey: string): boolean;
|
|
8
|
-
listKeys(): string[];
|
|
9
|
-
buildTarget(providerKey: string): TargetMetadata;
|
|
10
|
-
private static normalizeProfile;
|
|
11
|
-
}
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Virtual Router 类型定义
|
|
3
|
-
*/
|
|
4
|
-
import type { StandardizedRequest } from '../../conversion/hub/types/standardized.js';
|
|
5
|
-
export declare const DEFAULT_ROUTE = "default";
|
|
6
|
-
export declare const ROUTE_PRIORITY: string[];
|
|
7
|
-
export type RoutingPools = Record<string, string[]>;
|
|
8
|
-
export interface ProviderAuthConfig {
|
|
9
|
-
type: 'apiKey' | 'oauth';
|
|
10
|
-
secretRef?: string;
|
|
11
|
-
value?: string;
|
|
12
|
-
tokenFile?: string;
|
|
13
|
-
tokenUrl?: string;
|
|
14
|
-
deviceCodeUrl?: string;
|
|
15
|
-
clientId?: string;
|
|
16
|
-
clientSecret?: string;
|
|
17
|
-
scopes?: string[];
|
|
18
|
-
authorizationUrl?: string;
|
|
19
|
-
userInfoUrl?: string;
|
|
20
|
-
refreshUrl?: string;
|
|
21
|
-
oauthProviderId?: string;
|
|
22
|
-
rawType?: string;
|
|
23
|
-
}
|
|
24
|
-
export interface ProviderProfile {
|
|
25
|
-
providerKey: string;
|
|
26
|
-
providerType: string;
|
|
27
|
-
endpoint: string;
|
|
28
|
-
auth: ProviderAuthConfig;
|
|
29
|
-
outboundProfile: string;
|
|
30
|
-
compatibilityProfile?: string;
|
|
31
|
-
runtimeKey?: string;
|
|
32
|
-
modelId?: string;
|
|
33
|
-
processMode?: 'chat' | 'passthrough';
|
|
34
|
-
}
|
|
35
|
-
export interface ProviderRuntimeProfile {
|
|
36
|
-
runtimeKey: string;
|
|
37
|
-
providerId: string;
|
|
38
|
-
keyAlias: string;
|
|
39
|
-
providerType: string;
|
|
40
|
-
endpoint: string;
|
|
41
|
-
headers?: Record<string, string>;
|
|
42
|
-
auth: ProviderAuthConfig;
|
|
43
|
-
outboundProfile: string;
|
|
44
|
-
compatibilityProfile?: string;
|
|
45
|
-
modelId?: string;
|
|
46
|
-
processMode?: 'chat' | 'passthrough';
|
|
47
|
-
}
|
|
48
|
-
export interface VirtualRouterClassifierConfig {
|
|
49
|
-
longContextThresholdTokens?: number;
|
|
50
|
-
thinkingKeywords?: string[];
|
|
51
|
-
codingKeywords?: string[];
|
|
52
|
-
backgroundKeywords?: string[];
|
|
53
|
-
visionKeywords?: string[];
|
|
54
|
-
}
|
|
55
|
-
export interface LoadBalancingPolicy {
|
|
56
|
-
strategy: 'round-robin' | 'weighted' | 'sticky';
|
|
57
|
-
weights?: Record<string, number>;
|
|
58
|
-
}
|
|
59
|
-
export interface ProviderHealthConfig {
|
|
60
|
-
failureThreshold: number;
|
|
61
|
-
cooldownMs: number;
|
|
62
|
-
fatalCooldownMs?: number;
|
|
63
|
-
}
|
|
64
|
-
export interface VirtualRouterConfig {
|
|
65
|
-
routing: RoutingPools;
|
|
66
|
-
providers: Record<string, ProviderProfile>;
|
|
67
|
-
classifier: VirtualRouterClassifierConfig;
|
|
68
|
-
loadBalancing?: LoadBalancingPolicy;
|
|
69
|
-
health?: ProviderHealthConfig;
|
|
70
|
-
}
|
|
71
|
-
export type VirtualRouterProviderDefinition = Record<string, unknown>;
|
|
72
|
-
export interface VirtualRouterBootstrapInput extends Record<string, unknown> {
|
|
73
|
-
virtualrouter?: Record<string, unknown>;
|
|
74
|
-
providers?: Record<string, VirtualRouterProviderDefinition>;
|
|
75
|
-
routing?: Record<string, unknown>;
|
|
76
|
-
classifier?: VirtualRouterClassifierConfig;
|
|
77
|
-
loadBalancing?: LoadBalancingPolicy;
|
|
78
|
-
health?: ProviderHealthConfig;
|
|
79
|
-
}
|
|
80
|
-
export type ProviderRuntimeMap = Record<string, ProviderRuntimeProfile>;
|
|
81
|
-
export interface VirtualRouterBootstrapResult {
|
|
82
|
-
config: VirtualRouterConfig;
|
|
83
|
-
runtime: ProviderRuntimeMap;
|
|
84
|
-
targetRuntime: Record<string, ProviderRuntimeProfile>;
|
|
85
|
-
providers: Record<string, ProviderProfile>;
|
|
86
|
-
routing: RoutingPools;
|
|
87
|
-
}
|
|
88
|
-
export interface RouterMetadataInput {
|
|
89
|
-
requestId: string;
|
|
90
|
-
entryEndpoint: string;
|
|
91
|
-
processMode: 'chat' | 'passthrough';
|
|
92
|
-
stream: boolean;
|
|
93
|
-
direction: 'request' | 'response';
|
|
94
|
-
providerProtocol?: string;
|
|
95
|
-
stage?: 'inbound' | 'outbound' | 'response';
|
|
96
|
-
routeHint?: string;
|
|
97
|
-
}
|
|
98
|
-
export interface RoutingFeatures {
|
|
99
|
-
requestId: string;
|
|
100
|
-
model: string;
|
|
101
|
-
totalMessages: number;
|
|
102
|
-
userTextSample: string;
|
|
103
|
-
toolCount: number;
|
|
104
|
-
hasTools: boolean;
|
|
105
|
-
hasToolCallResponses: boolean;
|
|
106
|
-
hasVisionTool: boolean;
|
|
107
|
-
hasImageAttachment: boolean;
|
|
108
|
-
hasWebTool: boolean;
|
|
109
|
-
hasCodingTool: boolean;
|
|
110
|
-
hasThinkingKeyword: boolean;
|
|
111
|
-
estimatedTokens: number;
|
|
112
|
-
metadata: RouterMetadataInput;
|
|
113
|
-
}
|
|
114
|
-
export interface ClassificationResult {
|
|
115
|
-
routeName: string;
|
|
116
|
-
confidence: number;
|
|
117
|
-
reasoning: string;
|
|
118
|
-
fallback: boolean;
|
|
119
|
-
candidates?: string[];
|
|
120
|
-
}
|
|
121
|
-
export interface RoutingDecision {
|
|
122
|
-
routeName: string;
|
|
123
|
-
providerKey: string;
|
|
124
|
-
confidence: number;
|
|
125
|
-
reasoning: string;
|
|
126
|
-
fallback: boolean;
|
|
127
|
-
pool: string[];
|
|
128
|
-
}
|
|
129
|
-
export interface TargetMetadata {
|
|
130
|
-
providerKey: string;
|
|
131
|
-
providerType: string;
|
|
132
|
-
outboundProfile: string;
|
|
133
|
-
compatibilityProfile?: string;
|
|
134
|
-
runtimeKey?: string;
|
|
135
|
-
modelId: string;
|
|
136
|
-
processMode?: 'chat' | 'passthrough';
|
|
137
|
-
}
|
|
138
|
-
export declare enum VirtualRouterErrorCode {
|
|
139
|
-
NO_STANDARDIZED_REQUEST = "NO_STANDARDIZED_REQUEST",
|
|
140
|
-
ROUTE_NOT_FOUND = "ROUTE_NOT_FOUND",
|
|
141
|
-
PROVIDER_NOT_AVAILABLE = "PROVIDER_NOT_AVAILABLE",
|
|
142
|
-
CONFIG_ERROR = "CONFIG_ERROR"
|
|
143
|
-
}
|
|
144
|
-
export declare class VirtualRouterError extends Error {
|
|
145
|
-
readonly code: VirtualRouterErrorCode;
|
|
146
|
-
readonly details?: Record<string, unknown>;
|
|
147
|
-
constructor(message: string, code: VirtualRouterErrorCode, details?: Record<string, unknown>);
|
|
148
|
-
}
|
|
149
|
-
export interface RoutingDiagnostics {
|
|
150
|
-
routeName: string;
|
|
151
|
-
providerKey: string;
|
|
152
|
-
reasoning: string;
|
|
153
|
-
fallback: boolean;
|
|
154
|
-
pool: string[];
|
|
155
|
-
confidence: number;
|
|
156
|
-
}
|
|
157
|
-
export interface RoutingStatusSnapshot {
|
|
158
|
-
routes: Record<string, {
|
|
159
|
-
providers: string[];
|
|
160
|
-
hits: number;
|
|
161
|
-
lastUsedProvider?: string;
|
|
162
|
-
}>;
|
|
163
|
-
health: ProviderHealthState[];
|
|
164
|
-
}
|
|
165
|
-
export interface ProviderHealthState {
|
|
166
|
-
providerKey: string;
|
|
167
|
-
state: 'healthy' | 'tripped';
|
|
168
|
-
failureCount: number;
|
|
169
|
-
cooldownExpiresAt?: number;
|
|
170
|
-
reason?: string;
|
|
171
|
-
}
|
|
172
|
-
export interface ProviderFailureEvent {
|
|
173
|
-
providerKey: string;
|
|
174
|
-
routeName?: string;
|
|
175
|
-
reason?: string;
|
|
176
|
-
fatal?: boolean;
|
|
177
|
-
statusCode?: number;
|
|
178
|
-
errorCode?: string;
|
|
179
|
-
retryable?: boolean;
|
|
180
|
-
affectsHealth?: boolean;
|
|
181
|
-
cooldownOverrideMs?: number;
|
|
182
|
-
metadata?: Record<string, unknown>;
|
|
183
|
-
}
|
|
184
|
-
export interface ProviderErrorRuntimeMetadata {
|
|
185
|
-
requestId: string;
|
|
186
|
-
routeName?: string;
|
|
187
|
-
providerKey?: string;
|
|
188
|
-
providerId?: string;
|
|
189
|
-
providerType?: string;
|
|
190
|
-
providerProtocol?: string;
|
|
191
|
-
pipelineId?: string;
|
|
192
|
-
target?: TargetMetadata | Record<string, unknown>;
|
|
193
|
-
}
|
|
194
|
-
export interface ProviderErrorEvent {
|
|
195
|
-
code: string;
|
|
196
|
-
message: string;
|
|
197
|
-
stage: string;
|
|
198
|
-
status?: number;
|
|
199
|
-
recoverable?: boolean;
|
|
200
|
-
runtime: ProviderErrorRuntimeMetadata;
|
|
201
|
-
timestamp: number;
|
|
202
|
-
details?: Record<string, unknown>;
|
|
203
|
-
}
|
|
204
|
-
export interface FeatureBuilder {
|
|
205
|
-
build(request: StandardizedRequest, metadata: RouterMetadataInput): RoutingFeatures;
|
|
206
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { AnthropicMessageResponse, AnthropicJsonToSseOptions } from '../types/anthropic-types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Minimal Anthropic JSON → SSE converter (v3)
|
|
4
|
-
* - Emits a compact but spec-aligned event sequence for text content.
|
|
5
|
-
* - Tool use blocks: emits content_block_start (tool_use), input_json_delta (whole), content_block_stop.
|
|
6
|
-
*
|
|
7
|
-
* NOTE: This converter purposely avoids any tool governance. It only maps shapes/fields.
|
|
8
|
-
*/
|
|
9
|
-
export declare class AnthropicJsonToSseConverter {
|
|
10
|
-
convertResponseToJsonToSse(payload: AnthropicMessageResponse, options: AnthropicJsonToSseOptions): Promise<import('node:stream').Readable>;
|
|
11
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chat JSON → SSE转换器(重构版本)
|
|
3
|
-
* 使用函数化架构:事件生成 + 序列化 + 写入分离
|
|
4
|
-
*/
|
|
5
|
-
import { ChatCompletionRequest, ChatCompletionResponse, ChatJsonToSseContext, ChatJsonToSseOptions, ChatSseEventStream, DEFAULT_CHAT_CONVERSION_CONFIG } from '../types/index.js';
|
|
6
|
-
/**
|
|
7
|
-
* 重构后的Chat JSON到SSE转换器
|
|
8
|
-
* 采用函数化架构,专注于编排而非具体业务逻辑
|
|
9
|
-
*/
|
|
10
|
-
export declare class ChatJsonToSseConverterRefactored {
|
|
11
|
-
private config;
|
|
12
|
-
private contexts;
|
|
13
|
-
constructor(config?: Partial<typeof DEFAULT_CHAT_CONVERSION_CONFIG>);
|
|
14
|
-
/**
|
|
15
|
-
* 将Chat Completion请求转换为SSE流
|
|
16
|
-
*/
|
|
17
|
-
convertRequestToJsonToSse(request: ChatCompletionRequest, options: ChatJsonToSseOptions): Promise<ChatSseEventStream>;
|
|
18
|
-
/**
|
|
19
|
-
* 将Chat Completion响应转换为SSE流
|
|
20
|
-
*/
|
|
21
|
-
convertResponseToJsonToSse(response: ChatCompletionResponse, options: ChatJsonToSseOptions): Promise<ChatSseEventStream>;
|
|
22
|
-
/**
|
|
23
|
-
* 使用函数化架构处理请求转换
|
|
24
|
-
*/
|
|
25
|
-
private processRequestToSseWithFunctions;
|
|
26
|
-
/**
|
|
27
|
-
* 使用函数化架构处理响应转换
|
|
28
|
-
*/
|
|
29
|
-
private processResponseToSseWithFunctions;
|
|
30
|
-
/**
|
|
31
|
-
* 验证请求格式
|
|
32
|
-
*/
|
|
33
|
-
private validateRequest;
|
|
34
|
-
/**
|
|
35
|
-
* 验证响应格式
|
|
36
|
-
*/
|
|
37
|
-
private validateResponse;
|
|
38
|
-
/**
|
|
39
|
-
* 更新统计信息
|
|
40
|
-
*/
|
|
41
|
-
private updateStats;
|
|
42
|
-
/**
|
|
43
|
-
* 包装错误
|
|
44
|
-
*/
|
|
45
|
-
private wrapError;
|
|
46
|
-
/**
|
|
47
|
-
* 处理流错误
|
|
48
|
-
*/
|
|
49
|
-
private handleStreamError;
|
|
50
|
-
/**
|
|
51
|
-
* 完成流
|
|
52
|
-
*/
|
|
53
|
-
private completeStream;
|
|
54
|
-
/**
|
|
55
|
-
* 中止流
|
|
56
|
-
*/
|
|
57
|
-
private abortStream;
|
|
58
|
-
/**
|
|
59
|
-
* 创建请求上下文
|
|
60
|
-
*/
|
|
61
|
-
private createRequestContext;
|
|
62
|
-
/**
|
|
63
|
-
* 创建响应上下文
|
|
64
|
-
*/
|
|
65
|
-
private createResponseContext;
|
|
66
|
-
/**
|
|
67
|
-
* 获取上下文
|
|
68
|
-
*/
|
|
69
|
-
getContext(requestId: string): ChatJsonToSseContext | undefined;
|
|
70
|
-
/**
|
|
71
|
-
* 清理上下文
|
|
72
|
-
*/
|
|
73
|
-
clearContext(requestId: string): void;
|
|
74
|
-
/**
|
|
75
|
-
* 获取所有活跃的上下文
|
|
76
|
-
*/
|
|
77
|
-
getActiveContexts(): Map<string, ChatJsonToSseContext>;
|
|
78
|
-
}
|
|
79
|
-
export declare const ChatJsonToSseConverter: typeof ChatJsonToSseConverterRefactored;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chat协议事件生成器
|
|
3
|
-
* 提供纯函数,将Chat响应数据转换为SSE事件对象,不处理流写入
|
|
4
|
-
*/
|
|
5
|
-
import { ChatSseEvent, ChatToolCall } from '../../types/index.js';
|
|
6
|
-
export interface ChatEventGeneratorConfig {
|
|
7
|
-
chunkSize: number;
|
|
8
|
-
chunkDelayMs: number;
|
|
9
|
-
enableIdGeneration: boolean;
|
|
10
|
-
enableTimestampGeneration: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface ChatEventGeneratorContext {
|
|
13
|
-
model: string;
|
|
14
|
-
requestId: string;
|
|
15
|
-
choiceIndex: number;
|
|
16
|
-
toolCallIndexCounter: number;
|
|
17
|
-
contentIndexCounter: Map<string, number>;
|
|
18
|
-
}
|
|
19
|
-
export declare const DEFAULT_CHAT_EVENT_GENERATOR_CONFIG: ChatEventGeneratorConfig;
|
|
20
|
-
/**
|
|
21
|
-
* 创建默认上下文
|
|
22
|
-
*/
|
|
23
|
-
export declare function createDefaultContext(model: string, requestId: string): ChatEventGeneratorContext;
|
|
24
|
-
/**
|
|
25
|
-
* 构建role delta事件
|
|
26
|
-
*/
|
|
27
|
-
export declare function buildRoleDelta(role: string, context: ChatEventGeneratorContext, config?: ChatEventGeneratorConfig): ChatSseEvent[];
|
|
28
|
-
/**
|
|
29
|
-
* 构建reasoning delta事件
|
|
30
|
-
*/
|
|
31
|
-
export declare function buildReasoningDeltas(reasoning: string, context: ChatEventGeneratorContext, config?: ChatEventGeneratorConfig): Generator<ChatSseEvent>;
|
|
32
|
-
/**
|
|
33
|
-
* 构建content delta事件
|
|
34
|
-
*/
|
|
35
|
-
export declare function buildContentDeltas(content: string, context: ChatEventGeneratorContext, config?: ChatEventGeneratorConfig): Generator<ChatSseEvent>;
|
|
36
|
-
/**
|
|
37
|
-
* 构建tool_call开始事件
|
|
38
|
-
*/
|
|
39
|
-
export declare function buildToolCallStart(toolCall: ChatToolCall, toolCallIndex: number, context: ChatEventGeneratorContext, config?: ChatEventGeneratorConfig): ChatSseEvent;
|
|
40
|
-
/**
|
|
41
|
-
* 构建tool_call arguments delta事件
|
|
42
|
-
*/
|
|
43
|
-
export declare function buildToolCallArgsDeltas(args: string, toolCallIndex: number, context: ChatEventGeneratorContext, config?: ChatEventGeneratorConfig): Generator<ChatSseEvent>;
|
|
44
|
-
/**
|
|
45
|
-
* 构建finish_reason事件
|
|
46
|
-
*/
|
|
47
|
-
export declare function buildFinishEvent(finishReason: 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'function_call', context: ChatEventGeneratorContext, config?: ChatEventGeneratorConfig): ChatSseEvent;
|
|
48
|
-
/**
|
|
49
|
-
* 构建done事件
|
|
50
|
-
*/
|
|
51
|
-
export declare function buildDoneEvent(context: ChatEventGeneratorContext, config?: ChatEventGeneratorConfig): ChatSseEvent;
|
|
52
|
-
/**
|
|
53
|
-
* 构建error事件
|
|
54
|
-
*/
|
|
55
|
-
export declare function buildErrorEvent(error: Error, context: ChatEventGeneratorContext, config?: ChatEventGeneratorConfig): ChatSseEvent;
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Responses协议事件生成器
|
|
3
|
-
* 提供纯函数,将Responses响应数据转换为SSE事件对象,不处理流写入
|
|
4
|
-
*/
|
|
5
|
-
import { ResponsesSseEvent, ResponsesResponse, ResponsesOutputItem, ResponsesFunctionCallItem, ResponsesReasoningItem, ResponsesContent } from '../../types/index.js';
|
|
6
|
-
export interface ResponsesEventGeneratorConfig {
|
|
7
|
-
chunkSize: number;
|
|
8
|
-
chunkDelayMs: number;
|
|
9
|
-
enableIdGeneration: boolean;
|
|
10
|
-
enableTimestampGeneration: boolean;
|
|
11
|
-
enableSequenceNumbers: boolean;
|
|
12
|
-
enableDelay: boolean;
|
|
13
|
-
}
|
|
14
|
-
export interface ResponsesEventGeneratorContext {
|
|
15
|
-
requestId: string;
|
|
16
|
-
model: string;
|
|
17
|
-
outputIndexCounter: number;
|
|
18
|
-
contentIndexCounter: Map<string, number>;
|
|
19
|
-
sequenceCounter: number;
|
|
20
|
-
}
|
|
21
|
-
export declare const DEFAULT_RESPONSES_EVENT_GENERATOR_CONFIG: ResponsesEventGeneratorConfig;
|
|
22
|
-
/**
|
|
23
|
-
* 创建默认上下文
|
|
24
|
-
*/
|
|
25
|
-
export declare function createDefaultResponsesContext(requestId: string, model: string): ResponsesEventGeneratorContext;
|
|
26
|
-
/**
|
|
27
|
-
* 构建response.created + response.in_progress事件
|
|
28
|
-
* 映射:response.start → response.created + response.in_progress
|
|
29
|
-
*/
|
|
30
|
-
export declare function buildResponseStartEvents(response: ResponsesResponse, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): Generator<ResponsesSseEvent>;
|
|
31
|
-
/**
|
|
32
|
-
* 构建response.output_item.added事件
|
|
33
|
-
* 映射:output_item.start → response.output_item.added
|
|
34
|
-
*/
|
|
35
|
-
export declare function buildOutputItemStartEvent(outputItem: ResponsesOutputItem, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
36
|
-
/**
|
|
37
|
-
* 构建response.content_part.added事件
|
|
38
|
-
* 映射:content_part.start → response.content_part.added
|
|
39
|
-
*/
|
|
40
|
-
export declare function buildContentPartStartEvent(outputItemId: string, contentIndex: number, content: ResponsesContent, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
41
|
-
/**
|
|
42
|
-
* 构建response.output_text.delta事件流
|
|
43
|
-
* 映射:content_part.delta (input_text/output_text/…) → response.output_text.delta
|
|
44
|
-
* 对于 reasoning 使用 response.reasoning_text.delta
|
|
45
|
-
*/
|
|
46
|
-
export declare function buildContentPartDeltas(outputItemId: string, contentIndex: number, text: string, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): Generator<ResponsesSseEvent>;
|
|
47
|
-
/**
|
|
48
|
-
* 构建content_part.done事件
|
|
49
|
-
*/
|
|
50
|
-
export declare function buildContentPartDoneEvent(outputItemId: string, contentIndex: number, content: ResponsesContent | undefined, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
51
|
-
export declare function buildOutputTextDoneEvent(outputItemId: string, contentIndex: number, fullText: string, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
52
|
-
/**
|
|
53
|
-
* 构建response.function_call_arguments.delta/done的start部分
|
|
54
|
-
* 映射:function_call.start → 隐含在第一个 delta 中
|
|
55
|
-
*/
|
|
56
|
-
/**
|
|
57
|
-
* 构建response.function_call_arguments.delta事件流
|
|
58
|
-
* 映射:function_call.delta → response.function_call_arguments.delta
|
|
59
|
-
*/
|
|
60
|
-
export declare function buildFunctionCallArgsDeltas(functionCall: ResponsesFunctionCallItem, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): Generator<ResponsesSseEvent>;
|
|
61
|
-
/**
|
|
62
|
-
* 构建response.function_call_arguments.done事件
|
|
63
|
-
* 映射:function_call.done → response.function_call_arguments.done
|
|
64
|
-
*/
|
|
65
|
-
export declare function buildFunctionCallDoneEvent(functionCall: ResponsesFunctionCallItem, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
66
|
-
/**
|
|
67
|
-
* 构建reasoning.start事件
|
|
68
|
-
*/
|
|
69
|
-
export declare function buildReasoningStartEvent(reasoning: ResponsesReasoningItem, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
70
|
-
/**
|
|
71
|
-
* 构建response.reasoning_text.delta事件流
|
|
72
|
-
* 映射:reasoning.delta → response.reasoning_text.delta
|
|
73
|
-
*/
|
|
74
|
-
export declare function buildReasoningDeltas(reasoning: ResponsesReasoningItem, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): Generator<ResponsesSseEvent>;
|
|
75
|
-
/**
|
|
76
|
-
* 构建reasoning.done事件
|
|
77
|
-
*/
|
|
78
|
-
export declare function buildReasoningDoneEvent(reasoning: ResponsesReasoningItem, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
79
|
-
/**
|
|
80
|
-
* 构建output_item.done事件
|
|
81
|
-
*/
|
|
82
|
-
export declare function buildOutputItemDoneEvent(outputItem: ResponsesOutputItem, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
83
|
-
/**
|
|
84
|
-
* 构建required_action事件
|
|
85
|
-
*/
|
|
86
|
-
export declare function buildRequiredActionEvent(response: ResponsesResponse, requiredAction: any, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
87
|
-
/**
|
|
88
|
-
* 构建response.completed事件
|
|
89
|
-
* 新增:在 done 之前增加 response.completed
|
|
90
|
-
*/
|
|
91
|
-
export declare function buildResponseCompletedEvent(response: ResponsesResponse, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
92
|
-
/**
|
|
93
|
-
* 构建response.done事件
|
|
94
|
-
*/
|
|
95
|
-
export declare function buildResponseDoneEvent(response: ResponsesResponse, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
96
|
-
/**
|
|
97
|
-
* 构建error事件
|
|
98
|
-
*/
|
|
99
|
-
export declare function buildErrorEvent(error: Error, context: ResponsesEventGeneratorContext, config?: ResponsesEventGeneratorConfig): ResponsesSseEvent;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* JSON→SSE转换模块导出
|
|
3
|
-
*/
|
|
4
|
-
export { ChatJsonToSseConverter } from './chat-json-to-sse-converter.js';
|
|
5
|
-
export { ResponsesJsonToSseConverter } from './responses-json-to-sse-converter.js';
|
|
6
|
-
export type { ChatJsonToSseOptions, ChatJsonToSseContext, ChatEventStats, ResponsesJsonToSseOptions, ResponsesJsonToSseContext, ResponsesEventStats } from '../types/index.js';
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Responses JSON → SSE转换器(重构版本)
|
|
3
|
-
* 使用函数化架构:事件生成 + 序列化 + 写入分离
|
|
4
|
-
*/
|
|
5
|
-
import { ResponsesRequest, ResponsesResponse, ResponsesJsonToSseContext, ResponsesJsonToSseOptions, ResponsesSseEventStream, DEFAULT_RESPONSES_CONVERSION_CONFIG } from '../types/index.js';
|
|
6
|
-
/**
|
|
7
|
-
* 重构后的Responses JSON到SSE转换器
|
|
8
|
-
* 采用函数化架构,专注于编排而非具体业务逻辑
|
|
9
|
-
*/
|
|
10
|
-
export declare class ResponsesJsonToSseConverterRefactored {
|
|
11
|
-
private config;
|
|
12
|
-
private contexts;
|
|
13
|
-
constructor(config?: Partial<typeof DEFAULT_RESPONSES_CONVERSION_CONFIG>);
|
|
14
|
-
/**
|
|
15
|
-
* 将Responses请求转换为SSE流
|
|
16
|
-
*/
|
|
17
|
-
convertRequestToJsonToSse(request: ResponsesRequest, options: ResponsesJsonToSseOptions): Promise<ResponsesSseEventStream>;
|
|
18
|
-
/**
|
|
19
|
-
* 将Responses响应转换为SSE流
|
|
20
|
-
*/
|
|
21
|
-
convertResponseToJsonToSse(response: ResponsesResponse, options: ResponsesJsonToSseOptions): Promise<ResponsesSseEventStream>;
|
|
22
|
-
/**
|
|
23
|
-
* 使用函数化架构处理请求转换
|
|
24
|
-
*/
|
|
25
|
-
private processRequestToSseWithFunctions;
|
|
26
|
-
/**
|
|
27
|
-
* 使用函数化架构处理响应转换
|
|
28
|
-
*/
|
|
29
|
-
private processResponseToSseWithFunctions;
|
|
30
|
-
/**
|
|
31
|
-
* 验证请求格式
|
|
32
|
-
*/
|
|
33
|
-
private validateRequest;
|
|
34
|
-
/**
|
|
35
|
-
* 验证响应格式
|
|
36
|
-
*/
|
|
37
|
-
private validateResponse;
|
|
38
|
-
/**
|
|
39
|
-
* 更新统计信息
|
|
40
|
-
*/
|
|
41
|
-
private updateStats;
|
|
42
|
-
/**
|
|
43
|
-
* 包装错误
|
|
44
|
-
*/
|
|
45
|
-
private wrapError;
|
|
46
|
-
/**
|
|
47
|
-
* 处理流错误
|
|
48
|
-
*/
|
|
49
|
-
private handleStreamError;
|
|
50
|
-
/**
|
|
51
|
-
* 完成流
|
|
52
|
-
*/
|
|
53
|
-
private completeStream;
|
|
54
|
-
/**
|
|
55
|
-
* 中止流
|
|
56
|
-
*/
|
|
57
|
-
private abortStream;
|
|
58
|
-
/**
|
|
59
|
-
* 创建请求上下文
|
|
60
|
-
*/
|
|
61
|
-
private createRequestContext;
|
|
62
|
-
/**
|
|
63
|
-
* 创建响应上下文
|
|
64
|
-
*/
|
|
65
|
-
private createResponseContext;
|
|
66
|
-
/**
|
|
67
|
-
* 获取上下文
|
|
68
|
-
*/
|
|
69
|
-
getContext(requestId: string): ResponsesJsonToSseContext | undefined;
|
|
70
|
-
/**
|
|
71
|
-
* 清理上下文
|
|
72
|
-
*/
|
|
73
|
-
clearContext(requestId: string): void;
|
|
74
|
-
/**
|
|
75
|
-
* 获取所有活跃的上下文
|
|
76
|
-
*/
|
|
77
|
-
getActiveContexts(): Map<string, ResponsesJsonToSseContext>;
|
|
78
|
-
}
|
|
79
|
-
export declare const ResponsesJsonToSseConverter: typeof ResponsesJsonToSseConverterRefactored;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chat协议事件编排器
|
|
3
|
-
* 负责严格的事件时序组合:role → content OR tool_calls(name → args.delta*) → finish_reason → done
|
|
4
|
-
*/
|
|
5
|
-
import { ChatCompletionResponse, ChatSseEvent } from '../../types/index.js';
|
|
6
|
-
import { ChatEventGeneratorContext, ChatEventGeneratorConfig } from '../event-generators/chat.js';
|
|
7
|
-
export interface ChatSequencerConfig extends ChatEventGeneratorConfig {
|
|
8
|
-
includeSequenceNumbers: boolean;
|
|
9
|
-
enableDelay: boolean;
|
|
10
|
-
validateOrder: boolean;
|
|
11
|
-
}
|
|
12
|
-
export declare const DEFAULT_CHAT_SEQUENCER_CONFIG: ChatSequencerConfig;
|
|
13
|
-
/**
|
|
14
|
-
* 主编排器:将Chat响应转换为有序的SSE事件流
|
|
15
|
-
*/
|
|
16
|
-
export declare function sequenceChatResponse(response: ChatCompletionResponse, context: ChatEventGeneratorContext, config?: ChatSequencerConfig): AsyncGenerator<ChatSseEvent>;
|
|
17
|
-
/**
|
|
18
|
-
* 序列化Chat请求(用于请求→SSE转换)
|
|
19
|
-
*/
|
|
20
|
-
export declare function sequenceChatRequest(request: any, context: ChatEventGeneratorContext, config?: ChatSequencerConfig): AsyncGenerator<ChatSseEvent>;
|
|
21
|
-
/**
|
|
22
|
-
* 创建Chat事件序列化器工厂
|
|
23
|
-
*/
|
|
24
|
-
export declare function createChatSequencer(config?: Partial<ChatSequencerConfig>): {
|
|
25
|
-
/**
|
|
26
|
-
* 序列化响应
|
|
27
|
-
*/
|
|
28
|
-
sequenceResponse(response: ChatCompletionResponse, model: string, requestId: string): AsyncGenerator<ChatSseEvent, void, any>;
|
|
29
|
-
/**
|
|
30
|
-
* 序列化请求
|
|
31
|
-
*/
|
|
32
|
-
sequenceRequest(request: any, model: string, requestId: string): AsyncGenerator<ChatSseEvent, void, any>;
|
|
33
|
-
/**
|
|
34
|
-
* 获取当前配置
|
|
35
|
-
*/
|
|
36
|
-
getConfig(): ChatSequencerConfig;
|
|
37
|
-
};
|