@plurnk/plurnk-providers 1.6.0 → 1.7.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/.env.defaults +9 -16
- package/README.md +17 -0
- package/SPEC.md +128 -45
- package/dist/AiSdkProvider.d.ts +16 -9
- package/dist/AiSdkProvider.d.ts.map +1 -1
- package/dist/AiSdkProvider.js +151 -54
- package/dist/AiSdkProvider.js.map +1 -1
- package/dist/Mock.d.ts +8 -4
- package/dist/Mock.d.ts.map +1 -1
- package/dist/Mock.js +53 -18
- package/dist/Mock.js.map +1 -1
- package/dist/Pool.d.ts +8 -4
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +68 -12
- package/dist/Pool.js.map +1 -1
- package/dist/accounting.d.ts.map +1 -1
- package/dist/accounting.js.map +1 -1
- package/dist/accountingPublic.d.ts +5 -0
- package/dist/accountingPublic.d.ts.map +1 -0
- package/dist/accountingPublic.js +3 -0
- package/dist/accountingPublic.js.map +1 -0
- package/dist/capacity.d.ts +26 -0
- package/dist/capacity.d.ts.map +1 -0
- package/dist/capacity.js +90 -0
- package/dist/capacity.js.map +1 -0
- package/dist/catalogProvider.d.ts +2 -1
- package/dist/catalogProvider.d.ts.map +1 -1
- package/dist/catalogProvider.js +18 -20
- package/dist/catalogProvider.js.map +1 -1
- package/dist/compatibleProvider.d.ts.map +1 -1
- package/dist/compatibleProvider.js +10 -7
- package/dist/compatibleProvider.js.map +1 -1
- package/dist/env.d.ts +8 -10
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +54 -37
- package/dist/env.js.map +1 -1
- package/dist/errors.d.ts +6 -22
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +30 -91
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/promptTokens.d.ts.map +1 -1
- package/dist/promptTokens.js +7 -4
- package/dist/promptTokens.js.map +1 -1
- package/dist/providerError.d.ts +25 -0
- package/dist/providerError.d.ts.map +1 -0
- package/dist/providerError.js +91 -0
- package/dist/providerError.js.map +1 -0
- package/dist/sdkModels.d.ts +1 -0
- package/dist/sdkModels.d.ts.map +1 -1
- package/dist/sdkModels.js +5 -8
- package/dist/sdkModels.js.map +1 -1
- package/dist/types.d.ts +24 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/usage.d.ts +1 -0
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +7 -2
- package/dist/usage.js.map +1 -1
- package/package.json +22 -7
- package/src/AiSdkProvider.test.ts +198 -37
- package/src/AiSdkProvider.ts +192 -59
- package/src/Mock.test.ts +32 -18
- package/src/Mock.ts +58 -19
- package/src/Pool.test.ts +71 -13
- package/src/Pool.ts +78 -13
- package/src/ProviderRegistry.test.ts +1 -1
- package/src/accounting.ts +0 -1
- package/src/accountingPublic.ts +9 -0
- package/src/boundaries.test.ts +28 -15
- package/src/capacity.test.ts +92 -0
- package/src/capacity.ts +140 -0
- package/src/catalogProvider.test.ts +82 -9
- package/src/catalogProvider.ts +24 -21
- package/src/compatibleProvider.test.ts +1 -2
- package/src/compatibleProvider.ts +10 -7
- package/src/cost.test.ts +31 -0
- package/src/env.test.ts +49 -20
- package/src/env.ts +114 -51
- package/src/errors.test.ts +33 -0
- package/src/errors.ts +38 -134
- package/src/index.ts +5 -2
- package/src/ollama.test.ts +1 -2
- package/src/promptTokens.ts +8 -5
- package/src/providerError.ts +139 -0
- package/src/sdkModels.test.ts +2 -5
- package/src/sdkModels.ts +6 -8
- package/src/types.ts +41 -19
- package/src/usage.ts +7 -2
package/dist/Mock.js
CHANGED
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
// engine tests; (b) worked example for sibling authors implementing the
|
|
5
5
|
// Provider contract. Production providers don't expose the `ops` escape
|
|
6
6
|
// hatch — that's an intg-only convenience.
|
|
7
|
-
import {
|
|
7
|
+
import { resolveGenerationEnvelopeFromEnv } from "./env.js";
|
|
8
8
|
import { validateProviderRequestAccounting } from "./accounting.js";
|
|
9
9
|
import { ProviderError } from "./errors.js";
|
|
10
|
+
import { assessRequestCapacity, effectiveInputCapacity, effectiveOutputBudget, effectiveReasoningBudget } from "./capacity.js";
|
|
10
11
|
const DEFAULT_USAGE = {
|
|
11
12
|
inputTokens: 0,
|
|
12
13
|
outputTokens: 0,
|
|
@@ -14,27 +15,33 @@ const DEFAULT_USAGE = {
|
|
|
14
15
|
};
|
|
15
16
|
export default class Mock {
|
|
16
17
|
#contextWindow;
|
|
17
|
-
#
|
|
18
|
-
#
|
|
18
|
+
#outputBudget;
|
|
19
|
+
#reasoningBudget;
|
|
19
20
|
#queue;
|
|
20
|
-
// {§provider-generation-envelope}
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
// without the reserves in most base tests, so absent env → null → the
|
|
26
|
-
// consumer's no-cap path, and the ~100 `new Mock({ contextWindow, responses })`
|
|
27
|
-
// sites stay untouched. Mock has no alias identity, so it reads the BARE knobs.
|
|
21
|
+
// {§provider-generation-envelope} Mock resolves the same generation
|
|
22
|
+
// envelope as a real provider, but tolerates absent policy because it is
|
|
23
|
+
// also the universal test fixture. No output budget means its context
|
|
24
|
+
// window alone cannot determine an input capacity. Mock has no alias
|
|
25
|
+
// identity, so it reads the bare knobs.
|
|
28
26
|
constructor({ contextWindow, responses }) {
|
|
29
27
|
this.#contextWindow = contextWindow;
|
|
30
|
-
const
|
|
31
|
-
this.#
|
|
32
|
-
this.#
|
|
28
|
+
const envelope = resolveGenerationEnvelopeFromEnv(process.env, contextWindow);
|
|
29
|
+
this.#outputBudget = envelope.outputBudget;
|
|
30
|
+
this.#reasoningBudget = envelope.reasoningBudget;
|
|
33
31
|
this.#queue = [...responses];
|
|
34
32
|
}
|
|
35
33
|
get contextWindow() { return this.#contextWindow; }
|
|
36
|
-
get
|
|
37
|
-
get
|
|
34
|
+
get maxInputTokens() { return null; }
|
|
35
|
+
get maxOutputTokens() { return null; }
|
|
36
|
+
get outputBudget() { return this.#outputBudget; }
|
|
37
|
+
get reasoningBudget() { return this.#reasoningBudget; }
|
|
38
|
+
get inputCapacity() {
|
|
39
|
+
return effectiveInputCapacity({
|
|
40
|
+
contextWindow: this.#contextWindow,
|
|
41
|
+
maxInputTokens: this.maxInputTokens,
|
|
42
|
+
outputBudget: this.#outputBudget,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
38
45
|
get model() { return "mock"; }
|
|
39
46
|
// Mock's deliberately simple vocabulary defines each two content code units
|
|
40
47
|
// as one token and has no hidden request framing. This is exact for the mock,
|
|
@@ -46,11 +53,38 @@ export default class Mock {
|
|
|
46
53
|
source: "mock:chars2",
|
|
47
54
|
};
|
|
48
55
|
}
|
|
49
|
-
async
|
|
56
|
+
async assessRequestCapacity(messages, maxOutputTokens) {
|
|
57
|
+
const outputBudget = effectiveOutputBudget({
|
|
58
|
+
requested: maxOutputTokens,
|
|
59
|
+
configured: this.#outputBudget,
|
|
60
|
+
maxOutputTokens: null,
|
|
61
|
+
contextWindow: this.#contextWindow,
|
|
62
|
+
});
|
|
63
|
+
const reasoningBudget = effectiveReasoningBudget({
|
|
64
|
+
configured: this.#reasoningBudget,
|
|
65
|
+
outputBudget,
|
|
66
|
+
});
|
|
67
|
+
return assessRequestCapacity({
|
|
68
|
+
contextWindow: this.#contextWindow,
|
|
69
|
+
maxInputTokens: null,
|
|
70
|
+
maxOutputTokens: null,
|
|
71
|
+
outputBudget,
|
|
72
|
+
reasoningBudget,
|
|
73
|
+
measurement: await this.countPromptTokens(messages),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
async generate({ messages, maxOutputTokens, signal, grammar, observeRequest }) {
|
|
50
77
|
// Honor abort before consuming the queue — an aborted call makes no
|
|
51
78
|
// "wire call" and must not exhaust a queued response
|
|
52
79
|
// ({§provider-failure-normalization}).
|
|
53
80
|
signal?.throwIfAborted();
|
|
81
|
+
const capacity = await this.assessRequestCapacity(messages, maxOutputTokens);
|
|
82
|
+
if (capacity.decision === "reject") {
|
|
83
|
+
throw new ProviderError("mock", "capacity_exceeded", "Mock request exceeds its exact input capacity.", {
|
|
84
|
+
capacity,
|
|
85
|
+
extensions: { capacityStage: "preflight", capacity },
|
|
86
|
+
});
|
|
87
|
+
}
|
|
54
88
|
const settle = await observeRequest?.({ provider: "provider:mock", model: this.model });
|
|
55
89
|
const next = this.#queue.shift();
|
|
56
90
|
if (next === undefined) {
|
|
@@ -61,7 +95,7 @@ export default class Mock {
|
|
|
61
95
|
cost: { kind: "unknown", reason: "mock provider exhausted before producing a response" },
|
|
62
96
|
});
|
|
63
97
|
await settle?.(accounting);
|
|
64
|
-
throw new ProviderError("mock", "invalid_response", "Mock provider exhausted: no more queued responses", { accounting: [accounting] });
|
|
98
|
+
throw new ProviderError("mock", "invalid_response", "Mock provider exhausted: no more queued responses", { accounting: [accounting], capacity });
|
|
65
99
|
}
|
|
66
100
|
const a = next.assistant;
|
|
67
101
|
const usage = {
|
|
@@ -96,6 +130,7 @@ export default class Mock {
|
|
|
96
130
|
assistant,
|
|
97
131
|
assistantRaw: next.assistantRaw ?? null,
|
|
98
132
|
accounting: [requestAccounting],
|
|
133
|
+
capacity,
|
|
99
134
|
...(grammarEvidence !== undefined ? { grammarEvidence } : {}),
|
|
100
135
|
};
|
|
101
136
|
}
|
package/dist/Mock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mock.js","sourceRoot":"","sources":["../src/Mock.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AACxE,2CAA2C;AAG3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Mock.js","sourceRoot":"","sources":["../src/Mock.ts"],"names":[],"mappings":"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"}
|
package/dist/Pool.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Provider, ProviderResponse, ChatMessage, PromptTokenMeasurement } from "./types.ts";
|
|
1
|
+
import type { Provider, ProviderRequestCapacity, ProviderResponse, ChatMessage, PromptTokenMeasurement } from "./types.ts";
|
|
2
2
|
import { type PluginAttribution, type PluginAttributionContext } from "@plurnk/plurnk-meta";
|
|
3
3
|
export default class Pool implements Provider {
|
|
4
4
|
#private;
|
|
@@ -7,12 +7,16 @@ export default class Pool implements Provider {
|
|
|
7
7
|
constructor(backends: readonly Provider[]);
|
|
8
8
|
get model(): string;
|
|
9
9
|
get contextWindow(): number | null;
|
|
10
|
-
get
|
|
11
|
-
get
|
|
10
|
+
get maxInputTokens(): number | null;
|
|
11
|
+
get maxOutputTokens(): number | null;
|
|
12
|
+
get outputBudget(): number | null;
|
|
13
|
+
get reasoningBudget(): number | null;
|
|
14
|
+
get inputCapacity(): number | null;
|
|
12
15
|
get servedModel(): string | undefined;
|
|
13
16
|
get constrainsOutput(): boolean | undefined;
|
|
14
|
-
get
|
|
17
|
+
get requiresOutputBudget(): boolean | undefined;
|
|
15
18
|
countPromptTokens(messages: readonly ChatMessage[], signal?: AbortSignal): Promise<PromptTokenMeasurement>;
|
|
19
|
+
assessRequestCapacity(messages: readonly ChatMessage[], maxOutputTokens?: number, signal?: AbortSignal): Promise<ProviderRequestCapacity>;
|
|
16
20
|
generate(args: Parameters<Provider["generate"]>[0]): Promise<ProviderResponse>;
|
|
17
21
|
}
|
|
18
22
|
//# sourceMappingURL=Pool.d.ts.map
|
package/dist/Pool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pool.d.ts","sourceRoot":"","sources":["../src/Pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA6B,gBAAgB,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Pool.d.ts","sourceRoot":"","sources":["../src/Pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAA6B,uBAAuB,EAAE,gBAAgB,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAItJ,OAAa,EACT,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAChC,MAAM,qBAAqB,CAAC;AAwB7B,MAAM,CAAC,OAAO,OAAO,IAAK,YAAW,QAAQ;;IASzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,iBAAiB,CAAC;IAEjF,YAAY,QAAQ,EAAE,SAAS,QAAQ,EAAE,EAgCxC;IAID,IAAI,KAAK,IAAI,MAAM,CAAoC;IACvD,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAAsC;IAOxE,IAAI,cAAc,IAAI,MAAM,GAAG,IAAI,CAAsE;IACzG,IAAI,eAAe,IAAI,MAAM,GAAG,IAAI,CAAuE;IAC3G,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAAoE;IACrG,IAAI,eAAe,IAAI,MAAM,GAAG,IAAI,CAAuE;IAC3G,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAAqE;IAKvG,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAGpC;IACD,IAAI,gBAAgB,IAAI,OAAO,GAAG,SAAS,CAE1C;IACD,IAAI,oBAAoB,IAAI,OAAO,GAAG,SAAS,CAE9C;IAEK,iBAAiB,CACnB,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,sBAAsB,CAAC,CAoCjC;IAEK,qBAAqB,CACvB,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,eAAe,CAAC,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,uBAAuB,CAAC,CAqClC;IAGK,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkCnF;CAsBJ"}
|
package/dist/Pool.js
CHANGED
|
@@ -2,6 +2,7 @@ import { ProviderError } from "./errors.js";
|
|
|
2
2
|
import { emitWarningOnce } from "./warnings.js";
|
|
3
3
|
import { assertPromptTokenMeasurement } from "./promptTokens.js";
|
|
4
4
|
import Meta from "@plurnk/plurnk-meta";
|
|
5
|
+
import { effectiveInputCapacity, effectiveOutputBudget, effectiveReasoningBudget, requestCapacityDecision } from "./capacity.js";
|
|
5
6
|
// A backend-AVAILABILITY failure: the sub-provider already exhausted its OWN
|
|
6
7
|
// transient retries before throwing one of these, so re-hitting the same
|
|
7
8
|
// backend is pointless - a sibling may still serve, so the pool overflows to it.
|
|
@@ -27,7 +28,7 @@ export default class Pool {
|
|
|
27
28
|
#affinity = new Map(); // workerId -> backend index; sticky, LRU-bounded
|
|
28
29
|
#cap; // LRU ceiling on the affinity map
|
|
29
30
|
#next = 0; // round-robin cursor for NEW workers
|
|
30
|
-
#floor; // the min-window backend: the safe
|
|
31
|
+
#floor; // the min-window backend: the safe context floor
|
|
31
32
|
// Optional exact tokenizer: present iff every backend exposes one (same
|
|
32
33
|
// vocab, since interchangeable). Delegated; absent when the fleet can't.
|
|
33
34
|
tokenize;
|
|
@@ -45,9 +46,9 @@ export default class Pool {
|
|
|
45
46
|
this.#backends = backends;
|
|
46
47
|
this.#cap = backends.length * 8;
|
|
47
48
|
// The exposed window is the SAFE FLOOR across backends (a packet that fits the
|
|
48
|
-
// smallest fits all)
|
|
49
|
-
//
|
|
50
|
-
//
|
|
49
|
+
// smallest fits all). Every other capacity fact aggregates independently
|
|
50
|
+
// below. ANY unknown (null) window makes the pool null - a worker might
|
|
51
|
+
// route to it, and the consumer must not improvise a cap
|
|
51
52
|
// ({§model-fact-resolution}).
|
|
52
53
|
const anyUnknown = backends.find((b) => b.contextWindow === null);
|
|
53
54
|
this.#floor = anyUnknown ?? backends.reduce((lo, b) => (b.contextWindow < lo.contextWindow ? b : lo));
|
|
@@ -64,11 +65,20 @@ export default class Pool {
|
|
|
64
65
|
// --- Provider surface: interchangeable backends collapse to one honest face ---
|
|
65
66
|
get model() { return this.#backends[0].model; }
|
|
66
67
|
get contextWindow() { return this.#floor.contextWindow; }
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
#minimumKnown(project) {
|
|
69
|
+
const values = this.#backends.map(project);
|
|
70
|
+
return values.some((value) => value === null)
|
|
71
|
+
? null
|
|
72
|
+
: Math.min(...values);
|
|
73
|
+
}
|
|
74
|
+
get maxInputTokens() { return this.#minimumKnown((provider) => provider.maxInputTokens); }
|
|
75
|
+
get maxOutputTokens() { return this.#minimumKnown((provider) => provider.maxOutputTokens); }
|
|
76
|
+
get outputBudget() { return this.#minimumKnown((provider) => provider.outputBudget); }
|
|
77
|
+
get reasoningBudget() { return this.#minimumKnown((provider) => provider.reasoningBudget); }
|
|
78
|
+
get inputCapacity() { return this.#minimumKnown((provider) => provider.inputCapacity); }
|
|
69
79
|
// Served id / capabilities aggregate CONSERVATIVELY: a worker could land on any
|
|
70
80
|
// backend, so claim `constrainsOutput` only if EVERY backend does, and
|
|
71
|
-
// `
|
|
81
|
+
// `requiresOutputBudget` if ANY does (bring a cap if even one backend needs it).
|
|
72
82
|
get servedModel() {
|
|
73
83
|
const s = this.#backends[0].servedModel;
|
|
74
84
|
return this.#backends.every((b) => b.servedModel === s) ? s : undefined;
|
|
@@ -76,13 +86,22 @@ export default class Pool {
|
|
|
76
86
|
get constrainsOutput() {
|
|
77
87
|
return this.#backends.every((b) => b.constrainsOutput === true) ? true : undefined;
|
|
78
88
|
}
|
|
79
|
-
get
|
|
80
|
-
return this.#backends.some((b) => b.
|
|
89
|
+
get requiresOutputBudget() {
|
|
90
|
+
return this.#backends.some((b) => b.requiresOutputBudget === true) ? true : undefined;
|
|
81
91
|
}
|
|
82
92
|
async countPromptTokens(messages, signal) {
|
|
83
93
|
const measurements = await Promise.all(this.#backends.map(async (backend) => assertPromptTokenMeasurement(await backend.countPromptTokens(messages, signal), `Pool backend ${backend.model}`)));
|
|
84
|
-
const tokens = Math.max(...measurements.map((measurement) => measurement.tokens));
|
|
85
94
|
const sources = [...new Set(measurements.map(({ source }) => source))].join(",");
|
|
95
|
+
const unavailable = measurements.find((measurement) => measurement.kind === "unavailable");
|
|
96
|
+
if (unavailable?.kind === "unavailable") {
|
|
97
|
+
return {
|
|
98
|
+
kind: "unavailable",
|
|
99
|
+
source: `pool:${sources}`,
|
|
100
|
+
detail: `at least one interchangeable backend cannot measure the request: ${unavailable.detail}`,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const available = measurements.filter((measurement) => measurement.kind !== "unavailable");
|
|
104
|
+
const tokens = Math.max(...available.map((measurement) => measurement.tokens));
|
|
86
105
|
const estimate = measurements.find((measurement) => measurement.kind === "estimate");
|
|
87
106
|
if (estimate?.kind === "estimate") {
|
|
88
107
|
return {
|
|
@@ -92,14 +111,51 @@ export default class Pool {
|
|
|
92
111
|
detail: `at least one interchangeable backend has only an estimate: ${estimate.detail}`,
|
|
93
112
|
};
|
|
94
113
|
}
|
|
95
|
-
const exact =
|
|
96
|
-
&&
|
|
114
|
+
const exact = available.every((measurement) => measurement.kind === "exact")
|
|
115
|
+
&& available.every((measurement) => measurement.tokens === tokens);
|
|
97
116
|
return {
|
|
98
117
|
kind: exact ? "exact" : "upper_bound",
|
|
99
118
|
tokens,
|
|
100
119
|
source: `pool:${sources}`,
|
|
101
120
|
};
|
|
102
121
|
}
|
|
122
|
+
async assessRequestCapacity(messages, maxOutputTokens, signal) {
|
|
123
|
+
const envelopes = this.#backends.map((provider) => {
|
|
124
|
+
const outputBudget = effectiveOutputBudget({
|
|
125
|
+
requested: maxOutputTokens,
|
|
126
|
+
configured: provider.outputBudget,
|
|
127
|
+
maxOutputTokens: provider.maxOutputTokens,
|
|
128
|
+
contextWindow: provider.contextWindow,
|
|
129
|
+
});
|
|
130
|
+
return {
|
|
131
|
+
outputBudget,
|
|
132
|
+
reasoningBudget: effectiveReasoningBudget({
|
|
133
|
+
configured: provider.reasoningBudget,
|
|
134
|
+
outputBudget,
|
|
135
|
+
}),
|
|
136
|
+
inputCapacity: effectiveInputCapacity({
|
|
137
|
+
contextWindow: provider.contextWindow,
|
|
138
|
+
maxInputTokens: provider.maxInputTokens,
|
|
139
|
+
outputBudget,
|
|
140
|
+
}),
|
|
141
|
+
};
|
|
142
|
+
});
|
|
143
|
+
const minimum = (values) => values.some((value) => value === null)
|
|
144
|
+
? null
|
|
145
|
+
: Math.min(...values);
|
|
146
|
+
const measurement = await this.countPromptTokens(messages, signal);
|
|
147
|
+
const inputCapacity = minimum(envelopes.map((envelope) => envelope.inputCapacity));
|
|
148
|
+
return {
|
|
149
|
+
decision: requestCapacityDecision(inputCapacity, measurement),
|
|
150
|
+
contextWindow: this.contextWindow,
|
|
151
|
+
maxInputTokens: this.maxInputTokens,
|
|
152
|
+
maxOutputTokens: this.maxOutputTokens,
|
|
153
|
+
outputBudget: minimum(envelopes.map((envelope) => envelope.outputBudget)),
|
|
154
|
+
reasoningBudget: minimum(envelopes.map((envelope) => envelope.reasoningBudget)),
|
|
155
|
+
inputCapacity,
|
|
156
|
+
prompt: measurement,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
103
159
|
// --- dispatch ---
|
|
104
160
|
async generate(args) {
|
|
105
161
|
const { workerId, signal } = args;
|
package/dist/Pool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pool.js","sourceRoot":"","sources":["../src/Pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAA0B,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,IAGN,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Pool.js","sourceRoot":"","sources":["../src/Pool.ts"],"names":[],"mappings":"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"}
|
package/dist/accounting.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounting.d.ts","sourceRoot":"","sources":["../src/accounting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,kBAAkB,
|
|
1
|
+
{"version":3,"file":"accounting.d.ts","sourceRoot":"","sources":["../src/accounting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EAE5B,MAAM,YAAY,CAAC;AA+EpB,eAAO,MAAM,oBAAoB,EAAE,sBAGlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,eACnB,MAAM,KACnB,sBAAsB,GAAG,SAO3B,CAAC;AAEF,eAAO,MAAM,iCAAiC,UACnC,OAAO,KACf,yBAmBF,CAAC;AAcF,eAAO,MAAM,2BAA2B,WAC5B,SAAS,yBAAyB,EAAE,KAC7C,kBAkDF,CAAC"}
|
package/dist/accounting.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounting.js","sourceRoot":"","sources":["../src/accounting.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accounting.js","sourceRoot":"","sources":["../src/accounting.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { aggregateProviderAccounting } from "./accounting.ts";
|
|
2
|
+
export { estimateProviderCost } from "./cost.ts";
|
|
3
|
+
export type { ProviderAccounting, ProviderCost, ProviderRequestAccounting, ProviderUsage, } from "./types.ts";
|
|
4
|
+
export type { TokenRates } from "./usage.ts";
|
|
5
|
+
//# sourceMappingURL=accountingPublic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountingPublic.d.ts","sourceRoot":"","sources":["../src/accountingPublic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EACR,kBAAkB,EAClB,YAAY,EACZ,yBAAyB,EACzB,aAAa,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountingPublic.js","sourceRoot":"","sources":["../src/accountingPublic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { PromptTokenMeasurement, ProviderRequestCapacity } from "./types.ts";
|
|
2
|
+
export declare const effectiveOutputBudget: ({ requested, configured, maxOutputTokens, contextWindow, }: {
|
|
3
|
+
requested?: number;
|
|
4
|
+
configured: number | null;
|
|
5
|
+
maxOutputTokens: number | null;
|
|
6
|
+
contextWindow: number | null;
|
|
7
|
+
}) => number | null;
|
|
8
|
+
export declare const effectiveReasoningBudget: ({ configured, outputBudget, }: {
|
|
9
|
+
configured: number | null;
|
|
10
|
+
outputBudget: number | null;
|
|
11
|
+
}) => number | null;
|
|
12
|
+
export declare const effectiveInputCapacity: ({ contextWindow, maxInputTokens, outputBudget, }: {
|
|
13
|
+
contextWindow: number | null;
|
|
14
|
+
maxInputTokens: number | null;
|
|
15
|
+
outputBudget: number | null;
|
|
16
|
+
}) => number | null;
|
|
17
|
+
export declare const requestCapacityDecision: (inputCapacity: number | null, measurement: PromptTokenMeasurement) => ProviderRequestCapacity["decision"];
|
|
18
|
+
export declare const assessRequestCapacity: ({ contextWindow, maxInputTokens, maxOutputTokens, outputBudget, reasoningBudget, measurement, }: {
|
|
19
|
+
contextWindow: number | null;
|
|
20
|
+
maxInputTokens: number | null;
|
|
21
|
+
maxOutputTokens: number | null;
|
|
22
|
+
outputBudget: number | null;
|
|
23
|
+
reasoningBudget: number | null;
|
|
24
|
+
measurement: PromptTokenMeasurement;
|
|
25
|
+
}) => ProviderRequestCapacity;
|
|
26
|
+
//# sourceMappingURL=capacity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capacity.d.ts","sourceRoot":"","sources":["../src/capacity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,sBAAsB,EACtB,uBAAuB,EAC1B,MAAM,YAAY,CAAC;AAWpB,eAAO,MAAM,qBAAqB,+DAK/B;IACC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,KAAG,MAAM,GAAG,IAWZ,CAAC;AAEF,eAAO,MAAM,wBAAwB,kCAGlC;IACC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,KAAG,MAAM,GAAG,IAWZ,CAAC;AAEF,eAAO,MAAM,sBAAsB,qDAIhC;IACC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,KAAG,MAAM,GAAG,IAiBZ,CAAC;AAEF,eAAO,MAAM,uBAAuB,kBACjB,MAAM,GAAG,IAAI,eACf,sBAAsB,KACpC,uBAAuB,CAAC,UAAU,CAcpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,oGAO/B;IACC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,sBAAsB,CAAC;CACvC,KAAG,uBAuBH,CAAC"}
|
package/dist/capacity.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { assertPromptTokenMeasurement } from "./promptTokens.js";
|
|
2
|
+
const positiveOrNull = (value, name) => {
|
|
3
|
+
if (value === null)
|
|
4
|
+
return null;
|
|
5
|
+
if (!Number.isSafeInteger(value) || value <= 0) {
|
|
6
|
+
throw new TypeError(`${name} must be a positive safe integer or null`);
|
|
7
|
+
}
|
|
8
|
+
return value;
|
|
9
|
+
};
|
|
10
|
+
export const effectiveOutputBudget = ({ requested, configured, maxOutputTokens, contextWindow, }) => {
|
|
11
|
+
if (requested !== undefined && (!Number.isSafeInteger(requested) || requested <= 0)) {
|
|
12
|
+
throw new TypeError("maxOutputTokens must be a positive safe integer");
|
|
13
|
+
}
|
|
14
|
+
const policies = [requested ?? null, configured].filter((value) => value !== null);
|
|
15
|
+
if (policies.length === 0)
|
|
16
|
+
return null;
|
|
17
|
+
const physical = [
|
|
18
|
+
positiveOrNull(maxOutputTokens, "maxOutputTokens"),
|
|
19
|
+
positiveOrNull(contextWindow, "contextWindow"),
|
|
20
|
+
].filter((value) => value !== null);
|
|
21
|
+
return Math.min(...policies, ...physical);
|
|
22
|
+
};
|
|
23
|
+
export const effectiveReasoningBudget = ({ configured, outputBudget, }) => {
|
|
24
|
+
positiveOrNull(configured, "reasoningBudget");
|
|
25
|
+
positiveOrNull(outputBudget, "outputBudget");
|
|
26
|
+
if (configured === null)
|
|
27
|
+
return null;
|
|
28
|
+
if (outputBudget === null) {
|
|
29
|
+
throw new TypeError("a reasoning budget requires a resolved total output budget");
|
|
30
|
+
}
|
|
31
|
+
if (outputBudget < 2) {
|
|
32
|
+
throw new TypeError("maxOutputTokens must leave at least one token outside the reasoning budget");
|
|
33
|
+
}
|
|
34
|
+
return Math.min(configured, outputBudget - 1);
|
|
35
|
+
};
|
|
36
|
+
export const effectiveInputCapacity = ({ contextWindow, maxInputTokens, outputBudget, }) => {
|
|
37
|
+
positiveOrNull(contextWindow, "contextWindow");
|
|
38
|
+
positiveOrNull(maxInputTokens, "maxInputTokens");
|
|
39
|
+
positiveOrNull(outputBudget, "outputBudget");
|
|
40
|
+
const combinedCapacity = contextWindow !== null && outputBudget !== null
|
|
41
|
+
? contextWindow - outputBudget
|
|
42
|
+
: null;
|
|
43
|
+
if (combinedCapacity !== null && combinedCapacity <= 0) {
|
|
44
|
+
throw new TypeError(`outputBudget (${outputBudget}) must leave positive input capacity inside contextWindow (${contextWindow})`);
|
|
45
|
+
}
|
|
46
|
+
const capacities = [
|
|
47
|
+
maxInputTokens,
|
|
48
|
+
combinedCapacity,
|
|
49
|
+
].filter((value) => value !== null);
|
|
50
|
+
return capacities.length === 0 ? null : Math.min(...capacities);
|
|
51
|
+
};
|
|
52
|
+
export const requestCapacityDecision = (inputCapacity, measurement) => {
|
|
53
|
+
const prompt = assertPromptTokenMeasurement(measurement, "provider capacity");
|
|
54
|
+
// An upper bound can prove fit when it is below the limit, but exceeding
|
|
55
|
+
// the limit proves nothing about the unknown exact count. Estimates never
|
|
56
|
+
// authorize or reject; the provider remains the capacity oracle.
|
|
57
|
+
return inputCapacity === null
|
|
58
|
+
|| prompt.kind === "estimate"
|
|
59
|
+
|| prompt.kind === "unavailable"
|
|
60
|
+
? "defer"
|
|
61
|
+
: prompt.tokens <= inputCapacity
|
|
62
|
+
? "admit"
|
|
63
|
+
: prompt.kind === "exact"
|
|
64
|
+
? "reject"
|
|
65
|
+
: "defer";
|
|
66
|
+
};
|
|
67
|
+
export const assessRequestCapacity = ({ contextWindow, maxInputTokens, maxOutputTokens, outputBudget, reasoningBudget, measurement, }) => {
|
|
68
|
+
positiveOrNull(contextWindow, "contextWindow");
|
|
69
|
+
positiveOrNull(maxInputTokens, "maxInputTokens");
|
|
70
|
+
positiveOrNull(maxOutputTokens, "maxOutputTokens");
|
|
71
|
+
positiveOrNull(outputBudget, "outputBudget");
|
|
72
|
+
positiveOrNull(reasoningBudget, "reasoningBudget");
|
|
73
|
+
if (reasoningBudget !== null
|
|
74
|
+
&& (outputBudget === null || reasoningBudget >= outputBudget)) {
|
|
75
|
+
throw new TypeError("reasoningBudget must be a strict subset of outputBudget");
|
|
76
|
+
}
|
|
77
|
+
const prompt = assertPromptTokenMeasurement(measurement, "provider capacity");
|
|
78
|
+
const inputCapacity = effectiveInputCapacity({ contextWindow, maxInputTokens, outputBudget });
|
|
79
|
+
return {
|
|
80
|
+
decision: requestCapacityDecision(inputCapacity, prompt),
|
|
81
|
+
contextWindow,
|
|
82
|
+
maxInputTokens,
|
|
83
|
+
maxOutputTokens,
|
|
84
|
+
outputBudget,
|
|
85
|
+
reasoningBudget,
|
|
86
|
+
inputCapacity,
|
|
87
|
+
prompt,
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=capacity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capacity.js","sourceRoot":"","sources":["../src/capacity.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAE,IAAY,EAAiB,EAAE;IACzE,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,0CAA0C,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAClC,SAAS,EACT,UAAU,EACV,eAAe,EACf,aAAa,GAMhB,EAAiB,EAAE;IAChB,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC;QAClF,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACpG,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,QAAQ,GAAG;QACb,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;QAClD,cAAc,CAAC,aAAa,EAAE,eAAe,CAAC;KACjD,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACrC,UAAU,EACV,YAAY,GAIf,EAAiB,EAAE;IAChB,cAAc,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC9C,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7C,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,SAAS,CAAC,4EAA4E,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACnC,aAAa,EACb,cAAc,EACd,YAAY,GAKf,EAAiB,EAAE;IAChB,cAAc,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAC/C,cAAc,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACjD,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,aAAa,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI;QACpE,CAAC,CAAC,aAAa,GAAG,YAAY;QAC9B,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,SAAS,CACf,iBAAiB,YAAY,8DAA8D,aAAa,GAAG,CAC9G,CAAC;IACN,CAAC;IACD,MAAM,UAAU,GAAG;QACf,cAAc;QACd,gBAAgB;KACnB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACrD,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACnC,aAA4B,EAC5B,WAAmC,EACA,EAAE;IACrC,MAAM,MAAM,GAAG,4BAA4B,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC9E,yEAAyE;IACzE,0EAA0E;IAC1E,iEAAiE;IACjE,OAAO,aAAa,KAAK,IAAI;WACtB,MAAM,CAAC,IAAI,KAAK,UAAU;WAC1B,MAAM,CAAC,IAAI,KAAK,aAAa;QAChC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,aAAa;YAC5B,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;gBACrB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,OAAO,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAClC,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,EACZ,eAAe,EACf,WAAW,GAQd,EAA2B,EAAE;IAC1B,cAAc,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAC/C,cAAc,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACjD,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACnD,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7C,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACnD,IAAI,eAAe,KAAK,IAAI;WACrB,CAAC,YAAY,KAAK,IAAI,IAAI,eAAe,IAAI,YAAY,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,MAAM,GAAG,4BAA4B,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,sBAAsB,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;IAE9F,OAAO;QACH,QAAQ,EAAE,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC;QACxD,aAAa;QACb,cAAc;QACd,eAAe;QACf,YAAY;QACZ,eAAe;QACf,aAAa;QACb,MAAM;KACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -3,7 +3,7 @@ import type { Provider, ProviderCostNormalizer } from "./types.ts";
|
|
|
3
3
|
import type { LanguageModel } from "ai";
|
|
4
4
|
import type { AiSdkProviderOptions, CacheAffinity } from "./AiSdkProvider.ts";
|
|
5
5
|
import type { PluginAttribution, PluginAttributionContext } from "@plurnk/plurnk-meta";
|
|
6
|
-
export declare const providerFromSdkModel: ({ name, env, model, languageModel, normalizeCost, url, headers, contextWindow, info, attributions, cacheAffinity, systemCacheProviderOptions, reasoningResponseProviderOptions, }: {
|
|
6
|
+
export declare const providerFromSdkModel: ({ name, env, model, languageModel, normalizeCost, url, headers, contextWindow, info, attributions, cacheAffinity, systemCacheProviderOptions, reasoningResponseProviderOptions, additiveReasoningProvider, }: {
|
|
7
7
|
name: string;
|
|
8
8
|
env: NodeJS.ProcessEnv;
|
|
9
9
|
model: string;
|
|
@@ -17,6 +17,7 @@ export declare const providerFromSdkModel: ({ name, env, model, languageModel, n
|
|
|
17
17
|
cacheAffinity?: CacheAffinity;
|
|
18
18
|
systemCacheProviderOptions?: AiSdkProviderOptions;
|
|
19
19
|
reasoningResponseProviderOptions?: AiSdkProviderOptions;
|
|
20
|
+
additiveReasoningProvider?: "anthropic" | "bedrock";
|
|
20
21
|
}) => Provider;
|
|
21
22
|
export declare const catalogProviderFromEnv: (name: string, env: NodeJS.ProcessEnv, model: string, baseUrlOverride?: string) => Provider | null;
|
|
22
23
|
//# sourceMappingURL=catalogProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalogProvider.d.ts","sourceRoot":"","sources":["../src/catalogProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"catalogProvider.d.ts","sourceRoot":"","sources":["../src/catalogProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAiBrF,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAmBvF,eAAO,MAAM,oBAAoB,iNAe9B;IACC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,iBAAiB,CAAC;IACxE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,0BAA0B,CAAC,EAAE,oBAAoB,CAAC;IAClD,gCAAgC,CAAC,EAAE,oBAAoB,CAAC;IACxD,yBAAyB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACvD,KAAG,QA6EH,CAAC;AAEF,eAAO,MAAM,sBAAsB,SACzB,MAAM,OACP,MAAM,CAAC,UAAU,SACf,MAAM,oBACK,MAAM,KACzB,QAAQ,GAAG,IAoCb,CAAC"}
|