helixmind 0.6.4 → 0.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/dist/cli/agent/loop.d.ts.map +1 -1
- package/dist/cli/agent/loop.js +18 -11
- package/dist/cli/agent/loop.js.map +1 -1
- package/dist/cli/agent/permissions.d.ts +16 -0
- package/dist/cli/agent/permissions.d.ts.map +1 -1
- package/dist/cli/agent/permissions.js +74 -5
- package/dist/cli/agent/permissions.js.map +1 -1
- package/dist/cli/agent/sandbox.d.ts.map +1 -1
- package/dist/cli/agent/sandbox.js +3 -0
- package/dist/cli/agent/sandbox.js.map +1 -1
- package/dist/cli/brain/archive.d.ts.map +1 -1
- package/dist/cli/brain/archive.js +48 -18
- package/dist/cli/brain/archive.js.map +1 -1
- package/dist/cli/brain/control-protocol.d.ts +17 -0
- package/dist/cli/brain/control-protocol.d.ts.map +1 -1
- package/dist/cli/brain/control-protocol.js +79 -0
- package/dist/cli/brain/control-protocol.js.map +1 -1
- package/dist/cli/brain/path-guard.d.ts +2 -0
- package/dist/cli/brain/path-guard.d.ts.map +1 -0
- package/dist/cli/brain/path-guard.js +94 -0
- package/dist/cli/brain/path-guard.js.map +1 -0
- package/dist/cli/brain/relay-client.d.ts +2 -0
- package/dist/cli/brain/relay-client.d.ts.map +1 -1
- package/dist/cli/brain/relay-client.js +58 -8
- package/dist/cli/brain/relay-client.js.map +1 -1
- package/dist/cli/brain/server.d.ts.map +1 -1
- package/dist/cli/brain/server.js +235 -23
- package/dist/cli/brain/server.js.map +1 -1
- package/dist/cli/brain/stdout-capture.d.ts +11 -0
- package/dist/cli/brain/stdout-capture.d.ts.map +1 -1
- package/dist/cli/brain/stdout-capture.js +42 -1
- package/dist/cli/brain/stdout-capture.js.map +1 -1
- package/dist/cli/brain/web-chat-handler.d.ts.map +1 -1
- package/dist/cli/brain/web-chat-handler.js +7 -0
- package/dist/cli/brain/web-chat-handler.js.map +1 -1
- package/dist/cli/checkpoints/revert.d.ts +5 -0
- package/dist/cli/checkpoints/revert.d.ts.map +1 -1
- package/dist/cli/checkpoints/revert.js +100 -11
- package/dist/cli/checkpoints/revert.js.map +1 -1
- package/dist/cli/checkpoints/store.d.ts +3 -0
- package/dist/cli/checkpoints/store.d.ts.map +1 -1
- package/dist/cli/checkpoints/store.js.map +1 -1
- package/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +138 -73
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/config/store.js +1 -1
- package/dist/cli/config/store.js.map +1 -1
- package/dist/cli/core/input.d.ts +0 -1
- package/dist/cli/core/input.d.ts.map +1 -1
- package/dist/cli/core/input.js +9 -17
- package/dist/cli/core/input.js.map +1 -1
- package/dist/cli/jarvis/autonomy.d.ts +13 -1
- package/dist/cli/jarvis/autonomy.d.ts.map +1 -1
- package/dist/cli/jarvis/autonomy.js +33 -1
- package/dist/cli/jarvis/autonomy.js.map +1 -1
- package/dist/cli/jarvis/core-ethics.d.ts +15 -0
- package/dist/cli/jarvis/core-ethics.d.ts.map +1 -1
- package/dist/cli/jarvis/core-ethics.js +110 -9
- package/dist/cli/jarvis/core-ethics.js.map +1 -1
- package/dist/cli/jarvis/daemon.d.ts.map +1 -1
- package/dist/cli/jarvis/daemon.js +8 -0
- package/dist/cli/jarvis/daemon.js.map +1 -1
- package/dist/cli/jarvis/instance-lock.d.ts.map +1 -1
- package/dist/cli/jarvis/instance-lock.js +132 -27
- package/dist/cli/jarvis/instance-lock.js.map +1 -1
- package/dist/cli/jarvis/learning.d.ts +6 -0
- package/dist/cli/jarvis/learning.d.ts.map +1 -1
- package/dist/cli/jarvis/learning.js +17 -3
- package/dist/cli/jarvis/learning.js.map +1 -1
- package/dist/cli/jarvis/notifications.d.ts.map +1 -1
- package/dist/cli/jarvis/notifications.js +75 -10
- package/dist/cli/jarvis/notifications.js.map +1 -1
- package/dist/cli/jarvis/onboarding.d.ts.map +1 -1
- package/dist/cli/jarvis/onboarding.js +32 -2
- package/dist/cli/jarvis/onboarding.js.map +1 -1
- package/dist/cli/jarvis/queue.d.ts +5 -0
- package/dist/cli/jarvis/queue.d.ts.map +1 -1
- package/dist/cli/jarvis/queue.js +23 -6
- package/dist/cli/jarvis/queue.js.map +1 -1
- package/dist/cli/jarvis/scheduler.d.ts +8 -0
- package/dist/cli/jarvis/scheduler.d.ts.map +1 -1
- package/dist/cli/jarvis/scheduler.js +32 -4
- package/dist/cli/jarvis/scheduler.js.map +1 -1
- package/dist/cli/jarvis/sentiment.d.ts +11 -0
- package/dist/cli/jarvis/sentiment.d.ts.map +1 -1
- package/dist/cli/jarvis/sentiment.js +40 -6
- package/dist/cli/jarvis/sentiment.js.map +1 -1
- package/dist/cli/jarvis/skills.d.ts +35 -0
- package/dist/cli/jarvis/skills.d.ts.map +1 -1
- package/dist/cli/jarvis/skills.js +144 -0
- package/dist/cli/jarvis/skills.js.map +1 -1
- package/dist/cli/jarvis/triggers.d.ts.map +1 -1
- package/dist/cli/jarvis/triggers.js +65 -9
- package/dist/cli/jarvis/triggers.js.map +1 -1
- package/dist/cli/jarvis/types.d.ts +10 -0
- package/dist/cli/jarvis/types.d.ts.map +1 -1
- package/dist/cli/jarvis/world-model.d.ts +4 -0
- package/dist/cli/jarvis/world-model.d.ts.map +1 -1
- package/dist/cli/jarvis/world-model.js +23 -1
- package/dist/cli/jarvis/world-model.js.map +1 -1
- package/dist/cli/providers/anthropic.d.ts +5 -1
- package/dist/cli/providers/anthropic.d.ts.map +1 -1
- package/dist/cli/providers/anthropic.js +133 -36
- package/dist/cli/providers/anthropic.js.map +1 -1
- package/dist/cli/providers/model-limits.d.ts +8 -0
- package/dist/cli/providers/model-limits.d.ts.map +1 -1
- package/dist/cli/providers/model-limits.js +42 -0
- package/dist/cli/providers/model-limits.js.map +1 -1
- package/dist/cli/providers/ollama.d.ts +2 -0
- package/dist/cli/providers/ollama.d.ts.map +1 -1
- package/dist/cli/providers/ollama.js +8 -0
- package/dist/cli/providers/ollama.js.map +1 -1
- package/dist/cli/providers/openai.d.ts +5 -1
- package/dist/cli/providers/openai.d.ts.map +1 -1
- package/dist/cli/providers/openai.js +66 -19
- package/dist/cli/providers/openai.js.map +1 -1
- package/dist/cli/providers/rate-limiter.d.ts +58 -20
- package/dist/cli/providers/rate-limiter.d.ts.map +1 -1
- package/dist/cli/providers/rate-limiter.js +212 -96
- package/dist/cli/providers/rate-limiter.js.map +1 -1
- package/dist/cli/providers/registry.d.ts.map +1 -1
- package/dist/cli/providers/registry.js +22 -13
- package/dist/cli/providers/registry.js.map +1 -1
- package/dist/cli/providers/types.d.ts +16 -5
- package/dist/cli/providers/types.d.ts.map +1 -1
- package/dist/spiral/cloud/content-extractor.d.ts.map +1 -1
- package/dist/spiral/cloud/content-extractor.js +6 -4
- package/dist/spiral/cloud/content-extractor.js.map +1 -1
- package/dist/spiral/cloud/search-provider.d.ts.map +1 -1
- package/dist/spiral/cloud/search-provider.js +7 -2
- package/dist/spiral/cloud/search-provider.js.map +1 -1
- package/dist/spiral/cloud/web-enricher.d.ts.map +1 -1
- package/dist/spiral/cloud/web-enricher.js +10 -2
- package/dist/spiral/cloud/web-enricher.js.map +1 -1
- package/dist/spiral/compression.d.ts +5 -2
- package/dist/spiral/compression.d.ts.map +1 -1
- package/dist/spiral/compression.js +23 -6
- package/dist/spiral/compression.js.map +1 -1
- package/dist/spiral/engine.d.ts +7 -1
- package/dist/spiral/engine.d.ts.map +1 -1
- package/dist/spiral/engine.js +83 -35
- package/dist/spiral/engine.js.map +1 -1
- package/dist/storage/database.d.ts.map +1 -1
- package/dist/storage/database.js +41 -0
- package/dist/storage/database.js.map +1 -1
- package/dist/storage/nodes.d.ts +6 -0
- package/dist/storage/nodes.d.ts.map +1 -1
- package/dist/storage/nodes.js +9 -0
- package/dist/storage/nodes.js.map +1 -1
- package/dist/storage/vectors.d.ts +1 -0
- package/dist/storage/vectors.d.ts.map +1 -1
- package/dist/storage/vectors.js +39 -7
- package/dist/storage/vectors.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,12 +1,34 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
|
-
import {
|
|
3
|
-
import { getModelContextLength } from './model-limits.js';
|
|
2
|
+
import { RateLimiter, isRateLimitError, detectCreditsExhausted, sleep, } from './rate-limiter.js';
|
|
3
|
+
import { getModelContextLength, getMaxOutputTokens } from './model-limits.js';
|
|
4
|
+
/**
|
|
5
|
+
* Normalize reasoning_content that may arrive as a string, an array of blocks,
|
|
6
|
+
* or an object with a `.text` field (OpenAI Responses API, DeepSeek variants).
|
|
7
|
+
* FIX: PROVIDERS-M6 — never stringify [object Object] into the history.
|
|
8
|
+
*/
|
|
9
|
+
function normalizeReasoningContent(x) {
|
|
10
|
+
if (x === null || x === undefined)
|
|
11
|
+
return '';
|
|
12
|
+
if (typeof x === 'string')
|
|
13
|
+
return x;
|
|
14
|
+
if (Array.isArray(x)) {
|
|
15
|
+
return x
|
|
16
|
+
.map((b) => (typeof b === 'string' ? b : (b?.text ?? '')))
|
|
17
|
+
.join('');
|
|
18
|
+
}
|
|
19
|
+
if (typeof x === 'object') {
|
|
20
|
+
return x.text ?? JSON.stringify(x);
|
|
21
|
+
}
|
|
22
|
+
return String(x);
|
|
23
|
+
}
|
|
4
24
|
export class OpenAIProvider {
|
|
5
25
|
name;
|
|
6
26
|
model;
|
|
7
27
|
maxContextLength;
|
|
8
28
|
client;
|
|
9
29
|
systemRole;
|
|
30
|
+
// FIX: PROVIDERS-C2 — Each provider instance owns a RateLimiter.
|
|
31
|
+
_rateLimiter;
|
|
10
32
|
constructor(apiKey, model = 'gpt-4o', baseURL, providerName) {
|
|
11
33
|
this.model = model;
|
|
12
34
|
this.name = providerName ?? 'openai';
|
|
@@ -18,36 +40,48 @@ export class OpenAIProvider {
|
|
|
18
40
|
...(baseURL ? { baseURL } : {}),
|
|
19
41
|
timeout: 120_000, // 2 minute timeout — prevents infinite hang on slow/unresponsive APIs
|
|
20
42
|
});
|
|
43
|
+
this._rateLimiter = new RateLimiter(this.name);
|
|
44
|
+
}
|
|
45
|
+
/** Access the provider's rate limiter. */
|
|
46
|
+
get rateLimiter() {
|
|
47
|
+
return this._rateLimiter;
|
|
21
48
|
}
|
|
22
49
|
/** Check if the current model is a reasoning model (DeepSeek-R1 etc.) */
|
|
23
50
|
isReasonerModel() {
|
|
24
51
|
const m = this.model.toLowerCase();
|
|
25
52
|
return m.includes('reasoner') || m.includes('-r1');
|
|
26
53
|
}
|
|
27
|
-
async *stream(messages, systemPrompt) {
|
|
54
|
+
async *stream(messages, systemPrompt, signal) {
|
|
28
55
|
let fullText = '';
|
|
29
56
|
try {
|
|
57
|
+
// FIX: PROVIDERS-C1 — pass signal to request options.
|
|
30
58
|
const stream = await this.client.chat.completions.create({
|
|
31
59
|
model: this.model,
|
|
32
60
|
stream: true,
|
|
33
61
|
messages: [
|
|
34
62
|
{ role: this.systemRole, content: systemPrompt },
|
|
35
|
-
...messages.map(m => ({
|
|
63
|
+
...messages.map((m) => ({
|
|
36
64
|
role: m.role,
|
|
37
65
|
content: m.content,
|
|
38
66
|
})),
|
|
39
67
|
],
|
|
40
|
-
});
|
|
68
|
+
}, signal ? { signal } : undefined);
|
|
41
69
|
for await (const chunk of stream) {
|
|
70
|
+
if (signal?.aborted)
|
|
71
|
+
return;
|
|
42
72
|
const content = chunk.choices?.[0]?.delta?.content;
|
|
43
73
|
if (content) {
|
|
44
74
|
fullText += content;
|
|
45
75
|
yield { type: 'text', content };
|
|
76
|
+
if (signal?.aborted)
|
|
77
|
+
return;
|
|
46
78
|
}
|
|
47
79
|
}
|
|
48
80
|
yield { type: 'done', content: fullText };
|
|
49
81
|
}
|
|
50
82
|
catch (err) {
|
|
83
|
+
if (signal?.aborted)
|
|
84
|
+
return;
|
|
51
85
|
yield {
|
|
52
86
|
type: 'error',
|
|
53
87
|
content: err instanceof Error ? err.message : String(err),
|
|
@@ -110,7 +144,7 @@ export class OpenAIProvider {
|
|
|
110
144
|
// Text-only content blocks
|
|
111
145
|
const text = msg.content
|
|
112
146
|
.filter((b) => b.type === 'text')
|
|
113
|
-
.map(b => b.text)
|
|
147
|
+
.map((b) => b.text)
|
|
114
148
|
.join('');
|
|
115
149
|
if (text)
|
|
116
150
|
openaiMessages.push({ role: 'user', content: text });
|
|
@@ -125,11 +159,11 @@ export class OpenAIProvider {
|
|
|
125
159
|
else if (Array.isArray(msg.content)) {
|
|
126
160
|
const textParts = msg.content
|
|
127
161
|
.filter((b) => b.type === 'text')
|
|
128
|
-
.map(b => b.text)
|
|
162
|
+
.map((b) => b.text)
|
|
129
163
|
.join('');
|
|
130
164
|
const toolCalls = msg.content
|
|
131
165
|
.filter((b) => b.type === 'tool_use')
|
|
132
|
-
.map(b => ({
|
|
166
|
+
.map((b) => ({
|
|
133
167
|
id: b.id,
|
|
134
168
|
type: 'function',
|
|
135
169
|
function: {
|
|
@@ -140,7 +174,8 @@ export class OpenAIProvider {
|
|
|
140
174
|
// Restore reasoning_content for DeepSeek-R1 models
|
|
141
175
|
const reasoningBlocks = msg.content
|
|
142
176
|
.filter((b) => b.type === 'reasoning');
|
|
143
|
-
|
|
177
|
+
// FIX: PROVIDERS-M6 — normalize so array/object reasoning blocks don't stringify wrong on write-back.
|
|
178
|
+
const reasoningParts = reasoningBlocks.map((b) => normalizeReasoningContent(b.text)).join('');
|
|
144
179
|
const assistantMsg = {
|
|
145
180
|
role: 'assistant',
|
|
146
181
|
content: textParts || null,
|
|
@@ -158,7 +193,7 @@ export class OpenAIProvider {
|
|
|
158
193
|
}
|
|
159
194
|
}
|
|
160
195
|
}
|
|
161
|
-
const openaiTools = tools.map(t => ({
|
|
196
|
+
const openaiTools = tools.map((t) => ({
|
|
162
197
|
type: 'function',
|
|
163
198
|
function: {
|
|
164
199
|
name: t.name,
|
|
@@ -169,14 +204,16 @@ export class OpenAIProvider {
|
|
|
169
204
|
let response;
|
|
170
205
|
const maxRetries = 5;
|
|
171
206
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
172
|
-
await waitIfNeeded(signal);
|
|
207
|
+
await this._rateLimiter.waitIfNeeded(signal);
|
|
173
208
|
try {
|
|
174
209
|
response = await this.client.chat.completions.create({
|
|
175
210
|
model: this.model,
|
|
176
211
|
messages: openaiMessages,
|
|
177
212
|
tools: openaiTools,
|
|
213
|
+
// FIX: PROVIDERS-M2 — per-model output cap in tool-call path.
|
|
214
|
+
max_tokens: getMaxOutputTokens(this.model),
|
|
178
215
|
}, signal ? { signal } : undefined);
|
|
179
|
-
reportSuccess();
|
|
216
|
+
this._rateLimiter.reportSuccess();
|
|
180
217
|
break;
|
|
181
218
|
}
|
|
182
219
|
catch (err) {
|
|
@@ -191,13 +228,17 @@ export class OpenAIProvider {
|
|
|
191
228
|
throw new Error(`\u274C ${creditsReason}.${freeHint}`);
|
|
192
229
|
}
|
|
193
230
|
if (isRateLimitError(err)) {
|
|
194
|
-
const waitMs = handleRateLimitError(err);
|
|
231
|
+
const waitMs = this._rateLimiter.handleRateLimitError(err);
|
|
195
232
|
if (attempt < maxRetries) {
|
|
196
233
|
process.stdout.write(`\r\x1b[K \u23F3 Rate limited \u2014 waiting ${Math.ceil(waitMs / 1000)}s (attempt ${attempt + 1}/${maxRetries})...`);
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
234
|
+
// FIX: PROVIDERS-C3 — signal-aware sleep; propagates abort cleanly.
|
|
235
|
+
try {
|
|
236
|
+
await sleep(waitMs, signal);
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
process.stdout.write('\r\x1b[K');
|
|
240
|
+
throw err;
|
|
241
|
+
}
|
|
201
242
|
process.stdout.write('\r\x1b[K');
|
|
202
243
|
continue;
|
|
203
244
|
}
|
|
@@ -213,7 +254,8 @@ export class OpenAIProvider {
|
|
|
213
254
|
// Must capture even empty strings — DeepSeek requires this field on ALL assistant messages
|
|
214
255
|
const rawMessage = choice.message;
|
|
215
256
|
if (rawMessage.reasoning_content !== undefined && rawMessage.reasoning_content !== null) {
|
|
216
|
-
|
|
257
|
+
// FIX: PROVIDERS-M6 — reasoning_content may be string | array | object.
|
|
258
|
+
content.push({ type: 'reasoning', text: normalizeReasoningContent(rawMessage.reasoning_content) });
|
|
217
259
|
}
|
|
218
260
|
else if (this.isReasonerModel()) {
|
|
219
261
|
// Reasoner models MUST have this field — insert empty marker
|
|
@@ -226,8 +268,13 @@ export class OpenAIProvider {
|
|
|
226
268
|
for (const tc of choice.message.tool_calls) {
|
|
227
269
|
// v5 types include a union — narrow to function calls
|
|
228
270
|
const fn = tc.function;
|
|
229
|
-
|
|
271
|
+
// FIX: PROVIDERS-M3 — preserve unsupported tool_call variants as text
|
|
272
|
+
// so conversation history stays consistent (previously we silently dropped them).
|
|
273
|
+
if (!fn) {
|
|
274
|
+
const variant = tc.type ?? 'unknown';
|
|
275
|
+
content.push({ type: 'text', text: `[unsupported tool_call type: ${variant}]` });
|
|
230
276
|
continue;
|
|
277
|
+
}
|
|
231
278
|
let input;
|
|
232
279
|
try {
|
|
233
280
|
input = JSON.parse(fn.arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/cli/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/cli/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
* Intelligent rate limiter with exponential backoff and proactive throttling.
|
|
3
3
|
* Tracks API call timing, parses retry-after headers from errors,
|
|
4
4
|
* and preemptively delays when approaching rate limits.
|
|
5
|
+
*
|
|
6
|
+
* FIX: PROVIDERS-C2 — Converted module-global state to a RateLimiter class.
|
|
7
|
+
* A default singleton is kept so module-level exports stay backward compatible,
|
|
8
|
+
* but each Provider should now own a private RateLimiter instance.
|
|
5
9
|
*/
|
|
6
10
|
export interface RateLimitState {
|
|
7
11
|
/** Timestamps of recent API calls (ms) */
|
|
@@ -14,26 +18,62 @@ export interface RateLimitState {
|
|
|
14
18
|
totalRetries: number;
|
|
15
19
|
}
|
|
16
20
|
/** Listener for rate limit wait events */
|
|
17
|
-
type WaitListener = (waitMs: number, reason: string) => void;
|
|
18
|
-
/** Register a listener for rate limit wait events */
|
|
19
|
-
export declare function onRateLimitWait(listener: WaitListener): void;
|
|
21
|
+
export type WaitListener = (waitMs: number, reason: string) => void;
|
|
20
22
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* Returns the actual wait time in ms (0 if no wait needed).
|
|
23
|
+
* Per-provider rate limiter.
|
|
24
|
+
* Holds its own state so two providers on different keys/hosts don't share a cooldown.
|
|
24
25
|
*/
|
|
26
|
+
export declare class RateLimiter {
|
|
27
|
+
private state;
|
|
28
|
+
private onWait;
|
|
29
|
+
private providerName;
|
|
30
|
+
constructor(providerName?: string);
|
|
31
|
+
/** Register a listener invoked every time this limiter blocks for a wait. */
|
|
32
|
+
setOnWait(listener: WaitListener | null): void;
|
|
33
|
+
/** Label used in telemetry / listener reason strings. */
|
|
34
|
+
setProviderName(name: string): void;
|
|
35
|
+
getProviderName(): string;
|
|
36
|
+
/**
|
|
37
|
+
* Wait if needed before making an API call.
|
|
38
|
+
* Returns actual wait time in ms (0 if no wait needed).
|
|
39
|
+
*/
|
|
40
|
+
waitIfNeeded(signal?: AbortSignal): Promise<number>;
|
|
41
|
+
/** Same as waitIfNeeded — alias kept for API symmetry. */
|
|
42
|
+
recordCall(): Promise<void>;
|
|
43
|
+
/** Report a successful API call. Resets backoff. */
|
|
44
|
+
reportSuccess(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Handle a rate limit error. Parses retry-after and applies backoff.
|
|
47
|
+
* Returns the recommended wait time in ms (clamped to MAX_WAIT_MS).
|
|
48
|
+
* FIX: PROVIDERS-M4 — Headers take priority over regex.
|
|
49
|
+
*/
|
|
50
|
+
handleRateLimitError(error: unknown): number;
|
|
51
|
+
/** Get current rate limiter stats */
|
|
52
|
+
getStats(): {
|
|
53
|
+
callsInWindow: number;
|
|
54
|
+
backoffLevel: number;
|
|
55
|
+
totalRetries: number;
|
|
56
|
+
};
|
|
57
|
+
/** Reset all state — useful in tests. */
|
|
58
|
+
reset(): void;
|
|
59
|
+
}
|
|
60
|
+
/** Register a listener for rate limit wait events on the default singleton. */
|
|
61
|
+
export declare function onRateLimitWait(listener: WaitListener): void;
|
|
62
|
+
/** Wait if needed — delegates to the default singleton. */
|
|
25
63
|
export declare function waitIfNeeded(signal?: AbortSignal): Promise<number>;
|
|
26
|
-
/**
|
|
27
|
-
* Report a successful API call. Resets backoff.
|
|
28
|
-
*/
|
|
64
|
+
/** Report a successful API call on the default singleton. */
|
|
29
65
|
export declare function reportSuccess(): void;
|
|
30
|
-
/**
|
|
31
|
-
* Handle a rate limit error. Parses retry-after and applies backoff.
|
|
32
|
-
* Returns the recommended wait time in ms.
|
|
33
|
-
*/
|
|
66
|
+
/** Handle a rate-limit error on the default singleton. */
|
|
34
67
|
export declare function handleRateLimitError(error: unknown): number;
|
|
68
|
+
/** Get stats for the default singleton. */
|
|
69
|
+
export declare function getRateLimitStats(): {
|
|
70
|
+
callsInWindow: number;
|
|
71
|
+
backoffLevel: number;
|
|
72
|
+
totalRetries: number;
|
|
73
|
+
};
|
|
35
74
|
/**
|
|
36
75
|
* Check if an error is a rate limit error (429).
|
|
76
|
+
* FIX: PROVIDERS-m3 — Prefer numeric status code over regex.
|
|
37
77
|
*/
|
|
38
78
|
export declare function isRateLimitError(error: unknown): boolean;
|
|
39
79
|
/**
|
|
@@ -41,11 +81,9 @@ export declare function isRateLimitError(error: unknown): boolean;
|
|
|
41
81
|
* Returns a human-readable reason if detected, null otherwise.
|
|
42
82
|
*/
|
|
43
83
|
export declare function detectCreditsExhausted(error: unknown): string | null;
|
|
44
|
-
/**
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
};
|
|
50
|
-
export {};
|
|
84
|
+
/**
|
|
85
|
+
* Abort-signal aware sleep.
|
|
86
|
+
* FIX: PROVIDERS-C3 — Exported so providers + agent loop can use a cancellable sleep.
|
|
87
|
+
*/
|
|
88
|
+
export declare function sleep(ms: number, signal?: AbortSignal): Promise<void>;
|
|
51
89
|
//# sourceMappingURL=rate-limiter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../../src/cli/providers/rate-limiter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../../src/cli/providers/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;CACtB;AAqBD,0CAA0C;AAC1C,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AA6BpE;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAKX;IAEF,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,YAAY,CAAqB;gBAE7B,YAAY,CAAC,EAAE,MAAM;IAIjC,6EAA6E;IAC7E,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IAI9C,yDAAyD;IACzD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAsDzD,0DAA0D;IACpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,oDAAoD;IACpD,aAAa,IAAI,IAAI;IAIrB;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IA0C5C,qCAAqC;IACrC,QAAQ,IAAI;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAYjF,yCAAyC;IACzC,KAAK,IAAI,IAAI;CAQd;AASD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAE5D;AAED,2DAA2D;AAC3D,wBAAsB,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAExE;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,0DAA0D;AAC1D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED,2CAA2C;AAC3C,wBAAgB,iBAAiB,IAAI;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAEA;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAexD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAoBpE;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrE"}
|