80 lines
3.5 KiB
JSON
80 lines
3.5 KiB
JSON
{
|
|
"_comment": "D5 multi-turn fixture for /demos/shared-state-read-write. Uses hasToolResult matching: aimock checks for role:tool messages in the request to disambiguate multi-turn fixtures sharing the same userMessage. The 'favorite color' fixture has a unique userMessage and needs no hasToolResult. Fixtures ordered by hasToolResult false→true for readability. The 'Say hi and introduce yourself' and 'Suggest a weekend plan' fixtures exist to outrun the bare 'hi' and 'plan' substring matchers in feature-parity.json — without them, the Greet me and Plan a weekend pills mismatch generic catch-alls. Mirrored verbatim into showcase/aimock/d5-all.json so re-bundling stays consistent.",
|
|
"fixtures": [
|
|
{
|
|
"_comment": "Greet me pill (msg: 'Say hi and introduce yourself.'). Gated on the default shared-state system prompt so changed preferences miss this fixture and proxy to the real model.",
|
|
"match": {
|
|
"userMessage": "Say hi and introduce yourself",
|
|
"systemMessage": [
|
|
"preferences",
|
|
"\"name\": \"\"",
|
|
"\"tone\": \"casual\"",
|
|
"\"language\": \"English\"",
|
|
"\"interests\": []"
|
|
]
|
|
},
|
|
"response": {
|
|
"content": "Hi — I'm your shared-state co-pilot. Your Preferences panel (name, tone, language, interests) is fed to me on every turn, and I jot notes back into the Agent Scratch Pad via set_notes so the UI re-renders. Try setting your name or asking me to remember something."
|
|
}
|
|
},
|
|
{
|
|
"_comment": "Edited-name probe. The harness sets name=D5-PREF-PROBE before clicking Greet me; matching this proves changed preferences reached the model-visible system prompt instead of serving the default fixture.",
|
|
"match": {
|
|
"userMessage": "Say hi and introduce yourself",
|
|
"systemMessage": ["preferences", "\"name\": \"D5-PREF-PROBE\""]
|
|
},
|
|
"response": {
|
|
"content": "Hi D5-PREF-PROBE - I can see your edited shared-state preferences in the current turn."
|
|
}
|
|
},
|
|
{
|
|
"_comment": "Plan a weekend pill (msg: 'Suggest a weekend plan based on my interests.'). Same default-state system prompt gate as the Greet pill.",
|
|
"match": {
|
|
"userMessage": "weekend plan based on my interests",
|
|
"systemMessage": [
|
|
"preferences",
|
|
"\"name\": \"\"",
|
|
"\"tone\": \"casual\"",
|
|
"\"language\": \"English\"",
|
|
"\"interests\": []"
|
|
]
|
|
},
|
|
"response": {
|
|
"content": "A weekend tailored to your interests panel: if you haven't picked any yet, try Cooking + Travel for a market-and-day-trip combo, or Tech + Books for a maker session and a long reading afternoon. Add interests in the Preferences panel and re-ask for a more specific plan."
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "remember that my favorite color is blue",
|
|
"hasToolResult": false
|
|
},
|
|
"response": {
|
|
"toolCalls": [
|
|
{
|
|
"id": "call_d5_set_notes_001",
|
|
"name": "set_notes",
|
|
"arguments": "{\"notes\":[\"Favorite color: blue\"]}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "remember that my favorite color is blue",
|
|
"hasToolResult": true
|
|
},
|
|
"response": {
|
|
"content": "Got it — I have noted that your favorite color is blue."
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"userMessage": "favorite color"
|
|
},
|
|
"response": {
|
|
"content": "Your favorite color is blue — I noted it earlier."
|
|
}
|
|
}
|
|
]
|
|
}
|