@pellux/goodvibes-sdk 0.18.46 → 0.18.48
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/_internal/platform/core/orchestrator-turn-helpers.js +1 -1
- package/dist/_internal/platform/core/orchestrator-turn-loop.js +1 -1
- package/dist/_internal/platform/daemon/facade-composition.d.ts +24 -0
- package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/facade-composition.js +93 -0
- package/dist/_internal/platform/daemon/facade.d.ts +1 -0
- package/dist/_internal/platform/daemon/facade.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/facade.js +3 -0
- package/dist/_internal/platform/providers/anthropic-compat.d.ts.map +1 -1
- package/dist/_internal/platform/providers/anthropic-compat.js +9 -6
- package/dist/_internal/platform/providers/anthropic-sdk-provider.d.ts.map +1 -1
- package/dist/_internal/platform/providers/anthropic-sdk-provider.js +9 -6
- package/dist/_internal/platform/providers/anthropic.d.ts.map +1 -1
- package/dist/_internal/platform/providers/anthropic.js +9 -6
- package/dist/_internal/platform/providers/gemini.d.ts.map +1 -1
- package/dist/_internal/platform/providers/gemini.js +5 -5
- package/dist/_internal/platform/providers/interface.d.ts +12 -1
- package/dist/_internal/platform/providers/interface.d.ts.map +1 -1
- package/dist/_internal/platform/providers/llama-cpp.d.ts.map +1 -1
- package/dist/_internal/platform/providers/llama-cpp.js +4 -3
- package/dist/_internal/platform/providers/lm-studio-helpers.d.ts +2 -3
- package/dist/_internal/platform/providers/lm-studio-helpers.d.ts.map +1 -1
- package/dist/_internal/platform/providers/lm-studio-helpers.js +0 -9
- package/dist/_internal/platform/providers/lm-studio.d.ts.map +1 -1
- package/dist/_internal/platform/providers/lm-studio.js +7 -3
- package/dist/_internal/platform/providers/ollama.d.ts.map +1 -1
- package/dist/_internal/platform/providers/ollama.js +3 -3
- package/dist/_internal/platform/providers/openai-codex.d.ts.map +1 -1
- package/dist/_internal/platform/providers/openai-codex.js +3 -10
- package/dist/_internal/platform/providers/openai-compat.d.ts.map +1 -1
- package/dist/_internal/platform/providers/openai-compat.js +11 -7
- package/dist/_internal/platform/providers/openai.d.ts.map +1 -1
- package/dist/_internal/platform/providers/openai.js +11 -7
- package/dist/_internal/platform/providers/stop-reason-maps.d.ts +30 -0
- package/dist/_internal/platform/providers/stop-reason-maps.d.ts.map +1 -0
- package/dist/_internal/platform/providers/stop-reason-maps.js +89 -0
- package/dist/_internal/platform/runtime/forensics/classifier.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/forensics/classifier.js +1 -4
- package/dist/_internal/platform/version.js +1 -1
- package/dist/_internal/transport-http/auth.d.ts +17 -0
- package/dist/_internal/transport-http/auth.d.ts.map +1 -1
- package/dist/_internal/transport-http/auth.js +22 -0
- package/dist/_internal/transport-http/http-core.d.ts.map +1 -1
- package/dist/_internal/transport-http/http-core.js +5 -3
- package/dist/_internal/transport-http/index.d.ts +2 -2
- package/dist/_internal/transport-http/index.d.ts.map +1 -1
- package/dist/_internal/transport-http/index.js +1 -1
- package/dist/_internal/transport-realtime/runtime-events.d.ts.map +1 -1
- package/dist/_internal/transport-realtime/runtime-events.js +4 -10
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lm-studio.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/lm-studio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EAEX,wBAAwB,EACxB,uBAAuB,EAEvB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGpF,OAAO,EASL,KAAK,uBAAuB,
|
|
1
|
+
{"version":3,"file":"lm-studio.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/lm-studio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EAEX,wBAAwB,EACxB,uBAAuB,EAEvB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGpF,OAAO,EASL,KAAK,uBAAuB,EAM5B,KAAK,WAAW,EAOjB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC5C;AAED,qBAAa,gBAAiB,YAAW,WAAW;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;gBAEnD,IAAI,EAAE,uBAAuB;IAWnC,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BhD,KAAK,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAY1E,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAuC1F,OAAO,CAAC,oBAAoB;IAgC5B,OAAO,CAAC,sBAAsB;YAehB,iBAAiB;YAgIjB,gBAAgB;CAkK/B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { OpenAICompatProvider } from './openai-compat.js';
|
|
2
2
|
import { ProviderError } from '@pellux/goodvibes-sdk/platform/types/errors';
|
|
3
3
|
import { withRetry } from '@pellux/goodvibes-sdk/platform/utils/retry';
|
|
4
|
-
import { buildHttpError, buildResponsesInput, buildResponsesReasoning, buildResponsesTools, consumeSSE, createResponsesClient, deriveNativeChatUrl, extractNativeMessageText, makeTranscriptKey, mapNativeReasoningEffort,
|
|
4
|
+
import { buildHttpError, buildResponsesInput, buildResponsesReasoning, buildResponsesTools, consumeSSE, createResponsesClient, deriveNativeChatUrl, extractNativeMessageText, makeTranscriptKey, mapNativeReasoningEffort, normalizeProviderError, parseJsonObject, shouldFallbackFromNative, shouldFallbackFromResponses, toNativeChatInput, toRecord, } from './lm-studio-helpers.js';
|
|
5
|
+
import { mapLmStudioStopReason } from './stop-reason-maps.js';
|
|
5
6
|
export class LMStudioProvider {
|
|
6
7
|
name;
|
|
7
8
|
models;
|
|
@@ -243,7 +244,9 @@ export class LMStudioProvider {
|
|
|
243
244
|
inputTokens,
|
|
244
245
|
outputTokens,
|
|
245
246
|
},
|
|
246
|
-
|
|
247
|
+
// LM Studio native chat API does not expose a finish_reason/status field;
|
|
248
|
+
// no providerStopReason is available on this code path.
|
|
249
|
+
stopReason: 'completed',
|
|
247
250
|
};
|
|
248
251
|
}
|
|
249
252
|
async chatViaResponses(params, model) {
|
|
@@ -395,7 +398,8 @@ export class LMStudioProvider {
|
|
|
395
398
|
outputTokens,
|
|
396
399
|
...(cacheReadTokens > 0 ? { cacheReadTokens } : {}),
|
|
397
400
|
},
|
|
398
|
-
stopReason:
|
|
401
|
+
stopReason: mapLmStudioStopReason(status, resolvedToolCalls.length > 0),
|
|
402
|
+
...(status !== 'completed' ? { providerStopReason: status } : {}),
|
|
399
403
|
};
|
|
400
404
|
if (reasoningSummary) {
|
|
401
405
|
response.reasoningSummary = reasoningSummary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/ollama.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAEZ,WAAW,EAEX,wBAAwB,EACxB,uBAAuB,EAEvB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/ollama.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAEZ,WAAW,EAEX,wBAAwB,EACxB,uBAAuB,EAEvB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAKpF,KAAK,WAAW,GAAG,CACjB,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,KACf,OAAO,CAAC,QAAQ,CAAC,CAAC;AAqBvB,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gBAAgB,CAAC,EAAE,WAAW,CAAC;CAChC;AAED,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;gBAEvC,IAAI,EAAE,qBAAqB;IAYjC,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAkBhD,KAAK,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAuC1E,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;YA4C5E,mBAAmB;CAmGlC"}
|
|
@@ -3,6 +3,7 @@ import { ProviderError } from '@pellux/goodvibes-sdk/platform/types/errors';
|
|
|
3
3
|
import { OpenAICompatProvider } from './openai-compat.js';
|
|
4
4
|
import { toOpenAITools } from './tool-formats.js';
|
|
5
5
|
import { summarizeError, toProviderError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
|
|
6
|
+
import { mapOllamaStopReason } from './stop-reason-maps.js';
|
|
6
7
|
export class OllamaProvider {
|
|
7
8
|
name;
|
|
8
9
|
models;
|
|
@@ -198,9 +199,7 @@ export class OllamaProvider {
|
|
|
198
199
|
outputTokens = typeof chunk.eval_count === 'number' ? chunk.eval_count : outputTokens;
|
|
199
200
|
}
|
|
200
201
|
});
|
|
201
|
-
const stopReason = finalToolCalls.length > 0
|
|
202
|
-
? 'tool_use'
|
|
203
|
-
: (/length|max_tokens/i.test(doneReason) ? 'max_tokens' : 'end');
|
|
202
|
+
const stopReason = mapOllamaStopReason(doneReason, finalToolCalls.length > 0);
|
|
204
203
|
return {
|
|
205
204
|
content: responseText,
|
|
206
205
|
toolCalls: finalToolCalls,
|
|
@@ -209,6 +208,7 @@ export class OllamaProvider {
|
|
|
209
208
|
outputTokens,
|
|
210
209
|
},
|
|
211
210
|
stopReason,
|
|
211
|
+
...(doneReason ? { providerStopReason: doneReason } : {}),
|
|
212
212
|
};
|
|
213
213
|
}
|
|
214
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-codex.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/openai-codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EAGX,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-codex.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/openai-codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EAGX,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AA0I/F,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,CAAC,CAgQvB;AAED,qBAAa,mBAAoB,YAAW,WAAW;IAKnD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJtC,QAAQ,CAAC,IAAI,uBAA8B;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;gBAGZ,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;IAG9G,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAahD,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAgC3F"}
|
|
@@ -3,6 +3,7 @@ import { withRetry } from '@pellux/goodvibes-sdk/platform/utils/retry';
|
|
|
3
3
|
import { resolveSubscriptionAccessToken } from '../config/subscription-auth.js';
|
|
4
4
|
import { arch, platform, release } from 'node:os';
|
|
5
5
|
import { toProviderError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
|
|
6
|
+
import { mapCodexStopReason } from './stop-reason-maps.js';
|
|
6
7
|
const OPENAI_CODEX_BASE_URL = 'https://chatgpt.com/backend-api';
|
|
7
8
|
const OPENAI_CODEX_PROVIDER_NAME = 'openai-subscriber';
|
|
8
9
|
function getOpenAICodexUserAgent() {
|
|
@@ -107,15 +108,6 @@ function buildResponsesInput(messages) {
|
|
|
107
108
|
}
|
|
108
109
|
return input;
|
|
109
110
|
}
|
|
110
|
-
function mapStopReason(status, toolCalls) {
|
|
111
|
-
if (toolCalls.length > 0 && status === 'completed')
|
|
112
|
-
return 'tool_use';
|
|
113
|
-
if (status === 'incomplete')
|
|
114
|
-
return 'max_tokens';
|
|
115
|
-
if (status === 'failed' || status === 'cancelled')
|
|
116
|
-
return 'error';
|
|
117
|
-
return 'end';
|
|
118
|
-
}
|
|
119
111
|
function buildErrorMessage(status, body) {
|
|
120
112
|
try {
|
|
121
113
|
const parsed = JSON.parse(body);
|
|
@@ -382,7 +374,8 @@ export async function chatWithOpenAICodex(accessToken, params) {
|
|
|
382
374
|
outputTokens,
|
|
383
375
|
...(cacheReadTokens > 0 ? { cacheReadTokens } : {}),
|
|
384
376
|
},
|
|
385
|
-
stopReason:
|
|
377
|
+
stopReason: mapCodexStopReason(status, resolvedToolCalls.length > 0),
|
|
378
|
+
...(status !== 'completed' ? { providerStopReason: status } : {}),
|
|
386
379
|
};
|
|
387
380
|
}
|
|
388
381
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-compat.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/openai-compat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,
|
|
1
|
+
{"version":3,"file":"openai-compat.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/openai-compat.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { getCacheCapability } from '@pellux/goodvibes-sdk/platform/providers/cac
|
|
|
6
6
|
import { extractOpenAIStreamTextDelta } from '@pellux/goodvibes-sdk/platform/providers/openai-stream-delta';
|
|
7
7
|
import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
|
|
8
8
|
import { summarizeError, toProviderError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
|
|
9
|
+
import { mapOpenAIStopReason } from './stop-reason-maps.js';
|
|
9
10
|
const NOOP_CACHE_HIT_TRACKER = {
|
|
10
11
|
recordTurn: () => { },
|
|
11
12
|
};
|
|
@@ -237,7 +238,8 @@ export class OpenAICompatProvider {
|
|
|
237
238
|
let inputTokens = 0;
|
|
238
239
|
let outputTokens = 0;
|
|
239
240
|
let cacheReadTokens = 0;
|
|
240
|
-
let
|
|
241
|
+
let rawStopReason;
|
|
242
|
+
let stopReason = 'unknown';
|
|
241
243
|
let reasoningSummaryText;
|
|
242
244
|
let rawToolCalls = [];
|
|
243
245
|
const selectedModel = model ?? this.defaultModel;
|
|
@@ -333,10 +335,10 @@ export class OpenAICompatProvider {
|
|
|
333
335
|
}
|
|
334
336
|
}
|
|
335
337
|
const finishReason = raw.choices[0]?.finish_reason;
|
|
336
|
-
if (finishReason
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
338
|
+
if (finishReason) {
|
|
339
|
+
rawStopReason = finishReason;
|
|
340
|
+
stopReason = mapOpenAIStopReason(finishReason);
|
|
341
|
+
}
|
|
340
342
|
if (raw.usage) {
|
|
341
343
|
const rawUsage = raw.usage;
|
|
342
344
|
inputTokens = rawUsage.prompt_tokens ?? 0;
|
|
@@ -391,7 +393,8 @@ export class OpenAICompatProvider {
|
|
|
391
393
|
if (extracted.toolCalls.length > 0) {
|
|
392
394
|
toolCalls = extracted.toolCalls;
|
|
393
395
|
responseText = extracted.cleanedContent;
|
|
394
|
-
stopReason = '
|
|
396
|
+
stopReason = 'tool_call';
|
|
397
|
+
rawStopReason = rawStopReason ?? 'tool_calls';
|
|
395
398
|
}
|
|
396
399
|
}
|
|
397
400
|
const response = {
|
|
@@ -402,7 +405,8 @@ export class OpenAICompatProvider {
|
|
|
402
405
|
outputTokens,
|
|
403
406
|
...(cacheReadTokens > 0 ? { cacheReadTokens } : {}),
|
|
404
407
|
},
|
|
405
|
-
stopReason,
|
|
408
|
+
stopReason: stopReason === 'unknown' && responseText ? 'completed' : stopReason,
|
|
409
|
+
...(rawStopReason !== undefined ? { providerStopReason: rawStopReason } : {}),
|
|
406
410
|
};
|
|
407
411
|
if (reasoningSummaryText) {
|
|
408
412
|
response.reasoningSummary = reasoningSummaryText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/openai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/openai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,EAEZ,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAYxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yDAAyD,CAAC;AAQ/F;;;GAGG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAE/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;gBAE1D,MAAM,EAAE,MAAM,EAAE,eAAe,GAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAA0B;IAKnG,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA4HhD,KAAK,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA8B1E,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAqC3F"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
|
+
import { mapOpenAIStopReason } from './stop-reason-maps.js';
|
|
2
3
|
import { ProviderError } from '@pellux/goodvibes-sdk/platform/types/errors';
|
|
3
4
|
import { withRetry } from '@pellux/goodvibes-sdk/platform/utils/retry';
|
|
4
5
|
import { toOpenAITools, toOpenAIMessages, fromOpenAIToolCalls, extractTextToolCalls, } from './tool-formats.js';
|
|
@@ -29,7 +30,8 @@ export class OpenAIProvider {
|
|
|
29
30
|
let inputTokens = 0;
|
|
30
31
|
let outputTokens = 0;
|
|
31
32
|
let cacheReadTokens = 0;
|
|
32
|
-
let
|
|
33
|
+
let rawStopReason;
|
|
34
|
+
let stopReason = 'unknown';
|
|
33
35
|
let rawToolCalls = [];
|
|
34
36
|
const openaiMessages = toOpenAIMessages(messages, systemPrompt);
|
|
35
37
|
const openaiTools = tools && tools.length > 0 ? toOpenAITools(tools) : undefined;
|
|
@@ -75,10 +77,10 @@ export class OpenAIProvider {
|
|
|
75
77
|
}
|
|
76
78
|
}
|
|
77
79
|
const finishReason = chunk.choices[0]?.finish_reason;
|
|
78
|
-
if (finishReason
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
if (finishReason) {
|
|
81
|
+
rawStopReason = finishReason;
|
|
82
|
+
stopReason = mapOpenAIStopReason(finishReason);
|
|
83
|
+
}
|
|
82
84
|
const usage = chunk.usage;
|
|
83
85
|
if (usage) {
|
|
84
86
|
inputTokens = usage.prompt_tokens ?? 0;
|
|
@@ -113,7 +115,8 @@ export class OpenAIProvider {
|
|
|
113
115
|
if (extracted.toolCalls.length > 0) {
|
|
114
116
|
toolCalls = extracted.toolCalls;
|
|
115
117
|
responseText = extracted.cleanedContent;
|
|
116
|
-
stopReason = '
|
|
118
|
+
stopReason = 'tool_call';
|
|
119
|
+
rawStopReason = rawStopReason ?? 'tool_calls';
|
|
117
120
|
}
|
|
118
121
|
}
|
|
119
122
|
this.cacheHitTracker.recordTurn({
|
|
@@ -128,7 +131,8 @@ export class OpenAIProvider {
|
|
|
128
131
|
outputTokens,
|
|
129
132
|
...(cacheReadTokens > 0 ? { cacheReadTokens } : {}),
|
|
130
133
|
},
|
|
131
|
-
stopReason,
|
|
134
|
+
stopReason: stopReason === 'unknown' && responseText ? 'completed' : stopReason,
|
|
135
|
+
...(rawStopReason !== undefined ? { providerStopReason: rawStopReason } : {}),
|
|
132
136
|
};
|
|
133
137
|
});
|
|
134
138
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ChatStopReason } from './interface.js';
|
|
2
|
+
/** Maps Anthropic raw stop_reason values to the canonical ChatStopReason vocab. */
|
|
3
|
+
export declare const ANTHROPIC_STOP_REASON_MAP: Readonly<Record<string, ChatStopReason>>;
|
|
4
|
+
export declare function mapAnthropicStopReason(raw: string | null | undefined): ChatStopReason;
|
|
5
|
+
/** Maps OpenAI finish_reason values to the canonical ChatStopReason vocab. */
|
|
6
|
+
export declare const OPENAI_STOP_REASON_MAP: Readonly<Record<string, ChatStopReason>>;
|
|
7
|
+
export declare function mapOpenAIStopReason(raw: string | null | undefined): ChatStopReason;
|
|
8
|
+
/** Maps Gemini finishReason values to the canonical ChatStopReason vocab. */
|
|
9
|
+
export declare const GEMINI_STOP_REASON_MAP: Readonly<Record<string, ChatStopReason>>;
|
|
10
|
+
export declare function mapGeminiStopReason(raw: string | null | undefined): ChatStopReason;
|
|
11
|
+
/**
|
|
12
|
+
* Maps llama.cpp finish_reason values to the canonical ChatStopReason vocab.
|
|
13
|
+
* llama.cpp uses the OpenAI-compatible finish_reason field ('stop', 'length', 'tool_calls').
|
|
14
|
+
*/
|
|
15
|
+
export declare function mapLlamaCppStopReason(finishReason: string | null | undefined, hasToolCalls: boolean): ChatStopReason;
|
|
16
|
+
/**
|
|
17
|
+
* Maps Ollama done_reason values to the canonical ChatStopReason vocab.
|
|
18
|
+
* Ollama uses its own done_reason field ('stop', 'length', 'tool-calls', 'load', etc.).
|
|
19
|
+
*/
|
|
20
|
+
export declare function mapOllamaStopReason(doneReason: string, hasToolCalls: boolean): ChatStopReason;
|
|
21
|
+
/**
|
|
22
|
+
* Maps OpenAI Codex (responses API) status values to the canonical ChatStopReason vocab.
|
|
23
|
+
*/
|
|
24
|
+
export declare function mapCodexStopReason(status: string | undefined, hasToolCalls: boolean): ChatStopReason;
|
|
25
|
+
/**
|
|
26
|
+
* Maps LM Studio responses API status values to the canonical ChatStopReason vocab.
|
|
27
|
+
* Used by both the native chat and responses paths in lm-studio.ts.
|
|
28
|
+
*/
|
|
29
|
+
export declare function mapLmStudioStopReason(status: string | undefined, hasToolCalls: boolean): ChatStopReason;
|
|
30
|
+
//# sourceMappingURL=stop-reason-maps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop-reason-maps.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/providers/stop-reason-maps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,mFAAmF;AACnF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAK9E,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,CAGrF;AAED,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAM3E,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,CAGlF;AAED,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAU3E,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,CAGlF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,YAAY,EAAE,OAAO,GACpB,cAAc,CAIhB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,OAAO,GACpB,cAAc,CAIhB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,OAAO,GACpB,cAAc,CAKhB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,OAAO,GACpB,cAAc,CAKhB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/** Maps Anthropic raw stop_reason values to the canonical ChatStopReason vocab. */
|
|
2
|
+
export const ANTHROPIC_STOP_REASON_MAP = {
|
|
3
|
+
end_turn: 'completed',
|
|
4
|
+
max_tokens: 'max_tokens',
|
|
5
|
+
tool_use: 'tool_call',
|
|
6
|
+
stop_sequence: 'stop_sequence',
|
|
7
|
+
};
|
|
8
|
+
export function mapAnthropicStopReason(raw) {
|
|
9
|
+
if (!raw)
|
|
10
|
+
return 'unknown';
|
|
11
|
+
return ANTHROPIC_STOP_REASON_MAP[raw] ?? 'unknown';
|
|
12
|
+
}
|
|
13
|
+
/** Maps OpenAI finish_reason values to the canonical ChatStopReason vocab. */
|
|
14
|
+
export const OPENAI_STOP_REASON_MAP = {
|
|
15
|
+
stop: 'completed',
|
|
16
|
+
length: 'max_tokens',
|
|
17
|
+
tool_calls: 'tool_call',
|
|
18
|
+
content_filter: 'content_filter',
|
|
19
|
+
function_call: 'tool_call',
|
|
20
|
+
};
|
|
21
|
+
export function mapOpenAIStopReason(raw) {
|
|
22
|
+
if (!raw)
|
|
23
|
+
return 'unknown';
|
|
24
|
+
return OPENAI_STOP_REASON_MAP[raw] ?? 'unknown';
|
|
25
|
+
}
|
|
26
|
+
/** Maps Gemini finishReason values to the canonical ChatStopReason vocab. */
|
|
27
|
+
export const GEMINI_STOP_REASON_MAP = {
|
|
28
|
+
STOP: 'completed',
|
|
29
|
+
MAX_TOKENS: 'max_tokens',
|
|
30
|
+
SAFETY: 'content_filter',
|
|
31
|
+
RECITATION: 'content_filter',
|
|
32
|
+
OTHER: 'unknown',
|
|
33
|
+
BLOCKLIST: 'content_filter',
|
|
34
|
+
PROHIBITED_CONTENT: 'content_filter',
|
|
35
|
+
SPII: 'content_filter',
|
|
36
|
+
MALFORMED_FUNCTION_CALL: 'unknown',
|
|
37
|
+
};
|
|
38
|
+
export function mapGeminiStopReason(raw) {
|
|
39
|
+
if (!raw)
|
|
40
|
+
return 'unknown';
|
|
41
|
+
return GEMINI_STOP_REASON_MAP[raw] ?? 'unknown';
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Maps llama.cpp finish_reason values to the canonical ChatStopReason vocab.
|
|
45
|
+
* llama.cpp uses the OpenAI-compatible finish_reason field ('stop', 'length', 'tool_calls').
|
|
46
|
+
*/
|
|
47
|
+
export function mapLlamaCppStopReason(finishReason, hasToolCalls) {
|
|
48
|
+
if (hasToolCalls || finishReason === 'tool_calls')
|
|
49
|
+
return 'tool_call';
|
|
50
|
+
if (finishReason === 'length')
|
|
51
|
+
return 'max_tokens';
|
|
52
|
+
return 'completed';
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Maps Ollama done_reason values to the canonical ChatStopReason vocab.
|
|
56
|
+
* Ollama uses its own done_reason field ('stop', 'length', 'tool-calls', 'load', etc.).
|
|
57
|
+
*/
|
|
58
|
+
export function mapOllamaStopReason(doneReason, hasToolCalls) {
|
|
59
|
+
if (hasToolCalls || /tool/i.test(doneReason))
|
|
60
|
+
return 'tool_call';
|
|
61
|
+
if (/length|max_tokens/i.test(doneReason))
|
|
62
|
+
return 'max_tokens';
|
|
63
|
+
return 'completed';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Maps OpenAI Codex (responses API) status values to the canonical ChatStopReason vocab.
|
|
67
|
+
*/
|
|
68
|
+
export function mapCodexStopReason(status, hasToolCalls) {
|
|
69
|
+
if (hasToolCalls && status === 'completed')
|
|
70
|
+
return 'tool_call';
|
|
71
|
+
if (status === 'incomplete')
|
|
72
|
+
return 'max_tokens';
|
|
73
|
+
if (status === 'failed' || status === 'cancelled')
|
|
74
|
+
return 'error';
|
|
75
|
+
return 'completed';
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Maps LM Studio responses API status values to the canonical ChatStopReason vocab.
|
|
79
|
+
* Used by both the native chat and responses paths in lm-studio.ts.
|
|
80
|
+
*/
|
|
81
|
+
export function mapLmStudioStopReason(status, hasToolCalls) {
|
|
82
|
+
if (hasToolCalls && status === 'completed')
|
|
83
|
+
return 'tool_call';
|
|
84
|
+
if (status === 'incomplete')
|
|
85
|
+
return 'max_tokens';
|
|
86
|
+
if (status === 'failed' || status === 'cancelled')
|
|
87
|
+
return 'error';
|
|
88
|
+
return 'completed';
|
|
89
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/forensics/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,oEAAoE;AACpE,UAAU,eAAe;IACvB,kDAAkD;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,qEAAqE;IACrE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,uDAAuD;IACvD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,+CAA+C;IAC/C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,+CAA+C;IAC/C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/forensics/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,oEAAoE;AACpE,UAAU,eAAe;IACvB,kDAAkD;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,qEAAqE;IACrE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,uDAAuD;IACvD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,+CAA+C;IAC/C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,+CAA+C;IAC/C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAmEpE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,YAAY,EAC5B,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CA2BR"}
|
|
@@ -11,7 +11,6 @@ export function classifyFailure(input) {
|
|
|
11
11
|
}
|
|
12
12
|
// LLM stop reason: max_tokens
|
|
13
13
|
if (input.stopReason === 'max_tokens'
|
|
14
|
-
|| input.stopReason === 'length'
|
|
15
14
|
|| input.stopReason === 'context_overflow') {
|
|
16
15
|
return 'max_tokens';
|
|
17
16
|
}
|
|
@@ -82,9 +81,7 @@ export function summariseFailure(classification, errorMessage, stopReason) {
|
|
|
82
81
|
case 'cancelled':
|
|
83
82
|
return 'Entity was explicitly cancelled';
|
|
84
83
|
case 'max_tokens':
|
|
85
|
-
return
|
|
86
|
-
? 'Response truncated at max_tokens (length stop)'
|
|
87
|
-
: 'Model stopped due to token limit (max_tokens)';
|
|
84
|
+
return 'Model stopped due to token limit (max_tokens)';
|
|
88
85
|
case 'compaction_error':
|
|
89
86
|
return 'Context compaction failed';
|
|
90
87
|
case 'unknown':
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
let version = '0.18.
|
|
3
|
+
let version = '0.18.48';
|
|
4
4
|
try {
|
|
5
5
|
const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
|
|
6
6
|
version = pkg.version ?? version;
|
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
export type MaybePromise<T> = T | Promise<T>;
|
|
2
2
|
export type AuthTokenResolver = () => MaybePromise<string | null | undefined>;
|
|
3
|
+
/**
|
|
4
|
+
* Any supported public auth-token input form.
|
|
5
|
+
* Normalised to `AuthTokenResolver` at SDK/transport boundaries via `normalizeAuthToken`.
|
|
6
|
+
*/
|
|
7
|
+
export type AuthTokenInput = string | {
|
|
8
|
+
readonly token: string;
|
|
9
|
+
} | AuthTokenResolver | (() => string | null | undefined | Promise<string | null | undefined>) | undefined;
|
|
3
10
|
export type HeaderResolver = () => MaybePromise<HeadersInit | undefined>;
|
|
4
11
|
export declare function mergeHeaders(...sources: Array<HeadersInit | undefined>): Headers;
|
|
12
|
+
/**
|
|
13
|
+
* Accepts any supported auth token form and returns a canonical async resolver.
|
|
14
|
+
*
|
|
15
|
+
* - `string` → resolver that always returns the string
|
|
16
|
+
* - `{ token: string }` → resolver that always returns `input.token`
|
|
17
|
+
* - sync function → resolver that awaits `input()` (errors propagate)
|
|
18
|
+
* - async function → passes through as-is
|
|
19
|
+
* - `undefined` → resolver that returns `undefined`
|
|
20
|
+
*/
|
|
21
|
+
export declare function normalizeAuthToken(input: AuthTokenInput): AuthTokenResolver;
|
|
5
22
|
export declare function resolveAuthToken(authToken: string | null | undefined, getAuthToken?: AuthTokenResolver): Promise<string | null>;
|
|
6
23
|
export declare function resolveHeaders(headers: HeadersInit | undefined, getHeaders?: HeaderResolver): Promise<Headers>;
|
|
7
24
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/_internal/transport-http/auth.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAE9E,MAAM,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;AAuBzE,wBAAgB,YAAY,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,OAAO,CAMhF;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,YAAY,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAAC,OAAO,CAAC,CAGlB"}
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/_internal/transport-http/auth.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAE9E;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1B,iBAAiB,GACjB,CAAC,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,GACtE,SAAS,CAAC;AAEd,MAAM,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;AAuBzE,wBAAgB,YAAY,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,OAAO,CAMhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,iBAAiB,CAY3E;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,YAAY,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAAC,OAAO,CAAC,CAGlB"}
|
|
@@ -26,6 +26,28 @@ export function mergeHeaders(...sources) {
|
|
|
26
26
|
}
|
|
27
27
|
return headers;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Accepts any supported auth token form and returns a canonical async resolver.
|
|
31
|
+
*
|
|
32
|
+
* - `string` → resolver that always returns the string
|
|
33
|
+
* - `{ token: string }` → resolver that always returns `input.token`
|
|
34
|
+
* - sync function → resolver that awaits `input()` (errors propagate)
|
|
35
|
+
* - async function → passes through as-is
|
|
36
|
+
* - `undefined` → resolver that returns `undefined`
|
|
37
|
+
*/
|
|
38
|
+
export function normalizeAuthToken(input) {
|
|
39
|
+
if (input === undefined) {
|
|
40
|
+
return async () => undefined;
|
|
41
|
+
}
|
|
42
|
+
if (typeof input === 'string') {
|
|
43
|
+
return async () => input;
|
|
44
|
+
}
|
|
45
|
+
if (typeof input === 'function') {
|
|
46
|
+
return async () => await input() ?? undefined;
|
|
47
|
+
}
|
|
48
|
+
// { token: string } wrapper object
|
|
49
|
+
return async () => input.token;
|
|
50
|
+
}
|
|
29
51
|
export async function resolveAuthToken(authToken, getAuthToken) {
|
|
30
52
|
if (getAuthToken) {
|
|
31
53
|
const resolved = await getAuthToken();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-core.d.ts","sourceRoot":"","sources":["../../../src/_internal/transport-http/http-core.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"http-core.d.ts","sourceRoot":"","sources":["../../../src/_internal/transport-http/http-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Synced from packages/transport-http/src/http-core.ts
|
|
2
2
|
// Extracted from legacy source: src/runtime/transports/http-json-transport.ts
|
|
3
3
|
import { sleepWithSignal } from './backoff.js';
|
|
4
|
-
import { mergeHeaders, resolveAuthToken, resolveHeaders } from './auth.js';
|
|
4
|
+
import { mergeHeaders, normalizeAuthToken, resolveAuthToken, resolveHeaders } from './auth.js';
|
|
5
5
|
import { getHttpRetryDelay, isRetryableHttpStatus, isRetryableNetworkError, resolveHttpRetryPolicy, } from './retry.js';
|
|
6
6
|
import { buildUrl, createTransportPaths } from './paths.js';
|
|
7
7
|
function isPlainObject(value) {
|
|
@@ -151,6 +151,8 @@ export function createHttpJsonTransport(options) {
|
|
|
151
151
|
const baseUrl = options.baseUrl.trim();
|
|
152
152
|
const fetchImpl = createFetch(options.fetchImpl, options.fetch);
|
|
153
153
|
const authToken = options.authToken ?? null;
|
|
154
|
+
// Normalize at the boundary: downstream always works with a single resolver.
|
|
155
|
+
const getAuthToken = options.getAuthToken ?? normalizeAuthToken(options.authToken ?? undefined);
|
|
154
156
|
const defaultHeaders = options.headers;
|
|
155
157
|
const retryPolicy = options.retry;
|
|
156
158
|
const paths = createTransportPaths(baseUrl);
|
|
@@ -163,7 +165,7 @@ export function createHttpJsonTransport(options) {
|
|
|
163
165
|
let attempt = 0;
|
|
164
166
|
while (true) {
|
|
165
167
|
attempt += 1;
|
|
166
|
-
const token = await
|
|
168
|
+
const token = (await getAuthToken()) ?? null;
|
|
167
169
|
const headers = await resolveHeaders(defaultHeaders, options.getHeaders);
|
|
168
170
|
try {
|
|
169
171
|
return await requestJson(fetchImpl, url, createJsonRequestInit(token, requestOptions.body, method, mergeHeaders(headers, requestOptions.headers), requestOptions.signal));
|
|
@@ -210,7 +212,7 @@ export function createHttpJsonTransport(options) {
|
|
|
210
212
|
return buildUrl(baseUrl, path);
|
|
211
213
|
},
|
|
212
214
|
async getAuthToken() {
|
|
213
|
-
return await
|
|
215
|
+
return (await getAuthToken()) ?? null;
|
|
214
216
|
},
|
|
215
217
|
requestJson: requestJsonForTransport,
|
|
216
218
|
resolveContractRequest,
|
|
@@ -6,8 +6,8 @@ export type { ServerSentEventHandlers, ServerSentEventOptions } from './sse.js';
|
|
|
6
6
|
export { openServerSentEventStream } from './sse.js';
|
|
7
7
|
export type { ServerSentEventHandlers as RawServerSentEventHandlers, ServerSentEventOptions as RawServerSentEventOptions } from './sse-stream.js';
|
|
8
8
|
export { openServerSentEventStream as openRawServerSentEventStream } from './sse-stream.js';
|
|
9
|
-
export type { AuthTokenResolver, HeaderResolver, MaybePromise } from './auth.js';
|
|
10
|
-
export { mergeHeaders, resolveAuthToken, resolveHeaders } from './auth.js';
|
|
9
|
+
export type { AuthTokenInput, AuthTokenResolver, HeaderResolver, MaybePromise } from './auth.js';
|
|
10
|
+
export { mergeHeaders, normalizeAuthToken, resolveAuthToken, resolveHeaders } from './auth.js';
|
|
11
11
|
export type { BackoffPolicy, ResolvedBackoffPolicy } from './backoff.js';
|
|
12
12
|
export { computeBackoffDelay, normalizeBackoffPolicy, sleepWithSignal } from './backoff.js';
|
|
13
13
|
export type { HttpRetryPolicy, ResolvedHttpRetryPolicy } from './retry.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_internal/transport-http/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACZ,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,YAAY,EAAE,uBAAuB,IAAI,0BAA0B,EAAE,sBAAsB,IAAI,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAClJ,OAAO,EAAE,yBAAyB,IAAI,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC5F,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_internal/transport-http/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACZ,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,YAAY,EAAE,uBAAuB,IAAI,0BAA0B,EAAE,sBAAsB,IAAI,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAClJ,OAAO,EAAE,yBAAyB,IAAI,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC5F,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/F,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5F,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC5K,YAAY,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAC1H,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -2,7 +2,7 @@ export { buildContractInput, invokeContractRoute, openContractRouteStream, requi
|
|
|
2
2
|
export { createFetch, createHttpTransport, createJsonInit, createJsonRequestInit, normalizeTransportError, readJsonBody, requestJson, } from './http.js';
|
|
3
3
|
export { openServerSentEventStream } from './sse.js';
|
|
4
4
|
export { openServerSentEventStream as openRawServerSentEventStream } from './sse-stream.js';
|
|
5
|
-
export { mergeHeaders, resolveAuthToken, resolveHeaders } from './auth.js';
|
|
5
|
+
export { mergeHeaders, normalizeAuthToken, resolveAuthToken, resolveHeaders } from './auth.js';
|
|
6
6
|
export { computeBackoffDelay, normalizeBackoffPolicy, sleepWithSignal } from './backoff.js';
|
|
7
7
|
export { DEFAULT_HTTP_RETRY_POLICY, getHttpRetryDelay, isRetryableHttpStatus, isRetryableNetworkError, normalizeHttpRetryPolicy, resolveHttpRetryPolicy } from './retry.js';
|
|
8
8
|
export { DEFAULT_STREAM_RECONNECT_POLICY, getStreamReconnectDelay, normalizeStreamReconnectPolicy } from './reconnect.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-events.d.ts","sourceRoot":"","sources":["../../../src/_internal/transport-realtime/runtime-events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,
|
|
1
|
+
{"version":3,"file":"runtime-events.d.ts","sourceRoot":"","sources":["../../../src/_internal/transport-realtime/runtime-events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAsB,KAAK,iBAAiB,EAAE,KAAK,qBAAqB,EAA6D,MAAM,4BAA4B,CAAC;AAE/K,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAE5B,KAAK,kBAAkB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,MAAM,MAAM,yBAAyB,CAAC,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,IAC1F,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAElC,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,IACpF,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAED,KAAK,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAErE,wBAAgB,yBAAyB,CAAC,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,EAC9F,OAAO,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,CAAC,GACxD,mBAAmB,CAAC,MAAM,CAAC,CAK7B;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,kBAAkB,GACzB,MAAM,CAIR;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,kBAAkB,EAAE,GACrC,MAAM,CAQR;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,OAAO,KAAK,EACvB,OAAO,GAAE,4BAAiC,GACzC,oBAAoB,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAiB3D;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,OAAO,SAAS,EAC/B,OAAO,GAAE,4BAAiC,GACzC,oBAAoB,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAuF3D"}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
// Synced from packages/transport-realtime/src/runtime-events.ts
|
|
2
2
|
// Extracted from legacy source: src/runtime/transports/runtime-events-client.ts
|
|
3
3
|
import { RUNTIME_EVENT_DOMAINS } from '../contracts/index.js';
|
|
4
|
-
import {
|
|
4
|
+
import { normalizeAuthToken, openRawServerSentEventStream as openServerSentEventStream } from '../transport-http/index.js';
|
|
5
5
|
import { buildUrl, normalizeBaseUrl } from '../transport-http/index.js';
|
|
6
6
|
import { createRemoteDomainEvents, } from './domain-events.js';
|
|
7
|
-
async function resolveAuthTokenSource(source) {
|
|
8
|
-
if (typeof source === 'function') {
|
|
9
|
-
return await resolveAuthToken(null, source);
|
|
10
|
-
}
|
|
11
|
-
return source ?? null;
|
|
12
|
-
}
|
|
13
7
|
export function createRemoteRuntimeEvents(connect) {
|
|
14
8
|
return createRemoteDomainEvents(RUNTIME_EVENT_DOMAINS, connect);
|
|
15
9
|
}
|
|
@@ -31,6 +25,7 @@ export function createEventSourceConnector(baseUrl, token, fetchImpl, options =
|
|
|
31
25
|
const handleError = options.onError ?? (options.reconnect?.enabled ? (() => { }) : undefined);
|
|
32
26
|
return async (domain, onEnvelope) => {
|
|
33
27
|
const url = buildEventSourceUrl(baseUrl, domain);
|
|
28
|
+
const getAuthToken = normalizeAuthToken(token ?? undefined);
|
|
34
29
|
return await openServerSentEventStream(fetchImpl, url, {
|
|
35
30
|
onEvent: (eventName, payload) => {
|
|
36
31
|
if (eventName !== domain)
|
|
@@ -42,8 +37,7 @@ export function createEventSourceConnector(baseUrl, token, fetchImpl, options =
|
|
|
42
37
|
onError: handleError,
|
|
43
38
|
}, {
|
|
44
39
|
reconnect: options.reconnect,
|
|
45
|
-
getAuthToken
|
|
46
|
-
authToken: typeof token === 'function' ? null : token,
|
|
40
|
+
getAuthToken,
|
|
47
41
|
});
|
|
48
42
|
};
|
|
49
43
|
}
|
|
@@ -85,7 +79,7 @@ export function createWebSocketConnector(baseUrl, token, WebSocketImpl, options
|
|
|
85
79
|
};
|
|
86
80
|
const onOpen = async () => {
|
|
87
81
|
reconnectAttempt = 0;
|
|
88
|
-
const authToken = await
|
|
82
|
+
const authToken = (await normalizeAuthToken(token ?? undefined)()) ?? null;
|
|
89
83
|
if (!authToken || !socket)
|
|
90
84
|
return;
|
|
91
85
|
socket.send(JSON.stringify({
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,qBAAqB,EACtB,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,qBAAqB,EACtB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,WAAW,CAAC;AAEnB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;CAC9C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IAClD,YAAY,CAAC,aAAa,CAAC,EAAE,OAAO,SAAS,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;CACzF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;CACtC;AA4DD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,mBAAmB,GAC3B,YAAY,CA+Cd"}
|