@deepthonk/providers 0.1.3 → 0.1.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/README.md +22 -10
- package/dist/defaults.d.ts +9 -0
- package/dist/defaults.js +16 -7
- package/dist/defaults.js.map +1 -1
- package/dist/externalConfig.d.ts +63 -0
- package/dist/externalConfig.js +266 -0
- package/dist/externalConfig.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/openaiCompatible.d.ts +4 -0
- package/dist/openaiCompatible.js +255 -88
- package/dist/openaiCompatible.js.map +1 -1
- package/dist/pricing.js +2 -2
- package/dist/pricing.js.map +1 -1
- package/dist/profileRegistry.js +5 -2
- package/dist/profileRegistry.js.map +1 -1
- package/dist/providerReplay.d.ts +279 -0
- package/dist/providerReplay.js +184 -0
- package/dist/providerReplay.js.map +1 -0
- package/dist/registry.d.ts +2 -0
- package/dist/registry.js +41 -3
- package/dist/registry.js.map +1 -1
- package/dist/sampling.js +58 -11
- package/dist/sampling.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/package.json +2 -2
package/dist/sampling.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ProviderError } from "@deepthonk/core";
|
|
2
2
|
import { extractJsonObjectText } from "./jsonExtract.js";
|
|
3
3
|
const DEFAULT_SAMPLING_TIMEOUT_MS = 60_000;
|
|
4
|
+
const DEFAULT_SAMPLING_RESPONSE_LIMIT_BYTES = 1024 * 1024;
|
|
5
|
+
const DEFAULT_OUTPUT_TOKENS = 4096;
|
|
6
|
+
const DEFAULT_JUDGE_OUTPUT_TOKENS = 1024;
|
|
4
7
|
export class SamplingDriver {
|
|
5
8
|
createMessage;
|
|
6
9
|
config;
|
|
@@ -10,19 +13,23 @@ export class SamplingDriver {
|
|
|
10
13
|
this.config = config;
|
|
11
14
|
}
|
|
12
15
|
async generate(input) {
|
|
13
|
-
|
|
16
|
+
const controls = requestControls(input);
|
|
17
|
+
return this.sample(input.model, input.temperature, promptMessages(input.prompt), controls.maxOutputTokens ?? DEFAULT_OUTPUT_TOKENS, controls.signal);
|
|
14
18
|
}
|
|
15
19
|
async compare(input) {
|
|
16
|
-
const
|
|
20
|
+
const controls = requestControls(input);
|
|
21
|
+
const result = await this.sample(input.model, input.temperature, promptMessages(input.prompt), controls.maxOutputTokens ?? DEFAULT_JUDGE_OUTPUT_TOKENS, controls.signal);
|
|
17
22
|
return { ...result, text: extractJsonTextOrOriginal(result.text) };
|
|
18
23
|
}
|
|
19
24
|
async mutate(input) {
|
|
20
|
-
|
|
25
|
+
const controls = requestControls(input);
|
|
26
|
+
return this.sample(input.model, input.temperature, promptMessages(input.prompt), controls.maxOutputTokens ?? DEFAULT_OUTPUT_TOKENS, controls.signal);
|
|
21
27
|
}
|
|
22
28
|
async finalize(input) {
|
|
23
|
-
|
|
29
|
+
const controls = requestControls(input);
|
|
30
|
+
return this.sample(input.model, 0.2, promptMessages(input.prompt), controls.maxOutputTokens ?? DEFAULT_OUTPUT_TOKENS, controls.signal);
|
|
24
31
|
}
|
|
25
|
-
async sample(model, temperature, prompt) {
|
|
32
|
+
async sample(model, temperature, prompt, maxOutputTokens, signal) {
|
|
26
33
|
const started = Date.now();
|
|
27
34
|
const result = await this.callCreateMessage({
|
|
28
35
|
messages: prompt.user.trim()
|
|
@@ -40,8 +47,8 @@ export class SamplingDriver {
|
|
|
40
47
|
modelPreferences: buildModelPreferences(model, this.config),
|
|
41
48
|
includeContext: "none",
|
|
42
49
|
temperature,
|
|
43
|
-
maxTokens:
|
|
44
|
-
});
|
|
50
|
+
maxTokens: maxOutputTokens
|
|
51
|
+
}, signal);
|
|
45
52
|
if (result.stopReason === "maxTokens") {
|
|
46
53
|
throw new ProviderError("MCP Sampling response was truncated by maxTokens.", {
|
|
47
54
|
code: "provider.output_truncated",
|
|
@@ -50,6 +57,13 @@ export class SamplingDriver {
|
|
|
50
57
|
});
|
|
51
58
|
}
|
|
52
59
|
const text = textContent(result);
|
|
60
|
+
if (Buffer.byteLength(text, "utf8") > DEFAULT_SAMPLING_RESPONSE_LIMIT_BYTES) {
|
|
61
|
+
throw new ProviderError(`MCP Sampling response exceeded the ${DEFAULT_SAMPLING_RESPONSE_LIMIT_BYTES}-byte body limit.`, {
|
|
62
|
+
code: "provider.response_too_large",
|
|
63
|
+
retryable: false,
|
|
64
|
+
fix: "Use a host model with bounded text responses or reduce the requested output size."
|
|
65
|
+
});
|
|
66
|
+
}
|
|
53
67
|
return {
|
|
54
68
|
text,
|
|
55
69
|
model: result.model ?? model,
|
|
@@ -63,10 +77,10 @@ export class SamplingDriver {
|
|
|
63
77
|
raw: this.config.includeRawOutputs ? result : undefined
|
|
64
78
|
};
|
|
65
79
|
}
|
|
66
|
-
async callCreateMessage(params) {
|
|
80
|
+
async callCreateMessage(params, signal) {
|
|
67
81
|
const timeoutMs = this.config.requestTimeoutMs ?? DEFAULT_SAMPLING_TIMEOUT_MS;
|
|
68
82
|
try {
|
|
69
|
-
return await callWithTimeout(this.createMessage, params, timeoutMs);
|
|
83
|
+
return await callWithTimeout(this.createMessage, params, timeoutMs, signal);
|
|
70
84
|
}
|
|
71
85
|
catch (error) {
|
|
72
86
|
if (error instanceof SamplingTimeoutError) {
|
|
@@ -76,6 +90,13 @@ export class SamplingDriver {
|
|
|
76
90
|
fix: "Increase retry.requestTimeoutMs, switch to a direct provider, or check the MCP host responsiveness. Use 'deepthonk resume <run-dir> --continue' to retry an interrupted run."
|
|
77
91
|
});
|
|
78
92
|
}
|
|
93
|
+
if (signal?.aborted) {
|
|
94
|
+
throw new ProviderError("MCP Sampling request was aborted.", {
|
|
95
|
+
code: "provider.aborted",
|
|
96
|
+
retryable: false,
|
|
97
|
+
fix: "Retry the run if the cancellation was unintended."
|
|
98
|
+
});
|
|
99
|
+
}
|
|
79
100
|
throw new ProviderError(`MCP Sampling request failed: ${error instanceof Error ? error.message : String(error)}`, {
|
|
80
101
|
code: "provider.sampling_request_failed",
|
|
81
102
|
retryable: false,
|
|
@@ -92,8 +113,13 @@ class SamplingTimeoutError extends Error {
|
|
|
92
113
|
this.name = "SamplingTimeoutError";
|
|
93
114
|
}
|
|
94
115
|
}
|
|
95
|
-
async function callWithTimeout(fn, params, timeoutMs) {
|
|
116
|
+
async function callWithTimeout(fn, params, timeoutMs, inputSignal) {
|
|
96
117
|
const controller = new AbortController();
|
|
118
|
+
const onInputAbort = () => controller.abort(inputSignal?.reason);
|
|
119
|
+
if (inputSignal?.aborted)
|
|
120
|
+
controller.abort(inputSignal.reason);
|
|
121
|
+
else
|
|
122
|
+
inputSignal?.addEventListener("abort", onInputAbort, { once: true });
|
|
97
123
|
let timer;
|
|
98
124
|
const timeoutPromise = new Promise((_, reject) => {
|
|
99
125
|
timer = setTimeout(() => {
|
|
@@ -101,12 +127,30 @@ async function callWithTimeout(fn, params, timeoutMs) {
|
|
|
101
127
|
reject(new SamplingTimeoutError(timeoutMs));
|
|
102
128
|
}, timeoutMs);
|
|
103
129
|
});
|
|
130
|
+
let rejectOnAbort;
|
|
131
|
+
const abortPromise = inputSignal
|
|
132
|
+
? new Promise((_, reject) => {
|
|
133
|
+
if (inputSignal.aborted) {
|
|
134
|
+
reject(inputSignal.reason ?? new DOMException("Aborted", "AbortError"));
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
rejectOnAbort = () => reject(inputSignal.reason ?? new DOMException("Aborted", "AbortError"));
|
|
138
|
+
inputSignal.addEventListener("abort", rejectOnAbort, { once: true });
|
|
139
|
+
})
|
|
140
|
+
: undefined;
|
|
104
141
|
try {
|
|
105
|
-
return await Promise.race([
|
|
142
|
+
return await Promise.race([
|
|
143
|
+
fn(params, { signal: controller.signal, timeout: timeoutMs }),
|
|
144
|
+
timeoutPromise,
|
|
145
|
+
...(abortPromise ? [abortPromise] : [])
|
|
146
|
+
]);
|
|
106
147
|
}
|
|
107
148
|
finally {
|
|
108
149
|
if (timer)
|
|
109
150
|
clearTimeout(timer);
|
|
151
|
+
inputSignal?.removeEventListener("abort", onInputAbort);
|
|
152
|
+
if (rejectOnAbort)
|
|
153
|
+
inputSignal?.removeEventListener("abort", rejectOnAbort);
|
|
110
154
|
}
|
|
111
155
|
}
|
|
112
156
|
export function buildModelPreferences(roleModel, config) {
|
|
@@ -156,4 +200,7 @@ function uniqueNonEmpty(values) {
|
|
|
156
200
|
}
|
|
157
201
|
return unique;
|
|
158
202
|
}
|
|
203
|
+
function requestControls(input) {
|
|
204
|
+
return input;
|
|
205
|
+
}
|
|
159
206
|
//# sourceMappingURL=sampling.js.map
|
package/dist/sampling.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sampling.js","sourceRoot":"","sources":["../src/sampling.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAQd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAWzD,MAAM,2BAA2B,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sampling.js","sourceRoot":"","sources":["../src/sampling.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -10,11 +10,14 @@ export interface RoleProviderConfig {
|
|
|
10
10
|
retry?: {
|
|
11
11
|
httpRetries?: number;
|
|
12
12
|
requestTimeoutMs?: number;
|
|
13
|
+
responseBodyLimitBytes?: number;
|
|
14
|
+
maxRetryDelayMs?: number;
|
|
13
15
|
};
|
|
14
16
|
supportsJsonMode?: boolean;
|
|
15
17
|
}
|
|
16
18
|
export interface BaseProviderConfig extends SamplingDriverConfig {
|
|
17
19
|
provider: "fake" | "openai-compatible" | "deepseek" | string;
|
|
20
|
+
routeFingerprint?: string;
|
|
18
21
|
baseUrl?: string;
|
|
19
22
|
apiKeyEnv?: string;
|
|
20
23
|
apiKey?: string;
|
|
@@ -28,6 +31,8 @@ export interface BaseProviderConfig extends SamplingDriverConfig {
|
|
|
28
31
|
retry?: {
|
|
29
32
|
httpRetries?: number;
|
|
30
33
|
requestTimeoutMs?: number;
|
|
34
|
+
responseBodyLimitBytes?: number;
|
|
35
|
+
maxRetryDelayMs?: number;
|
|
31
36
|
};
|
|
32
37
|
supportsJsonMode?: boolean;
|
|
33
38
|
roleProviders?: Partial<Record<ProviderRole, RoleProviderConfig>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepthonk/providers",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Provider drivers and routing for DeepThonk.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Xule Lin",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
36
36
|
"yaml": "^2.7.1",
|
|
37
37
|
"zod": "^3.25.28",
|
|
38
|
-
"@deepthonk/core": "0.1.
|
|
38
|
+
"@deepthonk/core": "0.1.5"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "tsc -p tsconfig.json",
|