Skip to content
This repository was archived by the owner on Jun 3, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
129 changes: 129 additions & 0 deletions docs/lsp_configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Sidecar LSP Configuration Guide

## Overview
The sidecar service supports flexible Language Server Protocol (LSP) configuration through JSON configuration files. This allows you to:
- Configure language servers for different programming languages
- Set custom initialization options
- Define server-specific settings
- Manage server lifecycle and capabilities

## Configuration File
Place your configuration in `lsp_config.json`:

```json
{
"language_servers": {
"rust": {
"command": "rust-analyzer",
"args": [],
"initialization_options": {
"checkOnSave": true,
"procMacro": true
},
"root_markers": ["Cargo.toml"],
"capabilities": [
"completions",
"diagnostics",
"formatting",
"references",
"definition"
]
},
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"initialization_options": {
"preferences": {
"importModuleSpecifierPreference": "relative"
}
},
"root_markers": ["package.json", "tsconfig.json"],
"capabilities": [
"completions",
"diagnostics",
"formatting",
"references"
]
}
},
"global_settings": {
"workspace_folders": ["src", "tests"],
"sync_kind": "full",
"completion_trigger_characters": [".", ":", ">"],
"signature_trigger_characters": ["(", ","]
}
}
```

## Configuration Options

### Language Server Configuration
Configure individual language servers:
- `command`: Executable name or path
- `args`: Command line arguments
- `initialization_options`: LSP initialization parameters
- `root_markers`: Files indicating project root
- `capabilities`: Supported LSP features

### Global Settings
Control LSP behavior across all servers:
- `workspace_folders`: Default workspace directories
- `sync_kind`: Document sync type (none/full/incremental)
- `completion_trigger_characters`: Characters triggering completion
- `signature_trigger_characters`: Characters triggering signature help

## Supported Languages

### Built-in Support
- Rust (rust-analyzer)
- TypeScript/JavaScript (typescript-language-server)
- Python (pyright)
- Go (gopls)
- Java (jdtls)
- C/C++ (clangd)
- HTML/CSS (vscode-html-language-server)
- JSON (vscode-json-language-server)
- YAML (yaml-language-server)
- PHP (intelephense)

### Custom Server Configuration
Example adding a custom language server:
```json
{
"language_servers": {
"custom_lang": {
"command": "/path/to/custom-ls",
"args": ["--custom-arg"],
"initialization_options": {
"customSetting": true
},
"root_markers": ["custom.config"],
"capabilities": ["completions", "diagnostics"]
}
}
}
```

## Usage Example

1. Create configuration file:
```bash
echo '{
"language_servers": {
"rust": {
"command": "rust-analyzer",
"initialization_options": {
"checkOnSave": true
}
}
}
}' > lsp_config.json
```

2. Load configuration:
```rust
let state = LspState::new().await?;
state.load_configuration(Path::new("lsp_config.json")).await?;
```

The configuration will be applied automatically to all LSP operations.
123 changes: 123 additions & 0 deletions docs/model_configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# Sidecar Model Configuration Guide

## Overview
The sidecar service supports flexible model configuration through JSON configuration files. This allows you to:
- Enable/disable specific providers or models
- Override model parameters
- Configure custom endpoints
- Set provider-specific settings

## Configuration File
Place your configuration in `models_config.json`:

```json
{
"config_path": "/path/to/config",
"model_overrides": {
"gpt-4": {
"config": {
"temperature": 0.7,
"max_tokens": 4096,
"top_p": 1.0,
"frequency_penalty": 0.0,
"presence_penalty": 0.0
},
"enabled": true,
"endpoint": "https://custom-endpoint/v1"
},
"claude-3-opus": {
"config": {
"temperature": 0.8,
"max_tokens": 8192
},
"enabled": true
}
},
"enabled_providers": ["OpenAI", "Anthropic", "TogetherAI"],
"provider_endpoints": {
"OpenAI": "https://api.openai.com/v1",
"Anthropic": "https://api.anthropic.com/v1"
}
}
```

## Configuration Options

### Model Overrides
Override settings for specific models:
- `config`: Model-specific parameters
- `temperature`: Sampling temperature (0.0-1.0)
- `max_tokens`: Maximum tokens to generate
- `top_p`: Nucleus sampling parameter
- `frequency_penalty`: Frequency penalty for token selection
- `presence_penalty`: Presence penalty for token selection
- `enabled`: Enable/disable specific model
- `endpoint`: Custom endpoint for this model

### Provider Configuration
Control provider availability:
- `enabled_providers`: List of enabled providers (omit to enable all)
- `provider_endpoints`: Custom endpoints for providers

## Supported Providers & Models

### OpenAI
- gpt-4-32k
- gpt-4-preview
- gpt-4
- gpt-3.5-turbo-16k
- gpt-3.5-turbo

### Anthropic
- claude-3-opus
- claude-3-sonnet
- claude-3-haiku

### Together AI
- codellama-70b-instruct
- codellama-34b-instruct
- codellama-13b-instruct
- llama2-70b
- llama2-13b

### Google
- gemini-pro
- gemini-ultra

### Cohere
- command-r
- command

### Mistral
- mistral-large
- mistral-medium
- mistral-small

### Meta
- llama3-70b
- llama3-13b

## Usage Example

1. Create configuration file:
```bash
echo '{
"enabled_providers": ["OpenAI", "Anthropic"],
"model_overrides": {
"gpt-4": {
"config": {
"temperature": 0.5
},
"enabled": true
}
}
}' > models_config.json
```

2. Load configuration:
```rust
let state = ModelState::new().await?;
state.load_configuration(Path::new("models_config.json")).await?;
```

The configuration will be applied automatically to all model operations.
74 changes: 74 additions & 0 deletions examples/lsp_config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"language_servers": {
"rust": {
"command": "rust-analyzer",
"args": [],
"initialization_options": {
"checkOnSave": true,
"procMacro": true,
"diagnostics": {
"enable": true,
"warningsAsHint": []
}
},
"root_markers": ["Cargo.toml"],
"capabilities": [
"completions",
"diagnostics",
"formatting",
"references",
"definition"
]
},
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"initialization_options": {
"preferences": {
"importModuleSpecifierPreference": "relative"
},
"typescript": {
"suggest": {
"completeFunctionCalls": true
}
}
},
"root_markers": ["package.json", "tsconfig.json"],
"capabilities": [
"completions",
"diagnostics",
"formatting",
"references"
]
},
"python": {
"command": "pyright-langserver",
"args": ["--stdio"],
"initialization_options": {
"python": {
"analysis": {
"typeCheckingMode": "basic",
"autoSearchPaths": true
}
}
},
"root_markers": ["pyproject.toml", "setup.py"],
"capabilities": [
"completions",
"diagnostics",
"formatting",
"references"
]
}
},
"global_settings": {
"workspace_folders": ["src", "tests"],
"sync_kind": "full",
"completion_trigger_characters": [".", ":", ">"],
"signature_trigger_characters": ["(", ","],
"hover_trigger_characters": [".", ":"],
"code_action_trigger_characters": ["."],
"format_on_save": true,
"max_completion_items": 100
}
}
48 changes: 48 additions & 0 deletions examples/models_config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"enabled_providers": [
"OpenAI",
"Anthropic",
"TogetherAI",
"Google",
"Cohere",
"Mistral",
"Meta"
],
"model_overrides": {
"gpt-4": {
"config": {
"temperature": 0.7,
"max_tokens": 4096,
"top_p": 1.0,
"frequency_penalty": 0.0,
"presence_penalty": 0.0
},
"enabled": true
},
"claude-3-opus": {
"config": {
"temperature": 0.8,
"max_tokens": 8192,
"top_p": 1.0
},
"enabled": true
},
"codellama-70b-instruct": {
"config": {
"temperature": 0.5,
"max_tokens": 4096,
"top_p": 0.9
},
"enabled": true
}
},
"provider_endpoints": {
"OpenAI": "https://api.openai.com/v1",
"Anthropic": "https://api.anthropic.com/v1",
"TogetherAI": "https://api.together.xyz/v1",
"Google": "https://generativelanguage.googleapis.com/v1",
"Cohere": "https://api.cohere.ai/v1",
"Mistral": "https://api.mistral.ai/v1",
"Meta": "https://llama.meta.ai/v1"
}
}
2 changes: 2 additions & 0 deletions fail.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
No changes were made by the agent.
run_id: codestoryai_sidecar_issue_2081_e29258e0
Loading