@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.
Files changed (52) hide show
  1. package/dist/_internal/platform/core/orchestrator-turn-helpers.js +1 -1
  2. package/dist/_internal/platform/core/orchestrator-turn-loop.js +1 -1
  3. package/dist/_internal/platform/daemon/facade-composition.d.ts +24 -0
  4. package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
  5. package/dist/_internal/platform/daemon/facade-composition.js +93 -0
  6. package/dist/_internal/platform/daemon/facade.d.ts +1 -0
  7. package/dist/_internal/platform/daemon/facade.d.ts.map +1 -1
  8. package/dist/_internal/platform/daemon/facade.js +3 -0
  9. package/dist/_internal/platform/providers/anthropic-compat.d.ts.map +1 -1
  10. package/dist/_internal/platform/providers/anthropic-compat.js +9 -6
  11. package/dist/_internal/platform/providers/anthropic-sdk-provider.d.ts.map +1 -1
  12. package/dist/_internal/platform/providers/anthropic-sdk-provider.js +9 -6
  13. package/dist/_internal/platform/providers/anthropic.d.ts.map +1 -1
  14. package/dist/_internal/platform/providers/anthropic.js +9 -6
  15. package/dist/_internal/platform/providers/gemini.d.ts.map +1 -1
  16. package/dist/_internal/platform/providers/gemini.js +5 -5
  17. package/dist/_internal/platform/providers/interface.d.ts +12 -1
  18. package/dist/_internal/platform/providers/interface.d.ts.map +1 -1
  19. package/dist/_internal/platform/providers/llama-cpp.d.ts.map +1 -1
  20. package/dist/_internal/platform/providers/llama-cpp.js +4 -3
  21. package/dist/_internal/platform/providers/lm-studio-helpers.d.ts +2 -3
  22. package/dist/_internal/platform/providers/lm-studio-helpers.d.ts.map +1 -1
  23. package/dist/_internal/platform/providers/lm-studio-helpers.js +0 -9
  24. package/dist/_internal/platform/providers/lm-studio.d.ts.map +1 -1
  25. package/dist/_internal/platform/providers/lm-studio.js +7 -3
  26. package/dist/_internal/platform/providers/ollama.d.ts.map +1 -1
  27. package/dist/_internal/platform/providers/ollama.js +3 -3
  28. package/dist/_internal/platform/providers/openai-codex.d.ts.map +1 -1
  29. package/dist/_internal/platform/providers/openai-codex.js +3 -10
  30. package/dist/_internal/platform/providers/openai-compat.d.ts.map +1 -1
  31. package/dist/_internal/platform/providers/openai-compat.js +11 -7
  32. package/dist/_internal/platform/providers/openai.d.ts.map +1 -1
  33. package/dist/_internal/platform/providers/openai.js +11 -7
  34. package/dist/_internal/platform/providers/stop-reason-maps.d.ts +30 -0
  35. package/dist/_internal/platform/providers/stop-reason-maps.d.ts.map +1 -0
  36. package/dist/_internal/platform/providers/stop-reason-maps.js +89 -0
  37. package/dist/_internal/platform/runtime/forensics/classifier.d.ts.map +1 -1
  38. package/dist/_internal/platform/runtime/forensics/classifier.js +1 -4
  39. package/dist/_internal/platform/version.js +1 -1
  40. package/dist/_internal/transport-http/auth.d.ts +17 -0
  41. package/dist/_internal/transport-http/auth.d.ts.map +1 -1
  42. package/dist/_internal/transport-http/auth.js +22 -0
  43. package/dist/_internal/transport-http/http-core.d.ts.map +1 -1
  44. package/dist/_internal/transport-http/http-core.js +5 -3
  45. package/dist/_internal/transport-http/index.d.ts +2 -2
  46. package/dist/_internal/transport-http/index.d.ts.map +1 -1
  47. package/dist/_internal/transport-http/index.js +1 -1
  48. package/dist/_internal/transport-realtime/runtime-events.d.ts.map +1 -1
  49. package/dist/_internal/transport-realtime/runtime-events.js +4 -10
  50. package/dist/client.d.ts.map +1 -1
  51. package/dist/client.js +5 -2
  52. 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,EAO5B,KAAK,WAAW,EAOjB,MAAM,wBAAwB,CAAC;AAEhC,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;YA8HjB,gBAAgB;CAiK/B"}
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, mapResponsesStopReason, normalizeProviderError, parseJsonObject, shouldFallbackFromNative, shouldFallbackFromResponses, toNativeChatInput, toRecord, } from './lm-studio-helpers.js';
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
- stopReason: 'end',
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: mapResponsesStopReason(status, resolvedToolCalls),
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;AAIpF,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;CAoGlC"}
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 || /tool/i.test(doneReason)
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;AAgJ/F,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,CAAC,CA+PvB;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"}
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: mapStopReason(status, resolvedToolCalls),
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":"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"}
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 stopReason = 'end';
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 === 'tool_calls')
337
- stopReason = 'tool_use';
338
- else if (finishReason === 'length')
339
- stopReason = 'max_tokens';
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 = 'tool_use';
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,EACZ,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAUxB,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;IAuHhD,KAAK,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA8B1E,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAqC3F"}
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 stopReason = 'end';
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 === 'tool_calls')
79
- stopReason = 'tool_use';
80
- else if (finishReason === 'length')
81
- stopReason = 'max_tokens';
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 = 'tool_use';
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,CAoEpE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,YAAY,EAC5B,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CA6BR"}
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 stopReason === 'length'
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.46';
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":"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"}
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 resolveAuthToken(authToken, options.getAuthToken);
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 resolveAuthToken(authToken, options.getAuthToken);
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;AACjF,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3E,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"}
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,EAAoB,KAAK,iBAAiB,EAAE,KAAK,qBAAqB,EAA6D,MAAM,4BAA4B,CAAC;AAE7K,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;AASrE,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
+ {"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 { resolveAuthToken, openRawServerSentEventStream as openServerSentEventStream } from '../transport-http/index.js';
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: typeof token === 'function' ? token : undefined,
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 resolveAuthTokenSource(token);
82
+ const authToken = (await normalizeAuthToken(token ?? undefined)()) ?? null;
89
83
  if (!authToken || !socket)
90
84
  return;
91
85
  socket.send(JSON.stringify({
@@ -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;AAC7C,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,CA6Cd"}
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"}