# gcop-rs 配置文件
# 位置: ~/.config/gcop/config.toml
#
# ⚠️  包含 API key 敏感信息，请勿提交到 git！
# 建议设置权限: chmod 600 ~/.config/gcop/config.toml

# ============================================
# LLM 配置
# ============================================
[llm]
# 默认 provider: "claude" | "openai" | "ollama"
default_provider = "claude"

# 备用 provider 列表：主 provider 失败时自动尝试下一个
# fallback_providers = ["openai", "ollama"]

# Claude Provider
[llm.providers.claude]
# API key（或使用环境变量 ANTHROPIC_API_KEY）
api_key = "sk-ant-api03-your-key-here"

# 模型选择:
# - claude-sonnet-4-5-20250929 (推荐，平衡性能和成本)
# - claude-opus-4-5-20251101 (最强，适合复杂审查)
model = "claude-sonnet-4-5-20250929"

# 可选: 最大响应 token 数 (默认: 2000)
# max_tokens = 2000

# 可选: 生成温度 (默认: 0.3)
# temperature = 0.3

# OpenAI Provider
[llm.providers.openai]
# API key（或使用环境变量 OPENAI_API_KEY）
api_key = "sk-your-openai-key-here"
# 推荐模型: gpt-4-turbo | gpt-4 | gpt-3.5-turbo
model = "gpt-4-turbo"

# 可选: 最大 token 数（不设置则使用模型默认值）
# max_tokens = 4096

# 可选: 温度 (默认: 0.3)
# temperature = 0.3

# Ollama Provider（本地部署）
[llm.providers.ollama]
# 端点（确保 ollama serve 已启动）
endpoint = "http://localhost:11434/api/generate"
# 推荐模型: codellama:13b | llama2:7b | mistral:7b
# 需先拉取: ollama pull codellama:13b
model = "codellama:13b"

# 可选: 温度
# temperature = 0.3

# ============================================
# 自定义 Provider 示例
# ============================================
# DeepSeek (OpenAI 兼容)
# [llm.providers.deepseek]
# api_style = "openai"
# endpoint = "https://api.deepseek.com/v1/chat/completions"
# model = "deepseek-chat"
# api_key = "your-deepseek-api-key-here"
# max_tokens = 4096
# temperature = 0.3

# ============================================
# Commit 配置
# ============================================
[commit]
# 启用差异预览和编辑功能
show_diff_preview = true
allow_edit = true

# 重新生成的最大次数 (默认: 10)
# max_retries = 10

# 自定义 prompt（可选）
# custom_prompt = """
# 你是专业工程师，生成中文 conventional commits。
# 格式: 类型(范围): 简要描述
# """

# ============================================
# Review 配置
# ============================================
[review]
# 最低显示问题严重性: "critical" | "warning" | "info"
min_severity = "info"

# ============================================
# UI 配置
# ============================================
[ui]
# 启用彩色输出
colored = true
# 启用详细日志
verbose = false
# 启用流式输出（实时打字效果，类似 ChatGPT）
# 仅 OpenAI 风格的 API 支持，其他 provider 会回退到转圈圈模式
streaming = true

# ============================================
# 网络配置
# ============================================
[network]
# HTTP 请求超时（秒）(默认: 120)
request_timeout = 120

# HTTP 连接超时（秒）(默认: 10)
connect_timeout = 10

# API 请求失败时的最大重试次数 (默认: 3)
max_retries = 3

# 初始重试延迟（毫秒，指数退避）(默认: 1000)
retry_delay_ms = 1000

# 最大重试延迟（毫秒）(默认: 60000 = 60秒)
# 防止等待时间过长，也作为 Retry-After 头的上限
max_retry_delay_ms = 60000

# ============================================
# 文件配置
# ============================================
[file]
# 最大文件大小（字节）(默认: 10MB)
max_size = 10485760
