Skip to main content

Crate thulp_registry

Crate thulp_registry 

Source
Expand description

§thulp-registry

Metadata catalog for thulp_core::ToolDefinition, with tag-based discovery and async-safe concurrent access.

§Scope

This crate stores tool metadata (ToolDefinition) — not executable handles. Use it for:

  • Publishing/serializing a catalog of tools (e.g., for MCP discovery, skill manifests, documentation generation)
  • Tag-based filtering of definitions before exposing to an LLM
  • Cross-process / cross-service tool catalogs where the executor lives somewhere else

It is intentionally not an execution runtime. There is no Tool trait and no execute() method here. If you need an in-process registry that can dispatch args to a tool implementation, you want a different abstraction — typically a HashMap<String, Arc<dyn Tool>> where Tool has an async fn execute(&self, args: Value) -> Result<Value>. Examples of that pattern in the dirmacs stack: pawan::tools::ToolRegistry and ares::tools::registry::ToolRegistry. Both keep their own executable registries and use thulp-core::ToolDefinition (and thulp-query for filtering) for the metadata side.

See README.md “Intended Use” for the full rationale.

Structs§

ToolRegistry
Tool registry for managing and discovering tools.