Skip to content

Releases: Open-Agent-Tools/basic-open-agent-tools

Release v0.15.1: TODO Module Improvements

21 Oct 14:21

Choose a tag to compare

Release v0.15.1 - TODO Module Improvements

🎯 Hotfix Release

This hotfix release adds comprehensive structured logging to the todo module and fixes validation function decorators.

✨ What's New

TODO Module Enhancements:

  • Structured Logging: All todo operations now log their actions with [TODO] prefix

    • Task creation logs ID, title, priority, tags, and dependencies
    • Task updates show old → new value changes
    • Task listing shows filter criteria and result counts
    • All operations provide visibility even when agents don't verbalize
  • Fixed Validation Functions: Removed incorrect @strands_tool decorators from internal validation helpers

  • Google ADK Compliance: Fixed validate_dependencies signature to remove Optional type

📝 Changes

Modified Files:

  • todo/operations.py: Added logging to all 8 operations
  • todo/validation.py: Removed decorators from validation functions, fixed parameter types
  • tests/todo/test_validation.py: Updated test calls for new signature
  • utilities/TODO.md: Updated to v0.15.1 with logging feature noted

🔧 Usage

Enable logging to see todo operations:

import os
os.environ["BOAT_LOG_LEVEL"] = "INFO"

from basic_open_agent_tools.todo import add_task

# Now you'll see: [todo.operations] [TODO] Created task #1: 'My Task' (priority: high, ...)

📊 Module Status

  • 20 modules: archive, color, crypto, data, datetime, diagrams, excel, file_system, html, image, logging, markdown, network, pdf, powerpoint, system, text, todo, utilities, word, xml
  • 326 functions: All Google ADK compatible with @strands_tool decorators
  • Test Coverage: 74% overall, 92-97% for todo module
  • Quality: 100% ruff, mypy compliant

🐛 Bug Fixes

  • Fixed validation function exposure (removed incorrect tool decorators)
  • Fixed validate_dependencies Optional parameter type

🚀 Future Enhancements

New GitHub issues created for future todo module features:

  • #23: Task persistence (save/load from files)
  • #24: Advanced search and filtering
  • #25: Task templates for workflows
  • #26: Subtask/hierarchical support
  • #27: Task history and audit trail
  • #28: Multi-format export (Markdown, CSV, JSON, HTML)

📦 Installation

pip install basic-open-agent-tools==0.15.1
# or
uv pip install basic-open-agent-tools==0.15.1

Full Changelog: v0.15.0...v0.15.1

Release v0.15.0: Simplified File Editor Tools

20 Oct 19:28

Choose a tag to compare

What's New in v0.15.0

This minor release simplifies the file editor interface by removing the complex multi-command file_editor tool and providing simple, flat alternatives that are much easier for AI agents to use.

Breaking Changes

Removed: file_editor multi-command interface

The complex file_editor(command, path, skip_confirm, options_json) tool has been removed. This tool required JSON parsing and had a confusing multi-command interface that caused agent errors.

Migration Guide:

If you were using file_editor, switch to these simpler alternatives:

Old (file_editor) New (simple alternatives)
file_editor("view", path, False, "{}") view_file_with_lines(path, "", "")
file_editor("create", path, False, '{"content": "text"}') write_file_from_string(path, "text", False)
file_editor("str_replace", path, False, '{"old_str": "x", "new_str": "y"}') replace_in_file(path, "x", "y", -1)
file_editor("insert", path, False, '{"line_number": 5, "content": "text"}') insert_at_line(path, 5, "text")
file_editor("find", path, False, '{"pattern": "TODO"}') find_text_in_file(path, "TODO", False)

New Features

Added 2 Simple Flat Tools:

  1. view_file_with_lines(path, start_line, end_line) - View files with line numbers

    • Unique feature: Adds line numbers to file viewing (unlike read_file_to_string)
    • Examples:
      view_file_with_lines("file.py", "", "")      # View entire file
      view_file_with_lines("file.py", "10", "20")  # View lines 10-20
  2. find_text_in_file(path, search_text, use_regex) - Search/grep functionality

    • New functionality: Search for patterns in files
    • Examples:
      find_text_in_file("file.py", "TODO", False)           # Simple text search
      find_text_in_file("file.py", "def \\w+\\(", True)    # Regex search

Bug Fixes

  • Fixed Windows import error (from v0.14.1): Added __all__ definition to helpers.py to resolve strict import behavior on Windows platforms

Improvements

  • Reduced code complexity: Removed 405 lines of complex code
  • Better agent compatibility: Flat, simple function signatures instead of multi-command JSON interfaces
  • No duplicate tools: Removed tools that duplicated existing operations
  • Cleaner codebase: Simplified editor.py from 566 to 230 lines

Statistics

  • Total Tools: 20 filesystem tools (clean, no duplicates)
  • Code Reduction: -405 lines total
  • Tests: 176/180 passing (4 pre-existing agent eval test failures)
  • Quality: All ruff and format checks pass

Installation

pip install --upgrade basic-open-agent-tools

Full Changelog

See commit history for detailed changes.

🤖 Generated with Claude Code

Release v0.14.1: Windows Import Fix

20 Oct 17:42

Choose a tag to compare

What's Fixed

Windows Import Error Resolution

Fixed a critical import error on Windows platforms where load_analyst_tools and other helper functions could not be imported even when not in use.

Root Cause: The helpers.py module was missing an __all__ definition, causing stricter Windows Python import behavior to reject imports.

Solution: Added comprehensive __all__ definition explicitly exporting all 40 helper functions from the helpers module.

Changes

  • Added __all__ to src/basic_open_agent_tools/helpers.py listing all public helper functions
  • All 22 __init__.py files already had proper __all__ definitions (verified)

Installation

pip install --upgrade basic-open-agent-tools

For Windows users experiencing import issues with previous versions:

pip uninstall basic-open-agent-tools
pip install --no-cache-dir basic-open-agent-tools

Verification

All quality checks passed:

  • ✅ Ruff linting and formatting
  • ✅ MyPy type checking (pre-existing warnings noted)
  • ✅ 71/72 helper tests passing
  • ✅ Package builds correctly with version 0.14.1

🤖 Generated with Claude Code

Release v0.14.0: Use-Case Focused Helper Functions

20 Oct 17:07

Choose a tag to compare

🎯 Release v0.14.0: Use-Case Focused Helper Functions

This minor release adds 10 new specialized helper functions for loading tools by use case, making it easier to configure agents with the right capabilities for their specific roles.

✨ New Features

Use-Case Focused Tool Loaders (10 new functions)

Perfect for tailoring agent capabilities to specific use cases:

  1. load_essential() - 20 most commonly needed tools for general-purpose agents
  2. load_converters() - 78 pure transformation tools (text, datetime, crypto, color)
  3. load_document_readers() - 18 tools for extracting content from PDF, Word, Excel, PowerPoint, images
  4. load_writers() - 177 tools for all file creation/modification operations
  5. load_analyst_tools() - 23 data analysis and validation tools
  6. load_web_tools() - 33 web content processing and network tools
  7. load_devtools() - 15 debugging, logging, and performance measurement tools
  8. load_structured_data_tools() - 42 tools for CSV, JSON, XML, YAML, TOML, INI
  9. load_office_suite() - 52 Excel, Word, PowerPoint tools
  10. load_markup_tools() - 53 HTML, Markdown, XML processing tools

📖 Usage Example

import basic_open_agent_tools as boat

# Load only what you need for specific use cases
essential_tools = boat.load_essential()  # 20 core tools
analyst_tools = boat.load_analyst_tools()  # Data analysis focused
web_tools = boat.load_web_tools()  # Web content processing

# Mix and match for custom agent personas
custom_tools = boat.merge_tool_lists(
    boat.load_essential(),
    boat.load_web_tools()
)

📊 Statistics

  • Total Tools: 326 functions across 21 modules
  • New Helpers: 10 use-case focused loaders
  • Test Coverage: 1374 passing tests

🔗 Installation

pip install --upgrade basic-open-agent-tools

📚 Documentation


🤖 Generated with Claude Code

Release v0.13.14: Colored logging output

20 Oct 16:25

Choose a tag to compare

Release v0.13.14

New Features

Colored Logging Output

  • Added colored [module] prefixes to logging output when running in interactive terminals
  • Module names now appear in cyan for better visual scanning and readability
  • Color automatically disabled in non-TTY environments (pipes, automation, agents)
  • Respects the NO_COLOR environment variable standard

Smart Color Detection

  • Enabled: When outputting to a TTY (interactive terminal)
  • Disabled: When piped to files, used by automation/agents, or non-TTY environments
  • Disabled: When NO_COLOR environment variable is set

Technical Details

Implementation (_logging.py)

  • Enhanced ShortNameFormatter class with ANSI color support
  • Uses cyan (\033[36m) for module prefixes with proper reset codes
  • Zero performance overhead when colors are disabled
  • Backward compatible with all existing logging code

Environment Variables

  • BOAT_LOG_LEVEL: Controls log verbosity (existing feature)
  • NO_COLOR: Disables color output (new, follows standard convention)

Example

# Before (plain text)
[file_system] File created successfully

# After (in terminal - [file_system] appears in cyan)
[file_system] File created successfully

🤖 Generated with Claude Code

Release v0.13.13: Improved file_editor tool documentation

20 Oct 16:06

Choose a tag to compare

Release v0.13.13

Improvements

file_editor Tool Enhancements

  • Enhanced docstring with comprehensive examples and clear usage guide for LLM agents
  • Added "AGENT GUIDANCE" section pointing to simpler alternative tools when appropriate
  • Improved error messages with concrete usage examples for faster error recovery
  • Added detailed command-specific documentation with multiple working examples
  • Better parameter explanations for skip_confirm and options_json

What Changed

  • file_editor now provides explicit guidance to agents about when to use simpler tools like read_file_to_string, write_file_from_string, or replace_in_file
  • All validation errors now include example correct usage with the user's path
  • JSON format errors show valid examples and troubleshooting tips

Impact

  • Agents should have better success rates using file_editor
  • Clearer fallback paths when the tool is too complex for simple operations
  • Faster error recovery with actionable error messages

🤖 Generated with Claude Code

Release v0.13.12: Test Compatibility Fixes

18 Oct 00:44

Choose a tag to compare

🐛 Bug Fixes

  • Fixed Strands decorator detection in integration tests
  • Updated outdated test imports for data module functions
  • Corrected test compatibility with current module structure

📦 Test Improvements

  • Enhanced test reliability when Strands framework is not installed
  • Fixed decorator attribute checking for graceful fallback scenarios
  • Updated function imports to match current API

🔧 Technical Details

This hotfix release resolves test failures caused by:

  • Checking for decorator attributes that don't exist in fallback mode
  • Using outdated function names from refactored data module
  • Assumptions about decorator behavior when optional dependencies are missing

All core functionality tests now pass successfully (1374 passed).

Release v0.13.11: Test Improvements and Bug Fixes

17 Oct 19:07

Choose a tag to compare

🐛 Bug Fixes

  • Fixed test compatibility issues with generate_uuid() function call in Strands integration tests
  • Improved logging output visibility and configuration

📦 Test Improvements

  • Enhanced test reliability for UUID generation
  • Fixed Strands integration test assertions
  • Updated test to correctly handle UUID function return dictionary structure

🔧 Internal Improvements

  • Improved logging module configuration and output handling
  • Enhanced error messages for better debugging

🚀 Installation:

pip install basic-open-agent-tools==0.13.11
# or
uv add basic-open-agent-tools==0.13.11

📚 Full Changelog: v0.13.10...v0.13.11

Release v0.13.10: Test Improvements & Coverage

17 Oct 17:14

Choose a tag to compare

Release v0.13.10

Test Improvements & Bug Fixes

Test Coverage Enhancements:

  • Fixed test parameter issues in network, system, and text modules
  • Improved coverage for DNS utilities, environment operations, and process management
  • Added missing required parameters (timeout, limit) to test calls

Coverage Improvements:

  • text/processing.py: 98% → 99%
  • network/dns.py: 87% → 91%
  • system/environment.py: 80% → 90%
  • system/processes.py: 83% → 85%

Bug Fixes:

  • Fixed validation order in text processing to check types before logging
  • Corrected test calls missing required parameters
  • Fixed filter_pattern handling in environment variable tests

Test Results:

  • Tests passing: 1,377 (up from 1,369)
  • Test failures: 15 (down from 23)
  • Overall coverage: 43% maintained

Quality

  • Ruff: All checks passed
  • MyPy: Type checking compliant
  • 100% @strands_tool decorator coverage

Changes Since v0.13.9

  • 2dda626: Fix test parameter issues and improve coverage
  • e2c658b: Bump version to 0.13.10

Release v0.13.9: Test compliance fixes

16 Oct 20:09

Choose a tag to compare

What's Changed

Test Compliance Improvements

  • Fixed missing skip_confirm parameters in data processing tests
  • Updated tests to comply with Google ADK requirements for explicit parameter passing
  • Ensures all configuration write operations include required confirmation parameters

Improvements Since v0.13.8

These changes were committed after v0.13.8 was released and are now included in this release:

  • Enhanced confirmation previews: Increased preview limits for better user context
    • Archive operations: 5→10 sources
    • Config processing: 3→10 keys
    • CSV operations: 3→5 rows
    • File operations: 200→1200 chars
  • Parameter validation: Fixed format_exception_details parameter handling

All changes maintain full backward compatibility with existing code.


🤖 Generated with Claude Code