Commit Graph

359 Commits

Author SHA1 Message Date
Fernando Mano fb94637339 feat(observability): Structured logging with automatic trace context propagation 2026-01-28 11:27:24 -03:00
Timothy @aden ad968a0b54 Merge pull request #1458 from TimothyZhang7/release/v_0_3_0
DX Improvements: Linting, Formatting & Pre-Commit Hooks
2026-01-27 11:04:48 -08:00
Timothy 5d79a7078c fix: precommit hooks for different pyproject 2026-01-27 10:50:11 -08:00
Timothy e4f451e3f5 fix: lint issues with new enforcement 2026-01-27 10:45:49 -08:00
Timothy d8496c47f0 fix: linter 2026-01-27 10:19:23 -08:00
Timothy @aden 9c28284331 Merge pull request #1428 from TimothyZhang7/feature/parallel-fanout
Release / Create Release (push) Waiting to run
feat: parallel execution framework
v0.3.0
2026-01-27 10:17:07 -08:00
Timothy 075e9179c1 fix: retry logic broken by merge conflict 2026-01-27 10:11:54 -08:00
Timothy e61bdfc417 test(arch): fanout/fanin 2026-01-27 10:07:58 -08:00
Timothy @aden f6c5c5cadb Merge branch 'main' into feature/parallel-fanout 2026-01-27 10:04:54 -08:00
Timothy @aden e1bea18357 Merge pull request #1113 from TanujaNair03/refactor/llm-judge-agnostic
refactor: provider-agnostic LLMJudge with auto-detection for OpenAI (#1103)
2026-01-27 08:31:50 -08:00
Timothy @aden 197f4f984a Merge pull request #1353 from Tahir-yamin/fix/concurrent-storage-file-locks-leak
fix(memory): patch ConcurrentStorage leak (WeakValueDictionary)
2026-01-27 08:23:05 -08:00
Tahir yamin 0381a5c87b Merge branch 'adenhq:main' into fix/concurrent-storage-file-locks-leak 2026-01-27 20:36:19 +05:00
Tahir Yamin 112b1baf2e fix(memory): patch ConcurrentStorage leak with WeakValueDictionary (Isolated Logic) 2026-01-27 20:28:22 +05:00
vrijmetse a59d6ac6db refactor(tools): add multi-provider support to web_search tool (#795)
* 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>
2026-01-27 22:46:41 +08:00
Hundao 9d39c09e27 Merge pull request #973 from AryanyAI/refactor/logging-mcp-scripts
refactor(mcp): replace print() with logging in setup scripts
2026-01-27 20:56:40 +08:00
Tanuu 598cc8b078 refactor: provider-agnostic LLMJudge with ruff styling fixes (#1103) 2026-01-27 14:24:57 +05:30
Tanuu 3605f3705b refactor: make LLMJudge provider-agnostic with OpenAI support (#1103) 2026-01-27 14:16:34 +05:30
AryanyAI 407816ddbf style: fix ruff quote style violations (Q000)
- Change single quotes to double quotes in logging formatters
- Fixes: setup_mcp.py, verify_mcp.py formatter strings
- Addresses Q000 linter errors from PR review
2026-01-27 13:54:20 +05:30
Hundao 6acdb65c1c Merge pull request #948 from TanujaNair03/refactor/provider-agnostic-prompts
Refactor/provider agnostic prompts
2026-01-27 14:18:59 +08:00
Hundao a4b0c66564 Merge pull request #558 from Hundao/feature/csv-tools
feat(tools): add CSV tools with DuckDB SQL support
2026-01-27 14:02:06 +08:00
Timothy 39831cf4b1 feat: parallel execution framework 2026-01-26 19:25:25 -08:00
Bryan @ Aden bc8cdfd6da Merge pull request #941 from vakrahul/fix/graph-retry-backoff
Fix/graph retry backoff
2026-01-26 19:20:35 -08:00
Tanuu 500876d65e style: add required trailing newline to prompts.py 2026-01-27 07:35:54 +05:30
Tanuu e59bb2d83f style: fix linting issues (whitespace and newline) 2026-01-27 07:29:48 +05:30
vakrahul 03910d531f Merge branch 'main' into fix/graph-retry-backoff 2026-01-27 07:28:22 +05:30
vakrahul a122345f9c fix(graph): restore node.max_retries and fix type check per review 2026-01-27 07:26:40 +05:30
Bryan @ Aden 6d025c808a Merge pull request #946 from not-anas-ali/fix/callable-type-annotations
fix(types): correct type annotation from lowercase 'callable' to 'Callable'
2026-01-26 17:52:00 -08:00
Bryan @ Aden 8525aec49c Merge pull request #934 from adionit7/fix/validate-exports-skip-when-empty
ci: make Validate Agent Exports skip clearly when exports/ is missing or empty
2026-01-26 17:48:44 -08:00
Tanuja Nair b0435a188f Merge branch 'adenhq:main' into refactor/provider-agnostic-prompts 2026-01-27 07:07:01 +05:30
Bryan @ Aden 3eb964eff2 Merge pull request #933 from adionit7/docs/fix-execute-command-tool-name-readme
docs(tools): fix tool name in README table (execute_command → execute_command_tool)
2026-01-26 17:36:24 -08:00
Bryan @ Aden ed88129b00 Merge pull request #927 from saboor2632/fix/worker-node-json-logging
fix(graph): add logging for JSON parsing failures in worker_node
2026-01-26 17:36:13 -08:00
vakrahul 68264b54d9 style: fix linting issues in output_cleaner.py 2026-01-27 07:02:43 +05:30
vakrahul 1631d01dd2 merge: resolve conflicts in executor.pyx 2026-01-27 06:52:07 +05:30
Tanuu e846ad6ea7 refactor: implement provider-agnostic logic for test templates
Centralized _get_api_key in prompts.py to support OpenAI, Cerebras, and Groq via environment variables while maintaining Anthropic support through CredentialManager.
2026-01-27 06:39:55 +05:30
adionit7 e57cad7159 ci: make Validate Agent Exports skip clearly when exports/ is missing or empty
Previously, when exports/ was missing or empty, the bash glob
`exports/*/` would not match anything and the loop would silently
do nothing. The job would pass without actually validating anything,
which was misleading.

Now the job:
- Explicitly checks if exports/ directory exists
- Uses nullglob to handle empty directories properly
- Logs clear messages when skipping validation
- Reports the number of agents validated when successful

Fixes #887
2026-01-27 05:59:43 +05:30
adionit7 0cf9e39f6f docs(tools): fix tool name in README table (execute_command → execute_command_tool)
The "Available Tools" table listed `execute_command` but the actual
registered name is `execute_command_tool`. This aligns the docs with
the runtime name in __init__.py and the tool's own README.

Fixes #901
2026-01-27 05:58:59 +05:30
saboor2632 852332483a fix(graph): add logging for JSON parsing failures in worker_node 2026-01-27 05:10:34 +05:00
not-anas-ali 2b8604610c fix(types): correct type annotation from lowercase 'callable' to 'Callable'
Fixes #922
2026-01-27 05:06:27 +05:00
Bryan @ Aden 9230ac6c20 Merge pull request #871 from pradyten/feat/llm-judge-configurable-provider
feat(testing): add configurable LLM provider to LLMJudge
2026-01-26 14:53:12 -08:00
Bryan @ Aden 5cf25c6f10 Merge pull request #906 from adenhq/fix/ruff-tests
fixed linter
2026-01-26 14:49:45 -08:00
bryan d064c98998 fixed linter 2026-01-26 14:47:56 -08:00
Bryan @ Aden 25fabd8068 Merge pull request #576 from savankansagara1/fix/mock-mode-llm-provider
Fix: Add MockLLMProvider to enable mock mode execution
2026-01-26 14:41:13 -08:00
Bryan @ Aden 396e5c35a6 Merge pull request #528 from gaurav-code098/fix/web-scrape-content-type
fix(tools): validate Content-Type in web_scrape tool (Closes #487)
2026-01-26 14:34:37 -08:00
RichardTang-Aden 0a8c30c3da Merge pull request #788 from SoulSniper-V2/feat/add-deepseek-docs
docs(llm): add DeepSeek models support documentation and examples
2026-01-26 14:33:51 -08:00
Aden HQ 798f3cfd36 Merge pull request #349 from Himanshu-ABES/feat/pydantic-llm-validation
feat(validation): add Pydantic model validation for LLM outputs
2026-01-26 14:14:12 -08:00
pradyumn tendulkar 69ad0be5ff Merge branch 'main' into feat/llm-judge-configurable-provider 2026-01-26 17:06:30 -05:00
Himanshu Chauhan 60f2e674ec feat(validation): add Pydantic model validation for LLM outputs
- Add output_model field to NodeSpec for specifying Pydantic model
- Add max_validation_retries field (default: 2) for retry configuration
- Add validation_errors field to NodeResult for error tracking
- Implement validate_with_pydantic() in OutputValidator
- Implement format_validation_feedback() for LLM retry prompts
- Auto-generate JSON schema from Pydantic model for response_format
- Add retry loop that feeds validation errors back to LLM
- Add 28 comprehensive tests covering all new functionality
2026-01-26 14:06:29 -08:00
Bryan @ Aden 81ad85db5e Merge pull request #876 from adenhq/fix/ruff-tests
Fix/ruff tests
2026-01-26 13:41:15 -08:00
Timothy @aden ed25ef7562 Merge pull request #762 from vishalharkal15/fix/concurrent-storage-race-condition
Fix race condition in ConcurrentStorage.stop() causing data loss
2026-01-26 13:38:17 -08:00
bryan d9c696aa22 fixed all linter errors 2026-01-26 13:37:25 -08:00