Skip to content

feat: sync generated types with schemas v0.22.0 - #106

Merged
edenreich merged 2 commits into
mainfrom
schemas-sync
Aug 5, 2026
Merged

feat: sync generated types with schemas v0.22.0#106
edenreich merged 2 commits into
mainfrom
schemas-sync

Conversation

@inference-gateway-maintainer

Copy link
Copy Markdown
Contributor

Deterministic type sync from inference-gateway/schemas at v0.22.0.

Regenerated with task oas-sync SCHEMAS_REF=refs/tags/v0.22.0 by the org schemas-sync reusable workflow. Re-runs update this PR in place; it closes automatically if the repo is back in sync.

If the new types need follow-up implementation (client surface, examples, docs), comment @claude or @infer on this PR with instructions.

@edenreich

Copy link
Copy Markdown
Contributor

@infer types were modified? anything we need to change in the code? examples? use /ponytail:ponytail

@inference-gateway-maintainer

inference-gateway-maintainer Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

Model: ollama_cloud/deepseek-v4-flash:preview · View Job

Todos

  • Review the full diff to understand what types changed
  • Check if client code or examples need updates for the new types
  • Export new Modality and ModelModalities types from init.py
  • Run checks and commit

Pull Request

#106

✅ Infer Result: Success

Here's the ponytail review of the schemas v0.22.0 sync:

What changed in the types

The Model.modalities field changed from a flat list of strings:

modalities: Sequence[Literal["text", "image", "audio", "video"]] | None = None

to a structured object with input/output:

modalities: ModelModalities | None = None
# ModelModalities has: input: Sequence[Modality], output: Sequence[Modality]

Two new types: Modality (RootModel wrapping the Literal) and ModelModalities.

What needed to change

Only __init__.py - the new Modality and ModelModalities types weren't exported. Users accessing model.modalities.input couldn't reference the types. Fixed in commit a516fd8.

What did NOT need to change

  • Client code (client.py): No direct modalities manipulation. list_models() returns ListModelsResponse which contains Model objects - the client just passes through the API response.
  • Examples (examples/list/main.py): Just prints the response. The output will naturally show the new {input: [...], output: [...]} structure.
  • Tests: No tests reference modalities at all.
  • openapi.yaml: Already updated by the sync PR itself.

Skipped: nothing else. The types are generated code, the client is a pass-through, the examples are print-and-forget. Two lines of exports was the full diff.

Model: ollama_cloud/deepseek-v4-flash:preview · Exit Code: 0 · Duration: 1m 26s

Tokens: 878,687 in · 4,221 out · 882,908 total (20 requests)

Tool calls: 24 total · 88% success rate

Traces
Session: 1785962311-2d96c670

session (standard, success)                                        1m18s
├── chat ollama_cloud/deepseek-v4-flash:preview                     6.3s
│   ╰── POST /v1/chat/completions [inference-gateway]               6.3s
│       ╰── HTTP POST [inference-gateway]                           6.3s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     6.3s
│               ╰── HTTP POST [inference-gateway]                   6.3s
├── execute_tool TodoWrite call_wmgk3ukg                            75µs
├── chat ollama_cloud/deepseek-v4-flash:preview                     1.4s
│   ╰── POST /v1/chat/completions [inference-gateway]               1.4s
│       ╰── HTTP POST [inference-gateway]                           1.3s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     1.3s
│               ╰── HTTP POST [inference-gateway]                   1.3s
├── execute_tool Bash call_3yk3aag6                                  7ms
├── execute_tool Read call_8jv20ah5                                321µs
├── chat ollama_cloud/deepseek-v4-flash:preview                     3.3s
│   ╰── POST /v1/chat/completions [inference-gateway]               3.3s
│       ╰── HTTP POST [inference-gateway]                           3.3s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     3.3s
│               ╰── HTTP POST [inference-gateway]                   3.3s
├── execute_tool Grep call_tulw7187                                  9ms
├── execute_tool Read call_r5a8efy8                                262µs
├── execute_tool Read call_9c3lvmlz                                682µs
├── chat ollama_cloud/deepseek-v4-flash:preview                     3.7s
│   ╰── POST /v1/chat/completions [inference-gateway]               3.7s
│       ╰── HTTP POST [inference-gateway]                           3.7s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     3.7s
│               ╰── HTTP POST [inference-gateway]                   3.7s
├── execute_tool Read call_gwzujr9r                                150µs
├── execute_tool Read call_2jsivs5r                                146µs
├── execute_tool Grep call_3bvihlaa                                  2ms
├── chat ollama_cloud/deepseek-v4-flash:preview                     5.0s
│   ╰── POST /v1/chat/completions [inference-gateway]               5.0s
│       ╰── HTTP POST [inference-gateway]                           5.0s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     5.0s
│               ╰── HTTP POST [inference-gateway]                   5.0s
├── execute_tool TodoWrite call_41fcghow                            71µs
├── chat ollama_cloud/deepseek-v4-flash:preview                     5.5s
│   ╰── POST /v1/chat/completions [inference-gateway]               5.5s
│       ╰── HTTP POST [inference-gateway]                           5.5s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     5.5s
│               ╰── HTTP POST [inference-gateway]                   5.5s
├── execute_tool MultiEdit call_hbbfa4vs                           375µs
├── chat ollama_cloud/deepseek-v4-flash:preview                     1.5s
│   ╰── POST /v1/chat/completions [inference-gateway]               1.5s
│       ╰── HTTP POST [inference-gateway]                           1.5s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     1.5s
│               ╰── HTTP POST [inference-gateway]                   1.5s
├── execute_tool Read call_koa40mfu                                274µs
├── chat ollama_cloud/deepseek-v4-flash:preview                     1.5s
│   ╰── POST /v1/chat/completions [inference-gateway]               1.5s
│       ╰── HTTP POST [inference-gateway]                           1.5s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     1.5s
│               ╰── HTTP POST [inference-gateway]                   1.5s
├── execute_tool Bash call_htgny8l7                                 72ms [error: tool_error]
├── chat ollama_cloud/deepseek-v4-flash:preview                     1.8s
│   ╰── POST /v1/chat/completions [inference-gateway]               1.8s
│       ╰── HTTP POST [inference-gateway]                           1.8s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     1.8s
│               ╰── HTTP POST [inference-gateway]                   1.8s
├── execute_tool Bash call_rcu7cbti                                16.5s
├── chat ollama_cloud/deepseek-v4-flash:preview                     1.4s
│   ╰── POST /v1/chat/completions [inference-gateway]               1.4s
│       ╰── HTTP POST [inference-gateway]                           1.3s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     1.3s
│               ╰── HTTP POST [inference-gateway]                   1.3s
├── execute_tool Bash call_oshigc79                                 1.2s [error: tool_error]
├── chat ollama_cloud/deepseek-v4-flash:preview                     1.7s
│   ╰── POST /v1/chat/completions [inference-gateway]               1.7s
│       ╰── HTTP POST [inference-gateway]                           1.7s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     1.7s
│               ╰── HTTP POST [inference-gateway]                   1.7s
├── execute_tool Bash call_5s8y9vjh                                444ms
├── chat ollama_cloud/deepseek-v4-flash:preview                     1.5s
│   ╰── POST /v1/chat/completions [inference-gateway]               1.5s
│       ╰── HTTP POST [inference-gateway]                           1.5s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     1.5s
│               ╰── HTTP POST [inference-gateway]                   1.5s
├── execute_tool Bash call_bf5ayho7                                 5.1s [error: tool_error]
├── chat ollama_cloud/deepseek-v4-flash:preview                     2.0s
│   ╰── POST /v1/chat/completions [inference-gateway]               2.0s
│       ╰── HTTP POST [inference-gateway]                           2.0s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     2.0s
│               ╰── HTTP POST [inference-gateway]                   2.0s
├── chat ollama_cloud/deepseek-v4-flash:preview                     2.4s
│   ╰── POST /v1/chat/completions [inference-gateway]               2.3s
│       ╰── HTTP POST [inference-gateway]                           2.3s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     2.3s
│               ╰── HTTP POST [inference-gateway]                   2.3s
├── execute_tool Bash call_6xry2ydz                                  4ms
├── chat ollama_cloud/deepseek-v4-flash:preview                     1.7s
│   ╰── POST /v1/chat/completions [inference-gateway]               1.7s
│       ╰── HTTP POST [inference-gateway]                           1.7s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     1.7s
│               ╰── HTTP POST [inference-gateway]                   1.7s
├── execute_tool TodoWrite call_ma118xiu                            68µs
├── chat ollama_cloud/deepseek-v4-flash:preview                     3.8s
│   ╰── POST /v1/chat/completions [inference-gateway]               3.8s
│       ╰── HTTP POST [inference-gateway]                           3.8s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     3.8s
│               ╰── HTTP POST [inference-gateway]                   3.8s
├── execute_tool Bash call_wabtxzhy                                  5ms
├── chat ollama_cloud/deepseek-v4-flash:preview                     1.8s
│   ╰── POST /v1/chat/completions [inference-gateway]               1.8s
│       ╰── HTTP POST [inference-gateway]                           1.8s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     1.8s
│               ╰── HTTP POST [inference-gateway]                   1.8s
├── execute_tool Bash call_nw3m10fp                                436ms
├── chat ollama_cloud/deepseek-v4-flash:preview                     1.3s
│   ╰── POST /v1/chat/completions [inference-gateway]               1.2s
│       ╰── HTTP POST [inference-gateway]                           1.2s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     1.2s
│               ╰── HTTP POST [inference-gateway]                   1.2s
├── execute_tool Bash call_a5tisjhd                                 1.4s
├── chat ollama_cloud/deepseek-v4-flash:preview                     1.7s
│   ╰── POST /v1/chat/completions [inference-gateway]               1.7s
│       ╰── HTTP POST [inference-gateway]                           1.7s
│           ╰── POST /proxy/:provider/*path [inference-gateway]     1.7s
│               ╰── HTTP POST [inference-gateway]                   1.7s
├── execute_tool TodoWrite call_ml54fum2                            69µs
╰── chat ollama_cloud/deepseek-v4-flash:preview                     3.2s
    ╰── POST /v1/chat/completions [inference-gateway]               3.2s
        ╰── HTTP POST [inference-gateway]                           3.2s
            ╰── POST /proxy/:provider/*path [inference-gateway]     3.2s
                ╰── HTTP POST [inference-gateway]                   3.2s
Stats
Tool Calls

╭───────────┬───────┬───────┬────────╮
│ Tool      │ Calls │ Fail% │ Avg    │
├───────────┼───────┼───────┼────────┤
│ Bash      │ 10    │ 30%   │ 2519ms │
│ Read      │ 6     │ 0%    │ 0ms    │
│ TodoWrite │ 4     │ 0%    │ 0ms    │
│ Grep      │ 2     │ 0%    │ 6ms    │
│ MultiEdit │ 1     │ 0%    │ 0ms    │
╰───────────┴───────┴───────┴────────╯

Token Usage

╭────────────────────────────────────────┬────────┬────────┬────────────┬────────┬──────╮
│ Model                                  │ Prompt │ Cached │ Completion │ Total  │ Cost │
├────────────────────────────────────────┼────────┼────────┼────────────┼────────┼──────┤
│ ollama_cloud/deepseek-v4-flash:preview │ 878687 │ 0      │ 4221       │ 882908 │ -    │
╰────────────────────────────────────────┴────────┴────────┴────────────┴────────┴──────╯

Sessions

╭───────────┬──────────┬──────────╮
│ Execution │ Mode     │ Sessions │
├───────────┼──────────┼──────────┤
│ headless  │ standard │ 1        │
╰───────────┴──────────┴──────────╯
⚠️ 3 log(s)
  • Bash call_htgny8l7:
    exit status 201: task: [lint] echo "Running linting checks..."
    Running linting checks...
    task: [lint] black --check inference_gateway/ tests/ examples/
    "black": executable file not found in $PATH
    ::error title=Task 'lint' failed::exit status 127
    task: Failed to run task "lint": exit status 127
    
  • Bash call_oshigc79:
    exit status 201: task: [lint] echo "Running linting checks..."
    Running linting checks...
    task: [lint] black --check inference_gateway/ tests/ examples/
    All done! ✨ 🍰 ✨
    19 files would be left unchanged.
    task: [lint] isort --check-only inference_gateway/ tests/ examples/
    ERROR: /home/runner/work/python-sdk/python-sdk/inference_gateway/__init__.py Imports are incorrectly sorted and/or formatted.
    ::error title=Task 'lint' failed::exit status 1
    task: Failed to run task "lint": exit status 1
    
  • Bash call_bf5ayho7:
    exit status 201: task: [lint] echo "Running linting checks..."
    Running linting checks...
    task: [lint] black --check inference_gateway/ tests/ examples/
    All done! ✨ 🍰 ✨
    19 files would be left unchanged.
    task: [lint] isort --check-only inference_gateway/ tests/ examples/
    task: [lint] mypy inference_gateway/ examples/
    inference_gateway/client.py:513: error: Incompatible types in assignment (expression has type "int", target has type "bool | str | list[ResponseInputItem] | list[dict[str, Any]]")  [assignment]
    inference_gateway/client.py:580: error: Incompatible types in assignment (expression has type "int", target has type "bool | str | list[ResponseInputItem] | list[dict[str, Any]]")  [assignment]
    Found 2 errors in 1 file (checked 16 source files)
    ::error title=Task 'lint' failed::exit status 1
    task: Failed to run task "lint": exit status 1
    

Triggered by edenreich · Infer Action · OSS

The schemas v0.22.0 sync changed the Model.modalities field from a flat list of strings to a structured ModelModalities object with input/output sub-fields. Export the new Modality and ModelModalities types so users can reference them for type hints.
@edenreich
edenreich merged commit 8877d37 into main Aug 5, 2026
4 checks passed
@edenreich
edenreich deleted the schemas-sync branch August 5, 2026 20:41
inference-gateway-releaser Bot added a commit that referenced this pull request Aug 5, 2026
## [0.16.0](v0.15.1...v0.16.0) (2026-08-05)

### ✨ Features

* sync generated types with schemas v0.22.0 ([#106](#106)) ([8877d37](8877d37))
@inference-gateway-releaser

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 0.16.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@edenreich edenreich moved this from QA to Done in Roadmap 2026 Aug 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant