make local models work well

This commit is contained in:
Arjun 2026-07-05 11:45:22 +05:30
parent 596edcd788
commit 799d7584b8
23 changed files with 938 additions and 131 deletions

View file

@ -566,6 +566,13 @@ const ipcSchemas = {
res: z.object({
success: z.boolean(),
error: z.string().optional(),
// Capability caveats from the local-model probe (tool support, context
// window) — the connection still succeeded.
warnings: z.array(z.string()).optional(),
capabilities: z.object({
supportsTools: z.boolean().optional(),
maxContextLength: z.number().optional(),
}).optional(),
}),
},
'models:listForProvider': {

View file

@ -5,6 +5,10 @@ export const LlmProvider = z.object({
apiKey: z.string().optional(),
baseURL: z.string().optional(),
headers: z.record(z.string(), z.string()).optional(),
// Context window (in tokens) to request from local runtimes. Ollama defaults
// to a ~4k window that silently truncates Rowboat's prompts; when unset,
// local providers get a larger default (see core/models/local.ts).
contextLength: z.number().int().positive().optional(),
});
export const LlmModelConfig = z.object({
@ -15,6 +19,7 @@ export const LlmModelConfig = z.object({
apiKey: z.string().optional(),
baseURL: z.string().optional(),
headers: z.record(z.string(), z.string()).optional(),
contextLength: z.number().int().positive().optional(),
model: z.string().optional(),
models: z.array(z.string()).optional(),
knowledgeGraphModel: z.string().optional(),