Skip to main content

matrixcode_core/
constants.rs

1//! Core constants and configuration defaults
2//!
3//! Centralizes hardcoded values for easier maintenance.
4
5/// MatrixCode configuration directory name
6pub const MATRIX_DIR: &str = ".matrix";
7
8/// Default max tokens for responses
9pub const DEFAULT_MAX_TOKENS: u32 = 16384;
10
11/// Max tokens for quick actions/compression
12pub const QUICK_ACTION_MAX_TOKENS: u32 = 4096;
13
14/// Max tokens for compress role (shorter output)
15pub const COMPRESS_MAX_TOKENS: u32 = 1024;
16
17/// Max tokens for fast role (quick actions)
18pub const FAST_MAX_TOKENS: u32 = 2048;
19
20/// Max tokens for memory extraction
21pub const MEMORY_EXTRACTION_MAX_TOKENS: u32 = 512;
22
23/// Max tokens for AI memory selection
24pub const AI_MEMORY_SELECTION_MAX_TOKENS: u32 = 100;
25
26/// Default connect timeout in seconds
27pub const DEFAULT_CONNECT_TIMEOUT_SECS: u64 = 10;
28
29/// Default total request timeout in seconds
30pub const DEFAULT_REQUEST_TIMEOUT_SECS: u64 = 300;
31
32/// Default read timeout for streaming chunks (seconds)
33pub const DEFAULT_READ_TIMEOUT_SECS: u64 = 60;
34
35/// Default content timeout in seconds (for slow APIs)
36pub const DEFAULT_CONTENT_TIMEOUT_SECS: u64 = 300;
37
38/// Thinking budget for new models (2025+)
39pub const THINKING_BUDGET_NEW_MODELS: u32 = 10000;
40
41/// Thinking budget for older models
42pub const THINKING_BUDGET_OLD_MODELS: u32 = 5000;
43
44/// Stream delta buffer size (chars) - accumulate before emitting
45/// Reduces event frequency for thinking/text deltas
46pub const STREAM_DELTA_BUFFER_SIZE: usize = 50;
47
48/// Stream delta flush interval (ms) - force emit after this time
49/// Ensures UI updates even with slow token generation
50pub const STREAM_DELTA_FLUSH_INTERVAL_MS: u64 = 100;
51
52/// Max tool result size (bytes)
53pub const MAX_TOOL_RESULT_SIZE: usize = 50_000;
54
55/// Max file size for read without warning (bytes)
56pub const MAX_READ_FILE_SIZE: u64 = 5_000_000;
57
58/// Default read limit (lines)
59pub const DEFAULT_READ_LIMIT: usize = 500;
60
61/// Default search timeout (seconds)
62pub const DEFAULT_SEARCH_TIMEOUT_SECS: u64 = 30;
63
64/// Max files for search
65pub const MAX_SEARCH_FILES: usize = 500;
66
67/// Default grep head limit
68pub const DEFAULT_GREP_HEAD_LIMIT: usize = 100;
69
70/// Max output for bash commands (bytes)
71pub const MAX_BASH_OUTPUT: usize = 30_000;
72
73/// Default bash timeout (milliseconds)
74pub const DEFAULT_BASH_TIMEOUT_MS: u64 = 30_000;
75
76/// Lock acquire timeout (milliseconds)
77pub const LOCK_ACQUIRE_TIMEOUT_MS: u64 = 5000;
78
79/// Retry delay for streaming (milliseconds)
80pub const STREAMING_RETRY_DELAY_MS: u64 = 1000;
81
82/// Max retries for streaming
83pub const MAX_STREAMING_RETRIES: u32 = 5;
84
85/// Anthropic API version header
86pub const ANTHROPIC_API_VERSION: &str = "2025-04-15";
87
88/// Default base URLs
89pub const ANTHROPIC_DEFAULT_BASE_URL: &str = "https://api.anthropic.com";
90pub const OPENAI_DEFAULT_BASE_URL: &str = "https://api.openai.com/v1";
91
92/// CodeGraph CLI command timeout (seconds)
93pub const CODEGRAPH_CLI_TIMEOUT_SECS: u64 = 120;
94
95/// CodeGraph auto-sync debounce interval (seconds)
96/// Increased to reduce Node.js process frequency
97pub const CODEGRAPH_SYNC_INTERVAL_SECS: u64 = 10;
98/// Display limits for UI
99pub const DISPLAY_MEMORY_SEARCH_LIMIT: usize = 10;
100pub const DISPLAY_OVERVIEW_CHARS_LIMIT: usize = 2000;