The condition_map in _load_from_dict was missing the llm_decide
mapping, causing goal-aware routing to break for exported agents.
When agents with LLM_DECIDE edges were exported and re-imported,
the edge conditions were silently defaulted to ON_SUCCESS instead
of preserving the LLM_DECIDE routing logic.
This fix ensures that agents exported with goal-aware routing edges
maintain their correct behavior after re-import.
* config: add .gitattributes for cross-platform line ending consistency
- Add comprehensive .gitattributes to normalize line endings
- Ensure shell scripts always use LF (required for Unix execution)
- Mark binary files explicitly to prevent corruption
- Eliminate CRLF warnings for Windows contributors
- Follow cross-platform best practices
This fixes persistent 'LF will be replaced by CRLF' warnings that
confuse Windows contributors during normal git operations.
Fixes#950
* fix: add trailing newline at end of file
Per review feedback from @Hundao
* feat(tools): add Google Custom Search as alternative to Brave Search
Adds google_search tool using Google Custom Search API as an alternative
to the existing web_search tool (Brave Search).
Changes:
- Add google_search_tool with full implementation
- Register Google credentials (GOOGLE_API_KEY, GOOGLE_CSE_ID)
- Register tool in tools/__init__.py
- Add README with setup instructions
Closes#793
* test(tools): add unit tests for google_search tool
Adds 7 tests mirroring web_search_tool test patterns:
- Missing API key error handling
- Missing CSE ID error handling
- Empty query validation
- Long query validation
- num_results clamping
- Default parameters
- Custom language/country parameters
All tests pass.
* refactor(tools): add multi-provider support to web_search tool
BREAKING CHANGE: None - backward compatible. Brave remains default.
- Add Google Custom Search as alternative provider in web_search
- Add 'provider' parameter: 'auto' (default), 'google', 'brave'
- Auto mode tries Brave first for backward compatibility
- Remove separate google_search_tool (consolidated into web_search)
- Update tests to cover multi-provider functionality (13 tests)
- Update README documentation
Users with BRAVE_SEARCH_API_KEY: No changes needed
Users with GOOGLE_API_KEY + GOOGLE_CSE_ID: Can use provider='google'
Users with both: Brave preferred by default, use provider='google' to force
Closes#793
* feat(tools): fixed readme
---------
Co-authored-by: Mustafa Abdat <abdamus@hilti.com>