@providerkit/core 0.7.0 → 0.7.1
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.
|
@@ -13,6 +13,11 @@ export interface PresetProviderConfig {
|
|
|
13
13
|
/** Per-request headers (request ids, `ChatGPT-Account-Id`) on top of the
|
|
14
14
|
* preset's static protocol headers. */
|
|
15
15
|
headers?: Record<string, string>;
|
|
16
|
+
/** OpenRouter-only: preferred upstream hosts, in order. OpenRouter's cache
|
|
17
|
+
* lives on the upstream host's account and default routing hops hosts
|
|
18
|
+
* between rounds — pinning keeps a conversation's rounds (and their cache)
|
|
19
|
+
* on one host. Empty/absent = default routing. */
|
|
20
|
+
providerOrder?: string[];
|
|
16
21
|
fetchImpl?: typeof fetch;
|
|
17
22
|
}
|
|
18
23
|
export declare function createPresetProvider(id: ProviderPresetId, config: PresetProviderConfig): Provider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"AAgBA,OAAO,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"AAgBA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,oBAAoB;IACnC;qEACiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf;4EACwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;4CACwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;uDAGmD;IACnD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CAmEjG"}
|
|
@@ -14,7 +14,7 @@ import { createAnthropicProvider } from "./anthropic.js";
|
|
|
14
14
|
import { createGeminiProvider } from "./gemini.js";
|
|
15
15
|
import { createOpenAIProvider } from "./openai.js";
|
|
16
16
|
import { createResponsesProvider } from "./responses.js";
|
|
17
|
-
import { PRESET_IDS, PROVIDER_PRESETS } from "../presets.js";
|
|
17
|
+
import { PRESET_IDS, PROVIDER_PRESETS, } from "../presets.js";
|
|
18
18
|
export function createPresetProvider(id, config) {
|
|
19
19
|
// The table is closed (`satisfies`), but a caller may hold an id as a plain
|
|
20
20
|
// string — validate rather than index into undefined.
|
|
@@ -54,6 +54,7 @@ export function createPresetProvider(id, config) {
|
|
|
54
54
|
maxTokens: config.maxTokens,
|
|
55
55
|
baseUrl: preset.baseUrl,
|
|
56
56
|
headers,
|
|
57
|
+
...(config.providerOrder ? { providerOrder: config.providerOrder } : {}),
|
|
57
58
|
fetchImpl: config.fetchImpl,
|
|
58
59
|
});
|
|
59
60
|
case "responses":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,mCAAmC;AACnC,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,yEAAyE;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/providers/factory.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/providers/factory.ts
CHANGED
|
@@ -14,7 +14,12 @@ import { createAnthropicProvider } from "./anthropic.ts";
|
|
|
14
14
|
import { createGeminiProvider } from "./gemini.ts";
|
|
15
15
|
import { createOpenAIProvider } from "./openai.ts";
|
|
16
16
|
import { createResponsesProvider } from "./responses.ts";
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
PRESET_IDS,
|
|
19
|
+
PROVIDER_PRESETS,
|
|
20
|
+
type ProviderPreset,
|
|
21
|
+
type ProviderPresetId,
|
|
22
|
+
} from "../presets.ts";
|
|
18
23
|
import type { Effort, Provider } from "../types.ts";
|
|
19
24
|
|
|
20
25
|
export interface PresetProviderConfig {
|
|
@@ -30,6 +35,11 @@ export interface PresetProviderConfig {
|
|
|
30
35
|
/** Per-request headers (request ids, `ChatGPT-Account-Id`) on top of the
|
|
31
36
|
* preset's static protocol headers. */
|
|
32
37
|
headers?: Record<string, string>;
|
|
38
|
+
/** OpenRouter-only: preferred upstream hosts, in order. OpenRouter's cache
|
|
39
|
+
* lives on the upstream host's account and default routing hops hosts
|
|
40
|
+
* between rounds — pinning keeps a conversation's rounds (and their cache)
|
|
41
|
+
* on one host. Empty/absent = default routing. */
|
|
42
|
+
providerOrder?: string[];
|
|
33
43
|
fetchImpl?: typeof fetch;
|
|
34
44
|
}
|
|
35
45
|
|
|
@@ -75,6 +85,7 @@ export function createPresetProvider(id: ProviderPresetId, config: PresetProvide
|
|
|
75
85
|
maxTokens: config.maxTokens,
|
|
76
86
|
baseUrl: preset.baseUrl,
|
|
77
87
|
headers,
|
|
88
|
+
...(config.providerOrder ? { providerOrder: config.providerOrder } : {}),
|
|
78
89
|
fetchImpl: config.fetchImpl,
|
|
79
90
|
});
|
|
80
91
|
case "responses":
|