@cogitator-ai/core 0.18.1 → 0.18.3

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 (49) hide show
  1. package/dist/cogitator/tool-executor.d.ts.map +1 -1
  2. package/dist/cogitator/tool-executor.js.map +1 -1
  3. package/dist/context/strategies/sliding-window.d.ts.map +1 -1
  4. package/dist/context/strategies/sliding-window.js.map +1 -1
  5. package/dist/learning/metrics.d.ts.map +1 -1
  6. package/dist/learning/metrics.js.map +1 -1
  7. package/dist/learning/postgres-trace-store.d.ts.map +1 -1
  8. package/dist/learning/postgres-trace-store.js.map +1 -1
  9. package/dist/llm/anthropic.d.ts.map +1 -1
  10. package/dist/llm/anthropic.js +2 -39
  11. package/dist/llm/anthropic.js.map +1 -1
  12. package/dist/llm/azure.d.ts +6 -21
  13. package/dist/llm/azure.d.ts.map +1 -1
  14. package/dist/llm/azure.js +5 -305
  15. package/dist/llm/azure.js.map +1 -1
  16. package/dist/llm/errors.d.ts +5 -1
  17. package/dist/llm/errors.d.ts.map +1 -1
  18. package/dist/llm/errors.js +44 -7
  19. package/dist/llm/errors.js.map +1 -1
  20. package/dist/llm/index.d.ts +2 -1
  21. package/dist/llm/index.d.ts.map +1 -1
  22. package/dist/llm/index.js +2 -1
  23. package/dist/llm/index.js.map +1 -1
  24. package/dist/llm/openai-compatible-base.d.ts +20 -0
  25. package/dist/llm/openai-compatible-base.d.ts.map +1 -0
  26. package/dist/llm/openai-compatible-base.js +268 -0
  27. package/dist/llm/openai-compatible-base.js.map +1 -0
  28. package/dist/llm/openai.d.ts +4 -18
  29. package/dist/llm/openai.d.ts.map +1 -1
  30. package/dist/llm/openai.js +2 -300
  31. package/dist/llm/openai.js.map +1 -1
  32. package/dist/logger.d.ts.map +1 -1
  33. package/dist/logger.js.map +1 -1
  34. package/dist/runtime.d.ts.map +1 -1
  35. package/dist/runtime.js +3 -1
  36. package/dist/runtime.js.map +1 -1
  37. package/dist/security/classifiers/llm-classifier.d.ts.map +1 -1
  38. package/dist/security/classifiers/llm-classifier.js +16 -2
  39. package/dist/security/classifiers/llm-classifier.js.map +1 -1
  40. package/dist/security/classifiers/local-classifier.d.ts.map +1 -1
  41. package/dist/security/classifiers/local-classifier.js +16 -6
  42. package/dist/security/classifiers/local-classifier.js.map +1 -1
  43. package/dist/security/prompt-injection-detector.d.ts.map +1 -1
  44. package/dist/security/prompt-injection-detector.js +13 -1
  45. package/dist/security/prompt-injection-detector.js.map +1 -1
  46. package/dist/tools/sql-query.d.ts.map +1 -1
  47. package/dist/tools/sql-query.js +12 -2
  48. package/dist/tools/sql-query.js.map +1 -1
  49. package/package.json +1 -1
package/dist/llm/azure.js CHANGED
@@ -1,14 +1,6 @@
1
- /**
2
- * Azure OpenAI LLM Backend
3
- *
4
- * Uses the official OpenAI SDK with Azure configuration.
5
- * Supports all OpenAI features: chat, streaming, tools, vision.
6
- */
7
- import OpenAI, { AzureOpenAI } from 'openai';
8
- import { ErrorCode } from '@cogitator-ai/types';
9
- import { BaseLLMBackend } from './base';
10
- import { LLMError, llmInvalidResponse } from './errors';
11
- export class AzureOpenAIBackend extends BaseLLMBackend {
1
+ import { AzureOpenAI } from 'openai';
2
+ import { OpenAICompatibleBackend } from './openai-compatible-base';
3
+ export class AzureOpenAIBackend extends OpenAICompatibleBackend {
12
4
  provider = 'azure';
13
5
  client;
14
6
  defaultDeployment;
@@ -22,300 +14,8 @@ export class AzureOpenAIBackend extends BaseLLMBackend {
22
14
  deployment: config.deployment,
23
15
  });
24
16
  }
25
- async chat(request) {
26
- const model = request.model || this.defaultDeployment || '';
27
- const ctx = {
28
- provider: this.provider,
29
- model,
30
- endpoint: this.client.baseURL,
31
- };
32
- let response;
33
- try {
34
- response = await this.client.chat.completions.create({
35
- model,
36
- messages: this.convertMessages(request.messages),
37
- tools: request.tools
38
- ? request.tools.map((t) => ({
39
- type: 'function',
40
- function: {
41
- name: t.name,
42
- description: t.description,
43
- parameters: t.parameters,
44
- },
45
- }))
46
- : undefined,
47
- tool_choice: this.convertToolChoice(request.toolChoice),
48
- temperature: request.temperature,
49
- top_p: request.topP,
50
- max_tokens: request.maxTokens,
51
- stop: request.stop,
52
- response_format: this.convertResponseFormat(request.responseFormat),
53
- });
54
- }
55
- catch (e) {
56
- throw this.wrapAzureError(e, ctx);
57
- }
58
- const choice = response.choices[0];
59
- if (!choice) {
60
- throw llmInvalidResponse(ctx, 'No choices in Azure OpenAI response');
61
- }
62
- const message = choice.message;
63
- const toolCalls = message.tool_calls
64
- ?.filter((tc) => tc.type === 'function')
65
- .map((tc) => ({
66
- id: tc.id,
67
- name: tc.function.name,
68
- arguments: this.tryParseJson(tc.function.arguments, ctx),
69
- }));
70
- return {
71
- id: response.id,
72
- content: message.content ?? '',
73
- toolCalls,
74
- finishReason: this.mapFinishReason(choice.finish_reason),
75
- usage: {
76
- inputTokens: response.usage?.prompt_tokens ?? 0,
77
- outputTokens: response.usage?.completion_tokens ?? 0,
78
- totalTokens: response.usage?.total_tokens ?? 0,
79
- },
80
- };
81
- }
82
- async *chatStream(request) {
83
- const model = request.model || this.defaultDeployment || '';
84
- const ctx = {
85
- provider: this.provider,
86
- model,
87
- endpoint: this.client.baseURL,
88
- };
89
- let stream;
90
- try {
91
- stream = await this.client.chat.completions.create({
92
- model,
93
- messages: this.convertMessages(request.messages),
94
- tools: request.tools
95
- ? request.tools.map((t) => ({
96
- type: 'function',
97
- function: {
98
- name: t.name,
99
- description: t.description,
100
- parameters: t.parameters,
101
- },
102
- }))
103
- : undefined,
104
- tool_choice: this.convertToolChoice(request.toolChoice),
105
- temperature: request.temperature,
106
- top_p: request.topP,
107
- max_tokens: request.maxTokens,
108
- stop: request.stop,
109
- stream: true,
110
- stream_options: { include_usage: true },
111
- response_format: this.convertResponseFormat(request.responseFormat),
112
- });
113
- }
114
- catch (e) {
115
- throw this.wrapAzureError(e, ctx);
116
- }
117
- const toolCallsAccum = new Map();
118
- const toolCallArgsAccum = new Map();
119
- for await (const chunk of stream) {
120
- const choice = chunk.choices[0];
121
- if (!choice && chunk.usage) {
122
- yield {
123
- id: chunk.id,
124
- delta: {},
125
- usage: {
126
- inputTokens: chunk.usage.prompt_tokens,
127
- outputTokens: chunk.usage.completion_tokens,
128
- totalTokens: chunk.usage.total_tokens,
129
- },
130
- };
131
- continue;
132
- }
133
- if (!choice)
134
- continue;
135
- const delta = choice.delta;
136
- if (delta.tool_calls) {
137
- for (const tc of delta.tool_calls) {
138
- const existing = toolCallsAccum.get(tc.index) ?? {};
139
- toolCallsAccum.set(tc.index, {
140
- id: tc.id ?? existing.id,
141
- name: tc.function?.name ?? existing.name,
142
- });
143
- if (tc.function?.arguments) {
144
- const existingArgs = toolCallArgsAccum.get(tc.index) ?? '';
145
- toolCallArgsAccum.set(tc.index, existingArgs + tc.function.arguments);
146
- }
147
- }
148
- }
149
- let finalToolCalls;
150
- if (choice.finish_reason === 'tool_calls') {
151
- finalToolCalls = Array.from(toolCallsAccum.entries()).map(([index, partial]) => ({
152
- id: partial.id ?? '',
153
- name: partial.name ?? '',
154
- arguments: this.tryParseJson(toolCallArgsAccum.get(index) ?? '{}', ctx),
155
- }));
156
- }
157
- yield {
158
- id: chunk.id,
159
- delta: {
160
- content: delta.content ?? undefined,
161
- toolCalls: finalToolCalls,
162
- },
163
- finishReason: choice.finish_reason ? this.mapFinishReason(choice.finish_reason) : undefined,
164
- };
165
- }
166
- }
167
- convertMessages(messages) {
168
- return messages.map((m) => {
169
- switch (m.role) {
170
- case 'system':
171
- return {
172
- role: 'system',
173
- content: this.getTextContent(m.content),
174
- };
175
- case 'user':
176
- return {
177
- role: 'user',
178
- content: this.convertContent(m.content),
179
- };
180
- case 'assistant':
181
- return {
182
- role: 'assistant',
183
- content: this.getTextContent(m.content),
184
- };
185
- case 'tool':
186
- return {
187
- role: 'tool',
188
- content: this.getTextContent(m.content),
189
- tool_call_id: m.toolCallId ?? '',
190
- };
191
- }
192
- });
193
- }
194
- convertContent(content) {
195
- if (typeof content === 'string') {
196
- return content;
197
- }
198
- return content.map((part) => this.convertContentPart(part));
199
- }
200
- convertContentPart(part) {
201
- switch (part.type) {
202
- case 'text':
203
- return { type: 'text', text: part.text };
204
- case 'image_url':
205
- return {
206
- type: 'image_url',
207
- image_url: {
208
- url: part.image_url.url,
209
- detail: part.image_url.detail,
210
- },
211
- };
212
- case 'image_base64':
213
- return {
214
- type: 'image_url',
215
- image_url: {
216
- url: `data:${part.image_base64.media_type};base64,${part.image_base64.data}`,
217
- },
218
- };
219
- }
220
- }
221
- getTextContent(content) {
222
- if (typeof content === 'string') {
223
- return content;
224
- }
225
- return content
226
- .filter((part) => part.type === 'text')
227
- .map((part) => part.text)
228
- .join(' ');
229
- }
230
- mapFinishReason(reason) {
231
- switch (reason) {
232
- case 'stop':
233
- return 'stop';
234
- case 'tool_calls':
235
- return 'tool_calls';
236
- case 'length':
237
- return 'length';
238
- default:
239
- return 'stop';
240
- }
241
- }
242
- tryParseJson(str, ctx) {
243
- try {
244
- return JSON.parse(str);
245
- }
246
- catch (e) {
247
- throw new LLMError(`Failed to parse tool call arguments: ${str.slice(0, 100)}`, ErrorCode.LLM_INVALID_RESPONSE, ctx, { cause: e instanceof Error ? e : undefined });
248
- }
249
- }
250
- wrapAzureError(error, ctx) {
251
- if (error instanceof OpenAI.APIError) {
252
- const statusCode = error.status ?? 500;
253
- ctx.statusCode = statusCode;
254
- ctx.responseBody = error.message;
255
- if (statusCode === 429) {
256
- return new LLMError('Rate limit exceeded', ErrorCode.LLM_RATE_LIMITED, ctx, {
257
- cause: error,
258
- retryable: true,
259
- retryAfter: 60000,
260
- });
261
- }
262
- if (statusCode === 401 || statusCode === 403) {
263
- return new LLMError(`Authentication failed: ${error.message}`, ErrorCode.LLM_UNAVAILABLE, ctx, {
264
- cause: error,
265
- retryable: false,
266
- });
267
- }
268
- if (statusCode >= 500) {
269
- return new LLMError(`Server error: ${error.message}`, ErrorCode.LLM_UNAVAILABLE, ctx, {
270
- cause: error,
271
- retryable: true,
272
- retryAfter: 5000,
273
- });
274
- }
275
- return new LLMError(error.message, ErrorCode.LLM_INVALID_RESPONSE, ctx, {
276
- cause: error,
277
- retryable: false,
278
- });
279
- }
280
- if (error instanceof Error) {
281
- return new LLMError(`Request failed: ${error.message}`, ErrorCode.LLM_UNAVAILABLE, ctx, {
282
- cause: error,
283
- retryable: true,
284
- retryAfter: 1000,
285
- });
286
- }
287
- return new LLMError(`Unknown error: ${String(error)}`, ErrorCode.INTERNAL_ERROR, ctx);
288
- }
289
- convertResponseFormat(format) {
290
- if (!format)
291
- return undefined;
292
- switch (format.type) {
293
- case 'text':
294
- return { type: 'text' };
295
- case 'json_object':
296
- return { type: 'json_object' };
297
- case 'json_schema':
298
- return {
299
- type: 'json_schema',
300
- json_schema: {
301
- name: format.jsonSchema.name,
302
- description: format.jsonSchema.description,
303
- schema: format.jsonSchema.schema,
304
- strict: format.jsonSchema.strict ?? true,
305
- },
306
- };
307
- }
308
- }
309
- convertToolChoice(choice) {
310
- if (!choice)
311
- return undefined;
312
- if (typeof choice === 'string') {
313
- return choice;
314
- }
315
- return {
316
- type: 'function',
317
- function: { name: choice.function.name },
318
- };
17
+ resolveModel(request) {
18
+ return request.model || this.defaultDeployment || '';
319
19
  }
320
20
  }
321
21
  //# sourceMappingURL=azure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"azure.js","sourceRoot":"","sources":["../../src/llm/azure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"azure.js","sourceRoot":"","sources":["../../src/llm/azure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AASnE,MAAM,OAAO,kBAAmB,SAAQ,uBAAuB;IACpD,QAAQ,GAAG,OAAgB,CAAC;IAC3B,MAAM,CAAc;IACtB,iBAAiB,CAAU;IAEnC,YAAY,MAAyB;QACnC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC;YAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,oBAAoB;YACrD,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC;IAEkB,YAAY,CAAC,OAAoB;QAClD,OAAO,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;IACvD,CAAC;CACF"}
@@ -18,11 +18,15 @@ export declare class LLMError extends CogitatorError {
18
18
  });
19
19
  static isLLMError(error: unknown): error is LLMError;
20
20
  }
21
- export declare function createLLMError(context: LLMErrorContext, statusCode: number, responseBody?: string): LLMError;
21
+ export declare function createLLMError(context: LLMErrorContext, statusCode: number, responseBody?: string, options?: {
22
+ cause?: Error;
23
+ retryAfterOverride?: number;
24
+ }): LLMError;
22
25
  export declare function llmUnavailable(context: LLMErrorContext, reason: string, cause?: Error): LLMError;
23
26
  export declare function llmInvalidResponse(context: LLMErrorContext, reason: string, cause?: Error): LLMError;
24
27
  export declare function llmTimeout(context: LLMErrorContext, timeoutMs: number): LLMError;
25
28
  export declare function llmConfigError(context: LLMErrorContext, message: string): LLMError;
26
29
  export declare function llmNotImplemented(context: LLMErrorContext, feature: string): LLMError;
30
+ export declare function wrapSDKError(error: unknown, ctx: LLMErrorContext): LLMError;
27
31
  export declare function tryParseJson<T>(json: string, context: LLMErrorContext, fallback?: T): T | undefined;
28
32
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/llm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,QAAS,SAAQ,cAAc;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAGzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAuBvE,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ;CAGrD;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,QAAQ,CAkEV;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAMhG;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,KAAK,GACZ,QAAQ,CAKV;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAKhF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAElF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAIrF;AAsBD,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE,CAAC,GACX,CAAC,GAAG,SAAS,CAaf"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/llm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAOD,qBAAa,QAAS,SAAQ,cAAc;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAGzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAuBvE,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ;CAGrD;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,GACvD,QAAQ,CAuEV;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAMhG;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,KAAK,GACZ,QAAQ,CAKV;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAKhF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAElF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAIrF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,GAAG,QAAQ,CAyB3E;AAqCD,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE,CAAC,GACX,CAAC,GAAG,SAAS,CAaf"}
@@ -28,17 +28,20 @@ export class LLMError extends CogitatorError {
28
28
  return error instanceof LLMError;
29
29
  }
30
30
  }
31
- export function createLLMError(context, statusCode, responseBody) {
31
+ export function createLLMError(context, statusCode, responseBody, options) {
32
32
  const ctx = { ...context, statusCode, responseBody };
33
+ const cause = options?.cause;
33
34
  if (statusCode === 429) {
34
- const retryAfter = parseRetryAfter(responseBody);
35
+ const retryAfter = options?.retryAfterOverride ?? parseRetryAfter(responseBody) ?? 60000;
35
36
  return new LLMError('Rate limit exceeded', ErrorCode.LLM_RATE_LIMITED, ctx, {
37
+ cause,
36
38
  retryable: true,
37
- retryAfter: retryAfter ?? 60000,
39
+ retryAfter,
38
40
  });
39
41
  }
40
42
  if (statusCode === 401 || statusCode === 403) {
41
43
  return new LLMError(`Authentication failed (${statusCode})`, ErrorCode.LLM_UNAVAILABLE, ctx, {
44
+ cause,
42
45
  retryable: false,
43
46
  });
44
47
  }
@@ -46,23 +49,25 @@ export function createLLMError(context, statusCode, responseBody) {
46
49
  const lower = responseBody?.toLowerCase() ?? '';
47
50
  if (lower.includes('context') || lower.includes('token') || lower.includes('length')) {
48
51
  return new LLMError('Context length exceeded', ErrorCode.LLM_CONTEXT_LENGTH_EXCEEDED, ctx, {
52
+ cause,
49
53
  retryable: false,
50
54
  });
51
55
  }
52
56
  if (lower.includes('content') || lower.includes('filter') || lower.includes('safety')) {
53
57
  return new LLMError('Content filtered by safety policy', ErrorCode.LLM_CONTENT_FILTERED, ctx, {
58
+ cause,
54
59
  retryable: false,
55
60
  });
56
61
  }
57
- return new LLMError(`Bad request: ${responseBody?.slice(0, 200) ?? 'unknown'}`, ErrorCode.VALIDATION_ERROR, ctx, { retryable: false });
62
+ return new LLMError(`Bad request: ${responseBody?.slice(0, 200) ?? 'unknown'}`, ErrorCode.VALIDATION_ERROR, ctx, { cause, retryable: false });
58
63
  }
59
64
  if (statusCode >= 500) {
60
- return new LLMError(`Server error (${statusCode}): ${responseBody?.slice(0, 200) ?? 'unknown'}`, ErrorCode.LLM_UNAVAILABLE, ctx, { retryable: true, retryAfter: 5000 });
65
+ return new LLMError(`Server error (${statusCode}): ${responseBody?.slice(0, 200) ?? 'unknown'}`, ErrorCode.LLM_UNAVAILABLE, ctx, { cause, retryable: true, retryAfter: 5000 });
61
66
  }
62
67
  if (statusCode === 404) {
63
- return new LLMError(`Model or endpoint not found: ${context.model ?? context.endpoint ?? 'unknown'}`, ErrorCode.LLM_UNAVAILABLE, ctx, { retryable: false });
68
+ return new LLMError(`Model or endpoint not found: ${context.model ?? context.endpoint ?? 'unknown'}`, ErrorCode.LLM_UNAVAILABLE, ctx, { cause, retryable: false });
64
69
  }
65
- return new LLMError(`HTTP ${statusCode}: ${responseBody?.slice(0, 200) ?? 'unknown'}`, ErrorCode.LLM_INVALID_RESPONSE, ctx, { retryable: statusCode >= 500 });
70
+ return new LLMError(`HTTP ${statusCode}: ${responseBody?.slice(0, 200) ?? 'unknown'}`, ErrorCode.LLM_INVALID_RESPONSE, ctx, { cause, retryable: statusCode >= 500 });
66
71
  }
67
72
  export function llmUnavailable(context, reason, cause) {
68
73
  return new LLMError(reason, ErrorCode.LLM_UNAVAILABLE, context, {
@@ -91,6 +96,38 @@ export function llmNotImplemented(context, feature) {
91
96
  retryable: false,
92
97
  });
93
98
  }
99
+ export function wrapSDKError(error, ctx) {
100
+ if (isSDKAPIError(error)) {
101
+ const statusCode = error.status ?? 500;
102
+ ctx.statusCode = statusCode;
103
+ ctx.responseBody = error.message;
104
+ const retryAfterMs = parseRetryAfterHeader(error.headers) ?? parseRetryAfter(error.message);
105
+ return createLLMError(ctx, statusCode, error.message, { cause: error, retryAfterOverride: retryAfterMs });
106
+ }
107
+ if (error instanceof Error) {
108
+ return new LLMError(`Request failed: ${error.message}`, ErrorCode.LLM_UNAVAILABLE, ctx, {
109
+ cause: error,
110
+ retryable: true,
111
+ retryAfter: 1000,
112
+ });
113
+ }
114
+ return new LLMError(`Unknown error: ${String(error)}`, ErrorCode.INTERNAL_ERROR, ctx);
115
+ }
116
+ function isSDKAPIError(error) {
117
+ return error instanceof Error && typeof error.status === 'number';
118
+ }
119
+ function parseRetryAfterHeader(headers) {
120
+ if (!headers)
121
+ return undefined;
122
+ const value = headers.get('retry-after');
123
+ if (!value)
124
+ return undefined;
125
+ const seconds = Number(value);
126
+ if (!Number.isNaN(seconds) && seconds > 0) {
127
+ return seconds * 1000;
128
+ }
129
+ return undefined;
130
+ }
94
131
  function parseRetryAfter(responseBody) {
95
132
  if (!responseBody)
96
133
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/llm/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/llm/errors.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,14 @@
2
2
  * LLM Backends
3
3
  */
4
4
  export { BaseLLMBackend } from './base';
5
+ export { OpenAICompatibleBackend } from './openai-compatible-base';
5
6
  export { OllamaBackend } from './ollama';
6
7
  export { OpenAIBackend } from './openai';
7
8
  export { AnthropicBackend } from './anthropic';
8
9
  export { GoogleBackend } from './google';
9
10
  export { AzureOpenAIBackend } from './azure';
10
11
  export { BedrockBackend } from './bedrock';
11
- export { LLMError, createLLMError, llmUnavailable, llmInvalidResponse, llmTimeout, llmConfigError, llmNotImplemented, type LLMErrorContext, } from './errors';
12
+ export { LLMError, createLLMError, wrapSDKError, llmUnavailable, llmInvalidResponse, llmTimeout, llmConfigError, llmNotImplemented, type LLMErrorContext, } from './errors';
12
13
  export { LLMDebugWrapper, withDebug, type LLMDebugOptions, type LLMDebugLogger } from './debug';
13
14
  export { llmPluginRegistry, registerLLMBackend, unregisterLLMBackend, createLLMBackendFromPlugin, listLLMPlugins, hasLLMPlugin, defineBackend, type LLMBackendFactory, type LLMPluginMetadata, type LLMPlugin, } from './plugin';
14
15
  import type { LLMBackend, LLMProvider, CogitatorConfig } from '@cogitator-ai/types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,KAAK,eAAe,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAChG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,YAAY,EACZ,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,SAAS,GACf,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQpF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,GAC7B,UAAU,CAiGZ;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG;IAC/C,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,CASA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,KAAK,eAAe,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAChG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,YAAY,EACZ,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,SAAS,GACf,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQpF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,GAC7B,UAAU,CAiGZ;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG;IAC/C,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,CASA"}
package/dist/llm/index.js CHANGED
@@ -2,13 +2,14 @@
2
2
  * LLM Backends
3
3
  */
4
4
  export { BaseLLMBackend } from './base';
5
+ export { OpenAICompatibleBackend } from './openai-compatible-base';
5
6
  export { OllamaBackend } from './ollama';
6
7
  export { OpenAIBackend } from './openai';
7
8
  export { AnthropicBackend } from './anthropic';
8
9
  export { GoogleBackend } from './google';
9
10
  export { AzureOpenAIBackend } from './azure';
10
11
  export { BedrockBackend } from './bedrock';
11
- export { LLMError, createLLMError, llmUnavailable, llmInvalidResponse, llmTimeout, llmConfigError, llmNotImplemented, } from './errors';
12
+ export { LLMError, createLLMError, wrapSDKError, llmUnavailable, llmInvalidResponse, llmTimeout, llmConfigError, llmNotImplemented, } from './errors';
12
13
  export { LLMDebugWrapper, withDebug } from './debug';
13
14
  export { llmPluginRegistry, registerLLMBackend, unregisterLLMBackend, createLLMBackendFromPlugin, listLLMPlugins, hasLLMPlugin, defineBackend, } from './plugin';
14
15
  import { OllamaBackend } from './ollama';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import OpenAI from 'openai';
2
+ import type { ChatRequest, ChatResponse, ChatStreamChunk, ToolChoice, Message, LLMResponseFormat, MessageContent, ContentPart } from '@cogitator-ai/types';
3
+ import { BaseLLMBackend } from './base';
4
+ import { LLMError, type LLMErrorContext } from './errors';
5
+ export declare abstract class OpenAICompatibleBackend extends BaseLLMBackend {
6
+ protected abstract client: OpenAI;
7
+ protected resolveModel(request: ChatRequest): string;
8
+ chat(request: ChatRequest): Promise<ChatResponse>;
9
+ chatStream(request: ChatRequest): AsyncGenerator<ChatStreamChunk>;
10
+ protected convertMessages(messages: Message[]): OpenAI.Chat.ChatCompletionMessageParam[];
11
+ protected convertContent(content: MessageContent): string | OpenAI.Chat.ChatCompletionContentPart[];
12
+ protected convertContentPart(part: ContentPart): OpenAI.Chat.ChatCompletionContentPart;
13
+ protected getTextContent(content: MessageContent): string;
14
+ protected mapFinishReason(reason: string | null): ChatResponse['finishReason'];
15
+ protected tryParseJson(str: string, ctx: LLMErrorContext): Record<string, unknown>;
16
+ protected wrapAPIError(error: unknown, ctx: LLMErrorContext): LLMError;
17
+ protected convertResponseFormat(format: LLMResponseFormat | undefined): OpenAI.Chat.ChatCompletionCreateParams['response_format'];
18
+ protected convertToolChoice(choice: ToolChoice | undefined): OpenAI.Chat.ChatCompletionCreateParams['tool_choice'];
19
+ }
20
+ //# sourceMappingURL=openai-compatible-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-compatible-base.d.ts","sourceRoot":"","sources":["../../src/llm/openai-compatible-base.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EAEf,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAoC,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAE5F,8BAAsB,uBAAwB,SAAQ,cAAc;IAClE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;IAI9C,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA6DhD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC;IA8FxE,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;IA4BxF,SAAS,CAAC,cAAc,CACtB,OAAO,EAAE,cAAc,GACtB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;IAQnD,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAyB;IAsBtF,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;IAUzD,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,CAAC,cAAc,CAAC;IAa9E,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAalF,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,GAAG,QAAQ;IAItE,SAAS,CAAC,qBAAqB,CAC7B,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACpC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC;IAqB5D,SAAS,CAAC,iBAAiB,CACzB,MAAM,EAAE,UAAU,GAAG,SAAS,GAC7B,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC;CAYzD"}