{"id": "tc300-0001", "category": "wrong_tool_name", "variant": "namespace prefix", "tools": [{"name": "run_query", "description": "Run one read-only statement.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"sql": {"type": "string"}, "database": {"type": "string", "enum": ["analytics", "billing", "crm"]}, "timeout_seconds": {"type": "integer", "default": 30}, "dry_run": {"type": "boolean", "default": false}, "tags": {"type": "array", "items": {"type": "string"}}}, "required": ["sql", "database", "timeout_seconds"]}}], "input": "{\"name\": \"functions.run_query\", \"arguments\": {\"sql\": \"SELECT count(*) FROM customers WHERE created_at > '2026-01-01' LIMIT 333\", \"database\": \"crm\", \"timeout_seconds\": 60}}", "expected_kind": "value", "expected": {"name": "run_query", "arguments": {"sql": "SELECT count(*) FROM customers WHERE created_at > '2026-01-01' LIMIT 333", "database": "crm", "timeout_seconds": 60}}}
{"id": "tc300-0013", "category": "wrong_tool_name", "variant": "spaces for underscores", "tools": [{"name": "send_email", "description": "Send one message to one or more recipients.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"to": {"type": "array", "items": {"type": "string"}}, "subject": {"type": "string"}, "body": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "normal", "high"], "default": "normal"}, "cc": {"type": "array", "items": {"type": "string"}}}, "required": ["to", "subject", "body", "priority"]}}, {"name": "run_query", "description": "Run one read-only statement.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"sql": {"type": "string"}, "database": {"type": "string", "enum": ["analytics", "billing", "crm"]}, "timeout_seconds": {"type": "integer", "default": 30}, "dry_run": {"type": "boolean", "default": false}, "tags": {"type": "array", "items": {"type": "string"}}}, "required": ["sql", "database", "timeout_seconds"]}}, {"name": "get_weather", "description": "Return a forecast for one location.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"location": {"type": "string"}, "units": {"type": "string", "enum": ["celsius", "fahrenheit"], "default": "celsius"}, "days": {"type": "integer"}, "include_hourly": {"type": "boolean"}}, "required": ["location", "units", "days"]}}], "input": "{\n  \"name\": \"send email\",\n  \"arguments\": {\n    \"to\": [\n      \"priya@northwind.example\"\n    ],\n    \"subject\": \"Capacity forecast 732\",\n    \"body\": \"The change window closes at the end of the week.\",\n    \"priority\": \"low\"\n  }\n}", "expected_kind": "value", "expected": {"name": "send_email", "arguments": {"to": ["priya@northwind.example"], "subject": "Capacity forecast 732", "body": "The change window closes at the end of the week.", "priority": "low"}}}
{"id": "tc300-0025", "category": "wrong_tool_name", "variant": "camel case name", "tools": [{"name": "send_email", "description": "Send one message to one or more recipients.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"to": {"type": "array", "items": {"type": "string"}}, "subject": {"type": "string"}, "body": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "normal", "high"], "default": "normal"}, "cc": {"type": "array", "items": {"type": "string"}}}, "required": ["to", "subject", "body", "priority"]}}], "input": "{\n  \"name\": \"sendEmail\",\n  \"arguments\": {\n    \"to\": [\n      \"omar@driftbyte.example\"\n    ],\n    \"subject\": \"Migration plan 978\",\n    \"body\": \"The export finished; nothing further is needed from you.\",\n    \"priority\": \"normal\",\n    \"cc\": [\n      \"ivo@stonegate.example\"\n    ]\n  }\n}", "expected_kind": "value", "expected": {"name": "send_email", "arguments": {"to": ["omar@driftbyte.example"], "subject": "Migration plan 978", "body": "The export finished; nothing further is needed from you.", "priority": "normal", "cc": ["ivo@stonegate.example"]}}}
{"id": "tc300-0026", "category": "missing_required_arg", "variant": "required property omitted, declared default fills it", "tools": [{"name": "book_flight", "description": "Reserve one itinerary.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"origin": {"type": "string"}, "destination": {"type": "string"}, "date": {"type": "string"}, "passengers": {"type": "integer", "default": 1}, "cabin": {"type": "string", "enum": ["economy", "premium", "business", "first"], "default": "economy"}, "seat_prefs": {"type": "array", "items": {"type": "string"}}}, "required": ["origin", "destination", "date", "passengers", "cabin"]}}, {"name": "search_products", "description": "Search the catalogue.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"query": {"type": "string"}, "filters": {"type": "object", "additionalProperties": false, "properties": {"category": {"type": "string"}, "max_price": {"type": "number"}, "in_stock": {"type": "boolean"}}, "required": ["category"]}, "limit": {"type": "integer", "default": 10}, "sort": {"type": "string", "enum": ["relevance", "price_asc", "price_desc"], "default": "relevance"}}, "required": ["query", "filters", "limit"]}}, {"name": "update_record", "description": "Write one row.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"table": {"type": "string", "enum": ["customers", "orders", "invoices"]}, "record_id": {"type": "integer"}, "fields": {"type": "object", "additionalProperties": false, "properties": {"status": {"type": "string"}, "note": {"type": "string"}, "amount": {"type": "number"}}, "required": ["status"]}, "upsert": {"type": "boolean", "default": false}, "reason_code": {"type": "string"}}, "required": ["table", "record_id", "fields", "upsert"]}}], "input": "{\"name\": \"update_record\", \"arguments\": {\"table\": \"invoices\", \"record_id\": 67646, \"fields\": {\"status\": \"pending\"}}}", "expected_kind": "value", "expected": {"name": "update_record", "arguments": {"table": "invoices", "record_id": 67646, "fields": {"status": "pending"}, "upsert": false}}}
{"id": "tc300-0038", "category": "missing_required_arg", "variant": "required property omitted, declared default fills it", "tools": [{"name": "run_query", "description": "Run one read-only statement.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"sql": {"type": "string"}, "database": {"type": "string", "enum": ["analytics", "billing", "crm"]}, "timeout_seconds": {"type": "integer", "default": 30}, "dry_run": {"type": "boolean", "default": false}, "tags": {"type": "array", "items": {"type": "string"}}}, "required": ["sql", "database", "timeout_seconds"]}}, {"name": "book_flight", "description": "Reserve one itinerary.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"origin": {"type": "string"}, "destination": {"type": "string"}, "date": {"type": "string"}, "passengers": {"type": "integer", "default": 1}, "cabin": {"type": "string", "enum": ["economy", "premium", "business", "first"], "default": "economy"}, "seat_prefs": {"type": "array", "items": {"type": "string"}}}, "required": ["origin", "destination", "date", "passengers", "cabin"]}}], "input": "{\n  \"name\": \"book_flight\",\n  \"arguments\": {\n    \"origin\": \"Utrecht\",\n    \"destination\": \"Trieste\",\n    \"date\": \"2027-01-08\",\n    \"cabin\": \"economy\",\n    \"seat_prefs\": [\n      \"forward\"\n    ]\n  }\n}", "expected_kind": "value", "expected": {"name": "book_flight", "arguments": {"origin": "Utrecht", "destination": "Trieste", "date": "2027-01-08", "cabin": "economy", "seat_prefs": ["forward"], "passengers": 1}}}
{"id": "tc300-0050", "category": "missing_required_arg", "variant": "required property omitted, declared default fills it", "tools": [{"name": "get_weather", "description": "Return a forecast for one location.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"location": {"type": "string"}, "units": {"type": "string", "enum": ["celsius", "fahrenheit"], "default": "celsius"}, "days": {"type": "integer"}, "include_hourly": {"type": "boolean"}}, "required": ["location", "units", "days"]}}, {"name": "create_ticket", "description": "Open a work item on the tracker.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"title": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "medium", "high", "urgent"], "default": "medium"}, "labels": {"type": "array", "items": {"type": "string"}}, "assignee": {"type": "string"}, "estimate_hours": {"type": "number"}}, "required": ["title", "priority"]}}, {"name": "book_flight", "description": "Reserve one itinerary.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"origin": {"type": "string"}, "destination": {"type": "string"}, "date": {"type": "string"}, "passengers": {"type": "integer", "default": 1}, "cabin": {"type": "string", "enum": ["economy", "premium", "business", "first"], "default": "economy"}, "seat_prefs": {"type": "array", "items": {"type": "string"}}}, "required": ["origin", "destination", "date", "passengers", "cabin"]}}], "input": "{\n  \"name\": \"create_ticket\",\n  \"arguments\": {\n    \"title\": \"Stale cache on rename (253)\",\n    \"labels\": [\n      \"infra\"\n    ]\n  }\n}", "expected_kind": "value", "expected": {"name": "create_ticket", "arguments": {"title": "Stale cache on rename (253)", "labels": ["infra"], "priority": "medium"}}}
{"id": "tc300-0051", "category": "extra_undeclared_arg", "variant": "undeclared properties added", "tools": [{"name": "send_email", "description": "Send one message to one or more recipients.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"to": {"type": "array", "items": {"type": "string"}}, "subject": {"type": "string"}, "body": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "normal", "high"], "default": "normal"}, "cc": {"type": "array", "items": {"type": "string"}}}, "required": ["to", "subject", "body", "priority"]}}], "input": "{\"name\": \"send_email\", \"arguments\": {\"to\": [\"sam@lattice.example\"], \"subject\": \"Renewal window 418\", \"body\": \"The export finished; nothing further is needed from you.\", \"priority\": \"normal\", \"reason\": 27}}", "expected_kind": "value", "expected": {"name": "send_email", "arguments": {"to": ["sam@lattice.example"], "subject": "Renewal window 418", "body": "The export finished; nothing further is needed from you.", "priority": "normal"}}}
{"id": "tc300-0063", "category": "extra_undeclared_arg", "variant": "undeclared properties added", "tools": [{"name": "translate_text", "description": "Translate a passage.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"text": {"type": "string"}, "target_lang": {"type": "string", "enum": ["en", "fr", "de", "es", "ja"]}, "formal": {"type": "boolean", "default": false}, "glossary": {"type": "object", "additionalProperties": false, "properties": {"domain": {"type": "string"}, "strict": {"type": "boolean"}}, "required": ["domain"]}}, "required": ["text", "target_lang", "formal"]}}, {"name": "run_query", "description": "Run one read-only statement.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"sql": {"type": "string"}, "database": {"type": "string", "enum": ["analytics", "billing", "crm"]}, "timeout_seconds": {"type": "integer", "default": 30}, "dry_run": {"type": "boolean", "default": false}, "tags": {"type": "array", "items": {"type": "string"}}}, "required": ["sql", "database", "timeout_seconds"]}}], "input": "{\"name\": \"translate_text\", \"arguments\": {\"text\": \"Your order has shipped and will arrive within three days. (542)\", \"target_lang\": \"de\", \"formal\": true, \"glossary\": {\"domain\": \"aviation\", \"strict\": false}, \"step\": 84}}", "expected_kind": "value", "expected": {"name": "translate_text", "arguments": {"text": "Your order has shipped and will arrive within three days. (542)", "target_lang": "de", "formal": true, "glossary": {"domain": "aviation", "strict": false}}}}
{"id": "tc300-0075", "category": "extra_undeclared_arg", "variant": "undeclared properties added", "tools": [{"name": "create_ticket", "description": "Open a work item on the tracker.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"title": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "medium", "high", "urgent"], "default": "medium"}, "labels": {"type": "array", "items": {"type": "string"}}, "assignee": {"type": "string"}, "estimate_hours": {"type": "number"}}, "required": ["title", "priority"]}}, {"name": "convert_currency", "description": "Convert an amount between currencies.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"amount": {"type": "number"}, "source_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "target_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "rounding": {"type": "string", "enum": ["none", "nearest", "bankers"], "default": "none"}, "on_date": {"type": "string"}}, "required": ["amount", "source_currency", "target_currency", "rounding"]}}, {"name": "update_record", "description": "Write one row.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"table": {"type": "string", "enum": ["customers", "orders", "invoices"]}, "record_id": {"type": "integer"}, "fields": {"type": "object", "additionalProperties": false, "properties": {"status": {"type": "string"}, "note": {"type": "string"}, "amount": {"type": "number"}}, "required": ["status"]}, "upsert": {"type": "boolean", "default": false}, "reason_code": {"type": "string"}}, "required": ["table", "record_id", "fields", "upsert"]}}], "input": "{\"name\": \"create_ticket\", \"arguments\": {\"title\": \"Pagination skips the final page (714)\", \"priority\": \"low\", \"labels\": [\"ux\"], \"assignee\": \"priya\", \"reason\": false, \"note_to_self\": 0.12}}", "expected_kind": "value", "expected": {"name": "create_ticket", "arguments": {"title": "Pagination skips the final page (714)", "priority": "low", "labels": ["ux"], "assignee": "priya"}}}
{"id": "tc300-0076", "category": "type_coercion", "variant": "integer as a whole float", "tools": [{"name": "schedule_meeting", "description": "Put one meeting on the calendar.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"title": {"type": "string"}, "attendees": {"type": "array", "items": {"type": "string"}}, "start_iso": {"type": "string"}, "duration_minutes": {"type": "integer", "default": 30}, "room": {"type": "string"}, "agenda": {"type": "array", "items": {"type": "string"}}}, "required": ["title", "attendees", "start_iso", "duration_minutes"]}}, {"name": "run_query", "description": "Run one read-only statement.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"sql": {"type": "string"}, "database": {"type": "string", "enum": ["analytics", "billing", "crm"]}, "timeout_seconds": {"type": "integer", "default": 30}, "dry_run": {"type": "boolean", "default": false}, "tags": {"type": "array", "items": {"type": "string"}}}, "required": ["sql", "database", "timeout_seconds"]}}], "input": "{\n  \"name\": \"run_query\",\n  \"arguments\": {\n    \"sql\": \"SELECT region, sum(amount) FROM invoices GROUP BY region LIMIT 625\",\n    \"database\": \"billing\",\n    \"timeout_seconds\": 15.0\n  }\n}", "expected_kind": "value", "expected": {"name": "run_query", "arguments": {"sql": "SELECT region, sum(amount) FROM invoices GROUP BY region LIMIT 625", "database": "billing", "timeout_seconds": 15}}}
{"id": "tc300-0088", "category": "type_coercion", "variant": "number as a decimal string", "tools": [{"name": "convert_currency", "description": "Convert an amount between currencies.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"amount": {"type": "number"}, "source_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "target_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "rounding": {"type": "string", "enum": ["none", "nearest", "bankers"], "default": "none"}, "on_date": {"type": "string"}}, "required": ["amount", "source_currency", "target_currency", "rounding"]}}, {"name": "get_weather", "description": "Return a forecast for one location.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"location": {"type": "string"}, "units": {"type": "string", "enum": ["celsius", "fahrenheit"], "default": "celsius"}, "days": {"type": "integer"}, "include_hourly": {"type": "boolean"}}, "required": ["location", "units", "days"]}}], "input": "{\"name\": \"convert_currency\", \"arguments\": {\"amount\": \"3225.87\", \"source_currency\": \"USD\", \"target_currency\": \"JPY\", \"rounding\": \"bankers\", \"on_date\": \"2026-10-02\"}}", "expected_kind": "value", "expected": {"name": "convert_currency", "arguments": {"amount": 3225.87, "source_currency": "USD", "target_currency": "JPY", "rounding": "bankers", "on_date": "2026-10-02"}}}
{"id": "tc300-0100", "category": "type_coercion", "variant": "integer as a decimal string", "tools": [{"name": "get_weather", "description": "Return a forecast for one location.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"location": {"type": "string"}, "units": {"type": "string", "enum": ["celsius", "fahrenheit"], "default": "celsius"}, "days": {"type": "integer"}, "include_hourly": {"type": "boolean"}}, "required": ["location", "units", "days"]}}, {"name": "run_query", "description": "Run one read-only statement.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"sql": {"type": "string"}, "database": {"type": "string", "enum": ["analytics", "billing", "crm"]}, "timeout_seconds": {"type": "integer", "default": 30}, "dry_run": {"type": "boolean", "default": false}, "tags": {"type": "array", "items": {"type": "string"}}}, "required": ["sql", "database", "timeout_seconds"]}}], "input": "{\n  \"name\": \"run_query\",\n  \"arguments\": {\n    \"sql\": \"SELECT email FROM subscriptions WHERE status = 'past_due' LIMIT 734\",\n    \"database\": \"billing\",\n    \"timeout_seconds\": \"60\"\n  }\n}", "expected_kind": "value", "expected": {"name": "run_query", "arguments": {"sql": "SELECT email FROM subscriptions WHERE status = 'past_due' LIMIT 734", "database": "billing", "timeout_seconds": 60}}}
{"id": "tc300-0101", "category": "enum_violation", "variant": "title case enum member", "tools": [{"name": "translate_text", "description": "Translate a passage.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"text": {"type": "string"}, "target_lang": {"type": "string", "enum": ["en", "fr", "de", "es", "ja"]}, "formal": {"type": "boolean", "default": false}, "glossary": {"type": "object", "additionalProperties": false, "properties": {"domain": {"type": "string"}, "strict": {"type": "boolean"}}, "required": ["domain"]}}, "required": ["text", "target_lang", "formal"]}}, {"name": "send_email", "description": "Send one message to one or more recipients.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"to": {"type": "array", "items": {"type": "string"}}, "subject": {"type": "string"}, "body": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "normal", "high"], "default": "normal"}, "cc": {"type": "array", "items": {"type": "string"}}}, "required": ["to", "subject", "body", "priority"]}}, {"name": "convert_currency", "description": "Convert an amount between currencies.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"amount": {"type": "number"}, "source_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "target_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "rounding": {"type": "string", "enum": ["none", "nearest", "bankers"], "default": "none"}, "on_date": {"type": "string"}}, "required": ["amount", "source_currency", "target_currency", "rounding"]}}], "input": "{\"name\": \"translate_text\", \"arguments\": {\"text\": \"The report is ready for download. (813)\", \"target_lang\": \"En\", \"formal\": true, \"glossary\": {\"domain\": \"finance\", \"strict\": false}}}", "expected_kind": "value", "expected": {"name": "translate_text", "arguments": {"text": "The report is ready for download. (813)", "target_lang": "en", "formal": true, "glossary": {"domain": "finance", "strict": false}}}}
{"id": "tc300-0113", "category": "enum_violation", "variant": "title case enum member", "tools": [{"name": "search_products", "description": "Search the catalogue.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"query": {"type": "string"}, "filters": {"type": "object", "additionalProperties": false, "properties": {"category": {"type": "string"}, "max_price": {"type": "number"}, "in_stock": {"type": "boolean"}}, "required": ["category"]}, "limit": {"type": "integer", "default": 10}, "sort": {"type": "string", "enum": ["relevance", "price_asc", "price_desc"], "default": "relevance"}}, "required": ["query", "filters", "limit"]}}, {"name": "send_email", "description": "Send one message to one or more recipients.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"to": {"type": "array", "items": {"type": "string"}}, "subject": {"type": "string"}, "body": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "normal", "high"], "default": "normal"}, "cc": {"type": "array", "items": {"type": "string"}}}, "required": ["to", "subject", "body", "priority"]}}], "input": "{\n  \"name\": \"search_products\",\n  \"arguments\": {\n    \"query\": \"mechanical keyboard 99\",\n    \"filters\": {\n      \"category\": \"furniture\",\n      \"max_price\": 330.0,\n      \"in_stock\": false\n    },\n    \"limit\": 5,\n    \"sort\": \"Price_Asc\"\n  }\n}", "expected_kind": "value", "expected": {"name": "search_products", "arguments": {"query": "mechanical keyboard 99", "filters": {"category": "furniture", "max_price": 330.0, "in_stock": false}, "limit": 5, "sort": "price_asc"}}}
{"id": "tc300-0125", "category": "enum_violation", "variant": "upper case enum member", "tools": [{"name": "update_record", "description": "Write one row.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"table": {"type": "string", "enum": ["customers", "orders", "invoices"]}, "record_id": {"type": "integer"}, "fields": {"type": "object", "additionalProperties": false, "properties": {"status": {"type": "string"}, "note": {"type": "string"}, "amount": {"type": "number"}}, "required": ["status"]}, "upsert": {"type": "boolean", "default": false}, "reason_code": {"type": "string"}}, "required": ["table", "record_id", "fields", "upsert"]}}, {"name": "create_ticket", "description": "Open a work item on the tracker.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"title": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "medium", "high", "urgent"], "default": "medium"}, "labels": {"type": "array", "items": {"type": "string"}}, "assignee": {"type": "string"}, "estimate_hours": {"type": "number"}}, "required": ["title", "priority"]}}, {"name": "convert_currency", "description": "Convert an amount between currencies.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"amount": {"type": "number"}, "source_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "target_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "rounding": {"type": "string", "enum": ["none", "nearest", "bankers"], "default": "none"}, "on_date": {"type": "string"}}, "required": ["amount", "source_currency", "target_currency", "rounding"]}}], "input": "{\"name\": \"convert_currency\", \"arguments\": {\"amount\": 4713.26, \"source_currency\": \"EUR\", \"target_currency\": \"JPY\", \"rounding\": \"BANKERS\"}}", "expected_kind": "value", "expected": {"name": "convert_currency", "arguments": {"amount": 4713.26, "source_currency": "EUR", "target_currency": "JPY", "rounding": "bankers"}}}
{"id": "tc300-0126", "category": "nested_flattened", "variant": "nested object flattened with dotted keys", "tools": [{"name": "search_products", "description": "Search the catalogue.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"query": {"type": "string"}, "filters": {"type": "object", "additionalProperties": false, "properties": {"category": {"type": "string"}, "max_price": {"type": "number"}, "in_stock": {"type": "boolean"}}, "required": ["category"]}, "limit": {"type": "integer", "default": 10}, "sort": {"type": "string", "enum": ["relevance", "price_asc", "price_desc"], "default": "relevance"}}, "required": ["query", "filters", "limit"]}}], "input": "{\"name\": \"search_products\", \"arguments\": {\"query\": \"merino base layer 75\", \"limit\": 25, \"sort\": \"relevance\", \"filters.category\": \"luggage\", \"filters.max_price\": 220.0, \"filters.in_stock\": false}}", "expected_kind": "value", "expected": {"name": "search_products", "arguments": {"query": "merino base layer 75", "filters": {"category": "luggage", "max_price": 220.0, "in_stock": false}, "limit": 25, "sort": "relevance"}}}
{"id": "tc300-0138", "category": "nested_flattened", "variant": "nested object flattened with dotted keys", "tools": [{"name": "translate_text", "description": "Translate a passage.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"text": {"type": "string"}, "target_lang": {"type": "string", "enum": ["en", "fr", "de", "es", "ja"]}, "formal": {"type": "boolean", "default": false}, "glossary": {"type": "object", "additionalProperties": false, "properties": {"domain": {"type": "string"}, "strict": {"type": "boolean"}}, "required": ["domain"]}}, "required": ["text", "target_lang", "formal"]}}], "input": "{\n  \"name\": \"translate_text\",\n  \"arguments\": {\n    \"text\": \"The report is ready for download. (525)\",\n    \"target_lang\": \"ja\",\n    \"formal\": false,\n    \"glossary.domain\": \"medical-devices\",\n    \"glossary.strict\": true\n  }\n}", "expected_kind": "value", "expected": {"name": "translate_text", "arguments": {"text": "The report is ready for download. (525)", "target_lang": "ja", "formal": false, "glossary": {"domain": "medical-devices", "strict": true}}}}
{"id": "tc300-0150", "category": "nested_flattened", "variant": "nested object flattened onto the top level", "tools": [{"name": "translate_text", "description": "Translate a passage.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"text": {"type": "string"}, "target_lang": {"type": "string", "enum": ["en", "fr", "de", "es", "ja"]}, "formal": {"type": "boolean", "default": false}, "glossary": {"type": "object", "additionalProperties": false, "properties": {"domain": {"type": "string"}, "strict": {"type": "boolean"}}, "required": ["domain"]}}, "required": ["text", "target_lang", "formal"]}}, {"name": "update_record", "description": "Write one row.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"table": {"type": "string", "enum": ["customers", "orders", "invoices"]}, "record_id": {"type": "integer"}, "fields": {"type": "object", "additionalProperties": false, "properties": {"status": {"type": "string"}, "note": {"type": "string"}, "amount": {"type": "number"}}, "required": ["status"]}, "upsert": {"type": "boolean", "default": false}, "reason_code": {"type": "string"}}, "required": ["table", "record_id", "fields", "upsert"]}}], "input": "{\"name\": \"translate_text\", \"arguments\": {\"text\": \"The maintenance window has been moved to Sunday. (766)\", \"target_lang\": \"en\", \"formal\": false, \"domain\": \"legal\", \"strict\": true}}", "expected_kind": "value", "expected": {"name": "translate_text", "arguments": {"text": "The maintenance window has been moved to Sunday. (766)", "target_lang": "en", "formal": false, "glossary": {"domain": "legal", "strict": true}}}}
{"id": "tc300-0151", "category": "array_vs_scalar", "variant": "one-element array where a scalar is declared", "tools": [{"name": "convert_currency", "description": "Convert an amount between currencies.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"amount": {"type": "number"}, "source_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "target_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "rounding": {"type": "string", "enum": ["none", "nearest", "bankers"], "default": "none"}, "on_date": {"type": "string"}}, "required": ["amount", "source_currency", "target_currency", "rounding"]}}, {"name": "run_query", "description": "Run one read-only statement.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"sql": {"type": "string"}, "database": {"type": "string", "enum": ["analytics", "billing", "crm"]}, "timeout_seconds": {"type": "integer", "default": 30}, "dry_run": {"type": "boolean", "default": false}, "tags": {"type": "array", "items": {"type": "string"}}}, "required": ["sql", "database", "timeout_seconds"]}}], "input": "{\"name\": \"run_query\", \"arguments\": {\"sql\": [\"SELECT sku, stock FROM inventory WHERE stock < 5 LIMIT 292\"], \"database\": \"billing\", \"timeout_seconds\": 15}}", "expected_kind": "value", "expected": {"name": "run_query", "arguments": {"sql": "SELECT sku, stock FROM inventory WHERE stock < 5 LIMIT 292", "database": "billing", "timeout_seconds": 15}}}
{"id": "tc300-0163", "category": "array_vs_scalar", "variant": "one-element array where a scalar is declared", "tools": [{"name": "send_email", "description": "Send one message to one or more recipients.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"to": {"type": "array", "items": {"type": "string"}}, "subject": {"type": "string"}, "body": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "normal", "high"], "default": "normal"}, "cc": {"type": "array", "items": {"type": "string"}}}, "required": ["to", "subject", "body", "priority"]}}, {"name": "update_record", "description": "Write one row.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"table": {"type": "string", "enum": ["customers", "orders", "invoices"]}, "record_id": {"type": "integer"}, "fields": {"type": "object", "additionalProperties": false, "properties": {"status": {"type": "string"}, "note": {"type": "string"}, "amount": {"type": "number"}}, "required": ["status"]}, "upsert": {"type": "boolean", "default": false}, "reason_code": {"type": "string"}}, "required": ["table", "record_id", "fields", "upsert"]}}, {"name": "book_flight", "description": "Reserve one itinerary.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"origin": {"type": "string"}, "destination": {"type": "string"}, "date": {"type": "string"}, "passengers": {"type": "integer", "default": 1}, "cabin": {"type": "string", "enum": ["economy", "premium", "business", "first"], "default": "economy"}, "seat_prefs": {"type": "array", "items": {"type": "string"}}}, "required": ["origin", "destination", "date", "passengers", "cabin"]}}], "input": "{\n  \"name\": \"update_record\",\n  \"arguments\": {\n    \"table\": \"invoices\",\n    \"record_id\": [\n      2495\n    ],\n    \"fields\": {\n      \"status\": \"closed\",\n      \"note\": \"duplicate of 4471\"\n    },\n    \"upsert\": false,\n    \"reason_code\": \"RC-16\"\n  }\n}", "expected_kind": "value", "expected": {"name": "update_record", "arguments": {"table": "invoices", "record_id": 2495, "fields": {"status": "closed", "note": "duplicate of 4471"}, "upsert": false, "reason_code": "RC-16"}}}
{"id": "tc300-0176", "category": "args_as_string", "variant": "arguments delivered as a JSON string (escaped newlines)", "tools": [{"name": "send_email", "description": "Send one message to one or more recipients.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"to": {"type": "array", "items": {"type": "string"}}, "subject": {"type": "string"}, "body": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "normal", "high"], "default": "normal"}, "cc": {"type": "array", "items": {"type": "string"}}}, "required": ["to", "subject", "body", "priority"]}}, {"name": "run_query", "description": "Run one read-only statement.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"sql": {"type": "string"}, "database": {"type": "string", "enum": ["analytics", "billing", "crm"]}, "timeout_seconds": {"type": "integer", "default": 30}, "dry_run": {"type": "boolean", "default": false}, "tags": {"type": "array", "items": {"type": "string"}}}, "required": ["sql", "database", "timeout_seconds"]}}], "input": "{\n  \"name\": \"run_query\",\n  \"arguments\": \"{\\\"sql\\\": \\\"SELECT email FROM subscriptions WHERE status = 'past_due' LIMIT 628\\\",\\n\\\"database\\\": \\\"billing\\\",\\n\\\"timeout_seconds\\\": 120}\"\n}", "expected_kind": "value", "expected": {"name": "run_query", "arguments": {"sql": "SELECT email FROM subscriptions WHERE status = 'past_due' LIMIT 628", "database": "billing", "timeout_seconds": 120}}}
{"id": "tc300-0188", "category": "args_as_string", "variant": "arguments delivered as a JSON string (compact)", "tools": [{"name": "schedule_meeting", "description": "Put one meeting on the calendar.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"title": {"type": "string"}, "attendees": {"type": "array", "items": {"type": "string"}}, "start_iso": {"type": "string"}, "duration_minutes": {"type": "integer", "default": 30}, "room": {"type": "string"}, "agenda": {"type": "array", "items": {"type": "string"}}}, "required": ["title", "attendees", "start_iso", "duration_minutes"]}}, {"name": "run_query", "description": "Run one read-only statement.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"sql": {"type": "string"}, "database": {"type": "string", "enum": ["analytics", "billing", "crm"]}, "timeout_seconds": {"type": "integer", "default": 30}, "dry_run": {"type": "boolean", "default": false}, "tags": {"type": "array", "items": {"type": "string"}}}, "required": ["sql", "database", "timeout_seconds"]}}], "input": "{\"name\": \"schedule_meeting\", \"arguments\": \"{\\\"title\\\": \\\"Access review 37\\\", \\\"attendees\\\": [\\\"sam@lattice.example\\\"], \\\"start_iso\\\": \\\"2026-10-02T14:30:00Z\\\", \\\"duration_minutes\\\": 90}\"}", "expected_kind": "value", "expected": {"name": "schedule_meeting", "arguments": {"title": "Access review 37", "attendees": ["sam@lattice.example"], "start_iso": "2026-10-02T14:30:00Z", "duration_minutes": 90}}}
{"id": "tc300-0201", "category": "multiple_calls", "variant": "2 identical calls, newline separated", "tools": [{"name": "run_query", "description": "Run one read-only statement.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"sql": {"type": "string"}, "database": {"type": "string", "enum": ["analytics", "billing", "crm"]}, "timeout_seconds": {"type": "integer", "default": 30}, "dry_run": {"type": "boolean", "default": false}, "tags": {"type": "array", "items": {"type": "string"}}}, "required": ["sql", "database", "timeout_seconds"]}}, {"name": "get_weather", "description": "Return a forecast for one location.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"location": {"type": "string"}, "units": {"type": "string", "enum": ["celsius", "fahrenheit"], "default": "celsius"}, "days": {"type": "integer"}, "include_hourly": {"type": "boolean"}}, "required": ["location", "units", "days"]}}, {"name": "create_ticket", "description": "Open a work item on the tracker.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"title": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "medium", "high", "urgent"], "default": "medium"}, "labels": {"type": "array", "items": {"type": "string"}}, "assignee": {"type": "string"}, "estimate_hours": {"type": "number"}}, "required": ["title", "priority"]}}], "input": "{\n  \"name\": \"create_ticket\",\n  \"arguments\": {\n    \"title\": \"Rounding drift on totals (944)\",\n    \"priority\": \"low\",\n    \"labels\": [\n      \"backend\"\n    ]\n  }\n}\n{\"arguments\": {\"title\": \"Rounding drift on totals (944)\", \"priority\": \"low\", \"labels\": [\"backend\"]}, \"name\": \"create_ticket\"}", "expected_kind": "value", "expected": {"name": "create_ticket", "arguments": {"title": "Rounding drift on totals (944)", "priority": "low", "labels": ["backend"]}}}
{"id": "tc300-0213", "category": "multiple_calls", "variant": "2 identical calls, newline separated", "tools": [{"name": "book_flight", "description": "Reserve one itinerary.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"origin": {"type": "string"}, "destination": {"type": "string"}, "date": {"type": "string"}, "passengers": {"type": "integer", "default": 1}, "cabin": {"type": "string", "enum": ["economy", "premium", "business", "first"], "default": "economy"}, "seat_prefs": {"type": "array", "items": {"type": "string"}}}, "required": ["origin", "destination", "date", "passengers", "cabin"]}}, {"name": "send_email", "description": "Send one message to one or more recipients.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"to": {"type": "array", "items": {"type": "string"}}, "subject": {"type": "string"}, "body": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "normal", "high"], "default": "normal"}, "cc": {"type": "array", "items": {"type": "string"}}}, "required": ["to", "subject", "body", "priority"]}}], "input": "{\n  \"name\": \"book_flight\",\n  \"arguments\": {\n    \"origin\": \"Utrecht\",\n    \"destination\": \"Zadar\",\n    \"date\": \"2026-09-14\",\n    \"passengers\": 4,\n    \"cabin\": \"business\"\n  }\n}\n{\"arguments\": {\"origin\": \"Utrecht\", \"destination\": \"Zadar\", \"date\": \"2026-09-14\", \"passengers\": 4, \"cabin\": \"business\"}, \"name\": \"book_flight\"}", "expected_kind": "value", "expected": {"name": "book_flight", "arguments": {"origin": "Utrecht", "destination": "Zadar", "date": "2026-09-14", "passengers": 4, "cabin": "business"}}}
{"id": "tc300-0226", "category": "hallucinated_tool", "variant": "call to a tool that was never declared", "tools": [{"name": "update_record", "description": "Write one row.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"table": {"type": "string", "enum": ["customers", "orders", "invoices"]}, "record_id": {"type": "integer"}, "fields": {"type": "object", "additionalProperties": false, "properties": {"status": {"type": "string"}, "note": {"type": "string"}, "amount": {"type": "number"}}, "required": ["status"]}, "upsert": {"type": "boolean", "default": false}, "reason_code": {"type": "string"}}, "required": ["table", "record_id", "fields", "upsert"]}}, {"name": "translate_text", "description": "Translate a passage.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"text": {"type": "string"}, "target_lang": {"type": "string", "enum": ["en", "fr", "de", "es", "ja"]}, "formal": {"type": "boolean", "default": false}, "glossary": {"type": "object", "additionalProperties": false, "properties": {"domain": {"type": "string"}, "strict": {"type": "boolean"}}, "required": ["domain"]}}, "required": ["text", "target_lang", "formal"]}}, {"name": "schedule_meeting", "description": "Put one meeting on the calendar.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"title": {"type": "string"}, "attendees": {"type": "array", "items": {"type": "string"}}, "start_iso": {"type": "string"}, "duration_minutes": {"type": "integer", "default": 30}, "room": {"type": "string"}, "agenda": {"type": "array", "items": {"type": "string"}}}, "required": ["title", "attendees", "start_iso", "duration_minutes"]}}], "input": "{\"name\": \"read_file\", \"arguments\": {\"text\": \"Two seats remain on your current plan. (456)\", \"target_lang\": \"ja\", \"formal\": true}}", "expected_kind": "unrecoverable"}
{"id": "tc300-0238", "category": "hallucinated_tool", "variant": "call to a tool that was never declared", "tools": [{"name": "book_flight", "description": "Reserve one itinerary.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"origin": {"type": "string"}, "destination": {"type": "string"}, "date": {"type": "string"}, "passengers": {"type": "integer", "default": 1}, "cabin": {"type": "string", "enum": ["economy", "premium", "business", "first"], "default": "economy"}, "seat_prefs": {"type": "array", "items": {"type": "string"}}}, "required": ["origin", "destination", "date", "passengers", "cabin"]}}, {"name": "translate_text", "description": "Translate a passage.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"text": {"type": "string"}, "target_lang": {"type": "string", "enum": ["en", "fr", "de", "es", "ja"]}, "formal": {"type": "boolean", "default": false}, "glossary": {"type": "object", "additionalProperties": false, "properties": {"domain": {"type": "string"}, "strict": {"type": "boolean"}}, "required": ["domain"]}}, "required": ["text", "target_lang", "formal"]}}, {"name": "convert_currency", "description": "Convert an amount between currencies.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"amount": {"type": "number"}, "source_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "target_currency": {"type": "string", "enum": ["EUR", "USD", "GBP", "JPY"]}, "rounding": {"type": "string", "enum": ["none", "nearest", "bankers"], "default": "none"}, "on_date": {"type": "string"}}, "required": ["amount", "source_currency", "target_currency", "rounding"]}}], "input": "{\"name\": \"cancel_subscription\", \"arguments\": {\"title\": \"Webhook fires twice (591)\", \"priority\": \"high\"}}", "expected_kind": "unrecoverable"}
{"id": "tc300-0251", "category": "truncated", "variant": "cut inside the optional property 'assignee'", "tools": [{"name": "run_query", "description": "Run one read-only statement.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"sql": {"type": "string"}, "database": {"type": "string", "enum": ["analytics", "billing", "crm"]}, "timeout_seconds": {"type": "integer", "default": 30}, "dry_run": {"type": "boolean", "default": false}, "tags": {"type": "array", "items": {"type": "string"}}}, "required": ["sql", "database", "timeout_seconds"]}}, {"name": "update_record", "description": "Write one row.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"table": {"type": "string", "enum": ["customers", "orders", "invoices"]}, "record_id": {"type": "integer"}, "fields": {"type": "object", "additionalProperties": false, "properties": {"status": {"type": "string"}, "note": {"type": "string"}, "amount": {"type": "number"}}, "required": ["status"]}, "upsert": {"type": "boolean", "default": false}, "reason_code": {"type": "string"}}, "required": ["table", "record_id", "fields", "upsert"]}}, {"name": "create_ticket", "description": "Open a work item on the tracker.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"title": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "medium", "high", "urgent"], "default": "medium"}, "labels": {"type": "array", "items": {"type": "string"}}, "assignee": {"type": "string"}, "estimate_hours": {"type": "number"}}, "required": ["title", "priority"]}}], "input": "{\n  \"name\": \"create_ticket\",\n  \"arguments\": {\n    \"title\": \"Timeout on cold start (674)\",\n    \"priority\": \"low\",\n    \"assignee\":", "expected_kind": "value", "expected": {"name": "create_ticket", "arguments": {"title": "Timeout on cold start (674)", "priority": "low"}}}
{"id": "tc300-0263", "category": "truncated", "variant": "cut inside the optional property 'assignee'", "tools": [{"name": "create_ticket", "description": "Open a work item on the tracker.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"title": {"type": "string"}, "priority": {"type": "string", "enum": ["low", "medium", "high", "urgent"], "default": "medium"}, "labels": {"type": "array", "items": {"type": "string"}}, "assignee": {"type": "string"}, "estimate_hours": {"type": "number"}}, "required": ["title", "priority"]}}], "input": "{\n  \"name\": \"create_ticket\",\n  \"arguments\": {\n    \"title\": \"Timeout on cold start (725)\",\n    \"priority\": \"medium\",\n    \"assignee\"", "expected_kind": "value", "expected": {"name": "create_ticket", "arguments": {"title": "Timeout on cold start (725)", "priority": "medium"}}}
{"id": "tc300-0276", "category": "unrecoverable", "variant": "required property omitted, no declared default", "tools": [{"name": "update_record", "description": "Write one row.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"table": {"type": "string", "enum": ["customers", "orders", "invoices"]}, "record_id": {"type": "integer"}, "fields": {"type": "object", "additionalProperties": false, "properties": {"status": {"type": "string"}, "note": {"type": "string"}, "amount": {"type": "number"}}, "required": ["status"]}, "upsert": {"type": "boolean", "default": false}, "reason_code": {"type": "string"}}, "required": ["table", "record_id", "fields", "upsert"]}}, {"name": "book_flight", "description": "Reserve one itinerary.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"origin": {"type": "string"}, "destination": {"type": "string"}, "date": {"type": "string"}, "passengers": {"type": "integer", "default": 1}, "cabin": {"type": "string", "enum": ["economy", "premium", "business", "first"], "default": "economy"}, "seat_prefs": {"type": "array", "items": {"type": "string"}}}, "required": ["origin", "destination", "date", "passengers", "cabin"]}}, {"name": "search_products", "description": "Search the catalogue.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"query": {"type": "string"}, "filters": {"type": "object", "additionalProperties": false, "properties": {"category": {"type": "string"}, "max_price": {"type": "number"}, "in_stock": {"type": "boolean"}}, "required": ["category"]}, "limit": {"type": "integer", "default": 10}, "sort": {"type": "string", "enum": ["relevance", "price_asc", "price_desc"], "default": "relevance"}}, "required": ["query", "filters", "limit"]}}], "input": "{\n  \"name\": \"book_flight\",\n  \"arguments\": {\n    \"origin\": \"Bergen\",\n    \"destination\": \"Ghent\",\n    \"passengers\": 1,\n    \"cabin\": \"economy\"\n  }\n}", "expected_kind": "unrecoverable"}
{"id": "tc300-0288", "category": "unrecoverable", "variant": "cut inside a required property", "tools": [{"name": "get_weather", "description": "Return a forecast for one location.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"location": {"type": "string"}, "units": {"type": "string", "enum": ["celsius", "fahrenheit"], "default": "celsius"}, "days": {"type": "integer"}, "include_hourly": {"type": "boolean"}}, "required": ["location", "units", "days"]}}], "input": "{\n  \"name\": \"get_weather\",\n  \"arguments\": {\n    \"location\": \"Graz\",\n    \"units\": \"fahrenheit\",\n    \"days\": 1", "expected_kind": "unrecoverable"}
