43 Commits

Author SHA1 Message Date
Aiden Cline 11304b3bba fix(sync): track missing Pioneer and Ofox models (#4125) 2026-08-06 13:15:34 -05:00
JC f658a67277 fix(sync): map CrossModel structured output (#4038)
Co-authored-by: hujuncheng <hujuncheng@baidu.com>
2026-08-04 08:42:32 -05:00
John Costa 465d15fb33 feat(requesty): syncing script and all models added (#3856)
* feat(requesty): provider sync script to get models from /v1/models/managed

Requesty has "managed" models, which are provider agnostic.

* feat(requesty): syncing all models from requesty
2026-08-04 08:22:23 -05:00
Michael Gasperini d4f68b474e fix(chutes): declare reasoning toggles instead of empty options (#4005)
* fix(chutes): declare reasoning toggles instead of empty options

Every Chutes model with `reasoning = true` carried
`reasoning_options = []`, which asserts that the host exposes no
caller-facing reasoning control. That is not the case: Chutes serves
these models on vLLM and forwards `chat_template_kwargs`, so the
underlying chat templates' thinking switches are reachable over the
wire.

Ten models are switched to `[{ type = "toggle" }]`; each one is
verified twice, against the model's published chat template and
against a live request to this host. `Qwen3-235B-A22B-Thinking-2507-TEE`
keeps `[]`: its chat template exposes no thinking switch and the live
request confirms reasoning cannot be turned off.

* fix(chutes): keep authored reasoning options across sync

The toggles added in the previous commit were not durable. `buildChutesModel`
always emitted `reasoning_options: []`, and `preserveReasoningOptions` returns
early whenever the synced model defines the field at all, so the branch that
restores authored options was unreachable for this provider. The next
`bun chutes:sync` would have reset all ten models to an empty list.

Leaving the field unset in the sync restores the intended behaviour: authored
options are preserved, and reasoners with no entry yet still default to `[]`.
Verified by running `bun chutes:sync` against the live endpoint with the
toggles in place — 13 unchanged, all ten toggles intact.

The provider header and sync notes both still claimed Chutes exposes no
caller-facing reasoning control, which contradicted the model files. Both now
document the verified `chat_template_kwargs` paths and record that the control
is authored per model rather than derived from `/v1/models`.
2026-08-03 14:26:14 -05:00
c99e 22aefb5438 feat(tinfoil): sync pricing from public catalog (#3868)
Co-authored-by: OpenAI Codex <noreply@openai.com>
2026-07-30 21:55:19 -05:00
Matthew Feroz e6d37bdcae feat(sync): add Merge Gateway model sync (#3249)
* feat(sync): add Merge Gateway model sync

* fix(merge-gateway): document reasoning controls

* fix(sync): preserve partial Merge Gateway metadata

* fix(merge-gateway): align route metadata sync

* fix(merge-gateway): treat supports_reasoning as a positive-only signal

The public /v1/models schema does not document supports_reasoning, and the
live catalog populates it inconsistently across vendor routes: the same
model reports true on one route and false on another (claude-opus-4-6 is
false via anthropic, true via bedrock), and reasoning-only models such as
deepseek-r1 report false on their sole route. Flipping reasoning = false
from that field erased curated reasoning metadata on 42 models.

- only confirm reasoning when an available route reports
  supports_reasoning = true (always accompanied by route reasoning
  metadata), defaulting reasoning_options to [] when none are curated
- preserve curated reasoning metadata when routes report false or omit
  the field
- restore the 42 erased reasoning entries (claude, deepseek-r1, gpt-oss,
  gemma, qwen, glm, nemotron, fugu) from curated values
- re-sync against the live catalog: gemini-embedding-001 added, route
  cache_read prices and display names ingested, qwen3.5-27b limits and
  modalities updated

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore(merge-gateway): refresh model catalog

* fix(merge-gateway): align synced model metadata

* docs(sync): trim Merge Gateway notes

* fix(merge-gateway): remove stale Qwen aliases

* test(merge-gateway): document sync coverage

* fix(merge-gateway): mark chat models as non-reasoning

---------

Co-authored-by: Matthew Feroz <matt.feroz@merge.dev>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-07-29 21:58:24 -05:00
Aiden Cline 573c757bd2 fix(sync): disable Google missing-model tracking (#3686) 2026-07-23 18:24:31 -05:00
Aiden Cline 8735bc603b fix(sync): dispatch missing models to issue fixer (#3652) 2026-07-23 17:05:29 -05:00
Aiden Cline f5ce9c666f fix(sync): stop unreliable missing-model issue spam (#3651) 2026-07-23 16:46:15 -05:00
Aiden Cline 8b50f98de3 fix(sync): harden missing-model issue dedupe and label failures
- Fail closed with a clear error when gh label create fails, instead of
  surfacing one opaque issue-create error per model
- Raise the dedupe list window to 1000 and refuse to create issues when
  the window is full, since older closed titles could be truncated and
  create duplicates
- Document the accepted one-time first-run issue volume for skipCreates
  providers in sync.md
2026-07-23 12:36:36 -05:00
Aiden Cline 759ea015b2 fix(sync): do not open missing-model issues for xAI alias IDs
Alias rows expanded in parseModels exist only to update already-cataloged
alias TOMLs. Their canonical row carries the missing-model signal, so
sourceID now returns undefined for alias rows and the sync runner skips
undefined source IDs, preventing false-positive [missing-model] issues
like 'xai: <model>-latest' for models cataloged under canonical IDs.
2026-07-23 12:17:15 -05:00
Aiden Cline cd925adab8 refactor(sync): simplify missing-model issues and fix ops hazards
- Shrink helper to title-based dedupe (open+closed); drop marker parser
- Opt-in openIssues (=== true); enable only under GITHUB_ACTIONS by default
- Issue-fixer skips [missing-model] titles (hand-authored metadata only)
- Docs match the leaner behavior
2026-07-22 23:19:59 -05:00
Aiden Cline 3e4aae9ab7 fix(sync): harden missing-model GitHub issue opens
- Parse marker null-safely; only accept double-quoted JSON attrs
- Dedupe via labeled issue list + in-memory match (fail closed on list errors)
- Per-model create errors keep notices; ensureLabel checks exit code
- Open issues by default only in CI; require --open-issues locally
- Pass GH_TOKEN to the sync workflow step so hourly runs can create issues
2026-07-22 20:54:32 -05:00
Aiden Cline 0ff5e36ef7 refactor(sync): drop openIssuesForMissing; skipCreates opens issues
skipCreates already means we won't auto-create TOMLs, so missing remote
models should always open deduped GitHub issues. One flag is enough.
2026-07-22 20:23:06 -05:00
Aiden Cline 5b2e20cdea feat(sync): open deduped GitHub issues for missing models
Add openIssuesForMissing for providers that cannot auto-create TOMLs.
Each skipped remote model ID opens one labeled issue with a stable
title/marker so reruns do not duplicate, and the issue fixer can PR adds.
2026-07-22 13:25:15 -05:00
Aiden Cline c106790181 Merge pull request #3147 from anomalyco/fix/digitalocean-catalog-sync
fix(sync): use DigitalOcean model catalog
2026-07-10 10:35:04 -05:00
Aiden Cline 14431d5d10 fix(sync): use DigitalOcean model catalog 2026-07-09 11:50:02 -05:00
Levi Hadad 4d8931d4af Merge branch 'dev' into add-kilo-sync 2026-07-07 15:12:42 +03:00
Aiden Cline 61b21e0c75 fix(sync): harden OpenAI availability tracking 2026-07-06 16:01:51 -05:00
Aiden Cline 24b57545c3 feat(sync): migrate DigitalOcean model sync 2026-07-06 11:01:07 -05:00
Aiden Cline ede8fbf42e feat(sync): track OpenAI model availability 2026-07-05 13:25:48 -05:00
Levi Hadad f9e613dcb3 docs(sync): document xai sync command 2026-07-02 17:40:56 +03:00
Levi Hadad eb02a4d5fb feat(sync): add kilo provider
Implement the Kilo Gateway sync provider to fetch and synchronize model
metadata.

- Add `kilo` provider implementation
- Add `kilo:sync` script to `package.json`
- Update CI workflow to include `KILO_API_KEY`
- Add `kilo` to the `aggregators` group
- Update `sync.md` documentation
2026-07-02 17:31:56 +03:00
thestreamcode e25bf46ee6 chore(chutes): wire catalog into the model sync system
Replace the standalone generate-chutes.ts with a SyncProvider module
(src/sync/providers/chutes.ts) registered in the sync system, so the
Chutes catalog is kept current by the automated model sync instead of a
hand-run generator. Resync the catalog to the live llm.chutes.ai/v1/models
set (13 models).

- reasoning_options: emit [] — the API advertises a reasoning capability
  but exposes no toggle/effort parameter, so there is no provider evidence
  for a reasoning option.
- Qwen3-235B-A22B-Thinking-2507-TEE: carry checkpoint-specific metadata
  inline instead of factoring it through the generic alibaba/qwen3-235b-a22b
  base (whose context window and capabilities differ).
- Mistral-Nemo-Instruct-2407-TEE references the canonical mistral/mistral-nemo
  via a base_model alias (its "unsloth" source org has no default mapping).
- Correct the inline models' release dates (Thinking-2507 -> 2025-07,
  DeepSeek-V3.2 -> 2025-12).
- Document the provider under "Chutes Notes" in sync.md.
2026-06-27 00:53:52 +02:00
Aiden Cline fc4a781c2f fix(ovhcloud): complete reasoning controls 2026-06-10 23:16:08 -05:00
Aiden Cline c4650219c3 fix(sync): drop stale reasoning options 2026-06-10 23:13:06 -05:00
Aiden Cline 9fb0474d1c feat(ovhcloud): add reasoning options 2026-06-10 23:13:06 -05:00
Aiden Cline 0ce7da24b6 [venice] Factor all models through metadata 2026-06-10 14:23:52 -05:00
Aiden Cline 4201586665 [venice] Remove models missing from API 2026-06-10 11:08:15 -05:00
Aiden Cline 25c3d6cd23 [venice] Migrate generator to sync runner 2026-06-10 10:58:12 -05:00
Aiden Cline 909db75087 fix(sync): preserve base model output 2026-06-04 00:00:46 -05:00
Adam f6c6f04367 feat(models): add model metadata (#1974)
* feat(models): add model metadata

* feat(models): rename model metadata namespaces
2026-06-03 15:13:54 -05:00
Elias TOURNEUX b038f40b64 feat(ovhcloud): Add OVHcloud sync mode 2026-06-01 10:28:46 +02:00
Aiden Cline 89b834086a refactor: move sync implementation into core src 2026-05-21 18:06:25 -05:00
Aiden Cline 0e3cbe3c64 chore: automate provider sync jobs 2026-05-21 11:21:12 -05:00
Aiden Cline 6a74991397 chore(sync): isolate cloudflare credentials 2026-05-20 20:19:47 -05:00
Aiden Cline 31e56480b4 chore(sync): add cloudflare workers ai sync 2026-05-20 16:55:29 -05:00
Aiden Cline 1098981eb6 chore(sync): add xai model sync 2026-05-20 13:23:02 -05:00
Aiden Cline 5ceac8a58b updates 2026-05-19 23:43:01 -05:00
Aiden Cline f107afc57c sync 2026-05-19 22:56:50 -05:00
Aiden Cline 8c677f0134 sync google models 2026-05-19 15:58:06 -05:00
Aiden Cline 4f7194a3c8 test 2026-05-19 15:09:11 -05:00
Aiden Cline f65f0148da add sync guide 2026-05-19 15:08:44 -05:00