Files
copilotkit__copilotkit/showcase/aimock/d6/langgraph-fastapi/frontend-tools.json
Jordan Ritter 5d0f9ecc20 fix(showcase/aimock): drop stale turnIndex:0 gate from multi-turn D6 pill fixtures
D6 drives each feature's pills as sequential turns in one chat thread.
aimock matches turnIndex against the count of assistant messages in
history, so a "turnIndex": 0 gate on a per-pill tool-call leg only
matches the FIRST pill — pills 2+ (turnIndex 1/2/3) match no fixture,
503 under strict, and the harness reports "timeout: assistant did not
respond".

Remove the turnIndex:0 gate from the multi-turn tool-call legs of
frontend-tools (sunset/forest/cosmic) and tool-rendering-reasoning-chain
(the three chained pills: Compare AAPL/MSFT, compare-to-smaller dice,
weather-there flights) so they match on their distinct userMessage
substrings + context, mirroring the already-green langgraph-python
fixtures. Each pill's substring is unambiguous and its toolCallId-keyed
follow-up fixture is ordered before the de-gated first leg (first-match
wins), so follow-up narration still wins and there is no cross-matching.

The reasoning-chain "Find flights from SFO to JFK." pill keeps its
turnIndex:0 gate to match the green langgraph-python reference exactly.

Proven locally with aimock --strict: multi-turn requests for these pills
returned 503 with the gate (negative control) and now return 200 across
all turns with the correct fixture/narration.
2026-06-01 00:57:59 -07:00

95 lines
3.2 KiB
JSON

{
"_meta": {
"description": "D6 fixtures for langgraph-fastapi / frontend-tools",
"sourceFile": "d5-all.json",
"copiedFrom": "langgraph-python",
"created": "2026-05-21"
},
"fixtures": [
{
"match": {
"userMessage": "Make the background a sunset gradient",
"toolCallId": "call_d5_change_background_sunset",
"context": "langgraph-fastapi"
},
"response": {
"content": "Done — sunset gradient is live."
}
},
{
"_comment": "frontend-tools 'Sunset' pill — 1st leg: emit change_background tool call only. NB: do NOT include `content` here. agent_framework_openai's ChatCompletions client splits an assistant message that carries BOTH `content` and `tool_calls` into two separate history entries (one with content, one with tool_calls), so on the follow-up leg aimock sees the standalone content message and re-matches THIS fixture by `userMessage` substring → another change_background tool call → infinite loop. The toolCallId-keyed follow-up fixture immediately above provides the post-tool narration text.",
"match": {
"userMessage": "Make the background a sunset gradient",
"context": "langgraph-fastapi"
},
"response": {
"toolCalls": [
{
"id": "call_d5_change_background_sunset",
"name": "change_background",
"arguments": {
"background": "linear-gradient(135deg, #ff7e5f 0%, #feb47b 50%, #ff6b6b 100%)"
}
}
]
}
},
{
"match": {
"userMessage": "deep green forest gradient",
"toolCallId": "call_d5_change_background_forest",
"context": "langgraph-fastapi"
},
"response": {
"content": "Done — forest gradient is live."
}
},
{
"_comment": "frontend-tools 'Forest' pill — 1st leg: emit change_background tool call only. See the Sunset fixture above for why we drop `content`.",
"match": {
"userMessage": "deep green forest gradient",
"context": "langgraph-fastapi"
},
"response": {
"toolCalls": [
{
"id": "call_d5_change_background_forest",
"name": "change_background",
"arguments": {
"background": "linear-gradient(135deg, #0a3d2e 0%, #166534 50%, #059669 100%)"
}
}
]
}
},
{
"match": {
"userMessage": "navy → magenta cosmic gradient",
"toolCallId": "call_d5_change_background_cosmic",
"context": "langgraph-fastapi"
},
"response": {
"content": "Done — cosmic gradient is live."
}
},
{
"_comment": "frontend-tools 'Cosmic' pill — 1st leg: emit change_background tool call only. See the Sunset fixture above for why we drop `content`.",
"match": {
"userMessage": "navy → magenta cosmic gradient",
"context": "langgraph-fastapi"
},
"response": {
"toolCalls": [
{
"id": "call_d5_change_background_cosmic",
"name": "change_background",
"arguments": {
"background": "linear-gradient(135deg, #1e3a8a 0%, #6b21a8 50%, #9333ea 100%)"
}
}
]
}
}
]
}