Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: Oaklight/ToolRegistry

v0.11.2

22 Jun 10:27
@Oaklight Oaklight

Choose a tag to compare

What's Changed

  • ci(notify-downstream): gate dispatch on PyPI propagation by @clementine-oaklight[bot] in #170
  • fix: simplify nullable anyOf schemas for MCP compatibility by @Oaklight in #172

New Contributors

  • @clementine-oaklight[bot] made their first contribution in #170

Full Changelog: v0.11.1...v0.11.2

Contributors

Oaklight
Assets 4
Loading

v0.11.1

31 May 09:16
@Oaklight Oaklight

Choose a tag to compare

Summary

  • Hardened parameter schema generation so unresolved or unsupported annotations fall back per parameter instead of dropping the whole tool schema.
  • Normalized empty or non-object tool parameter schemas to valid object schemas.
  • Fixed discover_tools schema generation for postponed annotations.
  • Normalized imported MCP input schemas and preserved richer OpenAPI schema details.

Installation

pip install -U toolregistry==0.11.1

Full Changelog

v0.11.0...v0.11.1

Loading

v0.11.0

28 May 20:10
@Oaklight Oaklight

Choose a tag to compare

Summary

  • Add configurable tool name separator support.
  • Add admin Schema and Discover tooling improvements.
  • Add configurable/persisted search_hint support and discovery/admin fixes.
  • Update citation and contribution workflow docs.

Validation

  • pre-commit run --all-files
  • python -m pytest tests/ -q
  • python -m build
  • twine check dist/*
Loading

v0.10.3

19 May 09:32
@Oaklight Oaklight

Choose a tag to compare

What's Changed

Features

  • Progressive tool disclosure: discover_tools description now dynamically lists deferred tool names and summaries, so LLMs know what capabilities exist beyond the initial tool list
  • llm/ subpackage: Internal LLM-related modules (tool_calls, content_blocks, truncation, discovery, _rosetta) are now organized under toolregistry.llm

Docs

  • Added reference/ directory with architecture overview and ADRs (design decision records)

Notes

  • Public API (from toolregistry import ...) is unchanged
  • Internal module paths moved from toolregistry.types / toolregistry.tool_discovery to toolregistry.llm.* — these were never part of the public API
Loading

v0.10.1

18 May 13:04
@Oaklight Oaklight

Choose a tag to compare

What's New

Added

  • disable_by_tags() — Tag-based bulk disable (#158)

    • Add disable_by_tags(tags, *, match="any", reason=...) to ToolRegistry for disabling tools in bulk by their ToolTag values
    • match="any" (default): disables a tool if it has at least one of the specified tags
    • match="all": disables a tool only if it carries every specified tag
    • Already-disabled tools are skipped and not double-counted
    • Returns a list of tool names that were newly disabled by this call
  • Post-registration hook (#159)

    • Add add_post_register_hook(hook) to ToolRegistry for registering hooks invoked after each tool is registered
    • Hook signature: PostRegisterHook = Callable[[str, Tool, ToolRegistry], str | None]
    • Returning a non-empty string from a hook automatically disables the tool with that string as the reason; returning None leaves the tool enabled
    • Multiple hooks are supported and invoked in registration order; exceptions inside hooks are caught and logged without propagating
    • PostRegisterHook is exported from the toolregistry top-level package
  • PythonSource.kwargs — constructor arguments in config (#160)

    • Add kwargs: dict[str, Any] field to the python tool source in declarative config files
    • Allows passing keyword arguments to the class constructor when a class entry is loaded via register_from_class()

Dependencies

  • Update vendored sparse_search module 0.3.2 → 0.4.0 (adds rrf(), mmr(), jaccard_similarity())
  • Sync vendored yaml and structlog metadata with upstream zerodep

Installation

pip install toolregistry==0.10.1

Full Changelog: v0.10.0...v0.10.1

Loading

v0.10.0

17 May 10:43
@Oaklight Oaklight

Choose a tag to compare

What's Changed

Breaking Changes

  • thoughttoolcall_reason: Renamed the injected chain-of-thought field to avoid collisions with tools that natively declare a thought parameter (e.g. ThinkTool)

New Features

  • Admin panel: tool source display & config persistence (#121) — Sources tab, source badges/filter, /api/sources and /api/config endpoints, i18n (EN/ZH)
  • Config serializationto_dict() on all config dataclasses, save_config() for writing ToolConfig back to JSON/YAML files
  • run_raw() / arun_raw() — New methods that raise exceptions directly, separating error handling from LLM error formatting (#129)

Improvements

  • Edge-case tests for complex type JSON Schema generation (#128)
  • _update_config cognitive complexity reduced (22 → 11)
  • Vendored httpclient upgraded to 0.4.1
  • llm-rosetta dependency upper bound relaxed to <0.7.0

Docs & Infra

  • Added AGENTS.md + CLAUDE.md symlink
  • Ecosystem tables with repo links across all READMEs
  • complexipy switched to local pre-commit hook
Loading

v0.9.1

14 May 00:51
@Oaklight Oaklight

Choose a tag to compare

New Features

  • Tool Source Tracking (#125, #130) — ToolMetadata gains source and source_detail fields for tracking tool provenance across all integrations

Bug Fixes

  • Parameter Introspection Warnings (#126, #131) — emit UserWarning instead of silently skipping *args/**kwargs or producing empty schemas

Refactoring

  • Extract route handlers and helpers to reduce complexity
  • Rename executor ExecutionStatusHandleStatus

CI

  • Add pre-commit with ruff, ty type check, and complexipy
  • Split CI into lint + test jobs

Docs

  • Rewrite README as concise ecosystem landing page
  • Add GitHub release badge

Full Changelog: v0.9.0...v0.9.1

Loading

v0.9.0

10 May 18:30
@Oaklight Oaklight

Choose a tag to compare

Highlights

  • Admin Panel: enriched tool metadata UI, per-tool permission evaluation, runtime think/defer control, i18n (EN/ZH), async migration
  • Dependency diet: removed httpx, PyYAML, and jsonref from core/OpenAPI dependencies — replaced with zerodep vendored modules. The openapi extra now has zero external dependencies.

New Features

  • Admin Panel enrichment: metadata badges, tool detail modal, permissions tab (#133)
  • Runtime control for think_augment and defer via API and Web UI (#134, #135)
  • Admin Panel i18n with EN/ZH language switching (#137)

Refactoring

  • Replace httpx with zerodep vendored HTTP client (#139)
  • Replace PyYAML and jsonref with zerodep vendored modules (#140, #141)
  • Admin Panel async migration to zerodep httpserver (#136)

Full Changelog: v0.8.0...v0.9.0

Loading

v0.8.0

02 May 08:10
@Oaklight Oaklight

Choose a tag to compare

What's Changed

New Features

  • Declarative tool config loader — load tool configurations from JSONC/YAML files

Improvements

  • Reorganize integration packages under integrations/ parent package
  • Consolidate mixin modules into _mixins/ package
  • Consolidate zerodep modules into _vendor/
  • Tighten llm-rosetta dependency to >=0.5.1,<0.6.0

Fixes

  • Improve error message for classes with required constructor args (#127)
  • Resolve ty type check error with cast for dict entry

Notes

  • All old import paths preserved via deprecation shims — no breaking changes

Full Changelog: v0.7.0...v0.8.0

Loading

v0.7.0

06 Apr 08:07
@Oaklight Oaklight

Choose a tag to compare

What's Changed

  • feat: add ToolTag enum and ToolMetadata model by @Oaklight in #84
  • feat: add permission handler protocol and registry integration by @Oaklight in #85
  • feat: add permission rule engine with policy integration by @Oaklight in #86
  • feat: add locality field to ToolMetadata by @Oaklight in #91
  • refactor: Executor to pluggable Backend protocol architecture by @Oaklight in #93
  • refactor: split ToolRegistry into mixin classes by @Oaklight in #95
  • feat: persistent connections for MCP and OpenAPI by @Oaklight in #98
  • Migrate and adapt core unit tests from unit_tests branch by @Oaklight in #99
  • feat: tag-based filtering and stable sorting for get_tools_json() by @Oaklight in #102
  • feat: result size management with truncation and persistence by @Oaklight in #103
  • feat: add think-augmented function calling by @Oaklight in #104
  • feat: add ToolSearchTool for BM25-based tool discovery by @Oaklight in #108
  • refactor: rename public API for clarity by @Oaklight in #109
  • feat: support multimodal return types (ImageBlock) in tool results by @Oaklight in #110
  • feat: make think-augmented tool calling configurable by @Oaklight in #111
  • refactor: rename Tool-level API for consistency by @Oaklight in #112
  • refactor: unify API naming for consistency by @Oaklight in #115
  • feat: integrate ToolSearchTool as first-class registry tool by @Oaklight in #114
  • fix: replace loguru dependency with vendored zerodep/structlog by @Oaklight in #117
  • feat: progressive disclosure with discover_tools and deferred summaries by @Oaklight in #118
  • test: add integration tests for OpenAPI, LangChain, MCP and tool_wrapper by @Oaklight in #119

Full Changelog: v0.6.1...v0.7.0

Contributors

Oaklight
Loading
Previous 1 3 4
Previous

AltStyle によって変換されたページ (->オリジナル) /