llm-stream-assemble 1.2.0 → 1.3.5

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/index.d.cts CHANGED
@@ -2,7 +2,7 @@ import { c as StreamEvent, C as CollectedStream, T as ToSSEOptions, d as StreamE
2
2
  export { A as AssembleFromFileOptions, a as AssembleOptions, F as FinishReason, P as PartialJSONResult, R as RawChunk, b as ReasoningVariant, S as StreamAdapter, e as StreamEventType } from './types-CskRfrmD.cjs';
3
3
  export { assembleFromFile, assembleFromPayloads, assembleResponse, assembleStream, createAssemblyTransform, parsePartialJSON, parseSSE } from './core/index.cjs';
4
4
  export { OpenAIChatAdapterOptions, openaiChatAdapter } from './adapters/openai-chat.cjs';
5
- export { OpenAICompatibleAdapterOptions, OpenAICompatibleProvider, openaiCompatibleAdapter } from './adapters/openai-compatible.cjs';
5
+ export { HOST_COMPATIBLE_PRESETS, LOOSE_HOST_PRESETS, OPENAI_COMPATIBLE_PROVIDERS, OpenAICompatibleAdapterOptions, OpenAICompatibleProvider, PRESET_OVERRIDES, PRESET_OVERRIDE_KEYS, ResolvedCompatibleAdapterConfig, STRICT_COMPATIBLE_PRESETS, compatibleProviderLabel, hasPresetOverride, isStrictCompatiblePreset, openaiCompatibleAdapter, providerPreset, resolveCompatibleAdapterConfig } from './adapters/openai-compatible.cjs';
6
6
  export { anthropicAdapter } from './adapters/anthropic.cjs';
7
7
  export { OpenAIResponsesAdapterOptions, openaiResponsesAdapter } from './adapters/openai-responses.cjs';
8
8
  export { GeminiAdapterOptions, geminiAdapter } from './adapters/gemini.cjs';
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import { c as StreamEvent, C as CollectedStream, T as ToSSEOptions, d as StreamE
2
2
  export { A as AssembleFromFileOptions, a as AssembleOptions, F as FinishReason, P as PartialJSONResult, R as RawChunk, b as ReasoningVariant, S as StreamAdapter, e as StreamEventType } from './types-CskRfrmD.js';
3
3
  export { assembleFromFile, assembleFromPayloads, assembleResponse, assembleStream, createAssemblyTransform, parsePartialJSON, parseSSE } from './core/index.js';
4
4
  export { OpenAIChatAdapterOptions, openaiChatAdapter } from './adapters/openai-chat.js';
5
- export { OpenAICompatibleAdapterOptions, OpenAICompatibleProvider, openaiCompatibleAdapter } from './adapters/openai-compatible.js';
5
+ export { HOST_COMPATIBLE_PRESETS, LOOSE_HOST_PRESETS, OPENAI_COMPATIBLE_PROVIDERS, OpenAICompatibleAdapterOptions, OpenAICompatibleProvider, PRESET_OVERRIDES, PRESET_OVERRIDE_KEYS, ResolvedCompatibleAdapterConfig, STRICT_COMPATIBLE_PRESETS, compatibleProviderLabel, hasPresetOverride, isStrictCompatiblePreset, openaiCompatibleAdapter, providerPreset, resolveCompatibleAdapterConfig } from './adapters/openai-compatible.js';
6
6
  export { anthropicAdapter } from './adapters/anthropic.js';
7
7
  export { OpenAIResponsesAdapterOptions, openaiResponsesAdapter } from './adapters/openai-responses.js';
8
8
  export { GeminiAdapterOptions, geminiAdapter } from './adapters/gemini.js';
package/dist/index.js CHANGED
@@ -1306,7 +1306,34 @@ function openaiChatAdapter(options = {}) {
1306
1306
  });
1307
1307
  }
1308
1308
 
1309
- // src/adapters/openai-compatible.ts
1309
+ // src/adapters/openai-compatible-presets.ts
1310
+ var OPENAI_COMPATIBLE_PROVIDERS = [
1311
+ "generic",
1312
+ "openrouter",
1313
+ "groq",
1314
+ "deepseek",
1315
+ "mistral",
1316
+ "ollama",
1317
+ "lmstudio",
1318
+ "together",
1319
+ "fireworks",
1320
+ "perplexity",
1321
+ "xai",
1322
+ "azure",
1323
+ "cloudflare"
1324
+ ];
1325
+ var HOST_COMPATIBLE_PRESETS = OPENAI_COMPATIBLE_PROVIDERS.filter(
1326
+ (p) => p !== "generic"
1327
+ );
1328
+ var STRICT_COMPATIBLE_PRESETS = [
1329
+ "azure"
1330
+ ];
1331
+ function isStrictCompatiblePreset(provider) {
1332
+ return STRICT_COMPATIBLE_PRESETS.includes(provider);
1333
+ }
1334
+ var LOOSE_HOST_PRESETS = HOST_COMPATIBLE_PRESETS.filter(
1335
+ (p) => !isStrictCompatiblePreset(p)
1336
+ );
1310
1337
  var DEFAULT_PRESET = {
1311
1338
  looseErrorShape: true,
1312
1339
  allowMissingMetadata: true,
@@ -1324,32 +1351,53 @@ var PRESET_OVERRIDES = {
1324
1351
  reasoningFieldAliases: []
1325
1352
  }
1326
1353
  };
1327
- function openaiCompatibleAdapter(options = {}) {
1354
+ var PRESET_OVERRIDE_KEYS = Object.keys(PRESET_OVERRIDES);
1355
+ function hasPresetOverride(provider) {
1356
+ return provider in PRESET_OVERRIDES;
1357
+ }
1358
+ function providerPreset(provider) {
1359
+ return {
1360
+ ...DEFAULT_PRESET,
1361
+ ...PRESET_OVERRIDES[provider]
1362
+ };
1363
+ }
1364
+
1365
+ // src/adapters/openai-compatible-resolve.ts
1366
+ function resolveCompatibleAdapterConfig(options = {}) {
1328
1367
  const preset = providerPreset(options.provider ?? "generic");
1329
- const resolvedAllowMissingMetadata = options.allowMissingMetadata ?? preset.allowMissingMetadata ?? DEFAULT_PRESET.allowMissingMetadata;
1330
- const resolvedLooseErrorShape = options.looseErrorShape ?? preset.looseErrorShape ?? DEFAULT_PRESET.looseErrorShape;
1331
- const resolvedUseChoicePositionFallback = options.useChoicePositionFallback ?? preset.useChoicePositionFallback ?? DEFAULT_PRESET.useChoicePositionFallback;
1368
+ const allowMissingMetadata = options.allowMissingMetadata ?? preset.allowMissingMetadata ?? DEFAULT_PRESET.allowMissingMetadata;
1369
+ const looseErrorShape = options.looseErrorShape ?? preset.looseErrorShape ?? DEFAULT_PRESET.looseErrorShape;
1370
+ const useChoicePositionFallback = options.useChoicePositionFallback ?? preset.useChoicePositionFallback ?? DEFAULT_PRESET.useChoicePositionFallback;
1371
+ return {
1372
+ looseErrorShape,
1373
+ allowMissingMetadata,
1374
+ useChoicePositionFallback,
1375
+ rejectUnrecognizedPayloads: allowMissingMetadata === false,
1376
+ reasoningFieldAliases: [
1377
+ ...preset.reasoningFieldAliases ?? [],
1378
+ ...options.reasoningFieldAliases ?? []
1379
+ ]
1380
+ };
1381
+ }
1382
+ function compatibleProviderLabel(provider) {
1383
+ return provider ?? "generic";
1384
+ }
1385
+
1386
+ // src/adapters/openai-compatible.ts
1387
+ function openaiCompatibleAdapter(options = {}) {
1388
+ const resolved = resolveCompatibleAdapterConfig(options);
1332
1389
  return createOpenAIChatLikeAdapter({
1333
1390
  ...options,
1334
- looseErrorShape: resolvedLooseErrorShape,
1335
- allowMissingMetadata: resolvedAllowMissingMetadata,
1336
- useChoicePositionFallback: resolvedUseChoicePositionFallback,
1391
+ looseErrorShape: resolved.looseErrorShape,
1392
+ allowMissingMetadata: resolved.allowMissingMetadata,
1393
+ useChoicePositionFallback: resolved.useChoicePositionFallback,
1337
1394
  errorPrefix: "openaiCompatibleAdapter",
1338
1395
  usageInputTokenFields: ["prompt_tokens", "input_tokens"],
1339
1396
  usageOutputTokenFields: ["completion_tokens", "output_tokens"],
1340
- rejectUnrecognizedPayloads: resolvedAllowMissingMetadata === false,
1341
- reasoningFieldAliases: [
1342
- ...preset.reasoningFieldAliases ?? [],
1343
- ...options.reasoningFieldAliases ?? []
1344
- ]
1397
+ rejectUnrecognizedPayloads: resolved.rejectUnrecognizedPayloads,
1398
+ reasoningFieldAliases: resolved.reasoningFieldAliases
1345
1399
  });
1346
1400
  }
1347
- function providerPreset(provider) {
1348
- return {
1349
- ...DEFAULT_PRESET,
1350
- ...PRESET_OVERRIDES[provider]
1351
- };
1352
- }
1353
1401
 
1354
1402
  // src/adapters/anthropic.ts
1355
1403
  function anthropicAdapter(options = {}) {
@@ -2522,6 +2570,6 @@ function isError(event) {
2522
2570
  return event.type === "error";
2523
2571
  }
2524
2572
 
2525
- export { anthropicAdapter, assembleFromFile, assembleFromPayloads, assembleResponse, assembleStream, collectStream, createAssemblyTransform, geminiAdapter, isError, isFinish, isJsonDelta, isJsonDone, isMessageStart, isMetadata, isReasoningDelta, isReasoningDone, isRefusalDelta, isRefusalDone, isTextDelta, isTextDone, isToolCallArgsDelta, isToolCallDone, isToolCallStart, isUsage, matchEvent, openaiChatAdapter, openaiCompatibleAdapter, openaiResponsesAdapter, parsePartialJSON, parseSSE, tapEvents, toSSE };
2573
+ export { HOST_COMPATIBLE_PRESETS, LOOSE_HOST_PRESETS, OPENAI_COMPATIBLE_PROVIDERS, PRESET_OVERRIDES, PRESET_OVERRIDE_KEYS, STRICT_COMPATIBLE_PRESETS, anthropicAdapter, assembleFromFile, assembleFromPayloads, assembleResponse, assembleStream, collectStream, compatibleProviderLabel, createAssemblyTransform, geminiAdapter, hasPresetOverride, isError, isFinish, isJsonDelta, isJsonDone, isMessageStart, isMetadata, isReasoningDelta, isReasoningDone, isRefusalDelta, isRefusalDone, isStrictCompatiblePreset, isTextDelta, isTextDone, isToolCallArgsDelta, isToolCallDone, isToolCallStart, isUsage, matchEvent, openaiChatAdapter, openaiCompatibleAdapter, openaiResponsesAdapter, parsePartialJSON, parseSSE, providerPreset, resolveCompatibleAdapterConfig, tapEvents, toSSE };
2526
2574
  //# sourceMappingURL=index.js.map
2527
2575
  //# sourceMappingURL=index.js.map