openhorse 0.2.11 → 0.2.13

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.
Files changed (105) hide show
  1. package/dist/commands/index.d.ts.map +1 -1
  2. package/dist/commands/index.js +681 -6
  3. package/dist/commands/index.js.map +1 -1
  4. package/dist/commands/types.d.ts +3 -1
  5. package/dist/commands/types.d.ts.map +1 -1
  6. package/dist/commands/types.js.map +1 -1
  7. package/dist/core/checkpoint.d.ts +1 -0
  8. package/dist/core/checkpoint.d.ts.map +1 -1
  9. package/dist/core/checkpoint.js +59 -10
  10. package/dist/core/checkpoint.js.map +1 -1
  11. package/dist/core/tool-artifacts.d.ts +10 -0
  12. package/dist/core/tool-artifacts.d.ts.map +1 -1
  13. package/dist/core/tool-artifacts.js +81 -3
  14. package/dist/core/tool-artifacts.js.map +1 -1
  15. package/dist/framework/index.d.ts +2 -2
  16. package/dist/framework/index.d.ts.map +1 -1
  17. package/dist/framework/index.js +5 -1
  18. package/dist/framework/index.js.map +1 -1
  19. package/dist/framework/query.d.ts +104 -1
  20. package/dist/framework/query.d.ts.map +1 -1
  21. package/dist/framework/query.js +454 -18
  22. package/dist/framework/query.js.map +1 -1
  23. package/dist/framework/store.d.ts +5 -0
  24. package/dist/framework/store.d.ts.map +1 -1
  25. package/dist/framework/store.js +4 -0
  26. package/dist/framework/store.js.map +1 -1
  27. package/dist/framework/tool-scheduler.d.ts +9 -0
  28. package/dist/framework/tool-scheduler.d.ts.map +1 -1
  29. package/dist/framework/tool-scheduler.js +34 -0
  30. package/dist/framework/tool-scheduler.js.map +1 -1
  31. package/dist/ink-ui/components/StatusLine.d.ts.map +1 -1
  32. package/dist/ink-ui/components/StatusLine.js +7 -1
  33. package/dist/ink-ui/components/StatusLine.js.map +1 -1
  34. package/dist/runtime/agent-runtime-protocol.d.ts +13 -1
  35. package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
  36. package/dist/runtime/agent-runtime-protocol.js +24 -0
  37. package/dist/runtime/agent-runtime-protocol.js.map +1 -1
  38. package/dist/runtime/chat-controller.d.ts +3 -0
  39. package/dist/runtime/chat-controller.d.ts.map +1 -1
  40. package/dist/runtime/chat-controller.js +930 -5
  41. package/dist/runtime/chat-controller.js.map +1 -1
  42. package/dist/runtime/loop-budget.d.ts +5 -0
  43. package/dist/runtime/loop-budget.d.ts.map +1 -0
  44. package/dist/runtime/loop-budget.js +77 -0
  45. package/dist/runtime/loop-budget.js.map +1 -0
  46. package/dist/runtime/ui-events.d.ts +39 -1
  47. package/dist/runtime/ui-events.d.ts.map +1 -1
  48. package/dist/runtime/ui-events.js.map +1 -1
  49. package/dist/services/config-dir.d.ts +2 -0
  50. package/dist/services/config-dir.d.ts.map +1 -1
  51. package/dist/services/config-dir.js +5 -0
  52. package/dist/services/config-dir.js.map +1 -1
  53. package/dist/services/config.d.ts +4 -2
  54. package/dist/services/config.d.ts.map +1 -1
  55. package/dist/services/config.js +19 -0
  56. package/dist/services/config.js.map +1 -1
  57. package/dist/services/doctor.d.ts.map +1 -1
  58. package/dist/services/doctor.js +34 -4
  59. package/dist/services/doctor.js.map +1 -1
  60. package/dist/services/global-config.d.ts +17 -0
  61. package/dist/services/global-config.d.ts.map +1 -1
  62. package/dist/services/global-config.js.map +1 -1
  63. package/dist/services/llm.d.ts +18 -0
  64. package/dist/services/llm.d.ts.map +1 -1
  65. package/dist/services/llm.js +175 -163
  66. package/dist/services/llm.js.map +1 -1
  67. package/dist/services/provider-diagnostics.d.ts +30 -0
  68. package/dist/services/provider-diagnostics.d.ts.map +1 -0
  69. package/dist/services/provider-diagnostics.js +308 -0
  70. package/dist/services/provider-diagnostics.js.map +1 -0
  71. package/dist/services/redaction.d.ts +2 -0
  72. package/dist/services/redaction.d.ts.map +1 -0
  73. package/dist/services/redaction.js +27 -0
  74. package/dist/services/redaction.js.map +1 -0
  75. package/dist/services/session-index.d.ts.map +1 -1
  76. package/dist/services/session-index.js +7 -3
  77. package/dist/services/session-index.js.map +1 -1
  78. package/dist/services/session-storage.d.ts +100 -0
  79. package/dist/services/session-storage.d.ts.map +1 -1
  80. package/dist/services/session-storage.js +154 -3
  81. package/dist/services/session-storage.js.map +1 -1
  82. package/dist/services/verification-profile.d.ts +36 -0
  83. package/dist/services/verification-profile.d.ts.map +1 -0
  84. package/dist/services/verification-profile.js +239 -0
  85. package/dist/services/verification-profile.js.map +1 -0
  86. package/dist/services/workspace-state.d.ts +25 -0
  87. package/dist/services/workspace-state.d.ts.map +1 -0
  88. package/dist/services/workspace-state.js +115 -0
  89. package/dist/services/workspace-state.js.map +1 -0
  90. package/dist/skills/loader.d.ts +5 -1
  91. package/dist/skills/loader.d.ts.map +1 -1
  92. package/dist/skills/loader.js +34 -0
  93. package/dist/skills/loader.js.map +1 -1
  94. package/dist/skills/registry.d.ts +5 -1
  95. package/dist/skills/registry.d.ts.map +1 -1
  96. package/dist/skills/registry.js +23 -0
  97. package/dist/skills/registry.js.map +1 -1
  98. package/dist/skills/runtime.d.ts +6 -0
  99. package/dist/skills/runtime.d.ts.map +1 -1
  100. package/dist/skills/runtime.js +88 -4
  101. package/dist/skills/runtime.js.map +1 -1
  102. package/dist/skills/types.d.ts +19 -0
  103. package/dist/skills/types.d.ts.map +1 -1
  104. package/dist/skills/types.js.map +1 -1
  105. package/package.json +1 -1
@@ -11,8 +11,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
11
11
  return (mod && mod.__esModule) ? mod : { "default": mod };
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.LLMService = exports.FallbackTriggeredError = void 0;
14
+ exports.LLMService = exports.FallbackTriggeredError = exports.LLMProviderError = void 0;
15
15
  const openai_1 = __importDefault(require("openai"));
16
+ const provider_diagnostics_1 = require("./provider-diagnostics");
17
+ var provider_diagnostics_2 = require("./provider-diagnostics");
18
+ Object.defineProperty(exports, "LLMProviderError", { enumerable: true, get: function () { return provider_diagnostics_2.LLMProviderError; } });
16
19
  /** Fallback 触发错误 */
17
20
  class FallbackTriggeredError extends Error {
18
21
  constructor(originalModel, fallbackModel) {
@@ -36,71 +39,10 @@ const DEFAULT_RETRY_CONFIG = {
36
39
  const MAX_529_RETRIES = 3;
37
40
  /** 判断错误是否可重试 */
38
41
  function isRetryableError(error) {
39
- if (!error)
40
- return false;
41
- if (isQuotaExhaustedError(error))
42
- return false;
43
- if (error instanceof openai_1.default.APIError) {
44
- const status = error.status;
45
- return status === 429 || status === 500 || status === 502 || status === 503 || status === 504 || status === 529;
46
- }
47
- if (error instanceof Error) {
48
- const msg = error.message.toLowerCase();
49
- return msg.includes('timeout')
50
- || msg.includes('connection')
51
- || msg.includes('econnreset')
52
- || msg.includes('epipe')
53
- || isRateLimitMessage(msg)
54
- || isProviderBusyMessage(msg);
55
- }
56
- return false;
57
- }
58
- /** 判断是否为 529 错误 */
59
- function is529Error(error) {
60
- return error instanceof openai_1.default.APIError && error.status === 529;
61
- }
62
- function isProviderBusyMessage(message) {
63
- const msg = message.toLowerCase();
64
- return msg.includes('code: 10012')
65
- || msg.includes('engineinternalerror')
66
- || msg.includes('system is busy')
67
- || msg.includes('service is busy')
68
- || msg.includes('server is busy')
69
- || msg.includes('try again later');
70
- }
71
- function isProviderBusyError(error) {
72
- return error instanceof Error && isProviderBusyMessage(error.message);
73
- }
74
- function isRateLimitMessage(message) {
75
- const msg = message.toLowerCase();
76
- return msg.includes('rate limit')
77
- || msg.includes('too many requests')
78
- || msg.includes('api-limit')
79
- || msg.includes('api_limit')
80
- || msg.includes('api limit')
81
- || msg.includes('request limit')
82
- || msg.includes('requests per minute')
83
- || msg.includes('tokens per minute')
84
- || msg.includes('temporarily throttled')
85
- || /\b429\b/.test(msg);
42
+ return (0, provider_diagnostics_1.diagnoseProviderError)(error).retryable;
86
43
  }
87
44
  function isRateLimitError(error) {
88
- return error instanceof openai_1.default.APIError && error.status === 429
89
- || error instanceof Error && isRateLimitMessage(error.message);
90
- }
91
- function isQuotaExhaustedMessage(message) {
92
- const msg = message.toLowerCase();
93
- return msg.includes('not enough cverror')
94
- || msg.includes('notenoughcverror')
95
- || msg.includes('insufficient_quota')
96
- || msg.includes('insufficient quota')
97
- || msg.includes('quota exceeded')
98
- || msg.includes('credit exhausted')
99
- || msg.includes('insufficient credit')
100
- || msg.includes('billing hard limit');
101
- }
102
- function isQuotaExhaustedError(error) {
103
- return error instanceof Error && isQuotaExhaustedMessage(error.message);
45
+ return (0, provider_diagnostics_1.diagnoseProviderError)(error).type === 'rate_limit';
104
46
  }
105
47
  function createAbortError() {
106
48
  const error = new Error('Operation cancelled');
@@ -112,6 +54,9 @@ function throwIfAborted(signal) {
112
54
  throw createAbortError();
113
55
  }
114
56
  }
57
+ function isAbortError(error) {
58
+ return error instanceof Error && error.name === 'AbortError';
59
+ }
115
60
  /** 从错误中提取 retry-after 时间 */
116
61
  function getRetryAfterMs(error) {
117
62
  if (error instanceof openai_1.default.APIError && error.headers) {
@@ -220,11 +165,18 @@ class LLMService {
220
165
  maxRetries: DEFAULT_MAX_RETRIES,
221
166
  retryBaseDelay: DEFAULT_RETRY_DELAY,
222
167
  };
168
+ this.lastRequestDiagnostics = this.createRequestDiagnostics();
223
169
  }
224
170
  /** 是否正在使用 fallback model */
225
171
  isUsingFallback() {
226
172
  return this.usingFallback;
227
173
  }
174
+ getLastRequestDiagnostics() {
175
+ return {
176
+ ...this.lastRequestDiagnostics,
177
+ retryErrorTypes: [...this.lastRequestDiagnostics.retryErrorTypes],
178
+ };
179
+ }
228
180
  /** 触发 fallback */
229
181
  triggerFallback() {
230
182
  if (this.config.fallbackModel && !this.usingFallback) {
@@ -251,10 +203,18 @@ class LLMService {
251
203
  if (tools && tools.length > 0) {
252
204
  params.tools = tools;
253
205
  }
254
- const response = await this.client.chat.completions.create(params);
206
+ let response;
207
+ try {
208
+ response = await this.client.chat.completions.create(params);
209
+ }
210
+ catch (error) {
211
+ if (isAbortError(error))
212
+ throw error;
213
+ throw (0, provider_diagnostics_1.toLLMProviderError)(error);
214
+ }
255
215
  const message = response.choices?.[0]?.message;
256
216
  const content = message?.content ?? '';
257
- const toolCalls = message?.tool_calls?.map(tc => ({
217
+ const toolCalls = message?.tool_calls?.map((tc) => ({
258
218
  id: tc.id,
259
219
  type: 'function',
260
220
  function: {
@@ -281,129 +241,171 @@ class LLMService {
281
241
  async chatStream(messages, callbacks, tools, options) {
282
242
  const onChunk = typeof callbacks === 'function' ? callbacks : callbacks?.onChunk;
283
243
  const onThinking = typeof callbacks === 'object' ? callbacks?.onThinking : undefined;
244
+ const requestDiagnostics = this.createRequestDiagnostics();
245
+ this.lastRequestDiagnostics = requestDiagnostics;
284
246
  const retryConfig = {
285
247
  maxRetries: this.config.maxRetries,
286
248
  baseDelayMs: this.config.retryBaseDelay,
287
249
  maxDelayMs: 10000,
288
250
  abortSignal: options?.abortSignal,
289
- onRetry: (_attempt, error, _delayMs) => {
251
+ onRetry: (_attempt, error, delayMs) => {
252
+ const diagnostic = (0, provider_diagnostics_1.diagnoseProviderError)(error);
253
+ requestDiagnostics.retryCount++;
254
+ requestDiagnostics.retryDelayMs += delayMs;
255
+ requestDiagnostics.retryErrorTypes.push(diagnostic.type);
256
+ requestDiagnostics.lastRetryErrorType = diagnostic.type;
257
+ requestDiagnostics.lastRetryStatus = diagnostic.status;
290
258
  // Provider overload/busy errors can often recover by retrying or using fallback.
291
- if (is529Error(error) || isProviderBusyError(error) || isRateLimitError(error)) {
259
+ if (diagnostic.status === 529 || diagnostic.type === 'provider_busy' || diagnostic.type === 'rate_limit') {
292
260
  this.consecutive529Errors++;
293
- if (this.consecutive529Errors >= MAX_529_RETRIES && this.config.fallbackModel) {
261
+ if (this.consecutive529Errors >= MAX_529_RETRIES && this.config.fallbackModel && !this.usingFallback) {
262
+ const originalModel = this.config.model;
294
263
  this.triggerFallback();
264
+ if (this.config.model !== originalModel) {
265
+ requestDiagnostics.fallbackTriggered = true;
266
+ requestDiagnostics.fallbackFromModel = originalModel;
267
+ requestDiagnostics.fallbackToModel = this.config.model;
268
+ }
295
269
  }
296
270
  }
271
+ requestDiagnostics.finalModel = this.config.model;
272
+ requestDiagnostics.usingFallback = this.usingFallback;
297
273
  },
298
274
  };
299
- return withRetry(async () => {
300
- throwIfAborted(options?.abortSignal);
301
- const params = {
302
- model: this.config.model,
303
- messages: this.toOpenAIMessages(messages),
304
- max_tokens: this.config.maxTokens,
305
- temperature: this.config.temperature,
306
- stream: true,
307
- stream_options: { include_usage: true },
308
- };
309
- if (tools && tools.length > 0) {
310
- params.tools = tools;
311
- }
312
- onThinking?.();
313
- const requestOptions = options?.abortSignal ? { signal: options.abortSignal } : undefined;
314
- const stream = await this.client.chat.completions.create(params, requestOptions);
315
- let content = '';
316
- let usedModel = this.config.model;
317
- let usage;
318
- const toolCallsMap = new Map();
319
- for await (const chunk of stream) {
275
+ try {
276
+ const response = await withRetry(async () => {
320
277
  throwIfAborted(options?.abortSignal);
321
- // Debug: log raw chunk when tool_calls present (for diagnosing API compatibility)
322
- if (process.env.OPENHORSE_DEBUG_TOOLS === 'true') {
323
- const delta = chunk.choices?.[0]?.delta;
324
- if (delta?.tool_calls || chunk.choices?.[0]?.message?.tool_calls) {
325
- console.log('[DEBUG] Raw chunk:', JSON.stringify(chunk, null, 2));
326
- }
327
- }
328
- const delta = chunk.choices?.[0]?.delta;
329
- const text = delta?.content ?? '';
330
- if (text) {
331
- content += text;
332
- onChunk?.(text);
278
+ const params = {
279
+ model: this.config.model,
280
+ messages: this.toOpenAIMessages(messages),
281
+ max_tokens: this.config.maxTokens,
282
+ temperature: this.config.temperature,
283
+ stream: true,
284
+ stream_options: { include_usage: true },
285
+ };
286
+ if (tools && tools.length > 0) {
287
+ params.tools = tools;
333
288
  }
334
- // Handle tool_calls from delta (OpenAI standard streaming format).
335
- // A single stream chunk may contain multiple tool call deltas.
336
- for (const tc of delta?.tool_calls ?? []) {
337
- const idx = tc.index ?? 0;
338
- const existing = toolCallsMap.get(idx);
339
- if (!existing) {
340
- toolCallsMap.set(idx, {
341
- id: tc.id ?? `call_${idx}`,
342
- type: 'function',
343
- function: { name: tc.function?.name ?? '', arguments: tc.function?.arguments ?? '' },
344
- });
289
+ onThinking?.();
290
+ const requestOptions = options?.abortSignal ? { signal: options.abortSignal } : undefined;
291
+ const stream = await this.client.chat.completions.create(params, requestOptions);
292
+ let content = '';
293
+ let usedModel = this.config.model;
294
+ let usage;
295
+ const toolCallsMap = new Map();
296
+ for await (const chunk of stream) {
297
+ throwIfAborted(options?.abortSignal);
298
+ // Debug: log raw chunk when tool_calls present (for diagnosing API compatibility)
299
+ if (process.env.OPENHORSE_DEBUG_TOOLS === 'true') {
300
+ const delta = chunk.choices?.[0]?.delta;
301
+ if (delta?.tool_calls || chunk.choices?.[0]?.message?.tool_calls) {
302
+ console.log('[DEBUG] Raw chunk:', JSON.stringify(chunk, null, 2));
303
+ }
345
304
  }
346
- else {
347
- if (tc.id)
348
- existing.id = tc.id;
349
- if (tc.function?.name)
350
- existing.function.name = tc.function.name;
351
- if (tc.function?.arguments)
352
- existing.function.arguments += tc.function.arguments;
305
+ const delta = chunk.choices?.[0]?.delta;
306
+ const text = delta?.content ?? '';
307
+ if (text) {
308
+ content += text;
309
+ onChunk?.(text);
353
310
  }
354
- }
355
- // Handle tool_calls from message (some APIs like DashScope may use this format)
356
- const msg = chunk.choices?.[0]?.message;
357
- if (msg?.tool_calls && !delta?.tool_calls) {
358
- for (const msgTc of msg.tool_calls) {
359
- const existing = toolCallsMap.get(msgTc.index ?? 0);
360
- if (!existing && msgTc.id) {
361
- toolCallsMap.set(msgTc.index ?? 0, {
362
- id: msgTc.id,
311
+ // Handle tool_calls from delta (OpenAI standard streaming format).
312
+ // A single stream chunk may contain multiple tool call deltas.
313
+ for (const tc of delta?.tool_calls ?? []) {
314
+ const idx = tc.index ?? 0;
315
+ const existing = toolCallsMap.get(idx);
316
+ if (!existing) {
317
+ toolCallsMap.set(idx, {
318
+ id: tc.id ?? `call_${idx}`,
363
319
  type: 'function',
364
- function: { name: msgTc.function?.name ?? '', arguments: msgTc.function?.arguments ?? '' },
320
+ function: { name: tc.function?.name ?? '', arguments: tc.function?.arguments ?? '' },
365
321
  });
366
322
  }
367
- else if (existing && msgTc.function?.arguments) {
368
- existing.function.arguments += msgTc.function.arguments;
323
+ else {
324
+ if (tc.id)
325
+ existing.id = tc.id;
326
+ if (tc.function?.name)
327
+ existing.function.name = tc.function.name;
328
+ if (tc.function?.arguments)
329
+ existing.function.arguments += tc.function.arguments;
369
330
  }
370
331
  }
371
- }
372
- if (chunk.usage) {
373
- usage = {
374
- promptTokens: chunk.usage.prompt_tokens ?? 0,
375
- completionTokens: chunk.usage.completion_tokens ?? 0,
376
- };
377
- }
378
- if (chunk.model) {
379
- usedModel = chunk.model;
380
- }
381
- }
382
- const toolCalls = Array.from(toolCallsMap.entries())
383
- .sort(([a], [b]) => Number(a) - Number(b))
384
- .map(([, value]) => value);
385
- for (const tc of toolCalls) {
386
- if (!tc.function.arguments || tc.function.arguments.trim() === '') {
387
- tc.function.arguments = '{}';
388
- }
389
- else {
390
- try {
391
- const parsed = JSON.parse(tc.function.arguments);
392
- tc.function.arguments = JSON.stringify(parsed);
332
+ // Handle tool_calls from message (some APIs like DashScope may use this format)
333
+ const msg = chunk.choices?.[0]?.message;
334
+ if (msg?.tool_calls && !delta?.tool_calls) {
335
+ for (const msgTc of msg.tool_calls) {
336
+ const existing = toolCallsMap.get(msgTc.index ?? 0);
337
+ if (!existing && msgTc.id) {
338
+ toolCallsMap.set(msgTc.index ?? 0, {
339
+ id: msgTc.id,
340
+ type: 'function',
341
+ function: { name: msgTc.function?.name ?? '', arguments: msgTc.function?.arguments ?? '' },
342
+ });
343
+ }
344
+ else if (existing && msgTc.function?.arguments) {
345
+ existing.function.arguments += msgTc.function.arguments;
346
+ }
347
+ }
348
+ }
349
+ if (chunk.usage) {
350
+ usage = {
351
+ promptTokens: chunk.usage.prompt_tokens ?? 0,
352
+ completionTokens: chunk.usage.completion_tokens ?? 0,
353
+ };
393
354
  }
394
- catch {
355
+ if (chunk.model) {
356
+ usedModel = chunk.model;
357
+ }
358
+ }
359
+ const toolCalls = Array.from(toolCallsMap.entries())
360
+ .sort(([a], [b]) => Number(a) - Number(b))
361
+ .map(([, value]) => value);
362
+ for (const tc of toolCalls) {
363
+ if (!tc.function.arguments || tc.function.arguments.trim() === '') {
395
364
  tc.function.arguments = '{}';
396
365
  }
366
+ else {
367
+ try {
368
+ const parsed = JSON.parse(tc.function.arguments);
369
+ tc.function.arguments = JSON.stringify(parsed);
370
+ }
371
+ catch {
372
+ tc.function.arguments = '{}';
373
+ }
374
+ }
397
375
  }
398
- }
399
- this.consecutive529Errors = 0;
400
- return {
401
- content,
402
- model: usedModel,
403
- usage,
404
- toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
376
+ this.consecutive529Errors = 0;
377
+ requestDiagnostics.finalModel = usedModel;
378
+ requestDiagnostics.usingFallback = this.usingFallback;
379
+ this.lastRequestDiagnostics = {
380
+ ...requestDiagnostics,
381
+ retryErrorTypes: [...requestDiagnostics.retryErrorTypes],
382
+ };
383
+ return {
384
+ content,
385
+ model: usedModel,
386
+ usage,
387
+ toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
388
+ };
389
+ }, retryConfig);
390
+ requestDiagnostics.finalModel = response.model;
391
+ requestDiagnostics.usingFallback = this.usingFallback;
392
+ this.lastRequestDiagnostics = {
393
+ ...requestDiagnostics,
394
+ retryErrorTypes: [...requestDiagnostics.retryErrorTypes],
405
395
  };
406
- }, retryConfig);
396
+ return response;
397
+ }
398
+ catch (error) {
399
+ requestDiagnostics.finalModel = this.config.model;
400
+ requestDiagnostics.usingFallback = this.usingFallback;
401
+ this.lastRequestDiagnostics = {
402
+ ...requestDiagnostics,
403
+ retryErrorTypes: [...requestDiagnostics.retryErrorTypes],
404
+ };
405
+ if (isAbortError(error))
406
+ throw error;
407
+ throw (0, provider_diagnostics_1.toLLMProviderError)(error);
408
+ }
407
409
  }
408
410
  /**
409
411
  * 带工具调用的 agentic 循环
@@ -468,6 +470,16 @@ class LLMService {
468
470
  };
469
471
  }
470
472
  // ---- Internal ----
473
+ createRequestDiagnostics() {
474
+ return {
475
+ retryCount: 0,
476
+ retryDelayMs: 0,
477
+ retryErrorTypes: [],
478
+ fallbackTriggered: false,
479
+ finalModel: this.config.model,
480
+ usingFallback: this.usingFallback,
481
+ };
482
+ }
471
483
  /** 转换为 OpenAI SDK 消息格式 */
472
484
  toOpenAIMessages(messages) {
473
485
  return messages.map(msg => {
@@ -1 +1 @@
1
- {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/services/llm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/services/llm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export type ProviderErrorType = 'model_not_found' | 'invalid_endpoint' | 'auth_failed' | 'quota_or_credit_exhausted' | 'rate_limit' | 'provider_busy' | 'unknown_provider_error';
2
+ export interface ProviderErrorDiagnostic {
3
+ type: ProviderErrorType;
4
+ retryable: boolean;
5
+ status?: number;
6
+ code?: string;
7
+ providerMessage: string;
8
+ hint: string;
9
+ }
10
+ export interface ProviderConfigDiagnostic {
11
+ status: 'ok' | 'warn' | 'fail';
12
+ summary: string;
13
+ detail: string[];
14
+ }
15
+ export interface ProviderConfigInput {
16
+ apiKey?: string;
17
+ baseUrl?: string;
18
+ fallbackModel?: string;
19
+ model: string;
20
+ }
21
+ export declare class LLMProviderError extends Error {
22
+ readonly diagnostic: ProviderErrorDiagnostic;
23
+ constructor(diagnostic: ProviderErrorDiagnostic);
24
+ }
25
+ export declare function redactProviderSecrets(input: string): string;
26
+ export declare function diagnoseProviderError(error: unknown): ProviderErrorDiagnostic;
27
+ export declare function toLLMProviderError(error: unknown): Error;
28
+ export declare function formatProviderErrorMessage(diagnostic: ProviderErrorDiagnostic): string;
29
+ export declare function diagnoseProviderConfig(input: ProviderConfigInput): ProviderConfigDiagnostic;
30
+ //# sourceMappingURL=provider-diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-diagnostics.d.ts","sourceRoot":"","sources":["../../src/services/provider-diagnostics.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GACzB,iBAAiB,GACjB,kBAAkB,GAClB,aAAa,GACb,2BAA2B,GAC3B,YAAY,GACZ,eAAe,GACf,wBAAwB,CAAC;AAE7B,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;gBAEjC,UAAU,EAAE,uBAAuB;CAKhD;AAoBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAU3D;AAoGD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAqG7E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAIxD;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,uBAAuB,GAAG,MAAM,CAItF;AA8DD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,GAAG,wBAAwB,CA0B3F"}