{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "connections": { "default": {}, "description": "The LLeMbas server this machine is logged in to, as `lembas login` writes it: its address and this machine's token. Its models come from it at every start.", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "const": "webui", "description": "A LLeMbas instance: its models, their settings, its voice and its web search." }, "url": { "type": "string", "description": "The instance's address, e.g. https://ai.example.org (no /v1)." }, "api_key": { "description": "This machine's token, as login wrote it: {file:~/.config/lembas/lembas/.key}.", "type": "string" }, "tls": { "description": "For an instance behind a private CA: `ca`, the PEM file that signed its certificate.", "type": "object", "properties": { "ca": { "type": "string" }, "insecure": { "type": "boolean" } }, "additionalProperties": false }, "timeout": { "description": "Seconds of silence allowed in a reply, as for any connection (default 600).", "type": "number", "exclusiveMinimum": 0 }, "quirks": { "description": "Server oddities; auto is right almost always.", "type": "object", "properties": { "stream_usage": { "description": "Ask for token usage in the stream (stream_options); auto learns when a server refuses it.", "type": "string", "enum": [ "auto", "on", "off" ] }, "prompt_progress": { "description": "Ask how far the server is through reading the prompt (llama.cpp's return_progress), shown while it reads; auto learns when a server refuses it, and one that ignores it shows nothing.", "type": "string", "enum": [ "auto", "on", "off" ] }, "think_tags": { "description": "… in a reply is taken as reasoning; off leaves it as text.", "type": "string", "enum": [ "auto", "on", "off" ] }, "max_tokens_field": { "description": "OpenAI reasoning models refuse `max_tokens`; most local servers only know it.", "type": "string", "enum": [ "max_tokens", "max_completion_tokens" ] } }, "additionalProperties": false }, "models": { "description": "Only to change what the instance says about a model, here: each entry goes over the instance's. Usually absent.", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "name": { "description": "A display name; the id is what is sent.", "type": "string" }, "family": { "description": "Picks the prompt overlay: anthropic | gpt | gemini | local. Guessed from the id when absent.", "type": "string" }, "context": { "description": "Total context window in tokens. 0 / absent = unknown: no percentage, no auto-compaction.", "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "max_output": { "description": "Max tokens per reply.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "temperature": { "description": "Sampling temperature; absent = the server's default.", "type": "number", "minimum": 0, "maximum": 2 }, "top_p": { "description": "Nucleus sampling; absent = the server's default.", "type": "number", "minimum": 0, "maximum": 1 }, "efforts": { "description": "The model's own effort vocabulary, in offering order.", "type": "array", "items": { "type": "string", "enum": [ "minimal", "low", "medium", "high", "xhigh", "max" ] } }, "effort": { "description": "Default effort; `off` sends none.", "anyOf": [ { "type": "string", "enum": [ "minimal", "low", "medium", "high", "xhigh", "max" ] }, { "type": "string", "const": "off" } ] }, "effort_style": { "description": "Where the effort goes in a request: top-level, in chat_template_kwargs, or both (the default: llama.cpp drops top-level).", "type": "string", "enum": [ "top", "kwargs", "both" ] }, "vision": { "description": "The model reads images: @image files, pasted paths and view_image.", "type": "boolean" }, "tools": { "description": "false: a model without tool calls — it can only talk.", "type": "boolean" }, "headers": { "description": "Extra HTTP headers for this model's requests.", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "string" } }, "body": { "description": "Merged into every request body for this model.", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "notes": { "description": "What this model is good at, in a line: the model in use is told which others there are, for handing work over (task) or switching.", "type": "string", "maxLength": 300 }, "single_session": { "description": "The server serves one request at a time: a subagent on this same model would take its only slot and push the session's cached prompt out, so it is refused.", "type": "boolean" }, "group": { "description": "Models sharing one GPU server that holds one model at a time (llama-swap), as the LLeMbas server says (capacity.group): a subagent on another model of the same group would unload this one, so it is refused.", "type": "string" } }, "additionalProperties": false } } }, "required": [ "type", "url" ], "additionalProperties": false } } }, "additionalProperties": false, "title": "LLeMbas CLI connections.yaml", "description": "~/.config/lembas/connections.yaml: the LLeMbas server this machine is logged in to, as lembas login writes it. Global only." }