mirror of
https://github.com/andy-stack/vaultkeeper-ai.git
synced 2026-07-22 06:42:03 +00:00
Update AI model references to latest versions
Replace Claude Sonnet 4.6 with Sonnet 5 as default model, add Claude Fable 5, update OpenAI models to include versioned releases (GPT-5.5 Pro, dated variants), and update all references across enums, settings, tests, and documentation.
This commit is contained in:
parent
f57438dd54
commit
1c5834e858
11 changed files with 33 additions and 55 deletions
|
|
@ -66,7 +66,8 @@ export enum AIProvider {
|
|||
|
||||
export enum AIProviderModel {
|
||||
// Claude models
|
||||
ClaudeSonnet_4_6 = "claude-sonnet-4-6",
|
||||
ClaudeFable_5 = "claude-fable-5",
|
||||
ClaudeSonnet_5 = "claude-sonnet-5",
|
||||
ClaudeOpus_4_8 = "claude-opus-4-8",
|
||||
ClaudeHaiku_4_5 = "claude-haiku-4-5-20251001",
|
||||
|
||||
|
|
@ -77,9 +78,10 @@ export enum AIProviderModel {
|
|||
GeminiPro_3_1_Preview = "gemini-3.1-pro-preview",
|
||||
|
||||
// OpenAI models
|
||||
GPT_5_5 = "gpt-5.5",
|
||||
GPT_5_4_Mini = "gpt-5.4-mini",
|
||||
GPT_5_4_Nano = "gpt-5.4-nano",
|
||||
GPT_5_5_Pro = "gpt-5.5-pro-2026-04-23",
|
||||
GPT_5_5 = "gpt-5.5-2026-04-23",
|
||||
GPT_5_4_Mini = "gpt-5.4-mini-2026-03-17",
|
||||
GPT_5_4_Nano = "gpt-5.4-nano-2026-03-17",
|
||||
|
||||
// Mistral models
|
||||
MistralMedium = "mistral-medium-3-5",
|
||||
|
|
@ -124,7 +126,7 @@ export const DEFAULT_QUICK_MODEL_BY_PROVIDER: Record<AIProvider, AIProviderModel
|
|||
}
|
||||
|
||||
export const DEFAULT_MODEL_BY_PROVIDER: Record<AIProvider, AIProviderModel> = {
|
||||
[AIProvider.Claude]: AIProviderModel.ClaudeSonnet_4_6,
|
||||
[AIProvider.Claude]: AIProviderModel.ClaudeSonnet_5,
|
||||
[AIProvider.Gemini]: AIProviderModel.GeminiFlash_3_5_Flash,
|
||||
[AIProvider.OpenAI]: AIProviderModel.GPT_5_5,
|
||||
[AIProvider.Mistral]: AIProviderModel.MistralMedium,
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@ export enum Copy {
|
|||
NoUserInstruction = "No custom instructions",
|
||||
|
||||
// Model Display Names
|
||||
ClaudeSonnet_4_6 = "Claude Sonnet 4.6",
|
||||
ClaudeFable_5 = "Claude Fable 5",
|
||||
ClaudeSonnet_5 = "Claude Sonnet 5",
|
||||
ClaudeOpus_4_8 = "Claude Opus 4.8",
|
||||
ClaudeHaiku_4_5 = "Claude Haiku 4.5",
|
||||
|
||||
|
|
@ -15,6 +16,7 @@ export enum Copy {
|
|||
GeminiFlash_3_5_Flash = "Gemini 3.5 Flash",
|
||||
GeminiPro_3_1_Preview = "Gemini 3.1 Pro Preview",
|
||||
|
||||
GPT_5_5_Pro = "GPT-5.5 Pro",
|
||||
GPT_5_5 = "GPT-5.5",
|
||||
GPT_5_4_Mini = "GPT-5.4 Mini",
|
||||
GPT_5_4_Nano = "GPT-5.4 Nano",
|
||||
|
|
|
|||
34
README.md
34
README.md
|
|
@ -70,38 +70,6 @@
|
|||
|
||||
## Usage
|
||||
|
||||
### Switching Between Models
|
||||
|
||||
The plugin supports multiple AI models:
|
||||
|
||||
**Claude (Anthropic)**
|
||||
|
||||
- Claude Sonnet 4.6 ⚡ (Recommended)
|
||||
- Claude Sonnet 4.5, 4
|
||||
- Claude Opus 4.6, 4.5, 4.1, 4
|
||||
- Claude Haiku 4.5
|
||||
|
||||
**Gemini (Google)**
|
||||
|
||||
- Gemini 3.1 Pro Preview, 3 Pro Preview, 3 Flash Preview
|
||||
- Gemini 2.5 Flash, Pro
|
||||
- Gemini 2.5 Flash Lite
|
||||
|
||||
**OpenAI**
|
||||
|
||||
- GPT-5.2 (Instant, Thinking, Pro)
|
||||
- GPT-5.1, GPT-5 (Mini, Nano)
|
||||
|
||||
**Mistral**
|
||||
|
||||
- Mistral Large
|
||||
- Mistral Medium
|
||||
- Mistral Small
|
||||
|
||||
**Local**
|
||||
|
||||
- Any model served by an OpenAI-compatible local server (LM Studio, Ollama, vLLM, etc.) - enter the model name yourself, no preset list
|
||||
|
||||
Switch models anytime in the settings without losing your conversation context.
|
||||
|
||||
### Chat Modes
|
||||
|
|
@ -347,7 +315,7 @@ See `EXAMPLE_INSTRUCTIONS.md` in your vault for a template.
|
|||
**Planning Model**
|
||||
|
||||
- Select a separate model for the planning agent (used in Planning Mode)
|
||||
- Default: Claude Sonnet 4.6
|
||||
- Defaults to your provider's recommended model
|
||||
- Allows cost optimization by using a more capable model for planning and a faster/cheaper model for execution
|
||||
- The planning model dropdown updates to match your selected provider
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ export const DEFAULT_SETTINGS: IVaultkeeperAISettings = {
|
|||
userInstruction: "",
|
||||
|
||||
provider: AIProvider.Local,
|
||||
model: AIProviderModel.ClaudeSonnet_4_6,
|
||||
model: AIProviderModel.ClaudeSonnet_5,
|
||||
planningModel: AIProviderModel.ClaudeOpus_4_8,
|
||||
quickActionModel: AIProviderModel.ClaudeHaiku_4_5,
|
||||
|
||||
|
|
|
|||
|
|
@ -487,16 +487,18 @@ export class VaultkeeperAISettingTab extends PluginSettingTab {
|
|||
switch (providerFilter) {
|
||||
case AIProvider.Claude:
|
||||
dropdown.addOptions({
|
||||
[AIProviderModel.ClaudeSonnet_4_6]: Copy.ClaudeSonnet_4_6,
|
||||
[AIProviderModel.ClaudeFable_5]: Copy.ClaudeFable_5,
|
||||
[AIProviderModel.ClaudeSonnet_5]: Copy.ClaudeSonnet_5,
|
||||
[AIProviderModel.ClaudeOpus_4_8]: Copy.ClaudeOpus_4_8,
|
||||
[AIProviderModel.ClaudeHaiku_4_5]: Copy.ClaudeHaiku_4_5,
|
||||
[AIProviderModel.ClaudeHaiku_4_5]: Copy.ClaudeHaiku_4_5
|
||||
});
|
||||
break;
|
||||
case AIProvider.OpenAI:
|
||||
dropdown.addOptions({
|
||||
[AIProviderModel.GPT_5_5_Pro]: Copy.GPT_5_5_Pro,
|
||||
[AIProviderModel.GPT_5_5]: Copy.GPT_5_5,
|
||||
[AIProviderModel.GPT_5_4_Mini]: Copy.GPT_5_4_Mini,
|
||||
[AIProviderModel.GPT_5_4_Nano]: Copy.GPT_5_4_Nano,
|
||||
[AIProviderModel.GPT_5_4_Nano]: Copy.GPT_5_4_Nano
|
||||
});
|
||||
break;
|
||||
case AIProvider.Gemini:
|
||||
|
|
@ -504,13 +506,13 @@ export class VaultkeeperAISettingTab extends PluginSettingTab {
|
|||
[AIProviderModel.GeminiFlash_3_1_Lite]: Copy.GeminiFlash_3_1_Lite,
|
||||
[AIProviderModel.GeminiFlash_3_Flash]: Copy.GeminiFlash_3_Flash,
|
||||
[AIProviderModel.GeminiFlash_3_5_Flash]: Copy.GeminiFlash_3_5_Flash,
|
||||
[AIProviderModel.GeminiPro_3_1_Preview]: Copy.GeminiPro_3_1_Preview,
|
||||
[AIProviderModel.GeminiPro_3_1_Preview]: Copy.GeminiPro_3_1_Preview
|
||||
});
|
||||
break;
|
||||
case AIProvider.Mistral:
|
||||
dropdown.addOptions({
|
||||
[AIProviderModel.MistralMedium]: Copy.MistralMedium,
|
||||
[AIProviderModel.MistralSmall]: Copy.MistralSmall,
|
||||
[AIProviderModel.MistralSmall]: Copy.MistralSmall
|
||||
});
|
||||
break;
|
||||
case AIProvider.Local:
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ describe('ClaudeConversationNamingAgent', () => {
|
|||
// Mock SettingsService
|
||||
mockSettingsService = {
|
||||
settings: {
|
||||
model: AIProviderModel.ClaudeSonnet_4_6,
|
||||
model: AIProviderModel.ClaudeSonnet_5,
|
||||
apiKeys: {
|
||||
claude: 'test-claude-key',
|
||||
openai: 'test-openai-key',
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ describe('AIControllerService - Integration Tests', () => {
|
|||
onPlanningStarted: vi.fn(),
|
||||
onPlanningFinished: vi.fn(),
|
||||
onUserQuestion: vi.fn(),
|
||||
onPlanApprovalRequest: vi.fn(),
|
||||
onPlanUpdate: vi.fn(),
|
||||
onPlanStepUpdate: vi.fn(),
|
||||
onPlanReset: vi.fn(),
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ describe('ExecutionAgent - Unit Tests', () => {
|
|||
onPlanningStarted: vi.fn(),
|
||||
onPlanningFinished: vi.fn(),
|
||||
onUserQuestion: vi.fn().mockResolvedValue('User answer'),
|
||||
onPlanApprovalRequest: vi.fn(),
|
||||
onPlanUpdate: vi.fn(),
|
||||
onPlanStepUpdate: vi.fn(),
|
||||
onPlanReset: vi.fn(),
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ describe('Multi-Agent Integration Tests', () => {
|
|||
onPlanningStarted: vi.fn(),
|
||||
onPlanningFinished: vi.fn(),
|
||||
onUserQuestion: vi.fn().mockResolvedValue('User answer'),
|
||||
onPlanApprovalRequest: vi.fn(),
|
||||
onPlanUpdate: vi.fn(),
|
||||
onPlanStepUpdate: vi.fn(),
|
||||
onPlanReset: vi.fn(),
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ describe('PlanningAgent - Unit Tests', () => {
|
|||
onPlanningStarted: vi.fn(),
|
||||
onPlanningFinished: vi.fn(),
|
||||
onUserQuestion: vi.fn().mockResolvedValue('User answer'),
|
||||
onPlanApprovalRequest: vi.fn(),
|
||||
onPlanUpdate: vi.fn(),
|
||||
onPlanStepUpdate: vi.fn(),
|
||||
onPlanReset: vi.fn(),
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ describe('SettingsService', () => {
|
|||
settingsService = new SettingsService({});
|
||||
|
||||
expect(settingsService.settings.firstTimeStart).toBe(true);
|
||||
expect(settingsService.settings.model).toBe(AIProviderModel.ClaudeSonnet_4_6);
|
||||
expect(settingsService.settings.model).toBe(AIProviderModel.ClaudeSonnet_5);
|
||||
expect(settingsService.settings.apiKeys).toEqual({
|
||||
claude: '',
|
||||
openai: '',
|
||||
|
|
@ -172,7 +172,7 @@ describe('SettingsService', () => {
|
|||
beforeEach(() => {
|
||||
const loadedSettings = makeTestSettings({
|
||||
provider: AIProvider.Claude,
|
||||
model: AIProviderModel.ClaudeSonnet_4_6,
|
||||
model: AIProviderModel.ClaudeSonnet_5,
|
||||
apiKeys: {
|
||||
claude: 'claude-api-key',
|
||||
openai: 'openai-api-key',
|
||||
|
|
@ -220,7 +220,7 @@ describe('SettingsService', () => {
|
|||
it('should return Claude key when current model is Claude', () => {
|
||||
const loadedSettings = makeTestSettings({
|
||||
provider: AIProvider.Claude,
|
||||
model: AIProviderModel.ClaudeSonnet_4_6,
|
||||
model: AIProviderModel.ClaudeSonnet_5,
|
||||
apiKeys: {
|
||||
claude: 'claude-key',
|
||||
openai: 'openai-key',
|
||||
|
|
@ -336,7 +336,7 @@ describe('SettingsService', () => {
|
|||
beforeEach(() => {
|
||||
const loadedSettings = makeTestSettings({
|
||||
provider: AIProvider.Claude,
|
||||
model: AIProviderModel.ClaudeSonnet_4_6
|
||||
model: AIProviderModel.ClaudeSonnet_5
|
||||
});
|
||||
settingsService = new SettingsService(loadedSettings);
|
||||
});
|
||||
|
|
@ -396,7 +396,7 @@ describe('SettingsService', () => {
|
|||
beforeEach(() => {
|
||||
const loadedSettings = makeTestSettings({
|
||||
provider: AIProvider.Claude,
|
||||
model: AIProviderModel.ClaudeSonnet_4_6,
|
||||
model: AIProviderModel.ClaudeSonnet_5,
|
||||
apiKeys: {
|
||||
claude: 'test-key',
|
||||
openai: '',
|
||||
|
|
@ -441,8 +441,8 @@ describe('SettingsService', () => {
|
|||
describe('Provider Detection from Model Names', () => {
|
||||
it('should correctly identify Claude models', () => {
|
||||
const claudeModels = [
|
||||
AIProviderModel.ClaudeSonnet_4_6,
|
||||
AIProviderModel.ClaudeSonnet_4_6,
|
||||
AIProviderModel.ClaudeSonnet_5,
|
||||
AIProviderModel.ClaudeSonnet_5,
|
||||
AIProviderModel.ClaudeOpus_4_8,
|
||||
AIProviderModel.ClaudeHaiku_4_5
|
||||
];
|
||||
|
|
@ -526,7 +526,7 @@ describe('SettingsService', () => {
|
|||
describe('Settings Immutability and Reference', () => {
|
||||
it('should maintain reference to settings object', () => {
|
||||
settingsService = new SettingsService({
|
||||
model: AIProviderModel.ClaudeSonnet_4_6,
|
||||
model: AIProviderModel.ClaudeSonnet_5,
|
||||
apiKeys: { claude: 'key', openai: '', gemini: '', mistral: '', local: '' }
|
||||
});
|
||||
|
||||
|
|
@ -539,7 +539,7 @@ describe('SettingsService', () => {
|
|||
|
||||
it('should allow modification of settings properties via updateSettings', async () => {
|
||||
settingsService = new SettingsService({
|
||||
model: AIProviderModel.ClaudeSonnet_4_6,
|
||||
model: AIProviderModel.ClaudeSonnet_5,
|
||||
apiKeys: { claude: '', openai: '', gemini: '', mistral: '', local: '' },
|
||||
exclusions: []
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue