Files
paseo/packages/website/public/schemas/paseo.config.v1.json
T
Mohamed BoudraandGitHub 7a8f65805d refactor: rename allowedHosts to hostnames (#413)
* refactor: rename allowedHosts to hostnames for DNS rebinding config

The old name confused users who thought it was related to CORS.
"hostnames" communicates that you're declaring the daemon's own
hostnames, not granting access to external parties.

Backward compatible: old config files (daemon.allowedHosts), env var
(PASEO_ALLOWED_HOSTS), CLI flag (--allowed-hosts), and Nix option
(allowedHosts) all still work as deprecated aliases.

* fix(nix): update npmDepsHash to match current package-lock.json
2026-04-15 12:47:49 +08:00

351 lines
10 KiB
JSON

{
"$ref": "#/definitions/PaseoConfigV1",
"definitions": {
"PaseoConfigV1": {
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"daemon": {
"type": "object",
"properties": {
"listen": {
"type": "string"
},
"hostnames": {
"anyOf": [
{
"type": "boolean",
"const": true
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"allowedHosts": {
"description": "Deprecated: use hostnames instead",
"anyOf": [
{
"type": "boolean",
"const": true
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"mcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
}
},
"additionalProperties": false
},
"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"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"app": {
"type": "object",
"properties": {
"baseUrl": {
"type": "string"
}
},
"additionalProperties": false
},
"providers": {
"type": "object",
"properties": {
"openai": {
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"minLength": 1
}
},
"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": {
"command": {
"anyOf": [
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "default"
}
},
"required": ["mode"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "append"
},
"args": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["mode"],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"const": "replace"
},
"argv": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
}
},
"required": ["mode", "argv"],
"additionalProperties": false
}
]
},
"env": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": false
},
"propertyNames": {
"type": "string"
}
}
},
"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
},
"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
}
},
"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
}
},
"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#"
}