Skip to content

docs(tools): add missing READMEs for Exa and Mattermost tools#7151

Open
kostasuser01gr wants to merge 2 commits into
aden-hive:mainfrom
kostasuser01gr:docs/add-missing-tool-readmes
Open

docs(tools): add missing READMEs for Exa and Mattermost tools#7151
kostasuser01gr wants to merge 2 commits into
aden-hive:mainfrom
kostasuser01gr:docs/add-missing-tool-readmes

Conversation

@kostasuser01gr
Copy link
Copy Markdown
Contributor

@kostasuser01gr kostasuser01gr commented May 1, 2026

Summary

Adds missing README.md files for the Exa search and Mattermost toolkits to improve developer onboarding and tool discoverability.

Changes

  • Added tools/src/aden_tools/tools/exa_search_tool/README.md
  • Added tools/src/aden_tools/tools/mattermost_tool/README.md

These READMEs follow the standardized format used by other tools in the repository, including descriptions, argument tables, environment variable requirements, and example usage.

Summary by CodeRabbit

  • New Features

    • Added specialized Exa search wrappers for news, papers, and companies.
    • Added a Mattermost tool for listing teams/channels, fetching posts, sending messages (including threads), and reactions.
  • Documentation

    • Revamped Exa search docs: consolidated tools section, clarified defaults/date filters, simplified env var guidance and examples, and streamlined error messages.
    • Added comprehensive Mattermost usage guide with examples and error notes.
  • Style

    • Minor internal formatting cleanups.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 1, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 33165850-a317-4a8f-a032-d739b0678ede

📥 Commits

Reviewing files that changed from the base of the PR and between 403f34d and 8bd7ce5.

📒 Files selected for processing (1)
  • tools/src/aden_tools/tools/exa_search_tool/README.md

📝 Walkthrough

Walkthrough

Documentation updates: the Exa search README was restructured, clarified, and extended with specialized wrappers; a new Mattermost tool README was added; two internal files were reformatted with no behavioral changes.

Changes

Exa Search Tool README

Layer / File(s) Summary
Docs Structure / Top-level
tools/src/aden_tools/tools/exa_search_tool/README.md
Replaces prior overview with a direct "Tools" section and updated top-level description.
Argument Tables / Tools
tools/src/aden_tools/tools/exa_search_tool/README.md
Rewrites documentation tables for exa_search, exa_find_similar, exa_get_contents, exa_answer; changes search_type default display to "auto" and refines argument descriptions (date filters, wording).
Specialized Wrappers
tools/src/aden_tools/tools/exa_search_tool/README.md
Adds docs for exa_search_news, exa_search_papers, exa_search_companies.
Examples
tools/src/aden_tools/tools/exa_search_tool/README.md
Replaces examples to emphasize exa_search with category and includes examples for exa_find_similar, exa_answer, exa_search_news.
Env / Errors
tools/src/aden_tools/tools/exa_search_tool/README.md
Simplifies env var section to EXA_API_KEY and updates dashboard link; condenses Error Handling to fewer, revised messages (missing/invalid credentials, query length, exa_get_contents URL-count limit, invalid API key, rate limits, 30s timeout).

Mattermost Tool README (new)

Layer / File(s) Summary
New README
tools/src/aden_tools/tools/mattermost_tool/README.md
Adds a new README describing Mattermost interactions: list teams/channels, fetch channel details, send messages (thread via root_id), retrieve posts with pagination (per_page, page, before, after), create emoji reactions, delete posts.
Env / Examples / Errors
tools/src/aden_tools/tools/mattermost_tool/README.md
Documents required env vars (MATTERMOST_URL, MATTERMOST_ACCESS_TOKEN), provides Python examples for common operations, and lists expected error messages (missing credentials, auth failures, invalid IDs, message length 16383, 429 rate limit).

Small internal formatting changes

Layer / File(s) Summary
Formatting
core/framework/agent_loop/internals/cursor_persistence.py
Reformats caption_image_fn type annotation and a related assignment into single-line expressions; no behavior change.
Formatting
core/framework/agent_loop/internals/vision_fallback.py
Reformats rewrite_proxy_model call in caption_tool_image from multi-line to single-line; no behavior change.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • Hundao

Poem

🐰 I hopped through docs with nibbling cheer,

New guides and wrappers now appear,
Mattermost joins the meadow lane,
Exa's blossoms spread like grain,
A rabbit claps—read on, my dear!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main changes in the pull request, which add missing READMEs for the Exa and Mattermost tools.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 7/8 reviews remaining, refill in 7 minutes and 30 seconds.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@tools/src/aden_tools/tools/exa_search_tool/README.md`:
- Around line 55-60: Add detailed parameter tables for the three specialized
wrappers—exa_search_news, exa_search_papers, and exa_search_companies—mirroring
the main tool docs: list each parameter name, type, description, default value
(e.g., exa_search_news.days_back default 7), any optional/required status, and
examples of accepted values; for exa_search_papers include year_start and its
semantics; for exa_search_companies document include_text and note differing
defaults versus other wrappers; ensure each table references the wrapper name so
readers can find exa_search_news, exa_search_papers, and exa_search_companies in
the README without reading source.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1a8a3645-a420-4128-8823-97cdbaceed18

📥 Commits

Reviewing files that changed from the base of the PR and between 76a7dd4 and 5d8462d.

📒 Files selected for processing (2)
  • tools/src/aden_tools/tools/exa_search_tool/README.md
  • tools/src/aden_tools/tools/mattermost_tool/README.md

Comment on lines +55 to +60
### Specialized Search Wrappers

The toolkit also includes convenience wrappers for specific content types:
- **exa_search_news**: Pre-configured for recent news with `days_back` filter.
- **exa_search_papers**: Pre-configured for research papers with `year_start` filter.
- **exa_search_companies**: Pre-configured for company and startup discovery.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Document specialized wrapper parameters with full tables for consistency.

The specialized wrappers (exa_search_news, exa_search_papers, exa_search_companies) deserve the same detailed parameter documentation as the main tools. Currently, they only have brief descriptions, but developers need to know:

  • exa_search_news: Has a unique days_back parameter (default 7) for date filtering
  • exa_search_papers: Has a year_start parameter for filtering by publication year
  • exa_search_companies: Different include_text defaults across wrappers

Without parameter tables, developers must read the source code to understand how to use these tools effectively.

📚 Proposed documentation expansion
 ### Specialized Search Wrappers
 
-The toolkit also includes convenience wrappers for specific content types:
-- **exa_search_news**: Pre-configured for recent news with `days_back` filter.
-- **exa_search_papers**: Pre-configured for research papers with `year_start` filter.
-- **exa_search_companies**: Pre-configured for company and startup discovery.
+#### exa_search_news
+Search recent news articles (pre-configured with category="news").
+
+| Argument | Type | Required | Default | Description |
+|----------|------|----------|---------|-------------|
+| `query` | str | Yes | - | News search query (1-500 chars) |
+| `num_results` | int | No | `10` | Number of results (1-20) |
+| `days_back` | int | No | `7` | How many days back to search |
+| `include_text` | bool | No | `True` | Include article text in results |
+
+#### exa_search_papers
+Search for research papers and academic content (pre-configured with category="research paper").
+
+| Argument | Type | Required | Default | Description |
+|----------|------|----------|---------|-------------|
+| `query` | str | Yes | - | Research topic or paper search query (1-500 chars) |
+| `num_results` | int | No | `10` | Number of results (1-20) |
+| `year_start` | int | No | `None` | Only include papers published after this year |
+| `include_text` | bool | No | `False` | Include full paper text (default False for brevity) |
+
+#### exa_search_companies
+Search for companies and startups (pre-configured with category="company").
+
+| Argument | Type | Required | Default | Description |
+|----------|------|----------|---------|-------------|
+| `query` | str | Yes | - | Company search query (1-500 chars) |
+| `num_results` | int | No | `10` | Number of results (1-20) |
+| `include_text` | bool | No | `True` | Include company page text in results |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Specialized Search Wrappers
The toolkit also includes convenience wrappers for specific content types:
- **exa_search_news**: Pre-configured for recent news with `days_back` filter.
- **exa_search_papers**: Pre-configured for research papers with `year_start` filter.
- **exa_search_companies**: Pre-configured for company and startup discovery.
### Specialized Search Wrappers
#### exa_search_news
Search recent news articles (pre-configured with category="news").
| Argument | Type | Required | Default | Description |
|----------|------|----------|---------|-------------|
| `query` | str | Yes | - | News search query (1-500 chars) |
| `num_results` | int | No | `10` | Number of results (1-20) |
| `days_back` | int | No | `7` | How many days back to search |
| `include_text` | bool | No | `True` | Include article text in results |
#### exa_search_papers
Search for research papers and academic content (pre-configured with category="research paper").
| Argument | Type | Required | Default | Description |
|----------|------|----------|---------|-------------|
| `query` | str | Yes | - | Research topic or paper search query (1-500 chars) |
| `num_results` | int | No | `10` | Number of results (1-20) |
| `year_start` | int | No | `None` | Only include papers published after this year |
| `include_text` | bool | No | `False` | Include full paper text (default False for brevity) |
#### exa_search_companies
Search for companies and startups (pre-configured with category="company").
| Argument | Type | Required | Default | Description |
|----------|------|----------|---------|-------------|
| `query` | str | Yes | - | Company search query (1-500 chars) |
| `num_results` | int | No | `10` | Number of results (1-20) |
| `include_text` | bool | No | `True` | Include company page text in results |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tools/src/aden_tools/tools/exa_search_tool/README.md` around lines 55 - 60,
Add detailed parameter tables for the three specialized
wrappers—exa_search_news, exa_search_papers, and exa_search_companies—mirroring
the main tool docs: list each parameter name, type, description, default value
(e.g., exa_search_news.days_back default 7), any optional/required status, and
examples of accepted values; for exa_search_papers include year_start and its
semantics; for exa_search_companies document include_text and note differing
defaults versus other wrappers; ensure each table references the wrapper name so
readers can find exa_search_news, exa_search_papers, and exa_search_companies in
the README without reading source.

@kostasuser01gr kostasuser01gr force-pushed the docs/add-missing-tool-readmes branch from 5d8462d to 403f34d Compare May 1, 2026 07:20
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@tools/src/aden_tools/tools/exa_search_tool/README.md`:
- Line 92: Update the README entry so the bullet exactly matches the actual
returned error string "Exa search request timed out" (remove the " (30s)" suffix
from the message) and instead add a separate note or parenthetical sentence
indicating the configured timeout duration (e.g., "Note: request timeout is
30s"); reference the exact message text "Exa search request timed out" and the
timeout value "30s" when making the change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a8b5a6d8-dd97-4ef2-9e1f-dc5c12a3f300

📥 Commits

Reviewing files that changed from the base of the PR and between 5d8462d and 403f34d.

📒 Files selected for processing (4)
  • core/framework/agent_loop/internals/cursor_persistence.py
  • core/framework/agent_loop/internals/vision_fallback.py
  • tools/src/aden_tools/tools/exa_search_tool/README.md
  • tools/src/aden_tools/tools/mattermost_tool/README.md
✅ Files skipped from review due to trivial changes (3)
  • core/framework/agent_loop/internals/vision_fallback.py
  • tools/src/aden_tools/tools/mattermost_tool/README.md
  • core/framework/agent_loop/internals/cursor_persistence.py

Comment thread tools/src/aden_tools/tools/exa_search_tool/README.md Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant