mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
10ac2781eb
## Why Before changing the Codex Bridge JSON schema policy, add integration coverage around real connector-like MCP tool schemas. The existing unit tests cover individual sanitizer behaviors, but they do not make it easy to see whether full fixture schemas keep model-visible guidance, prune only unreachable definitions, drop unsupported JSON Schema fields, and stay within the Responses API schema budget. ## What Changed - Added `tools/tests/json_schema_policy_fixtures.rs`, which converts MCP tool fixtures through `mcp_tool_to_responses_api_tool` and validates the resulting Responses tool parameters. - Added connector-style fixtures for Slack, Google Calendar, Google Drive, Notion, and Microsoft Outlook Email under `tools/tests/fixtures/json_schema_policy/`. - Added fixture assertions for preserved guidance, pruned definitions, expected field drops after `JsonSchema` conversion, marker count baselines, and dangling local `$ref` prevention. - Added a real oversized golden Notion `create_page` input schema fixture to exercise the compaction path that strips descriptions, drops root `$defs`, rewrites local refs, and fits the compacted schema under the budget.
66 lines
1.6 KiB
JSON
66 lines
1.6 KiB
JSON
{
|
|
"source": "standard/google_drive/tools",
|
|
"tools": [
|
|
{
|
|
"name": "google_drive_copy_file",
|
|
"description": "Copy a Google Drive file.",
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"file": {
|
|
"description": "File selector.",
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"description": "A Drive file ID."
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"shared_drive_id": {
|
|
"type": "string",
|
|
"description": "Shared drive identifier."
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"metadata": {
|
|
"description": "Optional copy metadata.",
|
|
"allOf": [
|
|
{
|
|
"type": "object",
|
|
"description": "Base metadata.",
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"description": "Metadata source."
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"description": "Copied file title."
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
]
|
|
},
|
|
"expected_preserved": [
|
|
{
|
|
"pointer": "/properties/title/description",
|
|
"value": "Copied file title."
|
|
}
|
|
],
|
|
"expected_pruned": [],
|
|
"expected_dropped_fields": [
|
|
"/properties/file/oneOf",
|
|
"/properties/metadata/allOf"
|
|
]
|
|
}
|
|
]
|
|
}
|