Skip to content

v0.4.2

Choose a tag to compare

@Oaklight Oaklight released this 11 Apr 10:37
· 258 commits to master since this release

What's Changed

Changed

  • ReasoningConfig.enabled replaced with mode field: The boolean enabled field has been replaced by mode: Literal["auto", "enabled", "disabled"]. This aligns the IR more closely with provider semantics (Anthropic's three-way thinking.type, OpenAI Responses' reasoning.type). Omitting mode retains the previous "provider default" behavior.

Fixed

  • Responses API developer role mapping: role: "developer" (OpenAI Responses equivalent of "system") now correctly maps to IR "system" during Provider→IR conversion
  • Google GenAI additionalProperties rejection: Added extra_strip_keys parameter to sanitize_schema() — Google tool_ops now recursively strips additionalProperties from function declaration schemas
  • Google GenAI prompt_tokens_details format mismatch: Google returns list[ModalityTokenCount] but IR expects dict[str, int]. Added bidirectional conversion helpers supporting both SDK and REST API field names
  • Cross-format tool call ID prefix mapping: Automatic prefix mapping (call_/toolu_fc_) during Responses API conversion prevents validation failures
  • Adaptive thinking fallback: mode: "enabled" without budget_tokens correctly falls back to {"type": "adaptive"} for Anthropic, instead of producing an invalid request

Full Changelog: v0.4.1...v0.4.2