mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
b2811f4feb
Commit 7c3edca changed sample-attachment-buttons.tsx across all integrations
to auto-send via agent.addMessage with autoPrompt strings:
- "can you tell me what is in this demo image I just attached"
- "can you tell me what is in this demo pdf I just attached"
But the d5 harness fixture and all 19 d6 per-integration multimodal.json
fixtures still matched on the old strings:
- "describe the sample image"
- "summarize the sample document"
Aimock received requests with the new prompts, found no match, returned
a STRICT 404, and the agent emitted a streaming error back to the UI
(exact symptom: "An internal error has occurred while streaming events").
Also update agentic-chat.json across all 20 integrations (those files had
duplicate fallback entries for the old prompts) and fix split-fixtures.ts
to route the new strings to the "multimodal" feature bucket.
Local RED: ms-agent-python and crewai-crews both fail with fixture-miss
status=miss before this change.
Local GREEN: langgraph-typescript passes after this change (both turns
settle with "image" / "document" keywords confirmed in transcript).
Remaining failures after this fix are pre-existing Python backend issues
(ChatClientException on binary content parts in ms-agent-python; CrewAI
flow failure on binary content in crewai-crews) — unrelated to fixture
keys and tracked separately in the pydantic-ai multimodal work.
114 lines
4.1 KiB
JSON
114 lines
4.1 KiB
JSON
{
|
|
"_meta": {
|
|
"description": "D6 fixtures for claude-sdk-python / agentic-chat",
|
|
"sourceFile": "d5-all.json",
|
|
"copiedFrom": "langgraph-python",
|
|
"created": "2026-05-21"
|
|
},
|
|
"fixtures": [
|
|
{
|
|
"match": {
|
|
"userMessage": "good name for a goldfish",
|
|
"context": "claude-sdk-python"
|
|
},
|
|
"response": {
|
|
"content": "How about Bubbles? It is friendly, classic, and easy to call out at the tank. If you want alternatives: Goldie, Finley, or Mango."
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "name for its tank",
|
|
"context": "claude-sdk-python"
|
|
},
|
|
"response": {
|
|
"content": "Following the Bubbles theme, you could call the tank The Bubble Bowl. It pairs naturally with the goldfish's name and keeps the playful tone."
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "what we named the goldfish",
|
|
"context": "claude-sdk-python"
|
|
},
|
|
"response": {
|
|
"content": "We named the goldfish Bubbles, and the tank The Bubble Bowl."
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "Write me a haiku about nature",
|
|
"hasToolResult": false,
|
|
"context": "claude-sdk-python"
|
|
},
|
|
"response": {
|
|
"toolCalls": [
|
|
{
|
|
"id": "call_d5_generate_haiku_001",
|
|
"name": "generate_haiku",
|
|
"arguments": "{\"japanese\":[\"\u53e4\u6c60\u3084\",\"\u86d9\u98db\u3073\u8fbc\u3080\",\"\u6c34\u306e\u97f3\"],\"english\":[\"An old silent pond\",\"A frog jumps into the pond\",\"Splash! Silence again.\"],\"image_name\":\"Mount_Fuji_Lake_Reflection_Cherry_Blossoms_Sakura_Spring.jpg\",\"gradient\":\"linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%)\"}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "Write me a haiku about nature",
|
|
"hasToolResult": true,
|
|
"context": "claude-sdk-python"
|
|
},
|
|
"response": {
|
|
"content": "Haiku generated above \u2014 a beautiful verse about nature with an accompanying image."
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "can you tell me what is in this demo image I just attached",
|
|
"turnIndex": 0,
|
|
"context": "claude-sdk-python"
|
|
},
|
|
"response": {
|
|
"content": "The image attachment shows a small abstract test pattern used by the multimodal demo to validate the image-upload pipeline. Successful render of this response confirms the binary attachment round-tripped through the runtime."
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "can you tell me what is in this demo pdf I just attached",
|
|
"turnIndex": 0,
|
|
"context": "claude-sdk-python"
|
|
},
|
|
"response": {
|
|
"content": "The PDF document contains a single test page used by the multimodal demo. Its text was flattened by pypdf on the Python side and forwarded as text content to the model. Receiving this response confirms the document upload path works."
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "hi from the popup test",
|
|
"turnIndex": 0,
|
|
"context": "claude-sdk-python"
|
|
},
|
|
"response": {
|
|
"content": "Hello from the popup \u2014 the CopilotPopup prebuilt component is wired up and reachable. The launcher floats in the corner and the chat sits in an overlay panel."
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "hi from the sidebar test",
|
|
"turnIndex": 0,
|
|
"context": "claude-sdk-python"
|
|
},
|
|
"response": {
|
|
"content": "Hello from the sidebar \u2014 the CopilotSidebar prebuilt component is wired up and reachable. Anything else you would like me to confirm from inside the sidebar?"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "analyze data and call the tool",
|
|
"turnIndex": 0,
|
|
"context": "claude-sdk-python"
|
|
},
|
|
"response": {
|
|
"content": "Reasoning step 1: I considered the query. Reasoning step 2: I decided to invoke the analysis tool. The tool returned its structured payload, and the reasoning chain wraps the rendered tool card. Both the reasoning block and the tool card should be visible in the transcript."
|
|
}
|
|
}
|
|
]
|
|
}
|