summaryrefslogtreecommitdiffhomepage
path: root/opencode-schema.json
diff options
context:
space:
mode:
authorKujtim Hoxha <[email protected]>2025-04-21 14:29:03 +0200
committerKujtim Hoxha <[email protected]>2025-04-21 14:29:28 +0200
commita8d5787e8ef561037f73b669128f46ae1b1e8553 (patch)
treeb606adbc85069d60cc518c74508a7ecbc87c051b /opencode-schema.json
parent9ae6af8856ca6a13d575ec6a8989a5f6ee4297b1 (diff)
downloadopencode-a8d5787e8ef561037f73b669128f46ae1b1e8553.tar.gz
opencode-a8d5787e8ef561037f73b669128f46ae1b1e8553.zip
config validation
Diffstat (limited to 'opencode-schema.json')
-rw-r--r--opencode-schema.json269
1 files changed, 269 insertions, 0 deletions
diff --git a/opencode-schema.json b/opencode-schema.json
new file mode 100644
index 000000000..452790cdf
--- /dev/null
+++ b/opencode-schema.json
@@ -0,0 +1,269 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "definitions": {
+ "agent": {
+ "description": "Agent configuration",
+ "properties": {
+ "maxTokens": {
+ "description": "Maximum tokens for the agent",
+ "minimum": 1,
+ "type": "integer"
+ },
+ "model": {
+ "description": "Model ID for the agent",
+ "enum": [
+ "gemini-2.0-flash",
+ "bedrock.claude-3.7-sonnet",
+ "claude-3-opus",
+ "claude-3.5-sonnet",
+ "gpt-4o-mini",
+ "o1",
+ "o3-mini",
+ "o1-pro",
+ "o4-mini",
+ "claude-3-haiku",
+ "gpt-4o",
+ "o3",
+ "gpt-4.1-mini",
+ "gpt-4.5-preview",
+ "gemini-2.5-flash",
+ "claude-3.5-haiku",
+ "gpt-4.1",
+ "gemini-2.0-flash-lite",
+ "claude-3.7-sonnet",
+ "o1-mini",
+ "gpt-4.1-nano",
+ "gemini-2.5"
+ ],
+ "type": "string"
+ },
+ "reasoningEffort": {
+ "description": "Reasoning effort for models that support it (OpenAI, Anthropic)",
+ "enum": [
+ "low",
+ "medium",
+ "high"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "model"
+ ],
+ "type": "object"
+ }
+ },
+ "description": "Configuration schema for the OpenCode application",
+ "properties": {
+ "agents": {
+ "additionalProperties": {
+ "description": "Agent configuration",
+ "properties": {
+ "maxTokens": {
+ "description": "Maximum tokens for the agent",
+ "minimum": 1,
+ "type": "integer"
+ },
+ "model": {
+ "description": "Model ID for the agent",
+ "enum": [
+ "gemini-2.0-flash",
+ "bedrock.claude-3.7-sonnet",
+ "claude-3-opus",
+ "claude-3.5-sonnet",
+ "gpt-4o-mini",
+ "o1",
+ "o3-mini",
+ "o1-pro",
+ "o4-mini",
+ "claude-3-haiku",
+ "gpt-4o",
+ "o3",
+ "gpt-4.1-mini",
+ "gpt-4.5-preview",
+ "gemini-2.5-flash",
+ "claude-3.5-haiku",
+ "gpt-4.1",
+ "gemini-2.0-flash-lite",
+ "claude-3.7-sonnet",
+ "o1-mini",
+ "gpt-4.1-nano",
+ "gemini-2.5"
+ ],
+ "type": "string"
+ },
+ "reasoningEffort": {
+ "description": "Reasoning effort for models that support it (OpenAI, Anthropic)",
+ "enum": [
+ "low",
+ "medium",
+ "high"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "model"
+ ],
+ "type": "object"
+ },
+ "description": "Agent configurations",
+ "properties": {
+ "coder": {
+ "$ref": "#/definitions/agent"
+ },
+ "task": {
+ "$ref": "#/definitions/agent"
+ },
+ "title": {
+ "$ref": "#/definitions/agent"
+ }
+ },
+ "type": "object"
+ },
+ "data": {
+ "description": "Storage configuration",
+ "properties": {
+ "directory": {
+ "default": ".opencode",
+ "description": "Directory where application data is stored",
+ "type": "string"
+ }
+ },
+ "required": [
+ "directory"
+ ],
+ "type": "object"
+ },
+ "debug": {
+ "default": false,
+ "description": "Enable debug mode",
+ "type": "boolean"
+ },
+ "debugLSP": {
+ "default": false,
+ "description": "Enable LSP debug mode",
+ "type": "boolean"
+ },
+ "lsp": {
+ "additionalProperties": {
+ "description": "LSP configuration for a language",
+ "properties": {
+ "args": {
+ "description": "Command arguments for the LSP server",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "command": {
+ "description": "Command to execute for the LSP server",
+ "type": "string"
+ },
+ "disabled": {
+ "default": false,
+ "description": "Whether the LSP is disabled",
+ "type": "boolean"
+ },
+ "options": {
+ "description": "Additional options for the LSP server",
+ "type": "object"
+ }
+ },
+ "required": [
+ "command"
+ ],
+ "type": "object"
+ },
+ "description": "Language Server Protocol configurations",
+ "type": "object"
+ },
+ "mcpServers": {
+ "additionalProperties": {
+ "description": "MCP server configuration",
+ "properties": {
+ "args": {
+ "description": "Command arguments for the MCP server",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "command": {
+ "description": "Command to execute for the MCP server",
+ "type": "string"
+ },
+ "env": {
+ "description": "Environment variables for the MCP server",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "headers": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "HTTP headers for SSE type MCP servers",
+ "type": "object"
+ },
+ "type": {
+ "default": "stdio",
+ "description": "Type of MCP server",
+ "enum": [
+ "stdio",
+ "sse"
+ ],
+ "type": "string"
+ },
+ "url": {
+ "description": "URL for SSE type MCP servers",
+ "type": "string"
+ }
+ },
+ "required": [
+ "command"
+ ],
+ "type": "object"
+ },
+ "description": "Model Control Protocol server configurations",
+ "type": "object"
+ },
+ "providers": {
+ "additionalProperties": {
+ "description": "Provider configuration",
+ "properties": {
+ "apiKey": {
+ "description": "API key for the provider",
+ "type": "string"
+ },
+ "disabled": {
+ "default": false,
+ "description": "Whether the provider is disabled",
+ "type": "boolean"
+ },
+ "provider": {
+ "description": "Provider type",
+ "enum": [
+ "anthropic",
+ "openai",
+ "gemini",
+ "groq",
+ "bedrock"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "description": "LLM provider configurations",
+ "type": "object"
+ },
+ "wd": {
+ "description": "Working directory for the application",
+ "type": "string"
+ }
+ },
+ "title": "OpenCode Configuration",
+ "type": "object"
+}