@deepthonk/providers 0.1.5 → 0.2.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/dist/sampling.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { ProviderError } from "@deepthonk/core";
2
2
  import { extractJsonObjectText } from "./jsonExtract.js";
3
+ import { getSharedRouteLimiter } from "./routeLimiter.js";
3
4
  const DEFAULT_SAMPLING_TIMEOUT_MS = 60_000;
4
5
  const DEFAULT_SAMPLING_RESPONSE_LIMIT_BYTES = 1024 * 1024;
5
6
  const DEFAULT_OUTPUT_TOKENS = 4096;
@@ -7,89 +8,88 @@ const DEFAULT_JUDGE_OUTPUT_TOKENS = 1024;
7
8
  export class SamplingDriver {
8
9
  createMessage;
9
10
  config;
10
- maxConcurrency = 4;
11
+ routeLimiter;
11
12
  constructor(createMessage, config = {}) {
12
13
  this.createMessage = createMessage;
13
14
  this.config = config;
15
+ this.routeLimiter = getSharedRouteLimiter({
16
+ provider: "sampling",
17
+ models: { generator: "sampling", mutator: "sampling", judge: "sampling" },
18
+ providerMaxConcurrency: config.providerMaxConcurrency
19
+ });
14
20
  }
15
21
  async generate(input) {
16
- const controls = requestControls(input);
17
- return this.sample(input.model, input.temperature, promptMessages(input.prompt), controls.maxOutputTokens ?? DEFAULT_OUTPUT_TOKENS, controls.signal);
22
+ return this.sample(input.model, input.temperature, promptMessages(input.prompt), input.maxOutputTokens ?? DEFAULT_OUTPUT_TOKENS, input.signal);
18
23
  }
19
24
  async compare(input) {
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);
25
+ const result = await this.sample(input.model, input.temperature, promptMessages(input.prompt), input.maxOutputTokens ?? DEFAULT_JUDGE_OUTPUT_TOKENS, input.signal);
22
26
  return { ...result, text: extractJsonTextOrOriginal(result.text) };
23
27
  }
24
28
  async mutate(input) {
25
- const controls = requestControls(input);
26
- return this.sample(input.model, input.temperature, promptMessages(input.prompt), controls.maxOutputTokens ?? DEFAULT_OUTPUT_TOKENS, controls.signal);
29
+ return this.sample(input.model, input.temperature, promptMessages(input.prompt), input.maxOutputTokens ?? DEFAULT_OUTPUT_TOKENS, input.signal);
27
30
  }
28
31
  async finalize(input) {
29
- const controls = requestControls(input);
30
- return this.sample(input.model, 0.2, promptMessages(input.prompt), controls.maxOutputTokens ?? DEFAULT_OUTPUT_TOKENS, controls.signal);
32
+ return this.sample(input.model, 0.2, promptMessages(input.prompt), input.maxOutputTokens ?? DEFAULT_OUTPUT_TOKENS, input.signal);
31
33
  }
32
34
  async sample(model, temperature, prompt, maxOutputTokens, signal) {
33
35
  const started = Date.now();
34
- const result = await this.callCreateMessage({
35
- messages: prompt.user.trim()
36
- ? [
37
- {
38
- role: "user",
39
- content: {
40
- type: "text",
41
- text: prompt.user
42
- }
43
- }
44
- ]
45
- : [],
46
- systemPrompt: prompt.system.trim() ? prompt.system : undefined,
47
- modelPreferences: buildModelPreferences(model, this.config),
48
- includeContext: "none",
49
- temperature,
50
- maxTokens: maxOutputTokens
51
- }, signal);
52
- if (result.stopReason === "maxTokens") {
53
- throw new ProviderError("MCP Sampling response was truncated by maxTokens.", {
54
- code: "provider.output_truncated",
55
- retryable: false,
56
- fix: "Use a smaller prompt, a host model with larger output support, or reduce answer length."
57
- });
58
- }
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
- }
67
- return {
68
- text,
69
- model: result.model ?? model,
70
- provider: "sampling",
71
- usage: {
72
- inputTokens: undefined,
73
- outputTokens: undefined
74
- },
75
- latencyMs: Date.now() - started,
76
- retryCount: 0,
77
- raw: this.config.includeRawOutputs ? result : undefined
78
- };
79
- }
80
- async callCreateMessage(params, signal) {
81
36
  const timeoutMs = this.config.requestTimeoutMs ?? DEFAULT_SAMPLING_TIMEOUT_MS;
37
+ const deadline = samplingDeadline(timeoutMs, signal);
38
+ let release;
82
39
  try {
83
- return await callWithTimeout(this.createMessage, params, timeoutMs, signal);
84
- }
85
- catch (error) {
86
- if (error instanceof SamplingTimeoutError) {
87
- throw new ProviderError(`MCP Sampling request timed out after ${error.timeoutMs}ms.`, {
88
- code: "provider.sampling_timeout",
40
+ release = await this.routeLimiter.acquire(deadline.signal);
41
+ const result = await this.callCreateMessage({
42
+ messages: prompt.user.trim()
43
+ ? [
44
+ {
45
+ role: "user",
46
+ content: {
47
+ type: "text",
48
+ text: prompt.user
49
+ }
50
+ }
51
+ ]
52
+ : [],
53
+ systemPrompt: prompt.system.trim() ? prompt.system : undefined,
54
+ modelPreferences: buildModelPreferences(model, this.config),
55
+ includeContext: "none",
56
+ temperature,
57
+ maxTokens: maxOutputTokens
58
+ }, deadline);
59
+ if (result.stopReason === "maxTokens") {
60
+ throw new ProviderError("MCP Sampling response was truncated by maxTokens.", {
61
+ code: "provider.output_truncated",
62
+ retryable: false,
63
+ fix: "Use a smaller prompt, a host model with larger output support, or reduce answer length."
64
+ });
65
+ }
66
+ const text = textContent(result);
67
+ if (Buffer.byteLength(text, "utf8") > DEFAULT_SAMPLING_RESPONSE_LIMIT_BYTES) {
68
+ throw new ProviderError(`MCP Sampling response exceeded the ${DEFAULT_SAMPLING_RESPONSE_LIMIT_BYTES}-byte body limit.`, {
69
+ code: "provider.response_too_large",
89
70
  retryable: false,
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."
71
+ fix: "Use a host model with bounded text responses or reduce the requested output size."
91
72
  });
92
73
  }
74
+ this.routeLimiter.recordSuccess();
75
+ return {
76
+ text,
77
+ model: result.model ?? model,
78
+ provider: "sampling",
79
+ usage: {
80
+ inputTokens: undefined,
81
+ outputTokens: undefined
82
+ },
83
+ latencyMs: Date.now() - started,
84
+ retryCount: 0,
85
+ raw: this.config.includeRawOutputs ? result : undefined
86
+ };
87
+ }
88
+ catch (error) {
89
+ if (isRateLimitError(error))
90
+ this.routeLimiter.recordRateLimit();
91
+ if (deadline.timedOut())
92
+ throw samplingTimeoutError(timeoutMs);
93
93
  if (signal?.aborted) {
94
94
  throw new ProviderError("MCP Sampling request was aborted.", {
95
95
  code: "provider.aborted",
@@ -97,6 +97,20 @@ export class SamplingDriver {
97
97
  fix: "Retry the run if the cancellation was unintended."
98
98
  });
99
99
  }
100
+ throw error;
101
+ }
102
+ finally {
103
+ release?.();
104
+ deadline.dispose();
105
+ }
106
+ }
107
+ async callCreateMessage(params, deadline) {
108
+ try {
109
+ return await callWithDeadline(this.createMessage, params, deadline);
110
+ }
111
+ catch (error) {
112
+ if (deadline.signal.aborted)
113
+ throw error;
100
114
  throw new ProviderError(`MCP Sampling request failed: ${error instanceof Error ? error.message : String(error)}`, {
101
115
  code: "provider.sampling_request_failed",
102
116
  retryable: false,
@@ -105,53 +119,57 @@ export class SamplingDriver {
105
119
  }
106
120
  }
107
121
  }
108
- class SamplingTimeoutError extends Error {
109
- timeoutMs;
110
- constructor(timeoutMs) {
111
- super(`MCP Sampling request timed out after ${timeoutMs}ms.`);
112
- this.timeoutMs = timeoutMs;
113
- this.name = "SamplingTimeoutError";
122
+ async function callWithDeadline(fn, params, deadline) {
123
+ if (deadline.signal.aborted)
124
+ throw abortError(deadline.signal);
125
+ let rejectOnAbort;
126
+ const abortPromise = new Promise((_, reject) => {
127
+ rejectOnAbort = () => reject(abortError(deadline.signal));
128
+ deadline.signal.addEventListener("abort", rejectOnAbort, { once: true });
129
+ });
130
+ try {
131
+ return await Promise.race([
132
+ fn(params, { signal: deadline.signal, timeout: Math.max(1, deadline.remainingMs()) }),
133
+ abortPromise
134
+ ]);
135
+ }
136
+ finally {
137
+ if (rejectOnAbort)
138
+ deadline.signal.removeEventListener("abort", rejectOnAbort);
114
139
  }
115
140
  }
116
- async function callWithTimeout(fn, params, timeoutMs, inputSignal) {
141
+ function samplingDeadline(timeoutMs, inputSignal) {
117
142
  const controller = new AbortController();
143
+ const expiresAt = Date.now() + timeoutMs;
144
+ let timeoutReached = false;
118
145
  const onInputAbort = () => controller.abort(inputSignal?.reason);
119
146
  if (inputSignal?.aborted)
120
147
  controller.abort(inputSignal.reason);
121
148
  else
122
149
  inputSignal?.addEventListener("abort", onInputAbort, { once: true });
123
- let timer;
124
- const timeoutPromise = new Promise((_, reject) => {
125
- timer = setTimeout(() => {
126
- controller.abort();
127
- reject(new SamplingTimeoutError(timeoutMs));
128
- }, timeoutMs);
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;
141
- try {
142
- return await Promise.race([
143
- fn(params, { signal: controller.signal, timeout: timeoutMs }),
144
- timeoutPromise,
145
- ...(abortPromise ? [abortPromise] : [])
146
- ]);
147
- }
148
- finally {
149
- if (timer)
150
+ const timer = setTimeout(() => {
151
+ timeoutReached = true;
152
+ controller.abort(new DOMException("Timed out", "AbortError"));
153
+ }, timeoutMs);
154
+ return {
155
+ signal: controller.signal,
156
+ timedOut: () => timeoutReached,
157
+ remainingMs: () => Math.max(0, expiresAt - Date.now()),
158
+ dispose: () => {
150
159
  clearTimeout(timer);
151
- inputSignal?.removeEventListener("abort", onInputAbort);
152
- if (rejectOnAbort)
153
- inputSignal?.removeEventListener("abort", rejectOnAbort);
154
- }
160
+ inputSignal?.removeEventListener("abort", onInputAbort);
161
+ }
162
+ };
163
+ }
164
+ function samplingTimeoutError(timeoutMs) {
165
+ return new ProviderError(`MCP Sampling request timed out after ${timeoutMs}ms.`, {
166
+ code: "provider.sampling_timeout",
167
+ retryable: false,
168
+ 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."
169
+ });
170
+ }
171
+ function abortError(signal) {
172
+ return signal.reason instanceof DOMException ? signal.reason : new DOMException("Aborted", "AbortError");
155
173
  }
156
174
  export function buildModelPreferences(roleModel, config) {
157
175
  const hintNames = uniqueNonEmpty([roleModel, ...(config.modelHints ?? [])]);
@@ -200,7 +218,8 @@ function uniqueNonEmpty(values) {
200
218
  }
201
219
  return unique;
202
220
  }
203
- function requestControls(input) {
204
- return input;
221
+ function isRateLimitError(error) {
222
+ const message = error instanceof Error ? error.message : String(error);
223
+ return /\b429\b|rate.?limit/i.test(message);
205
224
  }
206
225
  //# sourceMappingURL=sampling.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sampling.js","sourceRoot":"","sources":["../src/sampling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sampling.js","sourceRoot":"","sources":["../src/sampling.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -7,6 +7,7 @@ export interface RoleProviderConfig {
7
7
  apiKeyEnv?: string;
8
8
  apiKey?: string;
9
9
  model: string;
10
+ providerMaxConcurrency?: number;
10
11
  retry?: {
11
12
  httpRetries?: number;
12
13
  requestTimeoutMs?: number;
@@ -18,6 +19,7 @@ export interface RoleProviderConfig {
18
19
  export interface BaseProviderConfig extends SamplingDriverConfig {
19
20
  provider: "fake" | "openai-compatible" | "deepseek" | string;
20
21
  routeFingerprint?: string;
22
+ providerMaxConcurrency?: number;
21
23
  baseUrl?: string;
22
24
  apiKeyEnv?: string;
23
25
  apiKey?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deepthonk/providers",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
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.5"
38
+ "@deepthonk/core": "0.2.0"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsc -p tsconfig.json",