fix: add deprecation warning for agent.model + e2e model tests

- Warn at startup when agent.model is present in lettabot.yaml (deprecated, now ignored)
- Add e2e tests for model listing and agent model retrieval
- Remove stale model field from existing e2e test (BotConfig no longer has it)

Written by Cameron ◯ Letta Code

"The best way to predict the future is to invent it." -- Alan Kay
This commit is contained in:
Cameron
2026-02-08 20:09:39 -08:00
parent 7e82374865
commit 528ef1f40e
3 changed files with 33 additions and 1 deletions

View File

@@ -31,7 +31,6 @@ describe.skipIf(SKIP_E2E)('e2e: LettaBot with Letta Cloud', () => {
// Initialize bot with test config
bot = new LettaBot({
model: 'claude-sonnet-4-20250514', // Good balance of speed/quality
workingDir: tempDir,
agentName: 'e2e-test',
});

30
e2e/models.e2e.test.ts Normal file
View File

@@ -0,0 +1,30 @@
/**
* E2E Tests for Model API
*
* Tests model listing and retrieval against Letta Cloud.
* Requires LETTA_API_KEY and LETTA_E2E_AGENT_ID environment variables.
*
* Run with: npm run test:e2e
*/
import { describe, it, expect } from 'vitest';
import { listModels, getAgentModel } from '../src/tools/letta-api.js';
const SKIP_E2E = !process.env.LETTA_API_KEY || !process.env.LETTA_E2E_AGENT_ID;
describe.skipIf(SKIP_E2E)('e2e: Model API', () => {
it('lists available models from Letta Cloud', async () => {
const models = await listModels();
expect(models.length).toBeGreaterThan(0);
// Known providers should always exist on Letta Cloud
const handles = models.map(m => m.handle);
expect(handles.some(h => h.includes('anthropic') || h.includes('openai'))).toBe(true);
}, 30000);
it('retrieves the current agent model', async () => {
const agentId = process.env.LETTA_E2E_AGENT_ID!;
const model = await getAgentModel(agentId);
expect(model).toBeTruthy();
expect(typeof model).toBe('string');
}, 30000);
});

View File

@@ -21,6 +21,9 @@ const yamlConfig = loadConfig();
const configSource = existsSync(resolveConfigPath()) ? resolveConfigPath() : 'defaults + environment variables';
console.log(`[Config] Loaded from ${configSource}`);
console.log(`[Config] Mode: ${yamlConfig.server.mode}, Agent: ${yamlConfig.agent.name}`);
if (yamlConfig.agent.model) {
console.warn('[Config] WARNING: agent.model in lettabot.yaml is deprecated and ignored. Use `lettabot model set <handle>` instead.');
}
applyConfigToEnv(yamlConfig);
// Sync BYOK providers on startup (async, don't block)