learngraph 0.4.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/routes/analytics.js +288 -0
- package/dist/cjs/api/routes/analytics.js.map +1 -0
- package/dist/cjs/api/routes/assessments.js +269 -0
- package/dist/cjs/api/routes/assessments.js.map +1 -0
- package/dist/cjs/api/routes/curriculum.js +345 -0
- package/dist/cjs/api/routes/curriculum.js.map +1 -0
- package/dist/cjs/api/routes/edges.js +162 -0
- package/dist/cjs/api/routes/edges.js.map +1 -0
- package/dist/cjs/api/routes/explore.js +224 -0
- package/dist/cjs/api/routes/explore.js.map +1 -0
- package/dist/cjs/api/routes/learners.js +324 -0
- package/dist/cjs/api/routes/learners.js.map +1 -0
- package/dist/cjs/api/routes/me.js +404 -0
- package/dist/cjs/api/routes/me.js.map +1 -0
- package/dist/cjs/api/routes/skills.js +319 -0
- package/dist/cjs/api/routes/skills.js.map +1 -0
- package/dist/cjs/api/server.js +185 -0
- package/dist/cjs/api/server.js.map +1 -0
- package/dist/cjs/api/types.js +10 -0
- package/dist/cjs/api/types.js.map +1 -0
- package/dist/cjs/assessment/adaptive.js +390 -0
- package/dist/cjs/assessment/adaptive.js.map +1 -0
- package/dist/cjs/assessment/bkt.js +362 -0
- package/dist/cjs/assessment/bkt.js.map +1 -0
- package/dist/cjs/assessment/index.js +54 -0
- package/dist/cjs/assessment/index.js.map +1 -0
- package/dist/cjs/assessment/irt.js +420 -0
- package/dist/cjs/assessment/irt.js.map +1 -0
- package/dist/cjs/assessment/mastery-engine.js +411 -0
- package/dist/cjs/assessment/mastery-engine.js.map +1 -0
- package/dist/cjs/components/LearningPathView.js +320 -0
- package/dist/cjs/components/LearningPathView.js.map +1 -0
- package/dist/cjs/components/ProgressDashboard.js +308 -0
- package/dist/cjs/components/ProgressDashboard.js.map +1 -0
- package/dist/cjs/components/SkillCard.js +264 -0
- package/dist/cjs/components/SkillCard.js.map +1 -0
- package/dist/cjs/components/SkillExplorer.js +401 -0
- package/dist/cjs/components/SkillExplorer.js.map +1 -0
- package/dist/cjs/components/SkillGraph.js +435 -0
- package/dist/cjs/components/SkillGraph.js.map +1 -0
- package/dist/cjs/components/hooks.js +510 -0
- package/dist/cjs/components/hooks.js.map +1 -0
- package/dist/cjs/components/index.js +77 -0
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/cjs/components/types.js +34 -0
- package/dist/cjs/components/types.js.map +1 -0
- package/dist/cjs/index.js +36 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/llm/adapters/anthropic.js +91 -3
- package/dist/cjs/llm/adapters/anthropic.js.map +1 -1
- package/dist/cjs/llm/adapters/gemini.js +101 -8
- package/dist/cjs/llm/adapters/gemini.js.map +1 -1
- package/dist/cjs/llm/adapters/index.js +42 -1
- package/dist/cjs/llm/adapters/index.js.map +1 -1
- package/dist/cjs/llm/adapters/ollama.js +120 -3
- package/dist/cjs/llm/adapters/ollama.js.map +1 -1
- package/dist/cjs/llm/adapters/openai.js +108 -2
- package/dist/cjs/llm/adapters/openai.js.map +1 -1
- package/dist/cjs/mcp/cli.js +302 -0
- package/dist/cjs/mcp/cli.js.map +1 -0
- package/dist/cjs/mcp/index.js +79 -0
- package/dist/cjs/mcp/index.js.map +1 -0
- package/dist/cjs/mcp/prompts.js +425 -0
- package/dist/cjs/mcp/prompts.js.map +1 -0
- package/dist/cjs/mcp/resources.js +371 -0
- package/dist/cjs/mcp/resources.js.map +1 -0
- package/dist/cjs/mcp/server.js +410 -0
- package/dist/cjs/mcp/server.js.map +1 -0
- package/dist/cjs/mcp/tools.js +612 -0
- package/dist/cjs/mcp/tools.js.map +1 -0
- package/dist/cjs/mcp/types.js +10 -0
- package/dist/cjs/mcp/types.js.map +1 -0
- package/dist/cjs/query/index.js +23 -4
- package/dist/cjs/query/index.js.map +1 -1
- package/dist/cjs/query/path.js +313 -0
- package/dist/cjs/query/path.js.map +1 -0
- package/dist/cjs/query/spaced-repetition.js +298 -0
- package/dist/cjs/query/spaced-repetition.js.map +1 -0
- package/dist/cjs/query/zpd.js +216 -0
- package/dist/cjs/query/zpd.js.map +1 -0
- package/dist/cjs/types/assessment.js +46 -0
- package/dist/cjs/types/assessment.js.map +1 -0
- package/dist/cjs/types/bloom.js +12 -1
- package/dist/cjs/types/bloom.js.map +1 -1
- package/dist/cjs/types/index.js +7 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/esm/api/routes/analytics.js +285 -0
- package/dist/esm/api/routes/analytics.js.map +1 -0
- package/dist/esm/api/routes/assessments.js +266 -0
- package/dist/esm/api/routes/assessments.js.map +1 -0
- package/dist/esm/api/routes/curriculum.js +342 -0
- package/dist/esm/api/routes/curriculum.js.map +1 -0
- package/dist/esm/api/routes/edges.js +159 -0
- package/dist/esm/api/routes/edges.js.map +1 -0
- package/dist/esm/api/routes/explore.js +221 -0
- package/dist/esm/api/routes/explore.js.map +1 -0
- package/dist/esm/api/routes/learners.js +321 -0
- package/dist/esm/api/routes/learners.js.map +1 -0
- package/dist/esm/api/routes/me.js +401 -0
- package/dist/esm/api/routes/me.js.map +1 -0
- package/dist/esm/api/routes/skills.js +316 -0
- package/dist/esm/api/routes/skills.js.map +1 -0
- package/dist/esm/api/server.js +179 -0
- package/dist/esm/api/server.js.map +1 -0
- package/dist/esm/api/types.js +9 -0
- package/dist/esm/api/types.js.map +1 -0
- package/dist/esm/assessment/adaptive.js +384 -0
- package/dist/esm/assessment/adaptive.js.map +1 -0
- package/dist/esm/assessment/bkt.js +354 -0
- package/dist/esm/assessment/bkt.js.map +1 -0
- package/dist/esm/assessment/index.js +21 -0
- package/dist/esm/assessment/index.js.map +1 -0
- package/dist/esm/assessment/irt.js +406 -0
- package/dist/esm/assessment/irt.js.map +1 -0
- package/dist/esm/assessment/mastery-engine.js +406 -0
- package/dist/esm/assessment/mastery-engine.js.map +1 -0
- package/dist/esm/components/LearningPathView.js +316 -0
- package/dist/esm/components/LearningPathView.js.map +1 -0
- package/dist/esm/components/ProgressDashboard.js +304 -0
- package/dist/esm/components/ProgressDashboard.js.map +1 -0
- package/dist/esm/components/SkillCard.js +260 -0
- package/dist/esm/components/SkillCard.js.map +1 -0
- package/dist/esm/components/SkillExplorer.js +397 -0
- package/dist/esm/components/SkillExplorer.js.map +1 -0
- package/dist/esm/components/SkillGraph.js +398 -0
- package/dist/esm/components/SkillGraph.js.map +1 -0
- package/dist/esm/components/hooks.js +502 -0
- package/dist/esm/components/hooks.js.map +1 -0
- package/dist/esm/components/index.js +61 -0
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/components/types.js +31 -0
- package/dist/esm/components/types.js.map +1 -0
- package/dist/esm/index.js +13 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/llm/adapters/anthropic.js +88 -2
- package/dist/esm/llm/adapters/anthropic.js.map +1 -1
- package/dist/esm/llm/adapters/gemini.js +98 -7
- package/dist/esm/llm/adapters/gemini.js.map +1 -1
- package/dist/esm/llm/adapters/index.js +15 -4
- package/dist/esm/llm/adapters/index.js.map +1 -1
- package/dist/esm/llm/adapters/ollama.js +117 -2
- package/dist/esm/llm/adapters/ollama.js.map +1 -1
- package/dist/esm/llm/adapters/openai.js +105 -1
- package/dist/esm/llm/adapters/openai.js.map +1 -1
- package/dist/esm/mcp/cli.js +267 -0
- package/dist/esm/mcp/cli.js.map +1 -0
- package/dist/esm/mcp/index.js +39 -0
- package/dist/esm/mcp/index.js.map +1 -0
- package/dist/esm/mcp/prompts.js +419 -0
- package/dist/esm/mcp/prompts.js.map +1 -0
- package/dist/esm/mcp/resources.js +359 -0
- package/dist/esm/mcp/resources.js.map +1 -0
- package/dist/esm/mcp/server.js +372 -0
- package/dist/esm/mcp/server.js.map +1 -0
- package/dist/esm/mcp/tools.js +598 -0
- package/dist/esm/mcp/tools.js.map +1 -0
- package/dist/esm/mcp/types.js +9 -0
- package/dist/esm/mcp/types.js.map +1 -0
- package/dist/esm/query/index.js +11 -5
- package/dist/esm/query/index.js.map +1 -1
- package/dist/esm/query/path.js +308 -0
- package/dist/esm/query/path.js.map +1 -0
- package/dist/esm/query/spaced-repetition.js +292 -0
- package/dist/esm/query/spaced-repetition.js.map +1 -0
- package/dist/esm/query/zpd.js +211 -0
- package/dist/esm/query/zpd.js.map +1 -0
- package/dist/esm/types/assessment.js +40 -0
- package/dist/esm/types/assessment.js.map +1 -0
- package/dist/esm/types/bloom.js +11 -0
- package/dist/esm/types/bloom.js.map +1 -1
- package/dist/esm/types/index.js +2 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/types/api/routes/analytics.d.ts +14 -0
- package/dist/types/api/routes/analytics.d.ts.map +1 -0
- package/dist/types/api/routes/assessments.d.ts +14 -0
- package/dist/types/api/routes/assessments.d.ts.map +1 -0
- package/dist/types/api/routes/curriculum.d.ts +14 -0
- package/dist/types/api/routes/curriculum.d.ts.map +1 -0
- package/dist/types/api/routes/edges.d.ts +14 -0
- package/dist/types/api/routes/edges.d.ts.map +1 -0
- package/dist/types/api/routes/explore.d.ts +14 -0
- package/dist/types/api/routes/explore.d.ts.map +1 -0
- package/dist/types/api/routes/learners.d.ts +14 -0
- package/dist/types/api/routes/learners.d.ts.map +1 -0
- package/dist/types/api/routes/me.d.ts +14 -0
- package/dist/types/api/routes/me.d.ts.map +1 -0
- package/dist/types/api/routes/skills.d.ts +14 -0
- package/dist/types/api/routes/skills.d.ts.map +1 -0
- package/dist/types/api/server.d.ts +147 -0
- package/dist/types/api/server.d.ts.map +1 -0
- package/dist/types/api/types.d.ts +443 -0
- package/dist/types/api/types.d.ts.map +1 -0
- package/dist/types/assessment/adaptive.d.ts +155 -0
- package/dist/types/assessment/adaptive.d.ts.map +1 -0
- package/dist/types/assessment/bkt.d.ts +185 -0
- package/dist/types/assessment/bkt.d.ts.map +1 -0
- package/dist/types/assessment/index.d.ts +18 -0
- package/dist/types/assessment/index.d.ts.map +1 -0
- package/dist/types/assessment/irt.d.ts +159 -0
- package/dist/types/assessment/irt.d.ts.map +1 -0
- package/dist/types/assessment/mastery-engine.d.ts +178 -0
- package/dist/types/assessment/mastery-engine.d.ts.map +1 -0
- package/dist/types/components/LearningPathView.d.ts +40 -0
- package/dist/types/components/LearningPathView.d.ts.map +1 -0
- package/dist/types/components/ProgressDashboard.d.ts +49 -0
- package/dist/types/components/ProgressDashboard.d.ts.map +1 -0
- package/dist/types/components/SkillCard.d.ts +34 -0
- package/dist/types/components/SkillCard.d.ts.map +1 -0
- package/dist/types/components/SkillExplorer.d.ts +39 -0
- package/dist/types/components/SkillExplorer.d.ts.map +1 -0
- package/dist/types/components/SkillGraph.d.ts +38 -0
- package/dist/types/components/SkillGraph.d.ts.map +1 -0
- package/dist/types/components/hooks.d.ts +187 -0
- package/dist/types/components/hooks.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +59 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/components/types.d.ts +410 -0
- package/dist/types/components/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/llm/adapters/anthropic.d.ts +84 -1
- package/dist/types/llm/adapters/anthropic.d.ts.map +1 -1
- package/dist/types/llm/adapters/gemini.d.ts +93 -6
- package/dist/types/llm/adapters/gemini.d.ts.map +1 -1
- package/dist/types/llm/adapters/index.d.ts +13 -4
- package/dist/types/llm/adapters/index.d.ts.map +1 -1
- package/dist/types/llm/adapters/ollama.d.ts +126 -1
- package/dist/types/llm/adapters/ollama.d.ts.map +1 -1
- package/dist/types/llm/adapters/openai.d.ts +104 -1
- package/dist/types/llm/adapters/openai.d.ts.map +1 -1
- package/dist/types/mcp/cli.d.ts +15 -0
- package/dist/types/mcp/cli.d.ts.map +1 -0
- package/dist/types/mcp/index.d.ts +32 -0
- package/dist/types/mcp/index.d.ts.map +1 -0
- package/dist/types/mcp/prompts.d.ts +27 -0
- package/dist/types/mcp/prompts.d.ts.map +1 -0
- package/dist/types/mcp/resources.d.ts +59 -0
- package/dist/types/mcp/resources.d.ts.map +1 -0
- package/dist/types/mcp/server.d.ts +136 -0
- package/dist/types/mcp/server.d.ts.map +1 -0
- package/dist/types/mcp/tools.d.ts +344 -0
- package/dist/types/mcp/tools.d.ts.map +1 -0
- package/dist/types/mcp/types.d.ts +137 -0
- package/dist/types/mcp/types.d.ts.map +1 -0
- package/dist/types/query/index.d.ts +8 -0
- package/dist/types/query/index.d.ts.map +1 -1
- package/dist/types/query/path.d.ts +102 -0
- package/dist/types/query/path.d.ts.map +1 -0
- package/dist/types/query/spaced-repetition.d.ts +135 -0
- package/dist/types/query/spaced-repetition.d.ts.map +1 -0
- package/dist/types/query/zpd.d.ts +97 -0
- package/dist/types/query/zpd.d.ts.map +1 -0
- package/dist/types/types/assessment.d.ts +512 -0
- package/dist/types/types/assessment.d.ts.map +1 -0
- package/dist/types/types/bloom.d.ts +4 -0
- package/dist/types/types/bloom.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +3 -1
- package/dist/types/types/index.d.ts.map +1 -1
- package/package.json +48 -3
|
@@ -1,9 +1,70 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Anthropic adapter for LLM integration
|
|
3
3
|
*
|
|
4
|
+
* Supports all Claude models including the latest Claude 4.5 family.
|
|
5
|
+
*
|
|
4
6
|
* @packageDocumentation
|
|
5
7
|
*/
|
|
6
8
|
import { BaseLLMAdapter, LLMError, DEFAULT_CONFIG } from './base.js';
|
|
9
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
// Claude Model Registry
|
|
11
|
+
// Models are updated frequently - use any valid model ID string.
|
|
12
|
+
// These constants are provided for convenience but you can use any model.
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Claude 4.5 Models (Latest - November 2025)
|
|
16
|
+
* - Opus 4.5: Most intelligent, complex reasoning
|
|
17
|
+
* - Sonnet 4.5: Best for coding & agents
|
|
18
|
+
* - Haiku 4.5: Fast & cost-effective
|
|
19
|
+
*/
|
|
20
|
+
export const CLAUDE_4_5_MODELS = {
|
|
21
|
+
'opus-4.5': 'claude-opus-4-5-20251101',
|
|
22
|
+
'sonnet-4.5': 'claude-sonnet-4-5-20250514',
|
|
23
|
+
'haiku-4.5': 'claude-haiku-4-5-20251001',
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Claude 4 Models (May-August 2025)
|
|
27
|
+
*/
|
|
28
|
+
export const CLAUDE_4_MODELS = {
|
|
29
|
+
'opus-4.1': 'claude-opus-4-1-20250805',
|
|
30
|
+
'opus-4': 'claude-opus-4-20250514',
|
|
31
|
+
'sonnet-4': 'claude-sonnet-4-20250514',
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Claude 3.5 Models (Legacy - 2024)
|
|
35
|
+
*/
|
|
36
|
+
export const CLAUDE_3_5_MODELS = {
|
|
37
|
+
'sonnet-3.5': 'claude-3-5-sonnet-20241022',
|
|
38
|
+
'haiku-3.5': 'claude-3-5-haiku-20241022',
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Claude 3 Models (Legacy - Early 2024)
|
|
42
|
+
*/
|
|
43
|
+
export const CLAUDE_3_MODELS = {
|
|
44
|
+
'opus-3': 'claude-3-opus-20240229',
|
|
45
|
+
'sonnet-3': 'claude-3-sonnet-20240229',
|
|
46
|
+
'haiku-3': 'claude-3-haiku-20240307',
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* All available Claude models
|
|
50
|
+
*/
|
|
51
|
+
export const CLAUDE_MODELS = {
|
|
52
|
+
...CLAUDE_4_5_MODELS,
|
|
53
|
+
...CLAUDE_4_MODELS,
|
|
54
|
+
...CLAUDE_3_5_MODELS,
|
|
55
|
+
...CLAUDE_3_MODELS,
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Resolve a model alias or ID to the full model ID
|
|
59
|
+
*/
|
|
60
|
+
export function resolveClaudeModel(modelOrAlias) {
|
|
61
|
+
// Check if it's an alias
|
|
62
|
+
if (modelOrAlias in CLAUDE_MODELS) {
|
|
63
|
+
return CLAUDE_MODELS[modelOrAlias];
|
|
64
|
+
}
|
|
65
|
+
// Otherwise return as-is (allows using any model ID directly)
|
|
66
|
+
return modelOrAlias;
|
|
67
|
+
}
|
|
7
68
|
/**
|
|
8
69
|
* Anthropic adapter for Claude models
|
|
9
70
|
*/
|
|
@@ -103,12 +164,28 @@ export class AnthropicAdapter extends BaseLLMAdapter {
|
|
|
103
164
|
}
|
|
104
165
|
/**
|
|
105
166
|
* Create an Anthropic adapter from environment variables
|
|
167
|
+
*
|
|
168
|
+
* @param model - Model ID or alias (e.g., 'sonnet-4.5', 'opus-4.5', 'haiku-4.5')
|
|
169
|
+
* Use aliases for convenience or full model IDs for specific versions.
|
|
170
|
+
* Any valid Claude model ID will work - not limited to the aliases.
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* // Using aliases (recommended)
|
|
175
|
+
* const adapter = createAnthropicAdapter('sonnet-4.5');
|
|
176
|
+
*
|
|
177
|
+
* // Using full model ID
|
|
178
|
+
* const adapter = createAnthropicAdapter('claude-opus-4-5-20251101');
|
|
179
|
+
*
|
|
180
|
+
* // Using a future model (when released)
|
|
181
|
+
* const adapter = createAnthropicAdapter('claude-opus-5-20260101');
|
|
182
|
+
* ```
|
|
106
183
|
*/
|
|
107
|
-
export function createAnthropicAdapter(model = '
|
|
184
|
+
export function createAnthropicAdapter(model = 'sonnet-4.5', overrides) {
|
|
108
185
|
const apiKey = typeof process !== 'undefined' ? process.env.ANTHROPIC_API_KEY : undefined;
|
|
109
186
|
const config = {
|
|
110
187
|
provider: 'anthropic',
|
|
111
|
-
model,
|
|
188
|
+
model: resolveClaudeModel(model),
|
|
112
189
|
...overrides,
|
|
113
190
|
};
|
|
114
191
|
if (apiKey) {
|
|
@@ -116,4 +193,13 @@ export function createAnthropicAdapter(model = 'claude-3-5-sonnet-20241022', ove
|
|
|
116
193
|
}
|
|
117
194
|
return new AnthropicAdapter(config);
|
|
118
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* List all available Claude model aliases
|
|
198
|
+
*/
|
|
199
|
+
export function listClaudeModels() {
|
|
200
|
+
return Object.entries(CLAUDE_MODELS).map(([alias, modelId]) => ({
|
|
201
|
+
alias,
|
|
202
|
+
modelId,
|
|
203
|
+
}));
|
|
204
|
+
}
|
|
119
205
|
//# sourceMappingURL=anthropic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../src/llm/adapters/anthropic.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../src/llm/adapters/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,80 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Google Gemini LLM adapter
|
|
3
3
|
*
|
|
4
|
+
* Supports all Gemini models including the latest Gemini 3 family.
|
|
5
|
+
*
|
|
4
6
|
* @packageDocumentation
|
|
5
7
|
*/
|
|
6
8
|
import { BaseLLMAdapter, LLMError } from './base.js';
|
|
9
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
// Gemini Model Registry
|
|
11
|
+
// Models are updated frequently - use any valid model ID string.
|
|
12
|
+
// These constants are provided for convenience but you can use any model.
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Gemini 3 Models (Latest - December 2025)
|
|
16
|
+
* - gemini-3-pro: Most intelligent, PhD-level reasoning
|
|
17
|
+
* - gemini-3-flash: Fast frontier performance
|
|
18
|
+
* - gemini-3-deep-think: Extended reasoning mode
|
|
19
|
+
*/
|
|
20
|
+
export const GEMINI_3_MODELS = {
|
|
21
|
+
'gemini-3-pro': 'gemini-3.0-pro',
|
|
22
|
+
'gemini-3-flash': 'gemini-3.0-flash',
|
|
23
|
+
'gemini-3-deep-think': 'gemini-3.0-deep-think',
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Gemini 2.5 Models (2025)
|
|
27
|
+
* - Best price-performance ratio
|
|
28
|
+
*/
|
|
29
|
+
export const GEMINI_2_5_MODELS = {
|
|
30
|
+
'gemini-2.5-pro': 'gemini-2.5-pro',
|
|
31
|
+
'gemini-2.5-flash': 'gemini-2.5-flash',
|
|
32
|
+
'gemini-2.5-flash-lite': 'gemini-2.5-flash-lite',
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Gemini 2.0 Models (Late 2024 - Early 2025)
|
|
36
|
+
*/
|
|
37
|
+
export const GEMINI_2_0_MODELS = {
|
|
38
|
+
'gemini-2.0-flash': 'gemini-2.0-flash',
|
|
39
|
+
'gemini-2.0-flash-exp': 'gemini-2.0-flash-exp',
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Gemini 1.5 Models (Legacy - 2024)
|
|
43
|
+
*/
|
|
44
|
+
export const GEMINI_1_5_MODELS = {
|
|
45
|
+
'gemini-1.5-pro': 'gemini-1.5-pro',
|
|
46
|
+
'gemini-1.5-flash': 'gemini-1.5-flash',
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* All available Gemini models
|
|
50
|
+
*/
|
|
51
|
+
export const GEMINI_MODELS = {
|
|
52
|
+
...GEMINI_3_MODELS,
|
|
53
|
+
...GEMINI_2_5_MODELS,
|
|
54
|
+
...GEMINI_2_0_MODELS,
|
|
55
|
+
...GEMINI_1_5_MODELS,
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Resolve a model alias or ID to the full model ID
|
|
59
|
+
*/
|
|
60
|
+
export function resolveGeminiModel(modelOrAlias) {
|
|
61
|
+
// Check if it's an alias
|
|
62
|
+
if (modelOrAlias in GEMINI_MODELS) {
|
|
63
|
+
return GEMINI_MODELS[modelOrAlias];
|
|
64
|
+
}
|
|
65
|
+
// Otherwise return as-is (allows using any model ID directly)
|
|
66
|
+
return modelOrAlias;
|
|
67
|
+
}
|
|
7
68
|
/**
|
|
8
69
|
* Adapter for Google Gemini models
|
|
9
70
|
*
|
|
10
|
-
* Supports:
|
|
11
|
-
* - gemini-
|
|
12
|
-
* - gemini-
|
|
13
|
-
* - gemini-
|
|
14
|
-
* - gemini-1.
|
|
71
|
+
* Supports all Gemini models including:
|
|
72
|
+
* - Gemini 3: gemini-3-pro, gemini-3-flash, gemini-3-deep-think
|
|
73
|
+
* - Gemini 2.5: gemini-2.5-pro, gemini-2.5-flash
|
|
74
|
+
* - Gemini 2.0: gemini-2.0-flash
|
|
75
|
+
* - Legacy: gemini-1.5-pro, gemini-1.5-flash
|
|
76
|
+
*
|
|
77
|
+
* Any valid Gemini model ID will work.
|
|
15
78
|
*/
|
|
16
79
|
export class GeminiAdapter extends BaseLLMAdapter {
|
|
17
80
|
baseUrl;
|
|
@@ -132,15 +195,34 @@ export class GeminiAdapter extends BaseLLMAdapter {
|
|
|
132
195
|
}
|
|
133
196
|
/**
|
|
134
197
|
* Create a Gemini adapter from environment variables
|
|
198
|
+
*
|
|
199
|
+
* @param model - Model ID or alias (e.g., 'gemini-3-flash', 'gemini-3-pro', 'gemini-2.5-flash')
|
|
200
|
+
* Use aliases for convenience or full model IDs for specific versions.
|
|
201
|
+
* Any valid Gemini model ID will work - not limited to the aliases.
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* // Using latest fast model
|
|
206
|
+
* const adapter = createGeminiAdapter('gemini-3-flash');
|
|
207
|
+
*
|
|
208
|
+
* // Using most capable model
|
|
209
|
+
* const adapter = createGeminiAdapter('gemini-3-pro');
|
|
210
|
+
*
|
|
211
|
+
* // Using cost-effective option
|
|
212
|
+
* const adapter = createGeminiAdapter('gemini-2.5-flash');
|
|
213
|
+
*
|
|
214
|
+
* // Using a future model (when released)
|
|
215
|
+
* const adapter = createGeminiAdapter('gemini-4-ultra');
|
|
216
|
+
* ```
|
|
135
217
|
*/
|
|
136
|
-
export function createGeminiAdapter(model = 'gemini-
|
|
218
|
+
export function createGeminiAdapter(model = 'gemini-3-flash', overrides) {
|
|
137
219
|
// Support both GOOGLE_API_KEY and GEMINI_API_KEY
|
|
138
220
|
const apiKey = typeof process !== 'undefined'
|
|
139
221
|
? process.env.GOOGLE_API_KEY ?? process.env.GEMINI_API_KEY
|
|
140
222
|
: undefined;
|
|
141
223
|
const config = {
|
|
142
224
|
provider: 'gemini',
|
|
143
|
-
model,
|
|
225
|
+
model: resolveGeminiModel(model),
|
|
144
226
|
...overrides,
|
|
145
227
|
};
|
|
146
228
|
if (apiKey) {
|
|
@@ -148,4 +230,13 @@ export function createGeminiAdapter(model = 'gemini-2.0-flash-exp', overrides) {
|
|
|
148
230
|
}
|
|
149
231
|
return new GeminiAdapter(config);
|
|
150
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* List all available Gemini model aliases
|
|
235
|
+
*/
|
|
236
|
+
export function listGeminiModels() {
|
|
237
|
+
return Object.entries(GEMINI_MODELS).map(([alias, modelId]) => ({
|
|
238
|
+
alias,
|
|
239
|
+
modelId,
|
|
240
|
+
}));
|
|
241
|
+
}
|
|
151
242
|
//# sourceMappingURL=gemini.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../../src/llm/adapters/gemini.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../../src/llm/adapters/gemini.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* LLM adapter exports
|
|
3
3
|
*
|
|
4
|
+
* All adapters support flexible model selection:
|
|
5
|
+
* - Use model aliases for convenience (e.g., 'sonnet-4.5', 'gpt-5', 'gemini-3-flash')
|
|
6
|
+
* - Use full model IDs for specific versions
|
|
7
|
+
* - Use any valid model ID string for future models
|
|
8
|
+
*
|
|
4
9
|
* @packageDocumentation
|
|
5
10
|
*/
|
|
6
11
|
export { BaseLLMAdapter, LLMError, DEFAULT_CONFIG } from './base.js';
|
|
7
|
-
|
|
8
|
-
export {
|
|
9
|
-
|
|
10
|
-
export {
|
|
12
|
+
// OpenAI
|
|
13
|
+
export { OpenAIAdapter, createOpenAIAdapter, resolveOpenAIModel, listOpenAIModels, OPENAI_MODELS, GPT_5_MODELS, O_SERIES_MODELS, GPT_4_1_MODELS, GPT_4O_MODELS, GPT_4_LEGACY_MODELS, } from './openai.js';
|
|
14
|
+
// Anthropic (Claude)
|
|
15
|
+
export { AnthropicAdapter, createAnthropicAdapter, resolveClaudeModel, listClaudeModels, CLAUDE_MODELS, CLAUDE_4_5_MODELS, CLAUDE_4_MODELS, CLAUDE_3_5_MODELS, CLAUDE_3_MODELS, } from './anthropic.js';
|
|
16
|
+
// Ollama (Local)
|
|
17
|
+
export { OllamaAdapter, createOllamaAdapter, resolveOllamaModel, listOllamaModels, OLLAMA_MODELS, LLAMA_MODELS, MISTRAL_MODELS, QWEN_MODELS, CODING_MODELS, SMALL_MODELS, } from './ollama.js';
|
|
18
|
+
// Google Gemini
|
|
19
|
+
export { GeminiAdapter, createGeminiAdapter, resolveGeminiModel, listGeminiModels, GEMINI_MODELS, GEMINI_3_MODELS, GEMINI_2_5_MODELS, GEMINI_2_0_MODELS, GEMINI_1_5_MODELS, } from './gemini.js';
|
|
20
|
+
// OpenRouter (100+ models)
|
|
11
21
|
export { OpenRouterAdapter, createOpenRouterAdapter, OPENROUTER_MODELS } from './openrouter.js';
|
|
22
|
+
// MediaPipe (Local Gemma)
|
|
12
23
|
export { MediaPipeAdapter, createMediaPipeAdapter, MEDIAPIPE_MODELS } from './mediapipe.js';
|
|
13
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/llm/adapters/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/llm/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGrE,SAAS;AACT,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,qBAAqB;AACrB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AAGrB,gBAAgB;AAChB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEhG,0BAA0B;AAC1B,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,9 +1,96 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Ollama adapter for local LLM integration
|
|
3
3
|
*
|
|
4
|
+
* Supports any model available through Ollama including Llama, Mistral, Qwen, and more.
|
|
5
|
+
*
|
|
4
6
|
* @packageDocumentation
|
|
5
7
|
*/
|
|
6
8
|
import { BaseLLMAdapter, LLMError, DEFAULT_CONFIG } from './base.js';
|
|
9
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
// Ollama Model Registry
|
|
11
|
+
// Models change frequently as new releases come out.
|
|
12
|
+
// These are popular models - use `ollama list` to see what's installed.
|
|
13
|
+
// Any model name will work if it's pulled via `ollama pull <model>`.
|
|
14
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
15
|
+
/**
|
|
16
|
+
* Meta Llama Models (Latest)
|
|
17
|
+
* - llama3.3: 70B parameter model, excellent general purpose
|
|
18
|
+
* - llama3.2: Available in 1B, 3B, and vision variants
|
|
19
|
+
*/
|
|
20
|
+
export const LLAMA_MODELS = {
|
|
21
|
+
'llama3.3': 'llama3.3',
|
|
22
|
+
'llama3.3:70b': 'llama3.3:70b',
|
|
23
|
+
'llama3.2': 'llama3.2',
|
|
24
|
+
'llama3.2:1b': 'llama3.2:1b',
|
|
25
|
+
'llama3.2:3b': 'llama3.2:3b',
|
|
26
|
+
'llama3.2-vision': 'llama3.2-vision',
|
|
27
|
+
'llama3.1': 'llama3.1',
|
|
28
|
+
'llama3.1:8b': 'llama3.1:8b',
|
|
29
|
+
'llama3.1:70b': 'llama3.1:70b',
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Mistral Models
|
|
33
|
+
* - mistral-large: Most capable Mistral model
|
|
34
|
+
* - mistral-nemo: Fast, efficient
|
|
35
|
+
* - mixtral: Mixture of experts
|
|
36
|
+
*/
|
|
37
|
+
export const MISTRAL_MODELS = {
|
|
38
|
+
'mistral-large': 'mistral-large',
|
|
39
|
+
'mistral-nemo': 'mistral-nemo',
|
|
40
|
+
'mistral': 'mistral',
|
|
41
|
+
'mixtral': 'mixtral',
|
|
42
|
+
'mixtral:8x7b': 'mixtral:8x7b',
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Qwen Models (Alibaba)
|
|
46
|
+
* - qwen2.5: Latest Qwen release
|
|
47
|
+
* - qwen2.5-coder: Optimized for coding
|
|
48
|
+
*/
|
|
49
|
+
export const QWEN_MODELS = {
|
|
50
|
+
'qwen2.5': 'qwen2.5',
|
|
51
|
+
'qwen2.5:72b': 'qwen2.5:72b',
|
|
52
|
+
'qwen2.5-coder': 'qwen2.5-coder',
|
|
53
|
+
'qwen2': 'qwen2',
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Coding-Focused Models
|
|
57
|
+
*/
|
|
58
|
+
export const CODING_MODELS = {
|
|
59
|
+
'codellama': 'codellama',
|
|
60
|
+
'deepseek-coder-v2': 'deepseek-coder-v2',
|
|
61
|
+
'codegemma': 'codegemma',
|
|
62
|
+
'starcoder2': 'starcoder2',
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Small/Fast Models
|
|
66
|
+
*/
|
|
67
|
+
export const SMALL_MODELS = {
|
|
68
|
+
'phi3': 'phi3',
|
|
69
|
+
'phi3:mini': 'phi3:mini',
|
|
70
|
+
'gemma2': 'gemma2',
|
|
71
|
+
'gemma2:2b': 'gemma2:2b',
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* All popular Ollama models
|
|
75
|
+
*/
|
|
76
|
+
export const OLLAMA_MODELS = {
|
|
77
|
+
...LLAMA_MODELS,
|
|
78
|
+
...MISTRAL_MODELS,
|
|
79
|
+
...QWEN_MODELS,
|
|
80
|
+
...CODING_MODELS,
|
|
81
|
+
...SMALL_MODELS,
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Resolve a model alias or name (passthrough for Ollama since names are direct)
|
|
85
|
+
*/
|
|
86
|
+
export function resolveOllamaModel(modelOrAlias) {
|
|
87
|
+
// Check if it's an alias
|
|
88
|
+
if (modelOrAlias in OLLAMA_MODELS) {
|
|
89
|
+
return OLLAMA_MODELS[modelOrAlias];
|
|
90
|
+
}
|
|
91
|
+
// Otherwise return as-is (allows using any model name)
|
|
92
|
+
return modelOrAlias;
|
|
93
|
+
}
|
|
7
94
|
/**
|
|
8
95
|
* Ollama adapter for local models
|
|
9
96
|
*/
|
|
@@ -132,13 +219,41 @@ export class OllamaAdapter extends BaseLLMAdapter {
|
|
|
132
219
|
}
|
|
133
220
|
/**
|
|
134
221
|
* Create an Ollama adapter
|
|
222
|
+
*
|
|
223
|
+
* @param model - Any model name that's been pulled via `ollama pull <model>`
|
|
224
|
+
* Common models: llama3.3, mistral, qwen2.5, codellama
|
|
225
|
+
* Run `ollama list` to see installed models.
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```typescript
|
|
229
|
+
* // Using latest Llama model
|
|
230
|
+
* const adapter = createOllamaAdapter('llama3.3');
|
|
231
|
+
*
|
|
232
|
+
* // Using Mistral
|
|
233
|
+
* const adapter = createOllamaAdapter('mistral-large');
|
|
234
|
+
*
|
|
235
|
+
* // Using coding-focused model
|
|
236
|
+
* const adapter = createOllamaAdapter('qwen2.5-coder');
|
|
237
|
+
*
|
|
238
|
+
* // Using any custom or fine-tuned model
|
|
239
|
+
* const adapter = createOllamaAdapter('my-custom-model');
|
|
240
|
+
* ```
|
|
135
241
|
*/
|
|
136
|
-
export function createOllamaAdapter(model = 'llama3.
|
|
242
|
+
export function createOllamaAdapter(model = 'llama3.3', overrides) {
|
|
137
243
|
return new OllamaAdapter({
|
|
138
244
|
provider: 'ollama',
|
|
139
|
-
model,
|
|
245
|
+
model: resolveOllamaModel(model),
|
|
140
246
|
baseUrl: 'http://localhost:11434',
|
|
141
247
|
...overrides,
|
|
142
248
|
});
|
|
143
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* List popular Ollama model aliases
|
|
252
|
+
*/
|
|
253
|
+
export function listOllamaModels() {
|
|
254
|
+
return Object.entries(OLLAMA_MODELS).map(([alias, modelId]) => ({
|
|
255
|
+
alias,
|
|
256
|
+
modelId,
|
|
257
|
+
}));
|
|
258
|
+
}
|
|
144
259
|
//# sourceMappingURL=ollama.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../../src/llm/adapters/ollama.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../../src/llm/adapters/ollama.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,85 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OpenAI adapter for LLM integration
|
|
3
3
|
*
|
|
4
|
+
* Supports all OpenAI models including GPT-5, o3, and GPT-4.1 families.
|
|
5
|
+
*
|
|
4
6
|
* @packageDocumentation
|
|
5
7
|
*/
|
|
6
8
|
import { BaseLLMAdapter, LLMError, DEFAULT_CONFIG } from './base.js';
|
|
9
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
// OpenAI Model Registry
|
|
11
|
+
// Models are updated frequently - use any valid model ID string.
|
|
12
|
+
// These constants are provided for convenience but you can use any model.
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* GPT-5 Models (Latest - 2025)
|
|
16
|
+
* - gpt-5: Flagship model for general-purpose and agentic use
|
|
17
|
+
* - gpt-5-mini: Smaller, faster version
|
|
18
|
+
* - gpt-5-nano: Smallest, most cost-effective
|
|
19
|
+
*/
|
|
20
|
+
export const GPT_5_MODELS = {
|
|
21
|
+
'gpt-5': 'gpt-5',
|
|
22
|
+
'gpt-5-mini': 'gpt-5-mini',
|
|
23
|
+
'gpt-5-nano': 'gpt-5-nano',
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* o-Series Reasoning Models (Latest - 2025)
|
|
27
|
+
* - o3: Most powerful reasoning model
|
|
28
|
+
* - o3-pro: Extended thinking for complex tasks
|
|
29
|
+
* - o4-mini: Fast, cost-efficient reasoning
|
|
30
|
+
*/
|
|
31
|
+
export const O_SERIES_MODELS = {
|
|
32
|
+
'o3': 'o3',
|
|
33
|
+
'o3-pro': 'o3-pro',
|
|
34
|
+
'o4-mini': 'o4-mini',
|
|
35
|
+
'o1': 'o1', // Previous generation
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* GPT-4.1 Models (2025)
|
|
39
|
+
* - Major gains in coding and instruction following
|
|
40
|
+
* - Up to 1M token context
|
|
41
|
+
*/
|
|
42
|
+
export const GPT_4_1_MODELS = {
|
|
43
|
+
'gpt-4.1': 'gpt-4.1',
|
|
44
|
+
'gpt-4.1-mini': 'gpt-4.1-mini',
|
|
45
|
+
'gpt-4.1-nano': 'gpt-4.1-nano',
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* GPT-4o Models (2024-2025)
|
|
49
|
+
* - Optimized for speed and multimodal
|
|
50
|
+
*/
|
|
51
|
+
export const GPT_4O_MODELS = {
|
|
52
|
+
'gpt-4o': 'gpt-4o',
|
|
53
|
+
'gpt-4o-mini': 'gpt-4o-mini',
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Legacy GPT-4 Models
|
|
57
|
+
*/
|
|
58
|
+
export const GPT_4_LEGACY_MODELS = {
|
|
59
|
+
'gpt-4-turbo': 'gpt-4-turbo',
|
|
60
|
+
'gpt-4': 'gpt-4',
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* All available OpenAI models
|
|
64
|
+
*/
|
|
65
|
+
export const OPENAI_MODELS = {
|
|
66
|
+
...GPT_5_MODELS,
|
|
67
|
+
...O_SERIES_MODELS,
|
|
68
|
+
...GPT_4_1_MODELS,
|
|
69
|
+
...GPT_4O_MODELS,
|
|
70
|
+
...GPT_4_LEGACY_MODELS,
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Resolve a model alias or ID to the full model ID
|
|
74
|
+
*/
|
|
75
|
+
export function resolveOpenAIModel(modelOrAlias) {
|
|
76
|
+
// Check if it's an alias
|
|
77
|
+
if (modelOrAlias in OPENAI_MODELS) {
|
|
78
|
+
return OPENAI_MODELS[modelOrAlias];
|
|
79
|
+
}
|
|
80
|
+
// Otherwise return as-is (allows using any model ID directly)
|
|
81
|
+
return modelOrAlias;
|
|
82
|
+
}
|
|
7
83
|
/**
|
|
8
84
|
* OpenAI adapter for chat completions
|
|
9
85
|
*/
|
|
@@ -105,12 +181,31 @@ export class OpenAIAdapter extends BaseLLMAdapter {
|
|
|
105
181
|
}
|
|
106
182
|
/**
|
|
107
183
|
* Create an OpenAI adapter from environment variables
|
|
184
|
+
*
|
|
185
|
+
* @param model - Model ID or alias (e.g., 'gpt-5', 'o3', 'gpt-4.1', 'gpt-4o')
|
|
186
|
+
* Use aliases for convenience or full model IDs for specific versions.
|
|
187
|
+
* Any valid OpenAI model ID will work - not limited to the aliases.
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```typescript
|
|
191
|
+
* // Using current flagship model
|
|
192
|
+
* const adapter = createOpenAIAdapter('gpt-5');
|
|
193
|
+
*
|
|
194
|
+
* // Using reasoning model for complex tasks
|
|
195
|
+
* const adapter = createOpenAIAdapter('o3');
|
|
196
|
+
*
|
|
197
|
+
* // Using fast, cost-effective reasoning
|
|
198
|
+
* const adapter = createOpenAIAdapter('o4-mini');
|
|
199
|
+
*
|
|
200
|
+
* // Using a future model (when released)
|
|
201
|
+
* const adapter = createOpenAIAdapter('gpt-6');
|
|
202
|
+
* ```
|
|
108
203
|
*/
|
|
109
204
|
export function createOpenAIAdapter(model = 'gpt-4o', overrides) {
|
|
110
205
|
const apiKey = typeof process !== 'undefined' ? process.env.OPENAI_API_KEY : undefined;
|
|
111
206
|
const config = {
|
|
112
207
|
provider: 'openai',
|
|
113
|
-
model,
|
|
208
|
+
model: resolveOpenAIModel(model),
|
|
114
209
|
...overrides,
|
|
115
210
|
};
|
|
116
211
|
if (apiKey) {
|
|
@@ -118,4 +213,13 @@ export function createOpenAIAdapter(model = 'gpt-4o', overrides) {
|
|
|
118
213
|
}
|
|
119
214
|
return new OpenAIAdapter(config);
|
|
120
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* List all available OpenAI model aliases
|
|
218
|
+
*/
|
|
219
|
+
export function listOpenAIModels() {
|
|
220
|
+
return Object.entries(OPENAI_MODELS).map(([alias, modelId]) => ({
|
|
221
|
+
alias,
|
|
222
|
+
modelId,
|
|
223
|
+
}));
|
|
224
|
+
}
|
|
121
225
|
//# sourceMappingURL=openai.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../../src/llm/adapters/openai.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../../src/llm/adapters/openai.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAErE,gFAAgF;AAChF,wBAAwB;AACxB,iEAAiE;AACjE,0EAA0E;AAC1E,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,YAAY;IAC1B,YAAY,EAAE,YAAY;CAClB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,IAAI,EAAE,sBAAsB;CAC1B,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,SAAS;IACpB,cAAc,EAAE,cAAc;IAC9B,cAAc,EAAE,cAAc;CACtB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,QAAQ;IAClB,aAAa,EAAE,aAAa;CACpB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa,EAAE,aAAa;IAC5B,OAAO,EAAE,OAAO;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,YAAY;IACf,GAAG,eAAe;IAClB,GAAG,cAAc;IACjB,GAAG,aAAa;IAChB,GAAG,mBAAmB;CACd,CAAC;AAOX;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,yBAAyB;IACzB,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;QAClC,OAAO,aAAa,CAAC,YAAgC,CAAC,CAAC;IACzD,CAAC;IACD,8DAA8D;IAC9D,OAAO,YAAY,CAAC;AACtB,CAAC;AAuCD;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,cAAc;IAC9B,OAAO,CAAS;IAChB,YAAY,CAAU;IAEvC,YAAY,MAAoB;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,2BAA2B,CAAC;QAC7D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA0B;QACvC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,QAAQ,CAChB,6EAA6E,EAC7E,gBAAgB,EAChB,IAAI,CAAC,QAAQ,CACd,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;YAC/B,MAAM,OAAO,GAA2B;gBACtC,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;aAC9C,CAAC;YAEF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YACrD,CAAC;YAED,MAAM,IAAI,GAA4B;gBACpC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC,CAAC;gBACH,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS;gBAClF,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,cAAc,CAAC,WAAW;aAC1F,CAAC;YAEF,6BAA6B;YAC7B,IAAI,OAAO,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;gBACtC,IAAI,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACjD,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;YAEpG,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,mBAAmB,EAAE;oBAC/D,MAAM,EAAE,MAAM;oBACd,OAAO;oBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,YAAY,CAAC,OAAO,CAAC,CAAC;gBAEtB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAwB,CAAC;oBACnF,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAE3E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;wBAC5B,MAAM,IAAI,QAAQ,CAAC,wBAAwB,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC1F,CAAC;oBAED,MAAM,IAAI,QAAQ,CAAC,qBAAqB,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtF,CAAC;gBAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;gBACvD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAE/B,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,QAAQ,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnF,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;gBACvC,IAAI,IAAa,CAAC;gBAElB,IAAI,OAAO,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;oBACtC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;gBAED,OAAO;oBACL,OAAO;oBACP,IAAI;oBACJ,KAAK,EAAE;wBACL,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;wBACtC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB;wBAC9C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;qBACrC;oBACD,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,YAAY,EAAE,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;wBAC3C,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;4BAC9C,MAAM,CAAC,aAAa,KAAK,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO;iBACpF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,OAAO,CAAC,CAAC;gBAEtB,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;oBAC9B,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBAChC,MAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBACzE,CAAC;oBACD,MAAM,IAAI,QAAQ,CAAC,kBAAkB,KAAK,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC/F,CAAC;gBAED,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAmC,QAAQ,EAC3C,SAAiC;IAEjC,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvF,MAAM,MAAM,GAAiB;QAC3B,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;QAChC,GAAG,SAAS;KACb,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,KAAK;QACL,OAAO;KACR,CAAC,CAAC,CAAC;AACN,CAAC"}
|