Skip to content

chore(kenari): refresh model catalog from the live endpoint - #7052

Open
doedja wants to merge 4 commits into
anomalyco:devfrom
doedja:chore/kenari-catalog-refresh-2026-09-14
Open

doedja wants to merge 4 commits into
anomalyco:devfrom
doedja:chore/kenari-catalog-refresh-2026-09-14

Conversation

@doedja

@doedja doedja commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Data-only refresh of the Kenari catalog against the live public
https://kenari.id/v1/models endpoint. 16 models added, 8 removed, 6
already-merged rows corrected. No adapter or sync code in this branch.

Related: #5727 (Kenari sync adapter) is still open from 2026-08-28. This
refresh is against current dev so the picker catalog can catch up
without waiting on that adapter.

Added (16)

Every field below comes from GET https://kenari.id/v1/models, which is
public and needs no key.

model id base_model reasoning_options from the endpoint
deepseek-v4-1-flash deepseek/deepseek-v4.1-flash toggle + ["low","high","max"]
gemini-3-8-flash google/gemini-3.8-flash ["low","medium","high"]
gpt-5-4 openai/gpt-5.4 ["none","low","medium","high","xhigh"]
gpt-6-astra openai/gpt-6-astra ["low","medium","high","xhigh","max"]
hy4-preview tencent/hy4-preview ["none","low","high"]
laguna-s-2-1:free poolside/laguna-s-2.1 toggle (Poolside first-party)
laguna-xs-2-1:free poolside/laguna-xs-2.1 toggle (Poolside first-party)
muse-spark-1-2 meta/muse-spark-1.2 ["minimal","low","medium","high","xhigh"]
muse-spark-1-2-contributor meta/muse-spark-1.2 same (name override, same as Meta first-party)
muse-spark-1-2-contributor:free meta/muse-spark-1.2 same
muse-spark-1-3 meta/muse-spark-1.3 ["minimal","low","medium","high","xhigh","max"]
muse-spark-1-3-contributor meta/muse-spark-1.3 ["minimal","low","medium","high","xhigh"]
muse-spark-1-3-contributor:free meta/muse-spark-1.3 same
nemotron-3-ultra-550b-a55b:free nvidia/nemotron-3-ultra-550b-a55b toggle + ["medium","high"]
north-mini-code:free cohere/north-mini-code-1-0 ["none","high"] (Cohere first-party)
qwen3-8-flash alibaba/qwen3.8-flash toggle + ["low","medium","xhigh"]

Contributor rows follow Meta's own files: same base_model, display
name override. north-mini-code:free folds onto
cohere/north-mini-code-1-0.

Corrected (6 existing rows)

model id was now why
deepseek-v4-flash ["high","xhigh"] toggle + ["low","high","max"] DeepSeek lab + Kenari $.reasoning.enabled
deepseek-v4-pro ["high","xhigh"] toggle + ["high","max"] same
nemotron-3-super-120b-a12b effort ["low","medium"] toggle + ["low","medium"] NVIDIA toggle; Kenari forwards $.reasoning.enabled
nemotron-3-super-120b-a12b:free effort ["low","medium"] same same
nemotron-3-ultra-550b-a55b effort ["medium","high"] toggle + ["medium","high"] same
gpt-oss-20b full inline TOML base_model = "openai/gpt-oss-20b" lab entry exists now

Removed (8)

Confirmed absent from the live response:

deepseek-v4-flash:free, gemini-3-5-flash, glm-5-1, grok-build-0-1,
kimi-k2-6:free, kimi-k2-7-code:free, mistral-large:free,
nemotron-3-nano-30b-a3b

Skipped

Video endpoints, left out of this picker list:

gemini-omni-flash, veo-3.1-lite

No canonical models/ entry to inherit from, so not authored from the
feed (the endpoint still has no name or release-date data):

agnes-2-0-flash:free, agnes-2-5-flash:free, grok-imagine-image,
grok-imagine-image-quality, kokoro-tts, mimo-v2-5-tts,
minimax-speech-2-8-hd, minimax-speech-2-8-turbo, nano-banana-2,
nano-banana-2-lite, nano-banana-pro, nex-n2-5-pro:free

grok-imagine-image is not folded onto grok-imagine-image-2.0. That
would give two live IDs the same lab entry.

Image (gpt-image-2, grok-imagine-image-2-0) and audio
(whisper-large-v3-turbo, gemini-3-1-flash-tts) stay.

Kenari is a multi-model OpenAI-compatible relay. It forwards
$.reasoning.enabled and reasoning_effort. It does not expose Alibaba
thinking_budget, so budget_tokens is not authored.

Cost stays 0

Kenari bills a prepaid wallet in Indonesian rupiah. A USD per-token
figure here would be a currency conversion that drifts. Same treatment
as the previous merged refreshes.

Verification

  • Source: GET https://kenari.id/v1/models on 2026-09-14 (81 live models)
  • bun ./packages/core/script/validate.ts exits 0 (67 Kenari entries after merge)

Sync providers/kenari with GET https://kenari.id/v1/models: 18 added, 8
removed, 6 existing rows corrected. Cost stays 0 (IDR wallet).
Leave gemini-omni-flash and veo-3.1-lite out of providers/kenari.
Video endpoints are not part of this picker list.
@github-actions

Copy link
Copy Markdown
Contributor

Action items

  • [high] [violation] providers/kenari/models/nemotron-3-ultra-550b-a55b.toml:2 - Check: Relay reasoning_options must not be [] from missing endpoint fields when lab/peers expose controls. Why: This PR replaces prior Kenari effort ["medium", "high"] (aligned with OpenRouter peers) with [] because the catalog omitted options. Lab NVIDIA uses toggle; OpenRouter uses toggle + medium/high. Empty means no caller control, not “not published.” Same regression on the free twin. Action: Restore real controls (at least prior/openrouter effort, and toggle if Kenari forwards on/off); only keep [] with affirmative proof this host has no control. Apply the same fix to nemotron-3-ultra-550b-a55b:free.toml, nemotron-3-super-120b-a12b.toml, and nemotron-3-super-120b-a12b:free.toml.
  • [high] [violation] providers/kenari/models/qwen3-8-flash.toml:2 - Check: Multi-model relay of a controlled reasoner must copy lab/same-surface peer options, not invent [] from catalog gaps. Why: base_model = "alibaba/qwen3.8-flash" is a reasoner; Alibaba first-party and peers (OpenRouter, Vercel) expose toggle and often budget_tokens / effort. Authoring reasoning_options = [] because Kenari’s models list published none is the documented anti-pattern and hides caller controls. Action: Set options from Alibaba + openai-compatible peers that match what Kenari actually forwards (typically toggle + budget_tokens and/or lab effort); do not leave [] without host proof of no control.
  • [high] [violation] providers/kenari/models/north-mini-code:free.toml:3 - Check: Relay baseline = lab + peers for that model. Why: PR rationale is reasoning: true, none published → []. Cohere first-party is effort ["none", "high"]; other free hosts keep controls. [] here is uncertainty, not affirmative no control. Action: Use [{ type = "effort", values = ["none", "high"] }] (or Kenari-verified equivalent); only use [] if the host truly has no reasoning parameter.
  • [high] [violation] providers/kenari/models/laguna-s-2-1:free.toml:3 - Check: Same relay [] rule for models with lab toggle. Why: Poolside first-party Laguna S/XS 2.1 uses toggle (chat_template_kwargs.enable_thinking). Catalog omission is not evidence Kenari has no control. Action: Match lab/peers (toggle with a leading wire comment if supported, or verified effort); apply the same to laguna-xs-2-1:free.toml. Do not use [] solely because the endpoint omitted options.

Stop authoring empty [] from a missing catalog list. Kenari forwards
$.reasoning.enabled and reasoning_effort, so copy lab/peer controls:
Nemotron toggle plus prior OpenRouter efforts, Qwen3.8 Flash toggle plus
lab low/medium/xhigh, North Mini Code none/high, Laguna S/XS toggle.
@doedja

doedja commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the reviewer action items on the eight [] files.

Kenari is a multi-model relay. It forwards $.reasoning.enabled and reasoning_effort. Empty lists from a missing /v1/models field are gone.

  • Nemotron Super/Ultra (paid and free): toggle plus the prior OpenRouter effort lists (low/medium on Super, medium/high on Ultra). NVIDIA first-party is toggle-only; Kenari also forwards effort, so both stay.
  • qwen3-8-flash: toggle plus Alibaba lab effort low/medium/xhigh. No budget_tokens; Kenari has no thinking_budget field.
  • north-mini-code:free: Cohere first-party effort none/high (no toggle; none is the off switch).
  • Laguna S/XS 2.1 free: Poolside first-party toggle.

bun ./packages/core/script/validate.ts still exits 0.

@github-actions

Copy link
Copy Markdown
Contributor

Action items

  • [high] [violation] providers/kenari/models/deepseek-v4-1-flash.toml:3 - Check: DeepSeek V4 on a relay that exposes on/off must copy lab toggle + effort (not effort alone). Why: Lab Flash/V4.1 Flash is toggle + low/high/max; this PR states Kenari forwards $.reasoning.enabled and adds that toggle for Nemotron/Laguna/Qwen, but the three DeepSeek rows only author effort. Callers lose the documented on/off control. Action: Add [[reasoning_options]] type = "toggle" (with a leading # Toggle: $.reasoning.enabled = true|false comment) alongside the existing effort list on deepseek-v4-1-flash.toml, deepseek-v4-flash.toml, and deepseek-v4-pro.toml (high/max for Pro).

Lab Flash/Pro expose on/off plus effort. Kenari forwards
$.reasoning.enabled, so the three DeepSeek rows now author toggle
alongside the existing effort lists.
@doedja

doedja commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

Latest reviewer item: DeepSeek V4 on this relay needs lab toggle plus effort, not effort alone.

deepseek-v4-1-flash, deepseek-v4-flash, and deepseek-v4-pro now author toggle ($.reasoning.enabled) next to the existing effort lists (low/high/max on Flash, high/max on Pro). Matches DeepSeek first-party.

bun ./packages/core/script/validate.ts still exits 0.

@github-actions

Copy link
Copy Markdown
Contributor

No actionable findings.

@github-actions github-actions Bot added the reviewer: ready Automated review found no actionable items label Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

reviewer: ready Automated review found no actionable items

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant