You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Coerce types for non-advertised backend tools in composite workflows (#4671)
When backend tools are excluded from advertising via `excludeAll` or
`filter`, the workflow engine could not find their `InputSchema` for
argument type coercion. This caused string arguments (e.g. "42") to be
forwarded to the backend as-is instead of being coerced to the correct
type (e.g. float64(42)), resulting in backend rejection.
Root cause: `ProcessPreQueriedCapabilities` only returned the advertised
tool list. Sessions stored only those tools, and the workflow engine
used `sess.Tools()` for schema lookup — so hidden tools were invisible
to it.
Fix:
- `ProcessPreQueriedCapabilities` now returns both `advertisedTools`
(filtered, for MCP clients) and `allResolvedTools` (every resolved
tool regardless of filter, for internal schema lookup).
- `MultiSession` gains `AllTools() []vmcp.Tool`, backed by the new
`allTools` field on `defaultMultiSession`.
- The per-session workflow engine is built from `sess.AllTools()` so it
can coerce arguments for any backend tool, whether advertised or not.
Fixes#4287
Co-authored-by: taskbot <taskbot@users.noreply.github.com>
0 commit comments