Files
paseo/packages/website/public/schemas/paseo.config.v1.json
T
Mohamed BoudraandGitHub 20bccd31a3 Make provider catalog refresh deadlines configurable (#3322)
* fix(providers): make catalog refresh deadlines configurable

Provider startup can legitimately exceed a fixed short timeout when catalog discovery has substantial initialization work. Give each provider refresh one configurable deadline covering availability and the complete catalog probe, and cancel named child operations before allowing retries so timed-out work cannot accumulate in the background.

* fix(opencode): abort catalog server acquisition

A provider refresh could expire while the helper server was still starting because acquisition only tracked the activity without observing its abort signal. Reject acquisition before transferring a server reference, while leaving the manager-owned startup reusable by the next caller.

* test(file-observer): allow native burst recovery
2026-08-13 15:08:46 +02:00

533 lines
16 KiB
JSON

{
"$ref": "#/definitions/PaseoConfigV1",
"definitions": {
"PaseoConfigV1": {
"type": "object",
"properties": {
"$schema": {
"type": "string"
},
"version": {
"type": "number",
"const": 1
},
"daemon": {
"type": "object",
"properties": {
"listen": {
"type": "string"
},
"hostnames": {
"anyOf": [
{
"type": "boolean",
"const": true
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"allowedHosts": {
"anyOf": [
{
"type": "boolean",
"const": true
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"trustedProxies": {
"description": "Express trusted proxy setting for X-Forwarded-* headers. Defaults to [\"loopback\"]. Use true only when the final trusted proxy overwrites client-supplied forwarded headers.",
"anyOf": [
{
"type": "boolean",
"const": true
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"mcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"injectIntoAgents": {
"type": "boolean"
}
},
"additionalProperties": true
},
"git": {
"type": "object",
"properties": {
"maxProcessesPerSecond": {
"type": "integer",
"exclusiveMinimum": 0
},
"maxProcessConcurrency": {
"type": "integer",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"autoArchiveAfterMerge": {
"type": "boolean"
},
"enableTerminalAgentHooks": {
"type": "boolean"
},
"appendSystemPrompt": {
"type": "string"
},
"cors": {
"type": "object",
"properties": {
"allowedOrigins": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"relay": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"endpoint": {
"type": "string"
},
"publicEndpoint": {
"type": "string"
},
"useTls": {
"type": "boolean"
},
"publicUseTls": {
"type": "boolean"
}
},
"additionalProperties": false
},
"serviceProxy": {
"type": "object",
"properties": {
"enabled": {
"description": "Compatibility shim. false suppresses optional service proxy listen/public layers only; localhost proxying remains enabled.",
"type": "boolean"
},
"listen": {
"description": "Optional service-only listener address. Presence enables the standalone service proxy listener.",
"type": "string"
},
"publicBaseUrl": {
"description": "Optional public base URL for service host aliases.",
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"auth": {
"type": "object",
"properties": {
"password": {
"type": "string",
"pattern": "^\\$2[aby]\\$\\d{2}\\$[./A-Za-z0-9]{53}$"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"app": {
"type": "object",
"properties": {
"baseUrl": {
"type": "string"
}
},
"additionalProperties": false
},
"worktrees": {
"type": "object",
"properties": {
"root": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
},
"providers": {
"type": "object",
"properties": {
"openai": {
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"minLength": 1
},
"baseUrl": {
"type": "string",
"minLength": 1
},
"stt": {
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"minLength": 1
},
"baseUrl": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
},
"tts": {
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"minLength": 1
},
"baseUrl": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"local": {
"type": "object",
"properties": {
"modelsDir": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"agents": {
"type": "object",
"properties": {
"providers": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"extends": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": "string"
},
"command": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"env": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"models": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"label": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string"
},
"isDefault": {
"type": "boolean"
},
"thinkingOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"description": {
"type": "string"
},
"isDefault": {
"type": "boolean"
}
},
"required": ["id", "label"],
"additionalProperties": false
}
}
},
"required": ["id", "label"],
"additionalProperties": false
}
},
"additionalModels": {
"type": "array",
"items": {
"$ref": "#/definitions/PaseoConfigV1/properties/agents/properties/providers/additionalProperties/properties/models/items"
}
},
"disallowedTools": {
"type": "array",
"items": {
"type": "string"
}
},
"enabled": {
"type": "boolean"
},
"order": {
"type": "number"
}
},
"additionalProperties": false
}
},
"catalogRefreshTimeoutMs": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2147483647
}
},
"additionalProperties": false
},
"features": {
"type": "object",
"properties": {
"dictation": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"stt": {
"type": "object",
"properties": {
"provider": {
"allOf": [
{
"type": "string"
},
{
"type": "string",
"enum": ["openai", "local"]
}
]
},
"model": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
},
"confidenceThreshold": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"voiceMode": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"llm": {
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"model": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
},
"stt": {
"type": "object",
"properties": {
"provider": {
"$ref": "#/definitions/PaseoConfigV1/properties/features/properties/dictation/properties/stt/properties/provider"
},
"model": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
},
"turnDetection": {
"type": "object",
"properties": {
"provider": {
"$ref": "#/definitions/PaseoConfigV1/properties/features/properties/dictation/properties/stt/properties/provider"
}
},
"additionalProperties": false
},
"tts": {
"type": "object",
"properties": {
"provider": {
"$ref": "#/definitions/PaseoConfigV1/properties/features/properties/dictation/properties/stt/properties/provider"
},
"model": {
"type": "string",
"minLength": 1
},
"voice": {
"type": "string",
"enum": ["alloy", "echo", "fable", "onyx", "nova", "shimmer"]
},
"speakerId": {
"type": "integer"
},
"speed": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"webUi": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"distDir": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"log": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": ["trace", "debug", "info", "warn", "error", "fatal"]
},
"format": {
"type": "string",
"enum": ["pretty", "json"]
},
"console": {
"type": "object",
"properties": {
"level": {
"$ref": "#/definitions/PaseoConfigV1/properties/log/properties/level"
},
"format": {
"$ref": "#/definitions/PaseoConfigV1/properties/log/properties/format"
}
},
"additionalProperties": false
},
"file": {
"type": "object",
"properties": {
"level": {
"$ref": "#/definitions/PaseoConfigV1/properties/log/properties/level"
},
"path": {
"type": "string",
"minLength": 1
},
"rotate": {
"type": "object",
"properties": {
"maxSize": {
"type": "string",
"minLength": 1
},
"maxFiles": {
"type": "integer",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}