Commit Graph

119 Commits

Author SHA1 Message Date
AI Christianson dbf4d954e1 base db infra 2025-02-26 11:44:18 -05:00
AI Christianson 840abf96f7 fix tests 2025-02-25 18:38:00 -05:00
AI Christianson 9c76745bcc improve binary file filtering 2025-02-25 18:34:28 -05:00
AI Christianson 94d655ce91 skip binary files; update deps 2025-02-25 18:32:29 -05:00
AI Christianson eede183110 fix junk in command capture 2025-02-25 14:46:53 -05:00
AI Christianson a866b38883 fix linux interactive commands 2025-02-25 13:42:00 -05:00
Mark Varkevisser d163a74c47
Add Windows compatibility improvements (#105)
* Add Windows compatibility improvements

1. Add error handling for Windows-specific modules
2. Update README with Windows installation instructions
3. Add Windows-specific tests
4. Improve cross-platform support in interactive.py

* Fix: Add missing subprocess import in Windows compatibility tests

* Improve Windows compatibility:

1. Add detailed error handling for Windows I/O operations
2. Enhance timeout messages with more descriptive information
3. Add comprehensive comments explaining Windows-specific code

* Fix WebUI: Improve message display, add syntax highlighting, animations, and fix WebSocket communication
2025-02-25 13:41:29 -05:00
AI Christianson 52722f6600 use latest aider; update tool calling prompts and minimize return values to improve tool calling performance 2025-02-24 19:08:12 -05:00
AI Christianson 6591400ad6 fix anthropic key error msg 2025-02-24 15:35:45 -05:00
AI Christianson 7f85e93431 sonnet 3.7 2025-02-24 14:44:40 -05:00
AI Christianson 04913bdaf3 fix bug where model selection on anthropic was always using default 2025-02-24 14:35:09 -05:00
AI Christianson ba1c0f7b38 fix tests 2025-02-19 20:06:41 -05:00
AI Christianson ca49e509a8 use create_react_agent for sonnet via openrouter 2025-02-18 22:09:06 -05:00
AI Christianson ba92f49a91 fix bug where we sent reasoning_effort to models that do not support it. fixes #91 2025-02-17 19:08:06 -05:00
Ariel Frischer 5a4710b3be feat(tests): add --test-cmd-timeout argument to README and implement timeout for test command execution
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
2025-02-17 15:38:20 -08:00
Ariel Frischer 581dc4b761 feat: add `--test-cmd-timeout` option to specify timeout 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.
2025-02-17 11:03:19 -08:00
Ariel Frischer 69281c31db chore(llm.py): remove unused merge_chat_history function to clean up codebase
chore(test_fallback_handler.py): remove references to the removed merge_chat_history function in tests to maintain consistency
2025-02-14 14:20:11 -08:00
Ariel Frischer 56ddd967c0 fix(imports): remove redundant import of models_params in __main__.py for cleaner code
style(fallback_handler.py): format error message for better readability
style(test_llm.py): format exception assertion for better readability
2025-02-14 13:54:36 -08:00
Ariel Frischer 0df5d43333 feat(main.py): import models_params and set default temperature for models that support it to improve user experience
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
2025-02-14 13:50:32 -08:00
Ariel Frischer 6970a885e4 chore(docs): update documentation and assets for RA.Aid project using Docusaurus
- 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
2025-02-14 13:11:10 -08:00
Ariel Frischer d5e2e0a9a0 refactor(agent_utils.py, ciayn_agent.py): remove unused import cpm to clean up code and improve readability
style(tests): format code for better readability and consistency in test files
test(tests): update assertions and test cases for better clarity and maintainability
2025-02-14 13:04:41 -08:00
Ariel Frischer 7a2c766824 test(agent_utils): add config parameter to mock_ciayn assertions for better clarity and flexibility in tests 2025-02-13 20:18:02 -08:00
Ariel Frischer 15ce534f8f feat(agent_utils.py): add debug print for config to assist in troubleshooting
feat(ciayn_agent.py): pass config to CiaynAgent for improved functionality
fix(ciayn_agent.py): handle tool execution errors more gracefully with msg_list
feat(fallback_handler.py): enhance handle_failure method to utilize msg_list for better context
feat(fallback_handler.py): implement init_msg_list to manage message history effectively
test(test_fallback_handler.py): add unit tests for init_msg_list to ensure correct behavior
2025-02-13 20:09:21 -08:00
Ariel Frischer 5733eb06f5 fix(test_fallback_handler.py): update lambda function to accept default argument for args to prevent potential errors during invocation 2025-02-13 19:14:06 -08:00
Ariel Frischer cc1945facd feat(agent_utils.py): change SystemMessage to HumanMessage for fallback responses in React to improve message clarity
fix(fallback_handler.py): update tool invocation logic to handle missing tools and raise appropriate exceptions for better error handling
test(tests): add comprehensive tests for fallback handler functionality, including loading models, extracting tool names, and invoking tools to ensure robustness and reliability
2025-02-13 18:48:45 -08:00
Ariel Frischer 09abba512d test(tests): add tests for fallback handler to ensure proper error handling and counter incrementing
feat(tests): introduce FallbackToolExecutionError to improve error specificity in fallback handling tests
2025-02-13 18:21:54 -08:00
Ariel Frischer 15a3291254 refactor(agent_utils.py): remove unnecessary debug log statement to clean up code
refactor(fallback_handler.py): improve error handling by raising a specific exception when all fallback models fail
test(fallback_handler.py): update tests to reflect changes in the fallback handler's error handling and initialization
fix(test_llm.py): update error messages in tests for unsupported providers to be more descriptive and accurate
2025-02-13 18:20:00 -08:00
Ariel Frischer ac13ce746a feat(agent_utils.py): add cpm function import for enhanced logging in run_agent_with_retry
fix(agent_utils.py): set default value of fallback_handler to None in run_agent_with_retry
chore(ciayn_agent.py): comment out debug log for generated code to reduce verbosity
fix(fallback_handler.py): change fallback_enabled config key to experimental_fallback_handler for better clarity
refactor(test_ciayn_agent.py): update invoke method in DummyModel to return AIMessage instead of a custom Response class
test(test_ciayn_agent.py): comment out test_retry_logic_with_failure_recovery for future implementation and focus on existing tests
2025-02-13 17:57:27 -08:00
Ariel Frischer c7712e0114 fix(tests): update type hints in test_agent_utils.py for better clarity and type safety
refactor(tests): modify DummyAgent's stream method to use more descriptive parameter names and types for improved readability
2025-02-13 17:10:26 -08:00
AI Christianson 1084faaf0b normalize/dedupe files for programmer tool 2025-02-13 09:45:32 -05:00
AI Christianson c5c27c9f87 enforce byte limit in interactive commands 2025-02-13 08:03:16 -05:00
AI Christianson e6b34e4ebc normalize related file paths 2025-02-12 22:12:55 -05:00
Jose M Leon 10ad8aa8d5
FIX aider flags (#89) 2025-02-12 21:46:14 -05:00
AI Christianson 18b0ce230e handle raw input in interactive 2025-02-12 17:59:34 -05:00
AI Christianson 1fbaeac308 use aider from the current env 2025-02-12 17:17:30 -05:00
AI Christianson 4d14b9747f fix interactive command input 2025-02-12 17:08:37 -05:00
Ariel Frischer af9f95ceb1 refactor(agent_utils.py): remove the _handle_tool_execution_error function and simplify error handling in run_agent_with_retry
feat(fallback_handler.py): enhance handle_failure method to extract tool name from ToolExecutionError and improve fallback logic
fix(exceptions.py): update ToolExecutionError to include base_message for better error context
feat(output.py): add base_message to ToolExecutionError for improved debugging
chore(tool_configs.py): update get_all_tools function to specify return type
style(logging_config.py): reorder imports for consistency
test(tests): add tests for new error handling and fallback logic in agent_utils and fallback_handler
2025-02-12 13:07:12 -08:00
AI Christianson e3a705eb9b auto detect openai expert models 2025-02-12 15:40:21 -05:00
AI Christianson c9d7e90312 lower interactive shell history to conserve context; improve prompts 2025-02-12 15:26:48 -05:00
AI Christianson d54203b819 fix tests 2025-02-12 13:52:45 -05:00
AI Christianson 087009918b fix tests 2025-02-12 13:50:45 -05:00
AI Christianson a1371fc7e0 support default temp on a per-model basis; show status panel 2025-02-12 13:38:52 -05:00
AI Christianson 264f5025ed Refactor write file tool so it is easier for LLMs to use properly. 2025-02-12 11:51:19 -05:00
Ariel Frischer 1388067769 refactor(agent_utils.py): refactor run_agent_with_retry function for better readability and maintainability by extracting helper functions
feat(agent_utils.py): add new helper functions for handling API errors and managing interrupt signals
fix(agent_utils.py): improve error handling in tool execution and retry logic
feat(fallback_handler.py): enhance fallback handling by binding tools correctly during retries
test(tests): add unit tests for new helper functions and refactored logic in agent_utils.py
2025-02-11 12:16:04 -08:00
Ariel Frischer 55abf6e5dd feat(fallback_handler): implement FallbackHandler class to manage tool failures and fallback logic
refactor(ciayn_agent): integrate FallbackHandler into CiaynAgent for improved failure handling
fix(agent_utils): add missing newline for better readability in run_agent_with_retry function
test(fallback_handler): add unit tests for FallbackHandler to ensure correct failure handling and fallback logic
2025-02-10 23:37:15 -08:00
Ariel Frischer d8ee4e04f4 feat(fallback): implement automatic fallback to alternative LLM models on consecutive failures to enhance user experience and prevent infinite error loops
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
2025-02-10 14:13:19 -08:00
AI Christianson 589233aaff fix tests 2025-02-10 12:13:14 -05:00
Ariel Frischer 45b993cfd0 feat(issue): add LLM Tool Call Fallback Feature documentation to outline the new functionality for automatic fallback to alternative LLM models after consecutive failures
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
2025-02-09 22:07:23 -08:00
Jose M Leon 00a455d586
FIX do not default to o1 model (#82) 2025-02-08 20:28:10 -05:00
AI Christianson f40e11ee21 improve work logging; use reasoning_effort=high for openai expert models; improve prompts 2025-02-08 14:36:08 -05:00