feat(local-models): self-hosted backbone runs the Arsenal (Ollama + OpenAI-compatible)

This commit is contained in:
t3mp3st contributors committed 2026-07-05 17:25:50 -04:00
1 parent 1e20ce1c03
commit eac30e4ee3
5 files changed
+136 -35

No files matched your search

+9 -4
View File
@@ -392,11 +392,11 @@ export const AVAILABLE_MODELS: Record<LLMProvider, ModelInfo[]> = {
local: [
{
id: 'local-model',
name: 'Local Model',
name: 'Local model (Ollama / LM Studio / vLLM — set TEMPEST_LOCAL_MODEL)',
provider: 'Local',
contextWindow: 32000,
maxOutput: 4096,
capabilities: ['reasoning', 'code'],
capabilities: ['reasoning', 'code', 'tools'],
},
],
'local-agent': [
@@ -619,8 +619,13 @@ class ConfigManager {
actualModel = 'mock-model';
break;
case 'local':
baseUrl = 'http://localhost:11434/api';
actualModel = model || 'llama3';
// Self-hosted, keyless. Defaults to Ollama; point TEMPEST_LOCAL_BASE_URL at
// any OpenAI-compatible server (LM Studio :1234/v1, vLLM :8000/v1, llama.cpp)
// and TEMPEST_LOCAL_MODEL at the model tag you're serving.
baseUrl = process.env.TEMPEST_LOCAL_BASE_URL?.trim() || 'http://localhost:11434/api';
// 'local-model' is the placeholder id from AVAILABLE_MODELS — treat it as unset so
// TEMPEST_LOCAL_MODEL (or the llama3 default) wins; a real tag passed in still takes priority.
actualModel = (model && model !== 'local-model' ? model : undefined) || process.env.TEMPEST_LOCAL_MODEL?.trim() || 'llama3';
break;
default:
throw new Error(`Unknown provider: ${actualProvider}`);