@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.
- package/lib/cjs/capability/openai.js +4 -1
- package/lib/cjs/capability/openai.js.map +1 -1
- package/lib/cjs/capability.js +28 -1
- package/lib/cjs/capability.js.map +1 -1
- package/lib/cjs/options/context-windows.js +2 -1
- package/lib/cjs/options/context-windows.js.map +1 -1
- package/lib/cjs/options/openai.js +101 -0
- package/lib/cjs/options/openai.js.map +1 -1
- package/lib/cjs/options/vertexai.js +219 -65
- package/lib/cjs/options/vertexai.js.map +1 -1
- package/lib/cjs/types.js +104 -1
- package/lib/cjs/types.js.map +1 -1
- package/lib/esm/capability/openai.js +4 -1
- package/lib/esm/capability/openai.js.map +1 -1
- package/lib/esm/capability.js +28 -1
- package/lib/esm/capability.js.map +1 -1
- package/lib/esm/options/context-windows.js +2 -1
- package/lib/esm/options/context-windows.js.map +1 -1
- package/lib/esm/options/openai.js +101 -0
- package/lib/esm/options/openai.js.map +1 -1
- package/lib/esm/options/vertexai.js +217 -65
- package/lib/esm/options/vertexai.js.map +1 -1
- package/lib/esm/types.js +102 -0
- package/lib/esm/types.js.map +1 -1
- package/lib/types/capability/openai.d.ts.map +1 -1
- package/lib/types/capability.d.ts.map +1 -1
- package/lib/types/options/context-windows.d.ts.map +1 -1
- package/lib/types/options/openai.d.ts +17 -2
- package/lib/types/options/openai.d.ts.map +1 -1
- package/lib/types/options/vertexai.d.ts +17 -1
- package/lib/types/options/vertexai.d.ts.map +1 -1
- package/lib/types/types.d.ts +95 -0
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/LlumiverseError.test.ts +265 -0
- package/src/capability/openai.ts +21 -18
- package/src/capability.ts +30 -1
- package/src/options/context-windows.ts +2 -1
- package/src/options/openai.ts +126 -3
- package/src/options/vertexai.ts +262 -77
- package/src/types.ts +139 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vertexai.d.ts","sourceRoot":"","sources":["../../../src/options/vertexai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"vertexai.d.ts","sourceRoot":"","sources":["../../../src/options/vertexai.ts"],"names":[],"mappings":"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"}
|
package/lib/types/types.d.ts
CHANGED
|
@@ -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",
|
package/lib/types/types.d.ts.map
CHANGED
|
@@ -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
|
@@ -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
|
+
});
|
package/src/capability/openai.ts
CHANGED
|
@@ -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":
|
|
15
|
-
"gpt-3.5":
|
|
16
|
-
"gpt-4":
|
|
17
|
-
"gpt-4-turbo":
|
|
18
|
-
"gpt-4o":
|
|
19
|
-
"gpt-4.1":
|
|
20
|
-
"gpt-4.5":
|
|
21
|
-
"gpt-
|
|
22
|
-
"gpt-
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
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
|
|
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
|