Clients like the Codex app emit parameters:{type:null,...} for some tools;
OpenAI-compatible upstreams reject with '400 Invalid schema for function ...:
schema must be a JSON Schema of type object, got type null'. toolSchemaSanitizer
already dropped the null; it now re-adds the mandatory root object type (plus
empty properties / open additionalProperties when absent). Combinator roots
(anyOf/oneOf/allOf) and explicit root types are preserved.
Regression guard: 5 new cases in tests/unit/tool-schema-sanitizer.test.mjs.
* fix(tools): keep opaque object schemas open
* test: align opaque-object-schema expectations with additionalProperties:true
The opaque-schema fix intentionally injects additionalProperties:true on empty
object schemas (incl. the web_search passthrough shim and null/missing parameter
fallbacks). Update the pre-fix snapshot assertions to match the new behavior.
---------
Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com>