-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
Summary
The composite tools guide documents the following template paths for elicitation step results:
| Documented path | Description |
|---|---|
{{.steps.id.action}} |
Elicitation action (accept/decline/cancel) |
{{.steps.id.content}} |
Elicitation response content |
These paths resolve to <no value> at runtime. The actual working paths are:
| Correct path | Description |
|---|---|
{{.steps.id.output.action}} |
Elicitation action (accept/decline/cancel) |
{{.steps.id.output.content}} |
Elicitation response content |
The action and content are stored inside the step's output map, consistent with how tool step results are accessed (.steps.id.output.field).
Impact
Any composite tool using a condition like {{eq .steps.approval.action "accept"}} silently evaluates to false, causing conditional steps to always be skipped — even when the user accepts the elicitation.
Verified behavior
Tested by adding a debug output field:
{{.steps.approval.action}}→<no value>{{.steps.approval.output.action}}→accept
The same comment in the source code (pkg/vmcp/composer/composer.go lines 87-92) also has the incorrect paths.
Related
- Composite tools: elicitation message doesn't expand template expressions toolhive#4312 — elicitation message template expansion bug
- [Gap]: Composite tools guide: gaps found when building a real workflow #627 — other composite tools guide gaps
- [Gap]: Composite tools guide: output spec not documented #628 — output spec not documented
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels