* chore: refactor code for improved readability and maintainability
- Standardize variable naming conventions for consistency.
- Improve logging messages for better clarity and debugging.
- Remove unnecessary imports and clean up code structure.
- Enhance error handling and logging in various modules.
- Update comments and docstrings for better understanding.
- Optimize imports and organize them logically.
- Ensure consistent formatting across files for better readability.
- Refactor functions to reduce complexity and improve performance.
- Add missing type hints and annotations for better code clarity.
- Improve test coverage and organization in test files.
style(tests): apply consistent formatting and spacing in test files for improved readability and maintainability
* chore(tests): remove redundant test for ensure_tables_created with no models to streamline test suite and reduce maintenance overhead
* fix(memory.py): update is_binary_file function to correctly identify binary files by returning True for non-text mime types
* feat(readme): update experimental fallback handler description for clarity and add recommendation for OPENAI_API_KEY
feat(main.py): refactor status display logic into a separate build_status function for better readability and maintainability
feat(fallback_handler.py): add debug logging for fallback handler model selection process
chore(todo.md): create a new TODO file to track future improvements and tasks
* chore(todo.md): remove outdated TODO list file to clean up the repository
* feat(main.py): add wrench emoji to FallbackHandler status message for better visibility
fix(config): define DEFAULT_TEST_CMD_TIMEOUT for consistent test command timeout handling
fix(main.py): remove unused AgentInterrupt import and update test command timeout handling
fix(programmer.py): adjust interactive command execution to use model-specific latency
fix(handle_user_defined_test_cmd_execution.py): update timeout handling for test command execution
test(tests): update tests to verify timeout behavior for test command execution
This change introduces a new command-line option `--test-cmd-timeout` to allow users to set a timeout for the execution of test commands. The default timeout is set to 300 seconds. This enhancement provides users with more control over the execution time of their test commands, helping to prevent indefinite hangs during testing.
Additionally, the codebase has been updated to utilize this new timeout setting in relevant areas, ensuring consistent behavior across the application.
fix(ciayn_agent.py): update fallback tool error messages to use FallbackToolExecutionError for better error handling
fix(config.py): remove unnecessary blank line to maintain code style consistency
fix(fallback_handler.py): raise FallbackToolExecutionError for better error clarity when tools are not found
fix(llm.py): set default temperature to 0.7 and notify user when not provided for models that support it
test(test_llm.py): update tests to check for default temperature behavior and improve error messages for unsupported providers
- Add new versioned documentation for RA.Aid project.
- Include installation instructions, quick starts, and markdown features.
- Add configuration files for Docusaurus setup.
- Introduce new images and logos for branding.
- Create a sidebar for better navigation in documentation.
- Implement a .gitignore file for the docs directory to exclude unnecessary files.
feat(docs): add SVG illustrations for Docusaurus documentation to enhance visual appeal
feat(docs): create tsconfig.json for improved TypeScript support in Docusaurus
fix(pyproject.toml): update dependencies to latest versions for better compatibility and features
fix(__main__.py): improve expert provider selection logic based on available API keys
feat(llm.py): implement function to fetch available OpenAI models and select expert model
fix(file_listing.py): enhance file listing functionality to include hidden files option and improve error handling
fix(deepseek_chat.py): add timeout and max_retries parameters to ChatDeepseekReasoner initialization
fix(version.py): bump version to 0.14.1 for release readiness
feat(models_params.py): add default_temperature to model parameters for consistency and configurability
refactor(interactive.py): enhance run_interactive_command to support expected runtime and improve output capture
fix(prompts.py): update instructions to clarify file modification methods
refactor(provider_strategy.py): streamline expert model selection logic for clarity and maintainability
chore(tool_configs.py): update tool imports to reflect changes in write_file functionality
refactor(agent.py): enhance LLM initialization to include temperature and improve error handling
feat(memory.py): normalize file paths in emit_related_files to prevent duplicates
feat(programmer.py): add get_aider_executable function to retrieve the aider executable path
test: add comprehensive tests for new features and refactor existing tests for clarity and coverage
feat(main.py): add --experimental-fallback-handler argument to enable fallback handler
fix(agent_utils.py): modify init_fallback_handler to check for experimental fallback handler flag
fix(config.py): increase DEFAULT_MAX_TOOL_FAILURES to allow more retries before failure
refactor(fallback): streamline fallback model selection and invocation process for improved maintainability
fix(config): reduce maximum tool failures from 3 to 2 to tighten error handling thresholds
style(console): improve error message formatting and logging for better clarity and debugging
chore(main): remove redundant fallback tool model handling from main function to simplify configuration management
refactor(ciayn_agent): restructure tool failure handling to track consecutive failures and fallback attempts more effectively
fix(logging): add pretty logging option for improved log readability
chore(config): define valid providers for LLM selection and update fallback model loading logic
test(ciayn_agent): add unit tests for fallback logic and tool failure handling to ensure reliability and correctness
feat(ciayn_agent): implement fallback mechanism in CiaynAgent to handle tool call failures and switch to alternative models
feat(__main__): add command line arguments for fallback configuration in the main application
feat(llm): add validation for required environment variables for LLM providers and merge chat histories during fallback
fix(config): define default values for maximum tool failures in configuration
test(ciayn_agent): add unit tests for fallback logic and tool call execution with retries and error handling
test(llm): enhance tests for LLM initialization and environment variable validation