llm-strings 1.3.0 → 1.5.0
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/LICENSE +21 -0
- package/README.md +339 -339
- package/dist/ai-sdk.cjs +1146 -117
- package/dist/ai-sdk.d.cts +1 -1
- package/dist/ai-sdk.d.ts +1 -1
- package/dist/ai-sdk.js +95 -58
- package/dist/{chunk-7HE4RH6X.js → chunk-4BE457QA.js} +16 -29
- package/dist/{chunk-TQJ2ABCT.js → chunk-6HQOCOQI.js} +1 -2
- package/dist/{chunk-NZR5DUX5.js → chunk-7Z7DCLZN.js} +14 -3
- package/dist/{chunk-OCJX4QFJ.js → chunk-PCJDQTOV.js} +520 -76
- package/dist/index.cjs +542 -95
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -5
- package/dist/normalize.cjs +1065 -63
- package/dist/normalize.d.cts +1 -1
- package/dist/normalize.d.ts +1 -1
- package/dist/normalize.js +2 -3
- package/dist/parse.cjs +1075 -1
- package/dist/parse.d.cts +4 -4
- package/dist/parse.d.ts +4 -4
- package/dist/parse.js +2 -3
- package/dist/{provider-core-B934MuhJ.d.cts → provider-core-B1GMszQP.d.cts} +2 -3
- package/dist/{provider-core-B934MuhJ.d.ts → provider-core-B1GMszQP.d.ts} +2 -3
- package/dist/providers.cjs +542 -697
- package/dist/providers.d.cts +3 -8
- package/dist/providers.d.ts +3 -8
- package/dist/providers.js +25 -624
- package/dist/validate.cjs +542 -95
- package/dist/validate.d.cts +1 -1
- package/dist/validate.d.ts +1 -1
- package/dist/validate.js +4 -5
- package/package.json +16 -2
- package/dist/ai-sdk.cjs.map +0 -1
- package/dist/ai-sdk.js.map +0 -1
- package/dist/chunk-7HE4RH6X.js.map +0 -1
- package/dist/chunk-NZR5DUX5.js.map +0 -1
- package/dist/chunk-OCJX4QFJ.js.map +0 -1
- package/dist/chunk-TQJ2ABCT.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/normalize.cjs.map +0 -1
- package/dist/normalize.js.map +0 -1
- package/dist/parse.cjs.map +0 -1
- package/dist/parse.js.map +0 -1
- package/dist/providers.cjs.map +0 -1
- package/dist/providers.js.map +0 -1
- package/dist/validate.cjs.map +0 -1
- package/dist/validate.js.map +0 -1
package/dist/ai-sdk.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NormalizeResult, NormalizeOptions } from './normalize.cjs';
|
|
2
2
|
import { LlmConnectionConfig } from './parse.cjs';
|
|
3
|
-
import { P as Provider } from './provider-core-
|
|
3
|
+
import { P as Provider } from './provider-core-B1GMszQP.cjs';
|
|
4
4
|
|
|
5
5
|
type AiSdkProviderOptions = Record<string, Record<string, unknown>>;
|
|
6
6
|
interface AiSdkProviderOptionsResult {
|
package/dist/ai-sdk.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NormalizeResult, NormalizeOptions } from './normalize.js';
|
|
2
2
|
import { LlmConnectionConfig } from './parse.js';
|
|
3
|
-
import { P as Provider } from './provider-core-
|
|
3
|
+
import { P as Provider } from './provider-core-B1GMszQP.js';
|
|
4
4
|
|
|
5
5
|
type AiSdkProviderOptions = Record<string, Record<string, unknown>>;
|
|
6
6
|
interface AiSdkProviderOptionsResult {
|
package/dist/ai-sdk.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
normalize
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7Z7DCLZN.js";
|
|
4
4
|
import {
|
|
5
5
|
parse
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-6HQOCOQI.js";
|
|
7
|
+
import "./chunk-PCJDQTOV.js";
|
|
8
8
|
|
|
9
9
|
// src/ai-sdk.ts
|
|
10
10
|
var PROVIDER_OPTION_KEYS = {
|
|
@@ -377,6 +377,7 @@ function addGatewayOption(options, key, value) {
|
|
|
377
377
|
};
|
|
378
378
|
const directKeys = /* @__PURE__ */ new Set([
|
|
379
379
|
"sort",
|
|
380
|
+
"caching",
|
|
380
381
|
"user",
|
|
381
382
|
"zeroDataRetention",
|
|
382
383
|
"disallowPromptTraining",
|
|
@@ -400,10 +401,63 @@ function addGatewayOption(options, key, value) {
|
|
|
400
401
|
}
|
|
401
402
|
function addOpenRouterOption(options, key, value) {
|
|
402
403
|
const target = "openrouter";
|
|
404
|
+
const providerKey = key.startsWith("provider.") ? key.slice(9) : key;
|
|
405
|
+
const providerListKeys = /* @__PURE__ */ new Set([
|
|
406
|
+
"order",
|
|
407
|
+
"only",
|
|
408
|
+
"ignore",
|
|
409
|
+
"quantizations"
|
|
410
|
+
]);
|
|
411
|
+
const providerObjectKeys = /* @__PURE__ */ new Set([
|
|
412
|
+
"provider",
|
|
413
|
+
"sort",
|
|
414
|
+
"preferred_min_throughput",
|
|
415
|
+
"preferred_max_latency",
|
|
416
|
+
"max_price"
|
|
417
|
+
]);
|
|
418
|
+
const providerScalarKeys = /* @__PURE__ */ new Set([
|
|
419
|
+
"allow_fallbacks",
|
|
420
|
+
"require_parameters",
|
|
421
|
+
"data_collection",
|
|
422
|
+
"zdr",
|
|
423
|
+
"enforce_distillable_text"
|
|
424
|
+
]);
|
|
403
425
|
if (key === "models") {
|
|
404
426
|
setProviderOption(options, target, "models", parseStringList(value));
|
|
405
427
|
return;
|
|
406
428
|
}
|
|
429
|
+
if (key === "transforms") {
|
|
430
|
+
setProviderOption(options, target, "transforms", parseStringList(value));
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
if (key === "plugins") {
|
|
434
|
+
const parsed = parseJson(value);
|
|
435
|
+
setProviderOption(
|
|
436
|
+
options,
|
|
437
|
+
target,
|
|
438
|
+
"plugins",
|
|
439
|
+
Array.isArray(parsed) ? parsed : parseStringList(value)
|
|
440
|
+
);
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
if (key.startsWith("provider.") || providerListKeys.has(providerKey) || providerScalarKeys.has(providerKey) || providerObjectKeys.has(providerKey)) {
|
|
444
|
+
if (providerKey === "provider") {
|
|
445
|
+
mergeObjectOption(options, target, "provider", value);
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
448
|
+
const current = options[target]?.provider;
|
|
449
|
+
const providerOptions = current && typeof current === "object" && !Array.isArray(current) ? { ...current } : {};
|
|
450
|
+
if (providerListKeys.has(providerKey)) {
|
|
451
|
+
providerOptions[providerKey] = parseStringList(value);
|
|
452
|
+
} else if (providerObjectKeys.has(providerKey)) {
|
|
453
|
+
const parsed = parseJson(value);
|
|
454
|
+
providerOptions[providerKey] = parsed !== void 0 ? parsed : typedValue(value);
|
|
455
|
+
} else {
|
|
456
|
+
providerOptions[providerKey] = typedValue(value);
|
|
457
|
+
}
|
|
458
|
+
setProviderOption(options, target, "provider", providerOptions);
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
407
461
|
if (key === "reasoning") {
|
|
408
462
|
mergeObjectOption(options, target, "reasoning", value);
|
|
409
463
|
return;
|
|
@@ -445,65 +499,49 @@ function addOpenRouterOption(options, key, value) {
|
|
|
445
499
|
function addFlexibleProviderOption(options, target, key, value) {
|
|
446
500
|
setProviderOption(options, target, key, typedValue(value));
|
|
447
501
|
}
|
|
502
|
+
var PROVIDER_OPTION_HANDLERS = {
|
|
503
|
+
openai: addOpenAiOption,
|
|
504
|
+
azure: (options, key, value) => addOpenAiOption(options, key, value, "azure"),
|
|
505
|
+
anthropic: addAnthropicOption,
|
|
506
|
+
google: addGoogleOption,
|
|
507
|
+
"google-vertex": (options, key, value) => addGoogleOption(options, key, value, "vertex"),
|
|
508
|
+
mistral: addMistralOption,
|
|
509
|
+
cohere: addCohereOption,
|
|
510
|
+
bedrock: addBedrockOption,
|
|
511
|
+
openrouter: addOpenRouterOption,
|
|
512
|
+
xai: (options, key, value) => addOpenAiOption(options, key, value, "xai"),
|
|
513
|
+
groq: (options, key, value) => addOpenAiOption(options, key, value, "groq"),
|
|
514
|
+
fal: (options, key, value) => addFlexibleProviderOption(options, "fal", key, value),
|
|
515
|
+
deepinfra: (options, key, value) => addOpenAiOption(options, key, value, "deepinfra"),
|
|
516
|
+
"black-forest-labs": (options, key, value) => addFlexibleProviderOption(options, "blackForestLabs", key, value),
|
|
517
|
+
together: (options, key, value) => addOpenAiOption(options, key, value, "together"),
|
|
518
|
+
fireworks: (options, key, value) => addOpenAiOption(options, key, value, "fireworks"),
|
|
519
|
+
deepseek: (options, key, value) => addOpenAiOption(options, key, value, "deepseek"),
|
|
520
|
+
moonshotai: (options, key, value) => addOpenAiOption(options, key, value, "moonshotai"),
|
|
521
|
+
perplexity: (options, key, value) => addOpenAiOption(options, key, value, "perplexity"),
|
|
522
|
+
alibaba: (options, key, value) => addOpenAiOption(options, key, value, "alibaba"),
|
|
523
|
+
cerebras: (options, key, value) => addOpenAiOption(options, key, value, "cerebras"),
|
|
524
|
+
replicate: (options, key, value) => addFlexibleProviderOption(options, "replicate", key, value),
|
|
525
|
+
prodia: (options, key, value) => addFlexibleProviderOption(options, "prodia", key, value),
|
|
526
|
+
luma: (options, key, value) => addFlexibleProviderOption(options, "luma", key, value),
|
|
527
|
+
bytedance: (options, key, value) => addFlexibleProviderOption(options, "bytedance", key, value),
|
|
528
|
+
kling: (options, key, value) => addFlexibleProviderOption(options, "kling", key, value),
|
|
529
|
+
elevenlabs: (options, key, value) => addFlexibleProviderOption(options, "elevenlabs", key, value),
|
|
530
|
+
assemblyai: (options, key, value) => addFlexibleProviderOption(options, "assemblyai", key, value),
|
|
531
|
+
deepgram: (options, key, value) => addFlexibleProviderOption(options, "deepgram", key, value),
|
|
532
|
+
gladia: (options, key, value) => addFlexibleProviderOption(options, "gladia", key, value),
|
|
533
|
+
lmnt: (options, key, value) => addFlexibleProviderOption(options, "lmnt", key, value),
|
|
534
|
+
hume: (options, key, value) => addFlexibleProviderOption(options, "hume", key, value),
|
|
535
|
+
revai: (options, key, value) => addFlexibleProviderOption(options, "revai", key, value),
|
|
536
|
+
baseten: (options, key, value) => addOpenAiOption(options, key, value, "baseten"),
|
|
537
|
+
huggingface: (options, key, value) => addOpenAiOption(options, key, value, "huggingface")
|
|
538
|
+
};
|
|
448
539
|
function addProviderSpecificOption(options, provider, key, value, includeGatewayOptions) {
|
|
449
540
|
if (provider === "vercel") {
|
|
450
541
|
if (includeGatewayOptions) addGatewayOption(options, key, value);
|
|
451
542
|
return;
|
|
452
543
|
}
|
|
453
|
-
|
|
454
|
-
if (provider === "azure") addOpenAiOption(options, key, value, "azure");
|
|
455
|
-
if (provider === "anthropic") addAnthropicOption(options, key, value);
|
|
456
|
-
if (provider === "google") addGoogleOption(options, key, value);
|
|
457
|
-
if (provider === "google-vertex")
|
|
458
|
-
addGoogleOption(options, key, value, "vertex");
|
|
459
|
-
if (provider === "mistral") addMistralOption(options, key, value);
|
|
460
|
-
if (provider === "cohere") addCohereOption(options, key, value);
|
|
461
|
-
if (provider === "bedrock") addBedrockOption(options, key, value);
|
|
462
|
-
if (provider === "openrouter") addOpenRouterOption(options, key, value);
|
|
463
|
-
if (provider === "xai") addOpenAiOption(options, key, value, "xai");
|
|
464
|
-
if (provider === "groq") addOpenAiOption(options, key, value, "groq");
|
|
465
|
-
if (provider === "fal") addFlexibleProviderOption(options, "fal", key, value);
|
|
466
|
-
if (provider === "deepinfra")
|
|
467
|
-
addOpenAiOption(options, key, value, "deepinfra");
|
|
468
|
-
if (provider === "black-forest-labs")
|
|
469
|
-
addFlexibleProviderOption(options, "blackForestLabs", key, value);
|
|
470
|
-
if (provider === "together") addOpenAiOption(options, key, value, "together");
|
|
471
|
-
if (provider === "fireworks")
|
|
472
|
-
addOpenAiOption(options, key, value, "fireworks");
|
|
473
|
-
if (provider === "deepseek") addOpenAiOption(options, key, value, "deepseek");
|
|
474
|
-
if (provider === "moonshotai")
|
|
475
|
-
addOpenAiOption(options, key, value, "moonshotai");
|
|
476
|
-
if (provider === "perplexity")
|
|
477
|
-
addOpenAiOption(options, key, value, "perplexity");
|
|
478
|
-
if (provider === "alibaba") addOpenAiOption(options, key, value, "alibaba");
|
|
479
|
-
if (provider === "cerebras") addOpenAiOption(options, key, value, "cerebras");
|
|
480
|
-
if (provider === "replicate")
|
|
481
|
-
addFlexibleProviderOption(options, "replicate", key, value);
|
|
482
|
-
if (provider === "prodia")
|
|
483
|
-
addFlexibleProviderOption(options, "prodia", key, value);
|
|
484
|
-
if (provider === "luma")
|
|
485
|
-
addFlexibleProviderOption(options, "luma", key, value);
|
|
486
|
-
if (provider === "bytedance")
|
|
487
|
-
addFlexibleProviderOption(options, "bytedance", key, value);
|
|
488
|
-
if (provider === "kling")
|
|
489
|
-
addFlexibleProviderOption(options, "kling", key, value);
|
|
490
|
-
if (provider === "elevenlabs")
|
|
491
|
-
addFlexibleProviderOption(options, "elevenlabs", key, value);
|
|
492
|
-
if (provider === "assemblyai")
|
|
493
|
-
addFlexibleProviderOption(options, "assemblyai", key, value);
|
|
494
|
-
if (provider === "deepgram")
|
|
495
|
-
addFlexibleProviderOption(options, "deepgram", key, value);
|
|
496
|
-
if (provider === "gladia")
|
|
497
|
-
addFlexibleProviderOption(options, "gladia", key, value);
|
|
498
|
-
if (provider === "lmnt")
|
|
499
|
-
addFlexibleProviderOption(options, "lmnt", key, value);
|
|
500
|
-
if (provider === "hume")
|
|
501
|
-
addFlexibleProviderOption(options, "hume", key, value);
|
|
502
|
-
if (provider === "revai")
|
|
503
|
-
addFlexibleProviderOption(options, "revai", key, value);
|
|
504
|
-
if (provider === "baseten") addOpenAiOption(options, key, value, "baseten");
|
|
505
|
-
if (provider === "huggingface")
|
|
506
|
-
addOpenAiOption(options, key, value, "huggingface");
|
|
544
|
+
PROVIDER_OPTION_HANDLERS[provider](options, key, value);
|
|
507
545
|
}
|
|
508
546
|
function createAiSdkProviderOptions(configOrResult, options = {}) {
|
|
509
547
|
const normalized = typeof configOrResult === "string" ? normalize(parse(configOrResult), options) : "changes" in configOrResult && "subProvider" in configOrResult ? configOrResult : normalize(configOrResult, options);
|
|
@@ -541,4 +579,3 @@ function createAiSdkProviderOptions(configOrResult, options = {}) {
|
|
|
541
579
|
export {
|
|
542
580
|
createAiSdkProviderOptions
|
|
543
581
|
};
|
|
544
|
-
//# sourceMappingURL=ai-sdk.js.map
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
normalize
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7Z7DCLZN.js";
|
|
4
4
|
import {
|
|
5
5
|
parse
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6HQOCOQI.js";
|
|
7
7
|
import {
|
|
8
8
|
PARAM_SPECS,
|
|
9
9
|
PROVIDER_PARAMS,
|
|
10
|
-
REASONING_MODEL_UNSUPPORTED,
|
|
11
10
|
bedrockSupportsCaching,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
isReasoningModel
|
|
15
|
-
} from "./chunk-OCJX4QFJ.js";
|
|
11
|
+
detectBedrockModelFamily
|
|
12
|
+
} from "./chunk-PCJDQTOV.js";
|
|
16
13
|
|
|
17
14
|
// src/validate.ts
|
|
18
15
|
function buildReverseParamMap(provider) {
|
|
@@ -62,15 +59,8 @@ function validate(connectionString, options = {}) {
|
|
|
62
59
|
const gatewayReverseMap = subProvider ? buildReverseParamMap(provider) : void 0;
|
|
63
60
|
const knownParams = subProvider ? buildSubProviderKnownParams(provider, subProvider) : new Set(Object.values(PROVIDER_PARAMS[provider]));
|
|
64
61
|
for (const [key, value] of Object.entries(config.params)) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
param: key,
|
|
68
|
-
value,
|
|
69
|
-
message: `"${key}" is not supported by OpenAI reasoning model "${config.model}". Use "reasoning_effort" instead of temperature for controlling output.`,
|
|
70
|
-
severity: "error"
|
|
71
|
-
});
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
62
|
+
const subProviderSpecResult = subProvider && gatewayReverseMap ? lookupSubProviderSpec(key, gatewayReverseMap, subProvider) : void 0;
|
|
63
|
+
const gatewayOwnSpec = subProvider && !subProviderSpecResult?.spec ? PARAM_SPECS[provider]?.[key] : void 0;
|
|
74
64
|
if (provider === "bedrock") {
|
|
75
65
|
const family = detectBedrockModelFamily(config.model);
|
|
76
66
|
if (key === "topK" && family && family !== "anthropic" && family !== "cohere" && family !== "mistral") {
|
|
@@ -92,20 +82,18 @@ function validate(connectionString, options = {}) {
|
|
|
92
82
|
continue;
|
|
93
83
|
}
|
|
94
84
|
}
|
|
95
|
-
if (!knownParams.has(key) && !specs[key]) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
85
|
+
if (!knownParams.has(key) && !specs[key] && !gatewayOwnSpec) {
|
|
86
|
+
if (options.strict) {
|
|
87
|
+
issues.push({
|
|
88
|
+
param: key,
|
|
89
|
+
value,
|
|
90
|
+
message: `Unknown param "${key}" for ${effectiveProvider}.`,
|
|
91
|
+
severity: "error"
|
|
92
|
+
});
|
|
93
|
+
}
|
|
102
94
|
continue;
|
|
103
95
|
}
|
|
104
|
-
|
|
105
|
-
if (subProvider && gatewayReverseMap && !spec) {
|
|
106
|
-
const result = lookupSubProviderSpec(key, gatewayReverseMap, subProvider);
|
|
107
|
-
spec = result.spec;
|
|
108
|
-
}
|
|
96
|
+
const spec = subProviderSpecResult?.spec ?? gatewayOwnSpec ?? specs[key];
|
|
109
97
|
if (!spec) continue;
|
|
110
98
|
if ((effectiveProvider === "anthropic" || provider === "bedrock" && detectBedrockModelFamily(config.model) === "anthropic") && (key === "temperature" || key === "top_p" || key === "topP")) {
|
|
111
99
|
const otherKey = key === "temperature" ? provider === "bedrock" ? "topP" : "top_p" : "temperature";
|
|
@@ -173,4 +161,3 @@ function validate(connectionString, options = {}) {
|
|
|
173
161
|
export {
|
|
174
162
|
validate
|
|
175
163
|
};
|
|
176
|
-
//# sourceMappingURL=chunk-7HE4RH6X.js.map
|
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
ALIASES,
|
|
3
3
|
CACHE_TTLS,
|
|
4
4
|
CACHE_VALUES,
|
|
5
|
-
DURATION_RE,
|
|
6
5
|
PROVIDER_PARAMS,
|
|
6
|
+
REASONING_MODEL_UNSUPPORTED,
|
|
7
7
|
bedrockSupportsCaching,
|
|
8
8
|
canHostOpenAIModels,
|
|
9
9
|
detectGatewaySubProvider,
|
|
@@ -11,9 +11,10 @@ import {
|
|
|
11
11
|
isGatewayProvider,
|
|
12
12
|
isReasoningModel,
|
|
13
13
|
providerFromHostAlias
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-PCJDQTOV.js";
|
|
15
15
|
|
|
16
16
|
// src/normalize.ts
|
|
17
|
+
var DURATION_RE = /^\d+[mh]$/;
|
|
17
18
|
function normalize(config, options = {}) {
|
|
18
19
|
const provider = (config.hostAlias ? providerFromHostAlias(config.hostAlias) : void 0) ?? detectProvider(config.host);
|
|
19
20
|
const subProvider = provider && isGatewayProvider(provider) ? detectGatewaySubProvider(config.model) : void 0;
|
|
@@ -101,6 +102,17 @@ function normalize(config, options = {}) {
|
|
|
101
102
|
}
|
|
102
103
|
key = "max_completion_tokens";
|
|
103
104
|
}
|
|
105
|
+
if (provider && canHostOpenAIModels(provider) && isReasoningModel(config.model) && REASONING_MODEL_UNSUPPORTED.has(key)) {
|
|
106
|
+
if (options.verbose) {
|
|
107
|
+
changes.push({
|
|
108
|
+
from: key,
|
|
109
|
+
to: "(dropped)",
|
|
110
|
+
value,
|
|
111
|
+
reason: `${provider} reasoning model "${config.model}" does not support "${key}"`
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
104
116
|
params[key] = value;
|
|
105
117
|
}
|
|
106
118
|
return {
|
|
@@ -114,4 +126,3 @@ function normalize(config, options = {}) {
|
|
|
114
126
|
export {
|
|
115
127
|
normalize
|
|
116
128
|
};
|
|
117
|
-
//# sourceMappingURL=chunk-NZR5DUX5.js.map
|