Expand description
Binding abstraction.
A Binding is how a tool’s semantics are realized — native in-process
(wrapping a Tool impl), CLI subprocess, and later MCP/REST/AppFunction.
Dispatch resolves tool_id to a (Tool, Binding) pair and invokes
Binding::call; NativeBinding simply delegates back to the Tool, so
all 9 existing tools keep working with zero behavior change.
Structs§
- CliBinding
- Spawn a subprocess to realize the tool. Demonstrates that dispatch can
route a single
tool_idto an external program without theToolimpl carrying the execution logic. - Native
Binding - Default binding: delegate directly to the
Tool::callimplementation. Assigned to every tool registered viaRegistry::register; the 9 built-in tools continue to run through it.
Traits§
- Binding
- A tool’s execution binding.
name()returns a short discriminator ("native","cli","mcp", …) used by observability hooks and tests.
Type Aliases§
- Binding
Future - Boxed future returned by
Binding::call. Shape mirrorsregistry::CallFutureso the two can be freely composed.