Commit Graph

55 Commits

Author SHA1 Message Date
Ariel Frischer 46e7340ddb
Add configurable --recursion-limit argument (#46)
* test: Add unit tests for argument parsing in __main__.py

* test: Update tests to remove invalid argument and improve error handling

* test: Fix test_missing_message to handle missing argument cases correctly

* test: Fix test_missing_message to reflect argument parsing behavior

* test: Combine recursion limit tests and verify global config updates

* fix: Include recursion_limit in config for recursion limit tests

* test: Mock dependencies and validate recursion limit in global config

* test: Remove commented-out code and clean up test_main.py

* test: Remove self-evident comments and improve test assertions in test_main.py

* fix: Mock user input and handle temperature in global config tests

* fix: Fix test failures by correcting mock targets and handling temperature

* test: Update temperature validation to check argument passing to initialize_llm

* fix: Correct mock for ask_human and access kwargs in temperature test

* fix: Patch the entire ask_human function in test_chat_mode_implies_hil

* docs: Add recursion limit option to README documentation

* docs: Update README.md with all available command line arguments

* feat(config): add DEFAULT_RECURSION_LIMIT constant to set default recursion depth
feat(main.py): add --recursion-limit argument to configure maximum recursion depth for agent operations
fix(main.py): validate that recursion limit is positive before processing
refactor(main.py): use args.recursion_limit in agent configuration instead of hardcoded value
refactor(agent_utils.py): update agent configuration to use recursion limit from global memory or default value
refactor(run_research_agent): clean up comments and improve readability
refactor(run_web_research_agent): clean up comments and improve readability
refactor(run_planning_agent): clean up comments and improve readability
refactor(run_task_implementation_agent): clean up comments and improve readability
delete(test_main.py): remove obsolete test for chat mode and HIL configuration
2025-01-21 11:46:56 -05:00
Ariel Frischer 32fcf914ed
Set Default Max Token Limit with Provider/Model Dictionary and Limit Tokens for Anthropic Claude React Agent (#45)
* feat(agent_utils.py): add get_model_token_limit function to retrieve token limits for models based on provider and model name
feat(models_tokens.py): create models_tokens module to store token limits for various models and providers
test(agent_utils.py): implement unit tests for get_model_token_limit and create_agent functions to ensure correct behavior and error handling

* test: Add unit tests for token limiting and agent creation functionality

* fix: Correct indentation and add missing test function for error handling

* fix: Update test assertion to use messages_modifier instead of state_modifier

* feat(agent_utils.py): add limit_tokens function to manage message token limits and preserve system message
fix(agent_utils.py): update get_model_token_limit to handle exceptions and return None on error
fix(ciayn_agent.py): set default max_tokens to DEFAULT_TOKEN_LIMIT in CiaynAgent initialization
feat(models_tokens.py): define DEFAULT_TOKEN_LIMIT for consistent token limit management across agents
style(agent_utils.py): improve code formatting and consistency in function definitions and comments
style(agent_utils.py): refactor imports for better organization and readability
fix(test_agent_utils.py): correct test assertion to use state_modifier instead of messages_modifier for create_agent function

* refactor(agent_utils.py): improve docstring clarity and formatting for limit_tokens function to enhance readability
refactor(test_agent_utils.py): format test assertions for consistency and readability in agent creation tests

* feat: Update limit_tokens function to support Dict type for state parameter

* feat: Update limit_tokens to handle both list and dict input types

* refactor: Extract duplicate token trimming logic into helper function

* refactor: Rename and update message trimming functions for clarity

* refactor: Extract agent kwargs logic into a helper method for reuse

* refactor: Rename _build_agent_kwargs to build_agent_kwargs for clarity

* fix: Ensure state_modifier is passed correctly for agent creation

* test: Add tests for create_agent token limiting configuration

* refactor: Simplify CiaynAgent instantiation to only use max_tokens parameter

* refactor: Remove is_react_agent parameter from build_agent_kwargs function

* test: Fix test assertions for state_modifier in agent creation tests

* fix: Update agent creation to handle checkpointer and simplify tests

* test: Remove unnecessary assertions from agent creation test

* feat: Implement token limiting configuration for create_agent function

* refactor: Remove unused model info and token limit retrieval code

* test: Fix assertion errors in agent creation tests and update state_modifier handling

* test: Remove commented-out code and clarify assertions in tests

* test: Fix assertion in test_create_agent_anthropic_token_limiting_disabled

* feat(main.py): add --limit-tokens argument to control token limiting in agent state
fix(main.py): include limit_tokens in configuration to ensure proper state management

* test: Refactor agent creation tests for improved readability and consistency

* test: Modify error handling in create_agent test to use side_effect on get_model_token_limit

* test: Improve error handling in create_agent test to verify fallback behavior

* test: Trigger exception on get_model_token_limit in error handling test

* refactor(agent_utils.py): remove unused config parameter from create_agent function to simplify the function signature
fix(agent_utils.py): ensure config is always retrieved from _global_memory with a default value to prevent potential errors
test(tests/test_agent_utils.py): remove outdated test for create_agent error handling to clean up the test suite

* feat: Add debug print for agent_kwargs in create_agent function

* refactor: Replace lambda with inner function for state_modifier in agent_utils

* refactor: Simplify limit_tokens function to return only message sequences

* feat: Add debug print statements to show token trimming details in trim_messages

* PAIN

* feat(main.py): add debug print statement for args.chat to assist in troubleshooting chat mode
feat(agent_utils.py): implement estimate_messages_tokens function to calculate total tokens in messages
refactor(agent_utils.py): replace token counting logic in trim_messages_with_removal with estimate_messages_tokens for clarity
refactor(agent_utils.py): modify state_modifier to accept model and max_tokens parameters for better flexibility
refactor(agent_utils.py): update build_agent_kwargs to pass model to state_modifier for improved functionality

* feat: Add .direnvrc to manage Python virtual environment activation

* refactor: Update state_modifier to handle first message token count and trim messages

* chore: remove unused .direnvrc file to clean up project structure
feat: add .envrc to .gitignore to prevent environment configuration file from being tracked
fix: update help text for --disable-limit-tokens argument for clarity
refactor: clean up imports in agent_utils.py for better readability
refactor: remove unused functions and comments in agent_utils.py to streamline code
test: add unit tests for state_modifier function to ensure correct message trimming behavior

* refactor: Remove commented-out code in create_agent function

* feat: Add is_anthropic_claude method to check provider and model name

* fix: Correct search/replace block to match existing lines in agent_utils.py

* fix(main.py): update help text for --disable-limit-tokens argument to clarify it applies to react agents
refactor(agent_utils.py): streamline token limit retrieval and improve readability by removing redundant checks and restructuring code
refactor(agent_utils.py): modify build_agent_kwargs to use is_anthropic_claude for clarity and maintainability

* test: Update tests to pass config argument to get_model_token_limit()

* refactor(agent_utils.py): remove unnecessary print statements and improve function signatures for clarity
refactor(agent_utils.py): consolidate provider and model_name retrieval into config parameter for better maintainability

* test: Remove redundant token limiting tests from agent creation logic

* test: Refactor test_state_modifier to use mock_messages fixture

* test(tests): update test description for clarity on state_modifier behavior and use mock_messages for assertions to ensure consistency

* refactor(agent_utils.py): simplify token limit retrieval by removing unnecessary variable initialization and defaulting to None in get method

* chore(main.py): remove debug print statement for args.chat to clean up output
2025-01-20 14:41:29 -05:00
AI Christianson 63be5248e1 Extract tool reflection. 2025-01-09 15:35:14 -05:00
AI Christianson b631a4bf57 Get project info programmatically to save tokens. 2025-01-09 14:43:42 -05:00
AI Christianson 4b24dbe960 Improve work log handling. 2025-01-09 13:42:26 -05:00
AI Christianson 094257e0af Add unit tests for CiaynAgent._does_not_conform_to_pattern. 2025-01-09 11:51:08 -05:00
AI Christianson 0449564109 Fix bug where directories are added as related files. 2025-01-08 17:04:24 -05:00
AI Christianson cd49c2bd48 test: update test suite for Gemini integration
- Add mock_gemini parameter to test functions
- Update Gemini API configuration tests
- Fix date-based assertions in directory listing tests
- Minor syntax fixes in test files
2025-01-04 15:36:13 -05:00
arthrod ffe5138a99
Adding Gemini API due to openrouter's limitations. (#34) 2025-01-04 07:19:05 -05:00
Will ccb4756035
macOS compatibility (#23)
* Correcting URL for github; ra-aid.git -> RA.Aid.git

* Additional fix to cloning instructions

* Initial draft of tweaks to add macOS compatibility

* Changing LS test to check for not-zero instead of specific error code

* Further macOS compatibility tweaks - dealing with mystery control characters

* Additional compatibility for macOS - flag as macOS, and detect and change command based it

* Removing unneeded variable
2024-12-30 12:38:06 -05:00
AI Christianson a28ed59bca Add --temperature CLI parameter. 2024-12-28 18:36:24 -05:00
AI Christianson 35db6b633f Adjustments to get smaller agent models working better. 2024-12-28 17:41:06 -05:00
AI Christianson 8b50b741fa Fix test. 2024-12-28 17:36:31 -05:00
AI Christianson cf485bd96c Merge llm-fn-call: resolve changelog conflicts 2024-12-28 16:56:34 -05:00
Jose M Leon 8b3f4d736c
FEAT fix command line args and env var dependencies on anthropic (#21)
* FIX provider cmdline args

* FIX Issue 18

* FIX ensure research-only requires a model
2024-12-28 16:53:57 -05:00
AI Christianson 6f10db811e ciayn 2024-12-28 15:09:32 -05:00
AI Christianson 4cb98370c2 ciayn 2024-12-28 14:58:16 -05:00
AI Christianson 9944ec9ea4 Fix tests. 2024-12-27 19:59:05 -05:00
user f0985ed11c Fix tests. 2024-12-24 08:49:40 -05:00
AI Christianson 90e5924ab2
Merge pull request #5 from leonj1/feat_aider_args
FEAT support future aider flags
2024-12-23 19:39:12 -05:00
Jose Leon e507fd87bd FEAT allow flexiblity to support future aider flags 2024-12-24 00:25:05 +00:00
user f5482dce2a Added web research tool config. 2024-12-23 17:08:07 -05:00
user f569bb14b1 Fix unit test warnings. 2024-12-23 12:56:08 -05:00
user bfe438379f Fix test warning. 2024-12-23 12:46:37 -05:00
user 9a283f3f43 Fix expert unit tests. 2024-12-23 12:38:38 -05:00
user 04d45425ee Fix work log tests. 2024-12-23 12:36:59 -05:00
user 0399c5e346 Improve work log format. 2024-12-23 11:46:46 -05:00
user 87ec7c0268 Add initial work log. 2024-12-23 11:36:28 -05:00
user 5ddceabae1 Rename delete_related_files to deregister_related_files. 2024-12-22 15:17:39 -05:00
user 80486ec533 Convert related files system to ID-based storage
- Refactored related files storage to use dictionary with integer IDs as keys
- Added related_file_id_counter for generating unique file IDs
- Updated get_related_files() to return formatted strings with IDs
- Added delete_related_files() function for removing files by ID
- Maintained duplicate file path handling to preserve original IDs
- All tests passing
2024-12-22 14:39:16 -05:00
user c6068bf85c Add tests for LLM initialization. 2024-12-22 09:02:58 -05:00
AI Christianson 2ac796cf2b Extricate research subtasks. 2024-12-21 11:27:14 -05:00
AI Christianson bfb4453f11 Refactor: extract tool configs. 2024-12-19 14:08:53 -05:00
AI Christianson 53c2afdde3 Fix env var fallback when base key is given, expert and base provider are different, and expert key is missing. 2024-12-19 09:18:10 -05:00
AI Christianson cc63bf0bae emit research subtask -> request research subtask 2024-12-18 16:51:04 -05:00
AI Christianson 5878a53710 fix tests & bump version 2024-12-17 15:12:53 -05:00
AI Christianson 674e08c89e extract env validation into its own module 2024-12-17 11:31:10 -05:00
AI Christianson 6f914373c4 fix one shot signalling 2024-12-17 11:25:04 -05:00
AI Christianson 3be54fac2f fix one_shot_completed and allow reordering of tasks 2024-12-17 10:36:32 -05:00
AI Christianson db5ac38a5a allow tasks to be deleted 2024-12-17 10:18:22 -05:00
AI Christianson aff629e13c - When key snippets are emitted, snippet files are auto added to related files.
- Add base task to research subtask prompt.
- Adjust research prompt to make sure related files are related to the base task, not just the research subtask.
2024-12-17 09:41:52 -05:00
AI Christianson db3dcf2fa3 added release notes extraction script extract_changelog 2024-12-17 08:44:21 -05:00
AI Christianson afcf6553a7 add test suite for file_str_replace 2024-12-17 08:21:00 -05:00
AI Christianson 7b42ab569c initial write_file implementation 2024-12-17 08:03:01 -05:00
AI Christianson c69a249dea add tests for expert context 2024-12-11 20:08:40 -05:00
AI Christianson 33f5f9bbbb track related files through memory 2024-12-11 19:38:49 -05:00
AI Christianson f2ad833c6b tech debt system 2024-12-11 17:16:54 -05:00
AI Christianson 46e9858830 moar cowboy 2024-12-11 14:50:40 -05:00
AI Christianson 04cb8db2b9 cowboy mode 2024-12-11 14:40:47 -05:00
AI Christianson 6b56a0e198 simplify tool return values 2024-12-11 14:01:14 -05:00