mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
5d0f9ecc20
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.
95 lines
3.2 KiB
JSON
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%)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|