Skip to content

Releases: ironsparrows/swift-language-models

1.2.1

Choose a tag to compare

@github-actions github-actions released this 04 Nov 11:04
744ede1

Release: patch

OpenRouter models and words

  • Deprecates inception/mercury-2: OpenRouter retires it on 2026-11-08.
  • Deprecates inception/mercury-2.5: OpenRouter retires it on 2026-11-08.
  • Deprecates inception/mercury-3: OpenRouter retires it on 2026-11-08.
  • Deprecates minimax/minimax-01: OpenRouter retires it on 2026-11-05.
  • Deprecates minimax/minimax-m2: OpenRouter retires it on 2026-11-05.
  • Deprecates minimax/minimax-m2-her: OpenRouter retires it on 2026-11-05.
  • Deprecates minimax/minimax-m2.1: OpenRouter retires it on 2026-11-05.
  • Deprecates minimax/minimax-m2.7: OpenRouter retires it on 2026-11-05.
  • Adds stealth/crouton-alpha.
  • Adds tencent/hy4.
  • Deprecates thinkingmachines/inkling-small:free: OpenRouter retires it on 2026-11-04.
  • Deprecates thinkingmachines/inkling:free: OpenRouter retires it on 2026-11-04.

OpenRouter model data

  • inception/mercury-2: expirationDate none → 2026-11-08.
  • inception/mercury-2.5: expirationDate none → 2026-11-08.
  • inception/mercury-3: expirationDate none → 2026-11-08.
  • liquid/lfm-2.5-2.6b:free: supportedParameters adds top_p.
  • liquid/lfm-2.5-24b-a2b: supportedParameters adds top_p.
  • meta-llama/llama-3.1-70b-instruct: expirationDate 2026-11-03 → none; supportedParameters drops frequency_penalty, logit_bias, min_p, presence_penalty, repetition_penalty, response_format, seed, structured_outputs, tool_choice, tools.
  • minimax/minimax-01: expirationDate none → 2026-11-05.
  • minimax/minimax-m2: expirationDate none → 2026-11-05.
  • minimax/minimax-m2-her: expirationDate none → 2026-11-05.
  • minimax/minimax-m2.1: expirationDate none → 2026-11-05.
  • minimax/minimax-m2.7: expirationDate none → 2026-11-05.
  • moonshotai/kimi-k3.1-pro: supportedParameters adds temperature, top_p.
  • nousresearch/hermes-4-405b: supportedParameters adds logit_bias, seed, stop.
  • nvidia/nemotron-3-nano-30b-a3b: supportedParameters drops logprobs, top_logprobs.
  • thinkingmachines/inkling-small:free: expirationDate none → 2026-11-04.
  • thinkingmachines/inkling:free: expirationDate none → 2026-11-04.
  • xiaomi/mimo-v2.5: contextSize 1,050,000 → 1,000,000; supportedParameters drops seed.

OpenAI models and words

  • Adds gpt-5.3-codex, which OpenAI retires on 2027-04-01.
  • Adds gpt-5.4-2026-03-05.
  • Adds gpt-5.4-pro.
  • Adds gpt-5.4-pro-2026-03-05.
Fetch log
Fetched 382 OpenRouter models into Catalogs/openrouter.json.
Fetched 46 OpenAI models into Catalogs/openai.json.

What's Changed

Fixes and catalog updates

  • chore: update the model catalog by @swift-language-models-catalog[bot] in #39

Full Changelog: 1.2.0...1.2.1

1.2.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 18:20
6ba0354

What's Changed

Other changes

  • feat: retry OpenRouter's requests with the backoff OpenAI's use, through one shared retry policy by @dioKaratzas in #35
  • feat: let apps configure each provider's retries, timeout, image encoding and info cache by @dioKaratzas in #36
  • docs: match the docs to the request configuration and line up the providers' retry wording by @dioKaratzas in #37

Full Changelog: 1.1.1...1.2.0

1.1.1

Choose a tag to compare

@github-actions github-actions released this 03 Nov 15:22
1bf581c

What's Changed

Fixes and catalog updates

  • feat: read every provider's answer, usage and failure facts as typed values by @dioKaratzas in #34

Full Changelog: 1.1.0...1.1.1

1.1.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 14:26
01479cf

What's Changed

New

  • feat: retry and decode OpenAI answers as the official SDKs do, and catalog every OpenAI text model by @dioKaratzas in #33

Full Changelog: 1.0.2...1.1.0

1.0.2

Choose a tag to compare

@github-actions github-actions released this 03 Nov 10:05
04df83b

What's Changed

Fixes and catalog updates

  • chore: log under com.ironsparrows.swift-language-models and link the ironsparrows repository by @dioKaratzas in #32

Full Changelog: 1.0.1...1.0.2

1.0.1

Choose a tag to compare

@github-actions github-actions released this 03 Nov 06:29
a2f1dda

What's Changed

Fixes and catalog updates

  • feat: send an API key to another base URL, read back effort words, and build the catalog list once by @dioKaratzas in #31

Other changes

  • refactor: share the connection, key and header types, and lay out each module by @dioKaratzas in #30

Full Changelog: 1.0.0...1.0.1

1.0.0

Choose a tag to compare

@dioKaratzas dioKaratzas released this 02 Nov 21:52
a6f2051

Release: major

The first stable release. OpenRouter's models work through Apple's Foundation Models API, and the public API is now settled: from here on, a breaking change comes only in a new major version.

.package(url: "https://github.com/dioKaratzas/swift-language-models", from: "1.0.0")

Breaking changes since 0.9.5

  • Shared metadata moves to the core: LanguageModelMetadataKey, FinishReason, Citation and ModelReasoning. OpenRouter-only keys start with openRouter..
  • Types with a single parent are nested under it, such as OpenRouterOptions.AutoRouter and OpenRouterRouting.Sort. Closed enums become open vocabularies, and the Bool? routing settings become the Permission and Requirement enums.
  • OpenRouterProvider and providers() become OpenRouterEndpoint and endpoints().
  • LanguageModelsLogging.minimumLevel takes Apple's OSLogType, and the Pareto router's price cap is a Decimal.
  • Errors map more precisely:
    • a URLError is rethrown as it is;
    • a 504 is a timeout;
    • a spending budget that resets is rateLimited;
    • a rejected image is unsupportedTranscriptContent;
    • token_limit_exceeded gets its own OpenRouterError code.

New

  • A guided answer that breaks a guide throws a ParsingError whose underlyingError is GuideViolations, naming each value's path, keyword, value and limit.
  • OpenRouterOptions.parallelToolCalls, a price cap for the Pareto router, and the OpenRouterPlugin vocabulary.
  • The one retry of a briefly unavailable gateway waits for a Retry-After of up to 10 seconds; a longer one throws at once, with the wait on the error.

Fixes

  • Requests: the API key stays on a redirect to the same host; only the settings the app asked for are sent; .off turns reasoning off on a model that can stop reasoning, even when none isn't among its levels.
  • Answers: a guided answer cut off at the token limit throws; tool-call arguments must be a whole JSON object; reasoning goes back as the model sent it; server-sent events follow every line-break rule; whole-number guides compare exactly.
  • Logging: a host's error message stays out of the log.
  • Catalog: an update can't deprecate a model the module's own code uses, and removing a model renames no other model's static.
  • Docs: a response cache hit runs the answer's tool calls again.

Under the hood

OpenRouter's requests now go through a shared Chat Completions engine, which builds, sends, retries and streams each request, while OpenRouter adds only what its API does differently, as typed values. This changes no public API and no request: the exact bytes of each request and answer are pinned by tests. It prepares the package for more providers.

What's Changed

Breaking changes

  • feat!: settle the 1.0 API, share a provider core, and fix what the pre-release review found by @dioKaratzas in #27

Other changes

  • refactor: send Chat Completions requests through typed provider dialects by @dioKaratzas in #28

Full Changelog: 0.9.5...1.0.0

0.9.5

Choose a tag to compare

@github-actions github-actions released this 02 Nov 17:24
4d4d00c

Release: patch

OpenRouter models and words

  • Adds z-ai/glm-5.3-flashx-legal.
  • Deprecates nousresearch/hermes-3-llama-3.1-405b as removed: OpenRouter stopped listing it on 2026-11-02.
  • Deprecates nousresearch/hermes-3-llama-3.1-70b as removed: OpenRouter stopped listing it on 2026-11-02.

OpenRouter model data

  • google/gemma-4-26b-a4b-it: maximumOutputTokens 235,929 → 32,768.
  • google/gemma-4-31b-it: supportedParameters adds max_completion_tokens.
  • meta-llama/llama-3.2-3b-instruct: maximumOutputTokens 117,964 → 72,000.
  • meta/muse-spark-open: maximumOutputTokens 131,072 → 943,718.
  • openai/gpt-oss-20b: maximumOutputTokens 117,964 → 32,768.
  • qwen/qwen3.8-27b: contextSize 1,000,000 → 1,024,000.
  • x-ai/grok-4.7: supportedParameters adds stop, top_k.
  • ~deepseek/deepseek-v4-flash-latest: maximumOutputTokens 943,718 → 131,072.
  • ~x-ai/grok-latest: supportedParameters adds stop, top_k.
Fetch log
Fetched 380 OpenRouter models into Catalogs/openrouter.json.

What's Changed

Fixes and catalog updates

  • chore: update the model catalog by @swift-language-models-catalog[bot] in #26

Full Changelog: 0.9.4...0.9.5

0.9.4

Choose a tag to compare

@github-actions github-actions released this 01 Nov 17:21
d56fa9f

What's Changed

Fixes and catalog updates

  • fix: send the requested token limit without lowering it to the catalog's by @dioKaratzas in #23

Full Changelog: 0.9.3...0.9.4

0.9.3

Choose a tag to compare

@github-actions github-actions released this 01 Nov 14:34
970e25d

Release: patch

OpenRouter models and words

  • Deprecates z-ai/glm-4.7: OpenRouter retires it on 2026-12-31.

OpenRouter model data

  • deepseek/deepseek-v4-pro-0813: maximumOutputTokens 393,216 → 943,718.
  • openai/gpt-oss-20b: maximumOutputTokens 32,768 → 117,964.
  • z-ai/glm-4.7: expirationDate none → 2026-12-31.
  • ~deepseek/deepseek-v4-flash-latest: maximumOutputTokens 131,072 → 943,718.
Fetch log
Fetched 381 OpenRouter models into Catalogs/openrouter.json.

What's Changed

Fixes and catalog updates

  • chore: update the model catalog by @swift-language-models-catalog[bot] in #21

Full Changelog: 0.9.2...0.9.3