Module: RubynCode::Config::Defaults

Defined in:
lib/rubyn_code/config/defaults.rb

Constant Summary collapse

HOME_DIR =
File.expand_path('~/.rubyn-code')
CONFIG_FILE =
File.join(HOME_DIR, 'config.yml')
DB_FILE =
File.join(HOME_DIR, 'rubyn_code.db')
TOKENS_FILE =
File.join(HOME_DIR, 'tokens.yml')
SESSIONS_DIR =
File.join(HOME_DIR, 'sessions')
MEMORIES_DIR =
File.join(HOME_DIR, 'memories')
DEFAULT_PROVIDER =
'anthropic'
DEFAULT_MODEL =
'claude-opus-4-6'
MODEL_MODE =

‘auto’ or ‘manual’

'auto'
MAX_ITERATIONS =
200
MAX_SUB_AGENT_ITERATIONS =
200
MAX_EXPLORE_AGENT_ITERATIONS =
200
CAPPED_MAX_OUTPUT_TOKENS =

Output token management (3-tier recovery, matches Claude Code)

8_000
ESCALATED_MAX_OUTPUT_TOKENS =

Default cap — keeps prompt cache efficient

32_000
MAX_OUTPUT_TOKENS_RECOVERY_LIMIT =

Silent escalation on first max_tokens hit

3
MAX_OUTPUT_CHARS =

Multi-turn recovery attempts after escalation

10_000
MAX_TOOL_RESULT_CHARS =

Per-tool result cap

10_000
MAX_MESSAGE_TOOL_RESULTS_CHARS =

Aggregate cap for all tool results in one message

50_000
CONTEXT_THRESHOLD_TOKENS =
80_000
MICRO_COMPACT_KEEP_RECENT =
2
POLL_INTERVAL =
5
IDLE_TIMEOUT =
60
SESSION_BUDGET_USD =
5.00
DAILY_BUDGET_USD =
10.00
OAUTH_CLIENT_ID =
'rubyn-code'
OAUTH_REDIRECT_URI =
'http://localhost:19275/callback'
OAUTH_AUTHORIZE_URL =
'https://claude.ai/oauth/authorize'
OAUTH_TOKEN_URL =
'https://claude.ai/oauth/token'
OAUTH_SCOPES =
'user:read model:read model:write'
PROVIDER_ENV_KEYS =

Known provider configurations: provider name → { env_key:, base_url: (if not default) }

{
  'anthropic' => 'ANTHROPIC_API_KEY',
  'openai' => 'OPENAI_API_KEY',
  'groq' => 'GROQ_API_KEY',
  'together' => 'TOGETHER_API_KEY',
  'ollama' => 'OLLAMA_API_KEY'
}.freeze
DANGEROUS_PATTERNS =
[
  'rm -rf /', 'sudo rm', 'shutdown', 'reboot',
  '> /dev/', 'mkfs', 'dd if=', ':(){:|:&};:'
].freeze
SCRUB_ENV_VARS =
%w[
  API_KEY SECRET TOKEN PASSWORD CREDENTIAL
  PRIVATE_KEY ACCESS_KEY SESSION_KEY
].freeze