@llumiverse/common 1.0.0-dev.20260224.234313Z → 1.0.0-dev.20260331.080752Z

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 (41) hide show
  1. package/lib/cjs/capability/openai.js +4 -1
  2. package/lib/cjs/capability/openai.js.map +1 -1
  3. package/lib/cjs/capability.js +28 -1
  4. package/lib/cjs/capability.js.map +1 -1
  5. package/lib/cjs/options/context-windows.js +2 -1
  6. package/lib/cjs/options/context-windows.js.map +1 -1
  7. package/lib/cjs/options/openai.js +101 -0
  8. package/lib/cjs/options/openai.js.map +1 -1
  9. package/lib/cjs/options/vertexai.js +219 -65
  10. package/lib/cjs/options/vertexai.js.map +1 -1
  11. package/lib/cjs/types.js +104 -1
  12. package/lib/cjs/types.js.map +1 -1
  13. package/lib/esm/capability/openai.js +4 -1
  14. package/lib/esm/capability/openai.js.map +1 -1
  15. package/lib/esm/capability.js +28 -1
  16. package/lib/esm/capability.js.map +1 -1
  17. package/lib/esm/options/context-windows.js +2 -1
  18. package/lib/esm/options/context-windows.js.map +1 -1
  19. package/lib/esm/options/openai.js +101 -0
  20. package/lib/esm/options/openai.js.map +1 -1
  21. package/lib/esm/options/vertexai.js +217 -65
  22. package/lib/esm/options/vertexai.js.map +1 -1
  23. package/lib/esm/types.js +102 -0
  24. package/lib/esm/types.js.map +1 -1
  25. package/lib/types/capability/openai.d.ts.map +1 -1
  26. package/lib/types/capability.d.ts.map +1 -1
  27. package/lib/types/options/context-windows.d.ts.map +1 -1
  28. package/lib/types/options/openai.d.ts +17 -2
  29. package/lib/types/options/openai.d.ts.map +1 -1
  30. package/lib/types/options/vertexai.d.ts +17 -1
  31. package/lib/types/options/vertexai.d.ts.map +1 -1
  32. package/lib/types/types.d.ts +95 -0
  33. package/lib/types/types.d.ts.map +1 -1
  34. package/package.json +1 -1
  35. package/src/LlumiverseError.test.ts +265 -0
  36. package/src/capability/openai.ts +21 -18
  37. package/src/capability.ts +30 -1
  38. package/src/options/context-windows.ts +2 -1
  39. package/src/options/openai.ts +126 -3
  40. package/src/options/vertexai.ts +262 -77
  41. package/src/types.ts +139 -0
@@ -1 +1 @@
1
- {"version":3,"file":"vertexai.d.ts","sourceRoot":"","sources":["../../../src/options/vertexai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vertexai.d.ts","sourceRoot":"","sources":["../../../src/options/vertexai.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,94 @@ export interface ResultValidationError {
60
60
  message: string;
61
61
  data?: CompletionResult[];
62
62
  }
63
+ /**
64
+ * Context information for LlumiverseError.
65
+ * Provides details about where and how the error occurred.
66
+ */
67
+ export interface LlumiverseErrorContext {
68
+ /** The provider that generated the error (e.g., 'openai', 'bedrock', 'vertexai') */
69
+ provider: string;
70
+ /** The model that was being used when the error occurred */
71
+ model: string;
72
+ /** The operation that failed */
73
+ operation: 'execute' | 'stream';
74
+ }
75
+ /**
76
+ * Standardized error class for Llumiverse driver errors.
77
+ *
78
+ * Normalizes errors from different LLM providers (OpenAI, Anthropic, Bedrock, VertexAI, etc.)
79
+ * into a consistent format. The primary value is the `retryable` flag, which enables upstream
80
+ * consumers to implement smart retry logic.
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * try {
85
+ * const result = await driver.execute(segments, options);
86
+ * } catch (error) {
87
+ * if (LlumiverseError.isLlumiverseError(error)) {
88
+ * console.log(`Provider: ${error.context.provider}`);
89
+ * console.log(`Model: ${error.context.model}`);
90
+ * console.log(`Retryable: ${error.retryable}`);
91
+ *
92
+ * if (error.retryable) {
93
+ * // Implement retry logic with exponential backoff
94
+ * await retryWithBackoff(() => driver.execute(segments, options));
95
+ * } else {
96
+ * // Handle non-retryable error (e.g., invalid API key, malformed request)
97
+ * logError(error);
98
+ * }
99
+ * }
100
+ * throw error;
101
+ * }
102
+ * ```
103
+ */
104
+ export declare class LlumiverseError extends Error {
105
+ /**
106
+ * HTTP status code (e.g., 429, 500) if available.
107
+ * Undefined if the error doesn't have a numeric status code.
108
+ */
109
+ readonly code?: number;
110
+ /**
111
+ * Provider-specific error name/type (e.g., "ThrottlingException", "ValidationException").
112
+ * Optional - used to preserve the semantic error type from the provider SDK.
113
+ */
114
+ readonly name: string;
115
+ /**
116
+ * Whether this error is retryable.
117
+ * - True: Definitely retryable (rate limits, timeouts, server errors)
118
+ * - False: Definitely not retryable (auth failures, invalid requests, malformed schemas)
119
+ * - Undefined: Unknown retryability - allows consumers to decide default behavior
120
+ *
121
+ * When undefined, consumers can choose their retry strategy:
122
+ * - Conservative: Don't retry unknown errors (avoid spam)
123
+ * - Resilient: Retry unknown errors (prioritize success)
124
+ */
125
+ readonly retryable?: boolean;
126
+ /**
127
+ * Context about where and how the error occurred.
128
+ * Includes provider, model, operation type.
129
+ */
130
+ readonly context: LlumiverseErrorContext;
131
+ /**
132
+ * The original error from the provider SDK.
133
+ * Preserved for debugging and detailed error inspection.
134
+ */
135
+ readonly originalError: unknown;
136
+ constructor(message: string, retryable: boolean | undefined, context: LlumiverseErrorContext, originalError: unknown, code?: number, name?: string);
137
+ /**
138
+ * Serialize the error to JSON for logging or transmission.
139
+ * Includes all error properties except the original error object itself.
140
+ */
141
+ toJSON(): Record<string, unknown>;
142
+ /**
143
+ * Type guard to check if an error is a LlumiverseError.
144
+ * Useful for conditional error handling.
145
+ *
146
+ * @param error - The error to check
147
+ * @returns True if the error is a LlumiverseError
148
+ */
149
+ static isLlumiverseError(error: unknown): error is LlumiverseError;
150
+ }
63
151
  export interface BaseResult {
64
152
  type: "text" | "json" | "image";
65
153
  value: any;
@@ -243,6 +331,13 @@ export interface ExecutionOptions extends StatelessExecutionOptions {
243
331
  * - N > 0: Truncate text to approximately N tokens (using ~4 chars/token estimate)
244
332
  */
245
333
  stripTextMaxTokens?: number;
334
+ /**
335
+ * Number of turns to keep heartbeat messages before stripping.
336
+ * - 0: Strip immediately
337
+ * - 1 (default): Keep for 1 turn then strip
338
+ * - undefined: Same as 1, strip after 1 turn
339
+ */
340
+ stripHeartbeatsAfterTurns?: number;
246
341
  }
247
342
  export declare enum SharedOptions {
248
343
  max_tokens = "max_tokens",
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llumiverse/common",
3
- "version": "1.0.0-dev.20260224.234313Z",
3
+ "version": "1.0.0-dev.20260331.080752Z",
4
4
  "type": "module",
5
5
  "description": "Public types, enums and options used by Llumiverse API.",
6
6
  "files": [
@@ -0,0 +1,265 @@
1
+ import { LlumiverseErrorContext, LlumiverseError } from '@llumiverse/common';
2
+ import { describe, expect, it } from 'vitest';
3
+
4
+ describe('LlumiverseError', () => {
5
+ const mockContext: LlumiverseErrorContext = {
6
+ provider: 'test-provider',
7
+ model: 'test-model',
8
+ operation: 'execute' as const,
9
+ };
10
+
11
+ describe('constructor', () => {
12
+ it('should create an error with all properties', () => {
13
+ const originalError = new Error('Original error');
14
+ const error = new LlumiverseError(
15
+ 'Test error message',
16
+ true,
17
+ mockContext,
18
+ originalError,
19
+ 429,
20
+ 'RateLimitError'
21
+ );
22
+
23
+ expect(error).toBeInstanceOf(Error);
24
+ expect(error).toBeInstanceOf(LlumiverseError);
25
+ expect(error.name).toBe('RateLimitError');
26
+ expect(error.message).toBe('Test error message');
27
+ expect(error.code).toBe(429);
28
+ expect(error.retryable).toBe(true);
29
+ expect(error.context).toEqual(mockContext);
30
+ expect(error.originalError).toBe(originalError);
31
+ });
32
+
33
+ it('should preserve stack trace from original error', () => {
34
+ const originalError = new Error('Original error');
35
+ const originalStack = originalError.stack;
36
+
37
+ const error = new LlumiverseError(
38
+ 'Wrapped error',
39
+ true,
40
+ mockContext,
41
+ originalError,
42
+ 500
43
+ );
44
+
45
+ expect(error.stack).toBe(originalStack);
46
+ });
47
+
48
+ it('should handle undefined code', () => {
49
+ const error = new LlumiverseError(
50
+ 'Test error',
51
+ true,
52
+ mockContext,
53
+ new Error('Unknown error')
54
+ );
55
+
56
+ expect(error.code).toBeUndefined();
57
+ expect(error.name).toBe('LlumiverseError'); // Default name
58
+ });
59
+
60
+ it('should handle non-retryable errors', () => {
61
+ const error = new LlumiverseError(
62
+ 'Auth error',
63
+ false,
64
+ mockContext,
65
+ new Error('Unauthorized'),
66
+ 401,
67
+ 'AuthenticationError'
68
+ );
69
+
70
+ expect(error.retryable).toBe(false);
71
+ expect(error.name).toBe('AuthenticationError');
72
+ });
73
+ });
74
+
75
+ describe('toJSON', () => {
76
+ it('should serialize to JSON', () => {
77
+ const originalError = new Error('Original error');
78
+ const error = new LlumiverseError(
79
+ 'Test error',
80
+ true,
81
+ mockContext,
82
+ originalError,
83
+ 429,
84
+ 'RateLimitError'
85
+ );
86
+
87
+ const json = error.toJSON();
88
+
89
+ expect(json).toHaveProperty('name', 'RateLimitError');
90
+ expect(json).toHaveProperty('message', 'Test error');
91
+ expect(json).toHaveProperty('code', 429);
92
+ expect(json).toHaveProperty('retryable', true);
93
+ expect(json).toHaveProperty('context', mockContext);
94
+ expect(json).toHaveProperty('stack');
95
+ expect(json).toHaveProperty('originalErrorMessage', 'Original error');
96
+ });
97
+
98
+ it('should handle non-Error original error', () => {
99
+ const error = new LlumiverseError(
100
+ 'Test error',
101
+ true,
102
+ mockContext,
103
+ 'string error',
104
+ 500
105
+ );
106
+
107
+ const json = error.toJSON();
108
+ expect(json.originalErrorMessage).toBe('string error');
109
+ });
110
+ });
111
+
112
+ describe('isLlumiverseError', () => {
113
+ it('should return true for LlumiverseError instances', () => {
114
+ const error = new LlumiverseError(
115
+ 'Test error',
116
+ true,
117
+ mockContext,
118
+ new Error('Original'),
119
+ 500
120
+ );
121
+
122
+ expect(LlumiverseError.isLlumiverseError(error)).toBe(true);
123
+ });
124
+
125
+ it('should return false for regular Error', () => {
126
+ const error = new Error('Regular error');
127
+ expect(LlumiverseError.isLlumiverseError(error)).toBe(false);
128
+ });
129
+
130
+ it('should return false for non-error values', () => {
131
+ expect(LlumiverseError.isLlumiverseError(null)).toBe(false);
132
+ expect(LlumiverseError.isLlumiverseError(undefined)).toBe(false);
133
+ expect(LlumiverseError.isLlumiverseError('string')).toBe(false);
134
+ expect(LlumiverseError.isLlumiverseError(123)).toBe(false);
135
+ expect(LlumiverseError.isLlumiverseError({})).toBe(false);
136
+ });
137
+ });
138
+
139
+ describe('error classification examples', () => {
140
+ it('should handle rate limit errors', () => {
141
+ const error = new LlumiverseError(
142
+ 'Rate limit exceeded',
143
+ true,
144
+ { ...mockContext, operation: 'execute' as const },
145
+ new Error('Too many requests'),
146
+ 429
147
+ );
148
+
149
+ expect(error.retryable).toBe(true);
150
+ expect(error.code).toBe(429);
151
+ });
152
+
153
+ it('should handle server errors', () => {
154
+ const error = new LlumiverseError(
155
+ 'Internal server error',
156
+ true,
157
+ { ...mockContext, operation: 'stream' as const },
158
+ new Error('Server error'),
159
+ 500
160
+ );
161
+
162
+ expect(error.retryable).toBe(true);
163
+ expect(error.code).toBe(500);
164
+ });
165
+
166
+ it('should handle authentication errors', () => {
167
+ const error = new LlumiverseError(
168
+ 'Invalid API key',
169
+ false,
170
+ mockContext,
171
+ new Error('Unauthorized'),
172
+ 401
173
+ );
174
+
175
+ expect(error.retryable).toBe(false);
176
+ expect(error.code).toBe(401);
177
+ });
178
+
179
+ it('should handle validation errors', () => {
180
+ const error = new LlumiverseError(
181
+ 'Invalid request',
182
+ false,
183
+ mockContext,
184
+ new Error('Bad request'),
185
+ 400
186
+ );
187
+
188
+ expect(error.retryable).toBe(false);
189
+ expect(error.code).toBe(400);
190
+ });
191
+
192
+ it('should handle timeout errors', () => {
193
+ const error = new LlumiverseError(
194
+ 'Request timeout',
195
+ true,
196
+ mockContext,
197
+ new Error('Timeout'),
198
+ 408
199
+ );
200
+
201
+ expect(error.retryable).toBe(true);
202
+ expect(error.code).toBe(408);
203
+ });
204
+
205
+ it('should handle service overloaded errors', () => {
206
+ const error = new LlumiverseError(
207
+ 'Service overloaded',
208
+ true,
209
+ mockContext,
210
+ new Error('Overloaded'),
211
+ 529
212
+ );
213
+
214
+ expect(error.retryable).toBe(true);
215
+ expect(error.code).toBe(529);
216
+ });
217
+ });
218
+
219
+ describe('context information', () => {
220
+ it('should include provider information', () => {
221
+ const error = new LlumiverseError(
222
+ 'Error',
223
+ true,
224
+ { ...mockContext, provider: 'openai' },
225
+ new Error('Test'),
226
+ 500
227
+ );
228
+
229
+ expect(error.context.provider).toBe('openai');
230
+ });
231
+
232
+ it('should include model information', () => {
233
+ const error = new LlumiverseError(
234
+ 'Error',
235
+ true,
236
+ { ...mockContext, model: 'gpt-4' },
237
+ new Error('Test'),
238
+ 500
239
+ );
240
+
241
+ expect(error.context.model).toBe('gpt-4');
242
+ });
243
+
244
+ it('should include operation type', () => {
245
+ const executeError = new LlumiverseError(
246
+ 'Error',
247
+ true,
248
+ { ...mockContext, operation: 'execute' as const },
249
+ new Error('Test'),
250
+ 500
251
+ );
252
+
253
+ const streamError = new LlumiverseError(
254
+ 'Error',
255
+ true,
256
+ { ...mockContext, operation: 'stream' as const },
257
+ new Error('Test'),
258
+ 500
259
+ );
260
+
261
+ expect(executeError.context.operation).toBe('execute');
262
+ expect(streamError.context.operation).toBe('stream');
263
+ });
264
+ });
265
+ });
@@ -11,23 +11,26 @@ const RECORD_MODEL_CAPABILITIES: Record<string, OpenAIModelCapability> = {
11
11
  // Populate RECORD_FAMILY_CAPABILITIES as a const record (lowest common denominator for each family)
12
12
  // For OpenAI, tool_support_streaming matches tool_support since the API supports tools while streaming
13
13
  const RECORD_FAMILY_CAPABILITIES: Record<string, OpenAIModelCapability> = {
14
- "gpt": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
15
- "gpt-3.5": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
16
- "gpt-4": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
17
- "gpt-4-turbo": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
18
- "gpt-4o": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
19
- "gpt-4.1": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
20
- "gpt-4.5": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
21
- "gpt-image": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: false, image: true, video: false, audio: false, embed: false }, tool_support: false },
22
- "gpt-oss": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
23
- "o": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
24
- "o1-mini": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
25
- "o1-preview": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
26
- "omni-moderation": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
27
- "sora": { input: { text: true, image: true, video: true, audio: false, embed: false }, output: { text: false, image: false, video: true, audio: true, embed: false }, tool_support: false },
28
- "text-embedding": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: false, image: false, video: false, audio: false, embed: true }, tool_support: false },
29
- "text-moderation": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
30
- "whisper": { input: { text: false, image: false, video: false, audio: true, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false }
14
+ "gpt": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
15
+ "gpt-3.5": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
16
+ "gpt-4": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
17
+ "gpt-4-turbo": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
18
+ "gpt-4o": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
19
+ "gpt-4.1": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
20
+ "gpt-4.5": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
21
+ "gpt-5": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
22
+ "gpt-image": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: false, image: true, video: false, audio: false, embed: false }, tool_support: false },
23
+ "chatgpt-image": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: false, image: true, video: false, audio: false, embed: false }, tool_support: false },
24
+ "dall-e": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: false, image: true, video: false, audio: false, embed: false }, tool_support: false },
25
+ "gpt-oss": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
26
+ "o": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
27
+ "o1-mini": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
28
+ "o1-preview": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
29
+ "omni-moderation": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
30
+ "sora": { input: { text: true, image: true, video: true, audio: false, embed: false }, output: { text: false, image: false, video: true, audio: true, embed: false }, tool_support: false },
31
+ "text-embedding": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: false, image: false, video: false, audio: false, embed: true }, tool_support: false },
32
+ "text-moderation": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
33
+ "whisper": { input: { text: false, image: false, video: false, audio: true, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false }
31
34
  };
32
35
 
33
36
  // Fallback pattern lists for inferring modalities and tool support
@@ -40,7 +43,7 @@ const VIDEO_OUTPUT_MODELS = ["video"];
40
43
  const AUDIO_OUTPUT_MODELS = ["audio"];
41
44
  const TEXT_OUTPUT_MODELS = ["text"];
42
45
  const EMBEDDING_OUTPUT_MODELS = ["embed"];
43
- const TOOL_SUPPORT_MODELS = ["tool", "gpt", "o1", "o3", "o4"];
46
+ const TOOL_SUPPORT_MODELS = ["tool", "gpt", "gpt-5", "o1", "o3", "o4"];
44
47
 
45
48
  function modelMatches(modelName: string, patterns: string[]): boolean {
46
49
  return patterns.some(pattern => modelName.includes(pattern));
package/src/capability.ts CHANGED
@@ -28,13 +28,19 @@ function _getModelCapabilities(model: string, provider?: string | Providers): Mo
28
28
  case Providers.vertexai:
29
29
  return getModelCapabilitiesVertexAI(model);
30
30
  case Providers.openai:
31
- case Providers.openai_compatible:
32
31
  return getModelCapabilitiesOpenAI(model);
32
+ case Providers.openai_compatible:
33
+ return getModelCapabilitiesOpenAICompatible(model);
33
34
  case Providers.bedrock:
34
35
  return getModelCapabilitiesBedrock(model);
35
36
  case Providers.azure_foundry:
36
37
  // Azure Foundry uses OpenAI capabilities
37
38
  return getModelCapabilitiesAzureFoundry(model);
39
+ case Providers.groq:
40
+ case Providers.togetherai:
41
+ case Providers.mistralai:
42
+ // These providers host text models that generally support tool use
43
+ return getModelCapabilitiesOpenAICompatible(model);
38
44
  case Providers.xai:
39
45
  // xAI (Grok) models support tool use and are text-based
40
46
  return {
@@ -65,6 +71,29 @@ function _getModelCapabilities(model: string, provider?: string | Providers): Mo
65
71
  }
66
72
  }
67
73
 
74
+ // Patterns for models known NOT to support tool use on OpenAI-compatible endpoints
75
+ const NO_TOOL_SUPPORT_PATTERNS = ['image', 'embed', 'moderation', 'whisper', 'sora', 'dall-e', 'tts'];
76
+
77
+ /**
78
+ * For OpenAI-compatible endpoints (e.g., OpenRouter), try OpenAI capability lookup first.
79
+ * If no explicit match is found, default to tool_support: true since most models
80
+ * on these platforms support tool use. Blacklist known non-tool-supporting patterns.
81
+ */
82
+ function getModelCapabilitiesOpenAICompatible(model: string): ModelCapabilities {
83
+ const caps = getModelCapabilitiesOpenAI(model);
84
+ if (caps.tool_support !== undefined) {
85
+ return caps;
86
+ }
87
+ const normalized = model.toLowerCase();
88
+ const isNonToolModel = NO_TOOL_SUPPORT_PATTERNS.some(p => normalized.includes(p));
89
+ return {
90
+ input: { text: true },
91
+ output: { text: true },
92
+ tool_support: !isNonToolModel,
93
+ tool_support_streaming: !isNonToolModel,
94
+ };
95
+ }
96
+
68
97
  export function supportsToolUse(model: string, provider?: string | Providers, streaming: boolean = false): boolean {
69
98
  const capabilities = getModelCapabilities(model, provider);
70
99
  return streaming ? !!capabilities.tool_support_streaming : !!capabilities.tool_support;
@@ -55,8 +55,9 @@ export function getMaxInputTokens(model: string): number {
55
55
  * Returns the context window size (input + output) for a given model.
56
56
  */
57
57
  export function getContextWindowSize(model: string): number {
58
- // Claude models — all Claude 3+ have 200K context windows
58
+ // Claude models
59
59
  if (model.includes('claude')) {
60
+ // All Claude models use 200K (1M requires beta header, handled separately later)
60
61
  return 200_000;
61
62
  }
62
63
  // Gemini models