Residual do core#126 (mergeado): o blocker levantado na revisão não foi resolvido, foi documentado. SHARED_META_TOOL_DEFINITIONS.codespar_pay.recipient continua type: "string" e a descrição instrui a passar um OBJETO de conta bancária ('Pass the object literally (do not JSON-stringify it) — the tool-call argument type, not this schema's declared string type, is what determines routing').
Por que prosa não fecha: cliente que ENFORÇA o schema declarado (MCP com validação estrita, OpenAI strict tool mode, gateway com ajv) rejeita o objeto client-side antes de qualquer roteamento, ou o modelo coage para string — que a própria descrição proíbe. O Pix cash-out MANUAL (a capability que o ent#933 existia para publicar) fica indisponível exatamente nos clientes bem-comportados. E o comparator novo, ao exigir igualdade de tipo, propaga a contradição para todo runtime conformante.
Fix real (precisa de coordenação com o runtime): evoluir MetaToolInputProperty para expressar a união (oneOf / type array), ou publicar recipient como object com os campos nomeados + campo separado para a forma chave-string. Ambos exigem bump coordenado do contrato e do input_schema em codespar-enterprise (meta-tools.ts).
Referência: revisão do core#126 (comment 5529025703), ent#933, auditoria superfície vs rail 03/09.
🤖 Generated with Claude Code
https://claude.ai/code/session_01BtvPxidmzsA22yoVJSWdba
Residual do core#126 (mergeado): o blocker levantado na revisão não foi resolvido, foi documentado.
SHARED_META_TOOL_DEFINITIONS.codespar_pay.recipientcontinuatype: "string"e a descrição instrui a passar um OBJETO de conta bancária ('Pass the object literally (do not JSON-stringify it) — the tool-call argument type, not this schema's declared string type, is what determines routing').Por que prosa não fecha: cliente que ENFORÇA o schema declarado (MCP com validação estrita, OpenAI strict tool mode, gateway com ajv) rejeita o objeto client-side antes de qualquer roteamento, ou o modelo coage para string — que a própria descrição proíbe. O Pix cash-out MANUAL (a capability que o ent#933 existia para publicar) fica indisponível exatamente nos clientes bem-comportados. E o comparator novo, ao exigir igualdade de tipo, propaga a contradição para todo runtime conformante.
Fix real (precisa de coordenação com o runtime): evoluir MetaToolInputProperty para expressar a união (oneOf / type array), ou publicar recipient como object com os campos nomeados + campo separado para a forma chave-string. Ambos exigem bump coordenado do contrato e do input_schema em codespar-enterprise (meta-tools.ts).
Referência: revisão do core#126 (comment 5529025703), ent#933, auditoria superfície vs rail 03/09.
🤖 Generated with Claude Code
https://claude.ai/code/session_01BtvPxidmzsA22yoVJSWdba