@truefoundry/ai-gateway-sdk 0.0.15 → 0.0.17
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/dist/autogen/models.d.ts +14 -1
- package/dist/autogen/schema.json +9 -1
- package/dist/errors.d.ts +2 -1
- package/dist/errors.js +3 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/parity/transformCapturedProviderResponse.js +13 -5
- package/dist/parity/transformCapturedProviderResponse.js.map +1 -1
- package/dist/providers/anthropic/chatComplete.d.ts +8 -1
- package/dist/providers/anthropic/chatComplete.js +25 -4
- package/dist/providers/anthropic/chatComplete.js.map +1 -1
- package/dist/providers/azure-ai-inference/api.js +8 -9
- package/dist/providers/azure-ai-inference/api.js.map +1 -1
- package/dist/providers/azure-openai/api.js +3 -0
- package/dist/providers/azure-openai/api.js.map +1 -1
- package/dist/providers/azure-openai/utils.js +1 -1
- package/dist/providers/azure-openai/utils.js.map +1 -1
- package/dist/providers/bedrock/api.js +44 -9
- package/dist/providers/bedrock/api.js.map +1 -1
- package/dist/providers/bedrock/chatComplete.js +118 -58
- package/dist/providers/bedrock/chatComplete.js.map +1 -1
- package/dist/providers/bedrock/index.d.ts +50 -0
- package/dist/providers/bedrock/index.js +29 -1
- package/dist/providers/bedrock/index.js.map +1 -1
- package/dist/providers/bedrock/modelFamily.d.ts +6 -1
- package/dist/providers/bedrock/modelFamily.js +10 -1
- package/dist/providers/bedrock/modelFamily.js.map +1 -1
- package/dist/providers/bedrock/uploadFileUtils.js +6 -5
- package/dist/providers/bedrock/uploadFileUtils.js.map +1 -1
- package/dist/providers/bedrock/utils.d.ts +1 -1
- package/dist/providers/bedrock/utils.js +9 -1
- package/dist/providers/bedrock/utils.js.map +1 -1
- package/dist/providers/google-vertex-ai/api.d.ts +1 -0
- package/dist/providers/google-vertex-ai/api.js +6 -4
- package/dist/providers/google-vertex-ai/api.js.map +1 -1
- package/dist/providers/microsoft-foundry/api.js +36 -8
- package/dist/providers/microsoft-foundry/api.js.map +1 -1
- package/dist/services/buildFetchInit.js +6 -1
- package/dist/services/buildFetchInit.js.map +1 -1
- package/dist/services/createProviderRequest.js +126 -21
- package/dist/services/createProviderRequest.js.map +1 -1
- package/dist/services/execute.js +77 -63
- package/dist/services/execute.js.map +1 -1
- package/dist/services/handleProviderResponse.d.ts +0 -8
- package/dist/services/handleProviderResponse.js +226 -41
- package/dist/services/handleProviderResponse.js.map +1 -1
- package/dist/stream/pumpProviderAwsEventStream.js +4 -3
- package/dist/stream/pumpProviderAwsEventStream.js.map +1 -1
- package/dist/stream/pumpProviderSseStream.js +18 -16
- package/dist/stream/pumpProviderSseStream.js.map +1 -1
- package/dist/stream/shouldReadAwsEventStream.js +5 -2
- package/dist/stream/shouldReadAwsEventStream.js.map +1 -1
- package/dist/stream/types.d.ts +5 -1
- package/dist/types/contracts.d.ts +26 -0
- package/dist/types/executionReport.d.ts +3 -1
- package/dist/utils/isStreamingEnabled.d.ts +5 -3
- package/dist/utils/isStreamingEnabled.js +17 -4
- package/dist/utils/isStreamingEnabled.js.map +1 -1
- package/dist/utils/sdkRequestUrl.d.ts +3 -0
- package/dist/utils/sdkRequestUrl.js +3 -0
- package/dist/utils/sdkRequestUrl.js.map +1 -1
- package/dist/utils/sseUtils.d.ts +9 -0
- package/dist/utils/sseUtils.js +65 -0
- package/dist/utils/sseUtils.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,14 +5,18 @@
|
|
|
5
5
|
* USD cost, OTel, or logging side effects.
|
|
6
6
|
*
|
|
7
7
|
* Streaming first-chunk gate parity with live `handleStreamingMode`:
|
|
8
|
-
* -
|
|
8
|
+
* - Native `/responses` in-band frames are held until the gate resolves, while the kill switch is on
|
|
9
9
|
* - `onStreamEnd` rejects empty / detail-less streams
|
|
10
10
|
* - Gate settles before the streaming Response is returned (LB failover)
|
|
11
11
|
*/
|
|
12
|
+
import { SSE_DONE } from '../adapters/constants.js';
|
|
13
|
+
import config from '../config.js';
|
|
12
14
|
import { Provider } from '../entities/Provider.js';
|
|
13
|
-
import { TTFTTimeoutError } from '../errors.js';
|
|
15
|
+
import { ResTranslationError, TTFTTimeoutError } from '../errors.js';
|
|
16
|
+
import { PROVIDER_MALFORMED_RESPONSE_STATUS_CODE } from '../globals.js';
|
|
14
17
|
import { getActualModelId, getProviderConfig } from '../handlers/tfyUtils.js';
|
|
15
18
|
import { providerResponseCaptureAbort } from '../parity/providerResponseCapture.js';
|
|
19
|
+
import { translateDecisionResponse } from '../providers/shared/decisionDialect.js';
|
|
16
20
|
import { universalResponseFormatResponseTransform, universalResponseFormatStreamingResponseTransform, } from '../providers/shared/responseFormatUtils.js';
|
|
17
21
|
import { handleResponseTransformWithGenericError } from '../providers/utils.js';
|
|
18
22
|
import { createAnthropicFirstMeaningfulChunkValidator, createFirstChunkGateFromSignal, createResponsesInBandErrorValidator, getStreamModeSplitPattern, pumpProviderAwsEventStream, pumpProviderSseStream, resolvePumpAbortSignal, shouldReadAwsEventStream, shouldRequireAzureStreamSleep, } from '../stream/index.js';
|
|
@@ -80,14 +84,14 @@ function isJsonContentType(contentType) {
|
|
|
80
84
|
const base = contentType.split(';')[0]?.trim().toLowerCase() ?? '';
|
|
81
85
|
return base === 'application/json' || base.endsWith('+json');
|
|
82
86
|
}
|
|
83
|
-
function
|
|
87
|
+
function passthroughResponse(args, streaming) {
|
|
84
88
|
const { response, endpoint, provider, execution, gatewayRequestBody, attempts, timings, modelMetadata } = args;
|
|
85
89
|
return {
|
|
86
90
|
response,
|
|
87
91
|
executionReport: Promise.resolve({
|
|
88
92
|
status: response.status,
|
|
89
93
|
attempts,
|
|
90
|
-
streaming
|
|
94
|
+
streaming,
|
|
91
95
|
timings,
|
|
92
96
|
endReason: { kind: 'done' },
|
|
93
97
|
usage: finalizeReportUsage({
|
|
@@ -103,7 +107,8 @@ function passthroughNonStreaming(args) {
|
|
|
103
107
|
};
|
|
104
108
|
}
|
|
105
109
|
function pickFirstChunkValidators(providerOptions, endpoint) {
|
|
106
|
-
|
|
110
|
+
// Same as live handleStreamingMode. Compact has no stream param, so its body is not Responses SSE.
|
|
111
|
+
if (config.RESPONSES_IN_BAND_ERROR_FALLBACK_ENABLED && endpoint === 'createModelResponse') {
|
|
107
112
|
const responsesValidator = createResponsesInBandErrorValidator();
|
|
108
113
|
return { validateFirstChunk: responsesValidator, responsesValidator };
|
|
109
114
|
}
|
|
@@ -117,31 +122,64 @@ function pickFirstChunkValidators(providerOptions, endpoint) {
|
|
|
117
122
|
}
|
|
118
123
|
async function handleNonStreaming(args) {
|
|
119
124
|
const { response, endpoint, provider, providerOptions, execution, gatewayRequestBody, requestUrl, attempts, timings, modelMetadata, strictOpenAiCompliance, } = args;
|
|
125
|
+
const servedEndpoint = args.inboundEndpoint ?? endpoint;
|
|
126
|
+
// Live handleNonStreamingMode returns video-proxy before any body read.
|
|
127
|
+
if (servedEndpoint === 'video-proxy') {
|
|
128
|
+
return passthroughResponse(args, false);
|
|
129
|
+
}
|
|
120
130
|
const contentType = response.headers.get('content-type');
|
|
121
131
|
if (isAudioContentType(contentType)) {
|
|
122
132
|
// Minimal passthrough — full live audio tee/logging stays gateway (P7.2).
|
|
123
|
-
return
|
|
124
|
-
}
|
|
125
|
-
if (args.preserveNonJsonBody && !isJsonContentType(contentType)) {
|
|
126
|
-
return passthroughNonStreaming(args);
|
|
133
|
+
return passthroughResponse(args, false);
|
|
127
134
|
}
|
|
135
|
+
// Same as live handleNonStreamingMode: 200 file content and batch output are JSONL.
|
|
136
|
+
const jsonl = (endpoint === 'retrieveFileContent' || endpoint === 'getBatchOutput') && response.status === 200;
|
|
128
137
|
const text = await response.text();
|
|
129
|
-
let json
|
|
130
|
-
|
|
131
|
-
|
|
138
|
+
let json;
|
|
139
|
+
if (jsonl) {
|
|
140
|
+
try {
|
|
141
|
+
json = text
|
|
142
|
+
.trim()
|
|
143
|
+
.split('\n')
|
|
144
|
+
.map(line => JSON.parse(line));
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
json = { text };
|
|
148
|
+
}
|
|
132
149
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
150
|
+
else {
|
|
151
|
+
try {
|
|
152
|
+
json = JSON.parse(text);
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
if (text)
|
|
156
|
+
logIgnoredFailure('sdk.handleProviderResponse.nonStreamJsonParse', error, { provider, endpoint });
|
|
157
|
+
// Same as live handleNonStreamingMode: empty and non-JSON bodies become { text }.
|
|
158
|
+
json = { text };
|
|
159
|
+
}
|
|
136
160
|
}
|
|
137
161
|
const transformer = resolveResponseTransforms(args);
|
|
138
162
|
let transformed = json;
|
|
139
163
|
if (typeof transformer === 'function') {
|
|
140
|
-
|
|
164
|
+
try {
|
|
165
|
+
transformed = await handleResponseTransformWithGenericError(json, response.status, response.headers, strictOpenAiCompliance, requestUrl, args.postAdapterBody, transformer, provider);
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
// Live handleNonStreamingMode records provider error headers before this throw.
|
|
169
|
+
throw new ResTranslationError(error instanceof Error ? error : undefined, response.status >= 400 ? Array.from(response.headers.entries()) : undefined);
|
|
170
|
+
}
|
|
141
171
|
}
|
|
142
172
|
if (endpoint === 'chatComplete' && transformed && typeof transformed === 'object') {
|
|
143
173
|
transformed = universalResponseFormatResponseTransform(transformed, strictOpenAiCompliance);
|
|
144
174
|
}
|
|
175
|
+
const decisionResponseDialect = args.callConfig?.decisionResponseDialect;
|
|
176
|
+
if (endpoint === 'decision' &&
|
|
177
|
+
response.ok &&
|
|
178
|
+
decisionResponseDialect &&
|
|
179
|
+
transformed &&
|
|
180
|
+
typeof transformed === 'object') {
|
|
181
|
+
transformed = translateDecisionResponse(transformed, decisionResponseDialect, gatewayRequestBody);
|
|
182
|
+
}
|
|
145
183
|
// NEW wiring: settle report from CLONE liveUsageFromResponse (else PRE usageFromJson).
|
|
146
184
|
const live = liveUsageFromResponse(liveUsageScope(args), transformed, response.headers);
|
|
147
185
|
const usage = finalizeReportUsage({
|
|
@@ -154,30 +192,75 @@ async function handleNonStreaming(args) {
|
|
|
154
192
|
});
|
|
155
193
|
const finishReason = live?.finishReason ?? finishReasonFromJson(transformed);
|
|
156
194
|
const iterations = iterationsFromJson(transformed);
|
|
195
|
+
// Same as live handleNonStreamingMode: 200 + error object and no transformer becomes 500.
|
|
196
|
+
let finalStatus = response.status;
|
|
197
|
+
if (transformed && typeof transformed === 'object' && 'error' in transformed) {
|
|
198
|
+
const bodyJson = transformed;
|
|
199
|
+
if (bodyJson.error && typeof bodyJson.error === 'object') {
|
|
200
|
+
if (!transformer && response.status === 200) {
|
|
201
|
+
finalStatus = PROVIDER_MALFORMED_RESPONSE_STATUS_CODE;
|
|
202
|
+
}
|
|
203
|
+
if (finalStatus !== 200) {
|
|
204
|
+
bodyJson.error.code = String(finalStatus);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Same as live handleNonStreamingMode /ranking reshape, after the 200→500 check.
|
|
209
|
+
if (endpoint === 'proxy' && args.inboundPath.includes('/ranking') && transformed && typeof transformed === 'object') {
|
|
210
|
+
const bodyJson = transformed;
|
|
211
|
+
if ('detail' in bodyJson && bodyJson.detail) {
|
|
212
|
+
bodyJson.error = {
|
|
213
|
+
message: JSON.stringify(bodyJson.detail),
|
|
214
|
+
code: String(response.status),
|
|
215
|
+
type: null,
|
|
216
|
+
param: null,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
else if ('error' in bodyJson && typeof bodyJson.error !== 'object') {
|
|
220
|
+
bodyJson.error = {
|
|
221
|
+
message: String(bodyJson.error),
|
|
222
|
+
code: String(response.status),
|
|
223
|
+
type: null,
|
|
224
|
+
param: null,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
157
228
|
const bodyStr = typeof transformed === 'string' ? transformed : JSON.stringify(transformed);
|
|
229
|
+
// Same as live handleNonStreamingMode: proxy keeps the provider content-type. Other bodies become JSON so text/html cannot run.
|
|
158
230
|
const headers = new Headers(response.headers);
|
|
159
|
-
headers.
|
|
231
|
+
const responseContentType = headers.get('content-type');
|
|
232
|
+
if (endpoint !== 'proxy' && (!responseContentType || !isJsonContentType(responseContentType))) {
|
|
233
|
+
headers.set('content-type', 'application/json; charset=utf-8');
|
|
234
|
+
}
|
|
160
235
|
headers.delete('content-length');
|
|
161
236
|
headers.delete('content-encoding');
|
|
162
237
|
headers.delete('transfer-encoding');
|
|
238
|
+
const executionReport = Promise.resolve({
|
|
239
|
+
status: finalStatus,
|
|
240
|
+
providerStatus: response.status,
|
|
241
|
+
attempts,
|
|
242
|
+
streaming: false,
|
|
243
|
+
timings,
|
|
244
|
+
endReason: { kind: 'done', finishReason },
|
|
245
|
+
usage,
|
|
246
|
+
iterations,
|
|
247
|
+
tokensEstimated: live?.tokensEstimated, // NEW on report (CLONE LiveUsage)
|
|
248
|
+
serviceTier: live?.serviceTier,
|
|
249
|
+
toolUsage: live?.toolUsage,
|
|
250
|
+
providerReportedCostInUsd: live?.providerReportedCostInUsd, // NEW on report
|
|
251
|
+
modelMetadata,
|
|
252
|
+
providerRequestId: providerRequestIdFromHeaders(response.headers, provider),
|
|
253
|
+
...(args.gatewayFailure ? { gatewayFailure: args.gatewayFailure } : {}),
|
|
254
|
+
});
|
|
255
|
+
// Live reads provider error headers from this status, before the 200 → 500 rewrite.
|
|
256
|
+
executionReport.providerStatus = response.status;
|
|
163
257
|
return {
|
|
164
|
-
response: new Response(bodyStr, {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
streaming: false,
|
|
169
|
-
timings,
|
|
170
|
-
endReason: { kind: 'done', finishReason },
|
|
171
|
-
usage,
|
|
172
|
-
iterations,
|
|
173
|
-
tokensEstimated: live?.tokensEstimated, // NEW on report (CLONE LiveUsage)
|
|
174
|
-
serviceTier: live?.serviceTier,
|
|
175
|
-
toolUsage: live?.toolUsage,
|
|
176
|
-
providerReportedCostInUsd: live?.providerReportedCostInUsd, // NEW on report
|
|
177
|
-
modelMetadata,
|
|
178
|
-
providerRequestId: providerRequestIdFromHeaders(response.headers, provider),
|
|
179
|
-
...(args.gatewayFailure ? { gatewayFailure: args.gatewayFailure } : {}),
|
|
258
|
+
response: new Response(bodyStr, {
|
|
259
|
+
status: finalStatus,
|
|
260
|
+
statusText: finalStatus === PROVIDER_MALFORMED_RESPONSE_STATUS_CODE ? 'Bad Gateway' : response.statusText,
|
|
261
|
+
headers,
|
|
180
262
|
}),
|
|
263
|
+
executionReport,
|
|
181
264
|
};
|
|
182
265
|
}
|
|
183
266
|
async function handleStreaming(args) {
|
|
@@ -187,7 +270,7 @@ async function handleStreaming(args) {
|
|
|
187
270
|
}
|
|
188
271
|
const transformFunction = resolveResponseTransforms(args);
|
|
189
272
|
const modelManifestType = providerOptions.model?.manifest?.type ?? '';
|
|
190
|
-
const modelId = getActualModelId(providerOptions.model) || '';
|
|
273
|
+
const modelId = args.headerOptions.aws?.awsBedrockModel || getActualModelId(providerOptions.model) || '';
|
|
191
274
|
const useAws = shouldReadAwsEventStream({
|
|
192
275
|
modelManifestType,
|
|
193
276
|
modelId,
|
|
@@ -213,7 +296,7 @@ async function handleStreaming(args) {
|
|
|
213
296
|
// The listener runs in the abort() caller, outside this capture context, so keep the abort from here.
|
|
214
297
|
const abortCapture = providerResponseCaptureAbort();
|
|
215
298
|
if (abortCapture) {
|
|
216
|
-
pumpAbort?.addEventListener('abort', abortCapture
|
|
299
|
+
pumpAbort?.addEventListener('abort', abortCapture);
|
|
217
300
|
if (pumpAbort?.aborted)
|
|
218
301
|
abortCapture();
|
|
219
302
|
}
|
|
@@ -224,13 +307,15 @@ async function handleStreaming(args) {
|
|
|
224
307
|
let ttftTimer;
|
|
225
308
|
let firstChunkGate;
|
|
226
309
|
if (gateEnabled) {
|
|
227
|
-
|
|
310
|
+
// Same as live streamHandler: use routing's timer so the first chunk clears it.
|
|
311
|
+
if (ttftEnabled && execution.ttftAbortSignal) {
|
|
312
|
+
ttftTimer = execution.ttftTimer;
|
|
313
|
+
}
|
|
314
|
+
else if (ttftEnabled) {
|
|
228
315
|
ttftController = new AbortController();
|
|
229
316
|
ttftTimer = setTimeout(() => ttftController?.abort(), execution.ttftTimeoutMs);
|
|
230
317
|
}
|
|
231
|
-
firstChunkGate = createFirstChunkGateFromSignal(ttftController?.signal, execution.ttftTimeoutMs, ttftTimer, {
|
|
232
|
-
validateFirstChunk,
|
|
233
|
-
});
|
|
318
|
+
firstChunkGate = createFirstChunkGateFromSignal(execution.ttftAbortSignal ?? ttftController?.signal, execution.ttftTimeoutMs, ttftTimer, { validateFirstChunk });
|
|
234
319
|
}
|
|
235
320
|
const deferred = createStreamingReportDeferred({
|
|
236
321
|
status: response.status,
|
|
@@ -248,6 +333,8 @@ async function handleStreaming(args) {
|
|
|
248
333
|
strictOpenAiCompliance,
|
|
249
334
|
gatewayRequest,
|
|
250
335
|
abortSignal: pumpAbort,
|
|
336
|
+
onStreamEventKey: execution.onStreamEventKey,
|
|
337
|
+
eventCounts: execution.streamEventCounts,
|
|
251
338
|
};
|
|
252
339
|
const { readable, writable } = new TransformStream();
|
|
253
340
|
const writer = writable.getWriter();
|
|
@@ -357,12 +444,14 @@ async function handleStreaming(args) {
|
|
|
357
444
|
void releaseHeldChunks();
|
|
358
445
|
};
|
|
359
446
|
const runPump = async () => {
|
|
447
|
+
execution.onStreamPumpStart?.();
|
|
360
448
|
pumpGen = useAws
|
|
361
449
|
? pumpProviderAwsEventStream({ ...pumpOptions, yieldRawBytes })
|
|
362
450
|
: pumpProviderSseStream({
|
|
363
451
|
...pumpOptions,
|
|
364
452
|
splitPattern,
|
|
365
|
-
|
|
453
|
+
// Same as live readStream: forward comments unless resolveSseCommentMode returns strip.
|
|
454
|
+
sseCommentMode: execution.sseCommentMode ?? 'forward',
|
|
366
455
|
isSleepTimeRequired: shouldRequireAzureStreamSleep(provider),
|
|
367
456
|
});
|
|
368
457
|
const gen = pumpGen;
|
|
@@ -422,6 +511,8 @@ async function handleStreaming(args) {
|
|
|
422
511
|
await closeUpstream();
|
|
423
512
|
}
|
|
424
513
|
finally {
|
|
514
|
+
if (abortCapture)
|
|
515
|
+
pumpAbort?.removeEventListener('abort', abortCapture);
|
|
425
516
|
firstChunkGate?.dispose();
|
|
426
517
|
if (ttftTimer)
|
|
427
518
|
clearTimeout(ttftTimer);
|
|
@@ -449,8 +540,12 @@ async function handleStreaming(args) {
|
|
|
449
540
|
}
|
|
450
541
|
const headers = new Headers(response.headers);
|
|
451
542
|
// Native Bedrock Converse binary path must keep provider content-type (eventstream).
|
|
543
|
+
// Live buildStreamResponse also keeps an event-stream type, charset included.
|
|
452
544
|
if (!yieldRawBytes) {
|
|
453
|
-
headers.
|
|
545
|
+
const base = (response.headers.get('content-type') ?? '').split(';')[0]?.trim().toLowerCase() ?? '';
|
|
546
|
+
if (base !== 'text/event-stream') {
|
|
547
|
+
headers.set('content-type', 'text/event-stream');
|
|
548
|
+
}
|
|
454
549
|
}
|
|
455
550
|
headers.delete('content-length');
|
|
456
551
|
headers.delete('content-encoding');
|
|
@@ -463,8 +558,98 @@ async function handleStreaming(args) {
|
|
|
463
558
|
/**
|
|
464
559
|
* Transform a provider Response into the client-facing Response + deferred report.
|
|
465
560
|
*/
|
|
561
|
+
/** Proxy and TTS pass through unless a Gemini or Bedrock router must read chunks. video-proxy uses the SSE pump, same as live modelType video. */
|
|
562
|
+
function isBlindProxyStream(input) {
|
|
563
|
+
const endpoint = input.inboundEndpoint ?? input.endpoint;
|
|
564
|
+
if (endpoint !== 'proxy' && endpoint !== 'tts-proxy')
|
|
565
|
+
return false;
|
|
566
|
+
if (input.callConfig?.isGeminiRouter || input.callConfig?.isBedrockRouter)
|
|
567
|
+
return false;
|
|
568
|
+
return true;
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* Live `handleProxyPassthroughWithTTFT`: forward bytes unchanged, but fail the call
|
|
572
|
+
* if no upstream frame arrives within the TTFT budget (load-balance failover).
|
|
573
|
+
*/
|
|
574
|
+
async function passthroughProxyStream(args) {
|
|
575
|
+
const ttftMs = args.execution.ttftTimeoutMs;
|
|
576
|
+
const body = args.response.body;
|
|
577
|
+
if (typeof ttftMs !== 'number' || ttftMs <= 0) {
|
|
578
|
+
return passthroughResponse(args, true);
|
|
579
|
+
}
|
|
580
|
+
// Same as live handleProxyPassthroughWithTTFT.
|
|
581
|
+
if (!body) {
|
|
582
|
+
throw new Error('Response format is invalid. Body not found');
|
|
583
|
+
}
|
|
584
|
+
const gate = createFirstChunkGateFromSignal(args.execution.ttftAbortSignal, ttftMs, args.execution.ttftTimer, undefined);
|
|
585
|
+
const { readable, writable } = new TransformStream();
|
|
586
|
+
const writer = writable.getWriter();
|
|
587
|
+
const reader = body.getReader();
|
|
588
|
+
let firstChunk = false;
|
|
589
|
+
let sawDone = false;
|
|
590
|
+
const timings = { ...args.timings };
|
|
591
|
+
args.execution.abortSignal?.addEventListener('abort', () => {
|
|
592
|
+
reader.cancel().catch(() => { });
|
|
593
|
+
});
|
|
594
|
+
void (async () => {
|
|
595
|
+
try {
|
|
596
|
+
while (true) {
|
|
597
|
+
const { done, value } = await reader.read();
|
|
598
|
+
if (done) {
|
|
599
|
+
if (!firstChunk) {
|
|
600
|
+
gate.onError(new TTFTTimeoutError(`TTFT timeout: stream ended before first chunk (timeout=${ttftMs}ms)`, ttftMs));
|
|
601
|
+
}
|
|
602
|
+
break;
|
|
603
|
+
}
|
|
604
|
+
// Same as live handleProxyPassthroughWithTTFT: the gate opens on the first frame, even if empty.
|
|
605
|
+
if (!firstChunk) {
|
|
606
|
+
firstChunk = true;
|
|
607
|
+
gate.onFirstChunk();
|
|
608
|
+
}
|
|
609
|
+
if (!value || value.byteLength === 0)
|
|
610
|
+
continue;
|
|
611
|
+
if (timings.timeToFirstTokenMs === undefined) {
|
|
612
|
+
const firstByteAt = performance.now();
|
|
613
|
+
timings.timeToFirstTokenMs = firstByteAt - args.fetchStartMs;
|
|
614
|
+
args.execution.onFirstToken?.(firstByteAt);
|
|
615
|
+
}
|
|
616
|
+
await writer.write(value);
|
|
617
|
+
// Same as live handleProxyPassthroughWithTTFT: a later abort must not look like a mid-stream cancel.
|
|
618
|
+
if (!sawDone && new TextDecoder().decode(value).includes(SSE_DONE)) {
|
|
619
|
+
sawDone = true;
|
|
620
|
+
args.execution.markStreamCompleted?.();
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
catch (error) {
|
|
625
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
626
|
+
if (!firstChunk)
|
|
627
|
+
gate.onError(err);
|
|
628
|
+
}
|
|
629
|
+
finally {
|
|
630
|
+
gate.dispose();
|
|
631
|
+
try {
|
|
632
|
+
await writer.close();
|
|
633
|
+
}
|
|
634
|
+
catch {
|
|
635
|
+
// Writer may already be closed.
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
})();
|
|
639
|
+
try {
|
|
640
|
+
await gate.promise;
|
|
641
|
+
}
|
|
642
|
+
catch (err) {
|
|
643
|
+
await reader.cancel().catch(() => { });
|
|
644
|
+
await writer.abort(err).catch(() => { });
|
|
645
|
+
throw err;
|
|
646
|
+
}
|
|
647
|
+
return passthroughResponse({ ...args, timings, response: new Response(readable, args.response) }, true);
|
|
648
|
+
}
|
|
466
649
|
export async function handleProviderResponse(input) {
|
|
467
650
|
if (input.streaming && input.response.status === 200) {
|
|
651
|
+
if (isBlindProxyStream(input))
|
|
652
|
+
return passthroughProxyStream(input);
|
|
468
653
|
return handleStreaming(input);
|
|
469
654
|
}
|
|
470
655
|
return handleNonStreaming(input);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleProviderResponse.js","sourceRoot":"","sources":["../../src/services/handleProviderResponse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handleProviderResponse.js","sourceRoot":"","sources":["../../src/services/handleProviderResponse.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,10 +39,9 @@ import { isStreamingTerminatedError } from './resolveStreamEndReason.js';
|
|
|
39
39
|
* `frames` (live `errResponse` vs `chunks` split).
|
|
40
40
|
*/
|
|
41
41
|
export async function* pumpProviderAwsEventStream(options) {
|
|
42
|
-
const { reader, transformFunction, fallbackChunkId, strictOpenAiCompliance, gatewayRequest, yieldRawBytes = false, abortSignal, } = options;
|
|
42
|
+
const { reader, transformFunction, fallbackChunkId, strictOpenAiCompliance, gatewayRequest, yieldRawBytes = false, abortSignal, onStreamEventKey, eventCounts = {}, } = options;
|
|
43
43
|
const streamState = options.forwardPings ? { forwardPings: true } : {};
|
|
44
44
|
const frames = [];
|
|
45
|
-
const eventCounts = {};
|
|
46
45
|
let truncated = false;
|
|
47
46
|
let error;
|
|
48
47
|
const frameGen = readAwsEventFrames({ reader, abortSignal });
|
|
@@ -56,8 +55,10 @@ export async function* pumpProviderAwsEventStream(options) {
|
|
|
56
55
|
const { frame, payload } = iter.value;
|
|
57
56
|
// Count before a transform drop. Live labels the raw frame; the decoded payload has no header.
|
|
58
57
|
const eventKey = classifyAwsStreamEventKey(frame, payload);
|
|
59
|
-
if (eventKey)
|
|
58
|
+
if (eventKey) {
|
|
60
59
|
eventCounts[eventKey] = (eventCounts[eventKey] ?? 0) + 1;
|
|
60
|
+
onStreamEventKey?.(eventKey);
|
|
61
|
+
}
|
|
61
62
|
if (!transformFunction) {
|
|
62
63
|
frames.push(payload);
|
|
63
64
|
yield frame;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pumpProviderAwsEventStream.js","sourceRoot":"","sources":["../../src/stream/pumpProviderAwsEventStream.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAGtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,0BAA0B,CAC/C,OAA0C;IAE1C,MAAM,EACJ,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,aAAa,GAAG,KAAK,EACrB,WAAW,
|
|
1
|
+
{"version":3,"file":"pumpProviderAwsEventStream.js","sourceRoot":"","sources":["../../src/stream/pumpProviderAwsEventStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { isAbortError } from '../utils/abortUtils.js';
|
|
6
6
|
import { ignoreWithLog } from '../utils/ignoreWithLog.js';
|
|
7
|
-
import { stripSseComments } from '../utils/sseUtils.js';
|
|
7
|
+
import { recordStreamEventCount, stripSseComments } from '../utils/sseUtils.js';
|
|
8
8
|
import { readSseFrames } from './readSseFrames.js';
|
|
9
9
|
import { isStreamingTerminatedError } from './resolveStreamEndReason.js';
|
|
10
10
|
const FIRST_CHUNK_SLEEP_MS = 25;
|
|
@@ -24,14 +24,14 @@ function* processFrame(args) {
|
|
|
24
24
|
const { part, appendDelimiter, splitPattern, forwardSseComments, transformFunction, fallbackChunkId, streamState, strictOpenAiCompliance, gatewayRequest, frames, } = args;
|
|
25
25
|
const cleaned = stripSseComments(part);
|
|
26
26
|
const suffix = appendDelimiter ? splitPattern : '';
|
|
27
|
-
if (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
yield part + suffix;
|
|
32
|
-
}
|
|
33
|
-
return;
|
|
27
|
+
if (cleaned === null) {
|
|
28
|
+
// Same as live readStream: a bare `\r` is the rest of a CRLF delimiter when the split is `\n`, not a comment.
|
|
29
|
+
if (forwardSseComments || part.trim() === '') {
|
|
30
|
+
yield part + suffix;
|
|
34
31
|
}
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (transformFunction) {
|
|
35
35
|
const transformed = transformFunction(cleaned, fallbackChunkId, streamState, strictOpenAiCompliance, gatewayRequest);
|
|
36
36
|
if (Array.isArray(transformed)) {
|
|
37
37
|
for (const item of transformed) {
|
|
@@ -43,13 +43,6 @@ function* processFrame(args) {
|
|
|
43
43
|
}
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
|
-
if (cleaned === null) {
|
|
47
|
-
// Live yields keepalives to the client but does not chunks.push them.
|
|
48
|
-
if (forwardSseComments) {
|
|
49
|
-
yield part + suffix;
|
|
50
|
-
}
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
46
|
const relayed = (forwardSseComments ? part : cleaned) + suffix;
|
|
54
47
|
yield* emitFrame(frames, relayed);
|
|
55
48
|
}
|
|
@@ -63,7 +56,7 @@ function* processFrame(args) {
|
|
|
63
56
|
* `errResponse` vs `chunks` split).
|
|
64
57
|
*/
|
|
65
58
|
export async function* pumpProviderSseStream(options) {
|
|
66
|
-
const { reader, splitPattern, transformFunction, fallbackChunkId, strictOpenAiCompliance, gatewayRequest, sseCommentMode, isSleepTimeRequired = false, abortSignal, } = options;
|
|
59
|
+
const { reader, splitPattern, transformFunction, fallbackChunkId, strictOpenAiCompliance, gatewayRequest, sseCommentMode, isSleepTimeRequired = false, abortSignal, onStreamEventKey, eventCounts = {}, } = options;
|
|
67
60
|
const forwardSseComments = sseCommentMode === 'forward';
|
|
68
61
|
const streamState = options.forwardPings ? { forwardPings: true } : {};
|
|
69
62
|
const frames = [];
|
|
@@ -84,6 +77,9 @@ export async function* pumpProviderSseStream(options) {
|
|
|
84
77
|
const remainder = iter.value.remainder;
|
|
85
78
|
// Live does not flush leftover buffer on abort; skip incomplete remainder.
|
|
86
79
|
if (!truncated && remainder.length > 0) {
|
|
80
|
+
const key = recordStreamEventCount(eventCounts, remainder);
|
|
81
|
+
if (key)
|
|
82
|
+
onStreamEventKey?.(key);
|
|
87
83
|
yield* processFrame({
|
|
88
84
|
part: remainder,
|
|
89
85
|
appendDelimiter: false,
|
|
@@ -100,6 +96,11 @@ export async function* pumpProviderSseStream(options) {
|
|
|
100
96
|
break;
|
|
101
97
|
}
|
|
102
98
|
const part = iter.value;
|
|
99
|
+
if (part.length > 0) {
|
|
100
|
+
const key = recordStreamEventCount(eventCounts, part);
|
|
101
|
+
if (key)
|
|
102
|
+
onStreamEventKey?.(key);
|
|
103
|
+
}
|
|
103
104
|
if (isFirstChunk) {
|
|
104
105
|
isFirstChunk = false;
|
|
105
106
|
await sleep(FIRST_CHUNK_SLEEP_MS);
|
|
@@ -152,6 +153,7 @@ export async function* pumpProviderSseStream(options) {
|
|
|
152
153
|
return {
|
|
153
154
|
streamState,
|
|
154
155
|
frames,
|
|
156
|
+
eventCounts,
|
|
155
157
|
truncated: truncated || !!abortSignal?.aborted,
|
|
156
158
|
error,
|
|
157
159
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pumpProviderSseStream.js","sourceRoot":"","sources":["../../src/stream/pumpProviderSseStream.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"pumpProviderSseStream.js","sourceRoot":"","sources":["../../src/stream/pumpProviderSseStream.ts"],"names":[],"mappings":"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"}
|