Files
2026-07-13 12:58:18 +08:00

84 lines
3.1 KiB
JSON

{
"_comment": [
"aimock fixtures for the deterministic cross-thread memory proof (Task 7 / FOR-149).",
"These pin the agent's LLM decisions so the test exercises the REAL local memory",
"backend (recall ranking + tenant scoping) without LLM nondeterminism.",
"",
"STRATEGY (recall-half determinism, per the plan's Task 7 option 2): the spec SEEDS the",
"over-limit procedure as a project/operational memory via REST, then drives a FRESH",
"thread. With the procedure already in memory, the agent must (1) recall_memory, then",
"apply the recalled code by (2) openPolicyException -> (3) finalizePolicyException ->",
"(4) approveTransaction, and never offer to record. Each step is one fixture, matched in",
"order via sequenceIndex (the same user message drives the whole run).",
"",
"VERIFY ON FIRST GREEN RUN (these are the unverified assumptions):",
"- Fixture file schema: top-level {fixtures:[...]}, each {match:{userMessage, sequenceIndex?}, response:{content|toolCalls}}.",
" Confirm against `loadFixtureFile`/`validateFixtures` from @copilotkit/aimock and showcase/aimock/*.json.",
"- Multi-turn ordering key: this uses `sequenceIndex`. If aimock uses a different key",
" (e.g. turnIndex / hasToolResult), rename accordingly (see showcase/GOTCHAS.md).",
"- Tool names/argument shapes must match the banking tools (openPolicyException,",
" finalizePolicyException, approveTransaction) and the agent's recall_memory call.",
"- EXC-BOARD-APPROVED must stay the seeded justifying code (see the spec + over-limit-gate-smoke)."
],
"fixtures": [
{
"match": { "userMessage": "over-limit", "sequenceIndex": 0 },
"response": {
"toolCalls": [
{
"name": "recall_memory",
"arguments": {
"query": "how to approve an over-limit charge / policy exception procedure"
}
}
]
}
},
{
"match": { "userMessage": "over-limit", "sequenceIndex": 1 },
"response": {
"toolCalls": [
{
"name": "openPolicyException",
"arguments": {
"transactionId": "t-3",
"code": "EXC-BOARD-APPROVED"
}
}
]
}
},
{
"match": { "userMessage": "over-limit", "sequenceIndex": 2 },
"response": {
"toolCalls": [
{
"name": "finalizePolicyException",
"arguments": {
"transactionId": "t-3",
"code": "EXC-BOARD-APPROVED"
}
}
]
}
},
{
"match": { "userMessage": "over-limit", "sequenceIndex": 3 },
"response": {
"toolCalls": [
{
"name": "approveTransaction",
"arguments": { "transactionId": "t-3" }
}
]
}
},
{
"match": { "userMessage": "over-limit", "sequenceIndex": 4 },
"response": {
"content": "Done — I recalled the saved procedure, filed an EXC-BOARD-APPROVED policy exception, and approved the over-limit charge."
}
}
]
}