7b91169017
- Move src/* into crates/tui/src/ to create a proper workspace structure - Add .claude/ and .trimtab/ directories for Trimtab closed-loop workflow - Add DEPENDENCY_GRAPH.md and update documentation - Update Cargo.toml files to reflect new crate dependencies - Update CI workflows and npm package scripts - All tests pass, release build works
135 lines
10 KiB
TOML
135 lines
10 KiB
TOML
# ╔══════════════════════════════════════════════════════════════════════════════╗
|
|
# ║ DeepSeek TUI Configuration ║
|
|
# ║ ║
|
|
# ║ Unofficial CLI for DeepSeek Platform - Not affiliated with DeepSeek Inc. ║
|
|
# ╚══════════════════════════════════════════════════════════════════════════════╝
|
|
|
|
# See `docs/CONFIGURATION.md` for how config is loaded (profiles, env overrides, etc.).
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# API Keys
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
api_key = "YOUR_DEEPSEEK_API_KEY" # must be non-empty
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Base URLs
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
base_url = "https://api.deepseek.com"
|
|
# base_url = "https://api.deepseeki.com" # China users
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Default Models
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
default_text_model = "deepseek-reasoner" # common IDs: deepseek-reasoner, deepseek-chat (any deepseek-* ID is valid)
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Paths
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
skills_dir = "~/.deepseek/skills"
|
|
mcp_config_path = "~/.deepseek/mcp.json"
|
|
notes_path = "~/.deepseek/notes.txt"
|
|
|
|
memory_path = "~/.deepseek/memory.md"
|
|
|
|
# Parsed but currently unused (reserved for future versions):
|
|
# tools_file = "./tools.json"
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Security
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
allow_shell = true
|
|
approval_policy = "on-request" # on-request | untrusted | never
|
|
sandbox_mode = "workspace-write" # read-only | workspace-write | danger-full-access | external-sandbox
|
|
max_subagents = 5 # optional (1-20)
|
|
|
|
# Optional managed policy paths (defaults to /etc/deepseek/*.toml on unix):
|
|
# managed_config_path = "/etc/deepseek/managed_config.toml"
|
|
# requirements_path = "/etc/deepseek/requirements.toml"
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# TUI
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
[tui]
|
|
alternate_screen = "auto" # auto | always | never
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Feature Flags
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
[features]
|
|
shell_tool = true
|
|
subagents = true
|
|
web_search = true # enables canonical web.run plus the compatibility web_search alias
|
|
apply_patch = true
|
|
mcp = true
|
|
exec_policy = true
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Retry Configuration
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
[retry]
|
|
enabled = true
|
|
max_retries = 3
|
|
initial_delay = 1.0
|
|
max_delay = 60.0
|
|
exponential_base = 2.0
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Context Compaction (config-level tuning not yet wired; use /set auto_compact on|off)
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# [compaction]
|
|
# enabled = false # Enable auto-compaction
|
|
# token_threshold = 50000 # Trigger compaction above this token estimate
|
|
# message_threshold = 50 # Or above this message count
|
|
# model = "deepseek-chat" # Model to use for summarization
|
|
# cache_summary = true # Cache the summary block
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Capacity Controller (runtime pressure guardrails)
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
[capacity]
|
|
enabled = true
|
|
low_risk_max = 0.34
|
|
medium_risk_max = 0.62
|
|
severe_min_slack = -0.25
|
|
severe_violation_ratio = 0.40
|
|
refresh_cooldown_turns = 2
|
|
replan_cooldown_turns = 5
|
|
max_replay_per_turn = 1
|
|
min_turns_before_guardrail = 2
|
|
profile_window = 8
|
|
deepseek_v3_2_chat_prior = 3.9
|
|
deepseek_v3_2_reasoner_prior = 4.1
|
|
fallback_default_prior = 3.8
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Profile Example (for multiple environments)
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Select a profile with `deepseek --profile <name>` or `DEEPSEEK_PROFILE=<name>`.
|
|
[profiles.work]
|
|
api_key = "WORK_DEEPSEEK_API_KEY"
|
|
base_url = "https://api.deepseek.com"
|
|
|
|
[profiles.dev]
|
|
api_key = "DEV_DEEPSEEK_API_KEY"
|
|
allow_shell = true
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Hooks (optional)
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Hooks run shell commands on lifecycle events (session start/end, tool calls, etc.).
|
|
# Configure as `[[hooks.hooks]]` under a `[hooks]` table.
|
|
#
|
|
# [hooks]
|
|
# enabled = true
|
|
# default_timeout_secs = 30
|
|
#
|
|
# [[hooks.hooks]]
|
|
# event = "session_start"
|
|
# command = "echo 'DeepSeek TUI session started'"
|
|
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# Requirements (admin constraints) example file
|
|
# ─────────────────────────────────────────────────────────────────────────────────
|
|
# allowed_approval_policies = ["on-request", "untrusted", "never"]
|
|
# allowed_sandbox_modes = ["read-only", "workspace-write"]
|