import os DEFAULT_MODEL = "x-ai/grok-code-fast-1" DEFAULT_API_URL = "https://static.molodetz.nl/rp.cgi/api/v1/chat/completions" MODEL_LIST_URL = "https://static.molodetz.nl/rp.cgi/api/v1/models" config_directory = os.path.expanduser("~/.local/share/rp") os.makedirs(config_directory, exist_ok=True) DB_PATH = os.path.join(config_directory, "assistant_db.sqlite") LOG_FILE = os.path.join(config_directory, "assistant_error.log") CONTEXT_FILE = ".rcontext.txt" GLOBAL_CONTEXT_FILE = os.path.join(config_directory, "rcontext.txt") KNOWLEDGE_PATH = os.path.join(config_directory, "knowledge") HISTORY_FILE = os.path.join(config_directory, "assistant_history") DEFAULT_TEMPERATURE = 0.1 DEFAULT_MAX_TOKENS = 4096 MAX_AUTONOMOUS_ITERATIONS = 50 CONTEXT_COMPRESSION_THRESHOLD = 15 RECENT_MESSAGES_TO_KEEP = 20 API_TOTAL_TOKEN_LIMIT = 256000 MAX_OUTPUT_TOKENS = 30000 SAFETY_BUFFER_TOKENS = 30000 MAX_TOKENS_LIMIT = API_TOTAL_TOKEN_LIMIT - MAX_OUTPUT_TOKENS - SAFETY_BUFFER_TOKENS CHARS_PER_TOKEN = 2.0 EMERGENCY_MESSAGES_TO_KEEP = 3 CONTENT_TRIM_LENGTH = 30000 MAX_TOOL_RESULT_LENGTH = 30000 LANGUAGE_KEYWORDS = { "python": [ "def", "class", "import", "from", "if", "else", "elif", "for", "while", "return", "try", "except", "finally", "with", "as", "lambda", "yield", "None", "True", "False", "and", "or", "not", "in", "is", ], "javascript": [ "function", "var", "let", "const", "if", "else", "for", "while", "return", "try", "catch", "finally", "class", "extends", "new", "this", "null", "undefined", "true", "false", ], "java": [ "public", "private", "protected", "class", "interface", "extends", "implements", "static", "final", "void", "int", "String", "boolean", "if", "else", "for", "while", "return", "try", "catch", "finally", ], } CACHE_ENABLED = True API_CACHE_TTL = 3600 TOOL_CACHE_TTL = 300 WORKFLOW_MAX_RETRIES = 3 WORKFLOW_DEFAULT_TIMEOUT = 300 WORKFLOW_EXECUTOR_MAX_WORKERS = 5 AGENT_DEFAULT_TEMPERATURE = 0.7 AGENT_MAX_WORKERS = 3 AGENT_SESSION_TIMEOUT = 7200 KNOWLEDGE_IMPORTANCE_THRESHOLD = 0.5 KNOWLEDGE_SEARCH_LIMIT = 5 MEMORY_AUTO_SUMMARIZE = True CONVERSATION_SUMMARY_THRESHOLD = 20 ADVANCED_CONTEXT_ENABLED = True CONTEXT_RELEVANCE_THRESHOLD = 0.3 ADAPTIVE_CONTEXT_MIN = 10 ADAPTIVE_CONTEXT_MAX = 50 # Background monitoring and multiplexer configuration BACKGROUND_MONITOR_ENABLED = True BACKGROUND_MONITOR_INTERVAL = 5.0 # seconds AUTONOMOUS_INTERACTION_INTERVAL = 10.0 # seconds MULTIPLEXER_BUFFER_SIZE = 1000 # lines MULTIPLEXER_OUTPUT_TIMEOUT = 30 # seconds MAX_CONCURRENT_SESSIONS = 10 # Process-specific timeouts (seconds) PROCESS_TIMEOUTS = { "default": 300, # 5 minutes "apt": 600, # 10 minutes "ssh": 60, # 1 minute "vim": 3600, # 1 hour "git": 300, # 5 minutes "npm": 600, # 10 minutes "pip": 300, # 5 minutes } # Activity thresholds for LLM notification HIGH_OUTPUT_THRESHOLD = 50 # lines INACTIVE_THRESHOLD = 300 # seconds SESSION_NOTIFY_INTERVAL = 60 # seconds # Autonomous behavior flags ENABLE_AUTONOMOUS_SESSIONS = True ENABLE_BACKGROUND_UPDATES = True ENABLE_TIMEOUT_DETECTION = True