Skip to content

feat(verathos): add Verathos provider with four decision models - #10633

Open
roykollensvendsen wants to merge 1 commit into
anomalyco:devfrom
roykollensvendsen:add-verathos
Open

roykollensvendsen wants to merge 1 commit into
anomalyco:devfrom
roykollensvendsen:add-verathos

Conversation

@roykollensvendsen

@roykollensvendsen roykollensvendsen commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Adds Verathos Decide (Bittensor subnet 96), which serves open-weight decision models on POST /v1/systemone in the System One request and answer format. It has no chat completions endpoint. @aizorr0, this replaces #7243, which closed as stale after Verathos moved from chat models to decision models; please say if anything here doesn't match how you serve them.

Changes

  • providers/verathos/: provider.toml (VERATHOS_API_KEY, https://api.verathos.ai/v1), logo.svg (Verathos' own favicon with the fill set to currentColor) and four model files. provider.toml sets opencodeai = "none", since Verathos has no chat API for the provider default to describe. All four are v2 v2_only files with base_model, an [api.systemone] table (with sdk = { aisdk = "@ai-sdk/typesafe-ai", opencodeai = "@opencode/ai/providers/typesafe-ai" }, as AMD, Baseten and Melious set it), cost and the host's real deltas:
Model Input $/MTok Context here Delta from the lab entry
kev-4b 0.015 65,536 none
clef-flash 0.02 65,536 context capped (the lab entry is 262,144), temperature = false (System One has no temperature field, as on Melious); modalities inherited from the lab, as on Melious and OpenRouter
d3-flash 0.02 16,384 text only, context capped
d3-mini 0.015 16,384 text only, context capped

The D3 files narrow input to text and keep output = ["decision"] next to it, because the v2 schema requires both keys in a provider file's [modalities]: without output, bun validate fails on modalities.output: Required.

Output is 0 everywhere: decision models generate no text, and Verathos bills input tokens only.

Sources (accessed 2026-10-20)

Live check (2026-10-20, with a Verathos key)

  • One text request per model returned 200, and usage.input_tokens times the listed price matched the file.
  • An image request to clef-flash returned 200 (usage.image_tokens 67). The same image to kev-4b, d3-flash and d3-mini returned 400 invalid_request ("reads text only"). That is why the D3 entries are text only.
  • Each model refused a state just over its max_state_tokens with 413 too_large. d3-flash accepted 16,158 tokens of prose, and its real tokenizer, not the documented 4 characters per token, decides the cap.
  • Total spend: under $0.001.

Test plan

  • bun validate
  • bun run test in packages/sdk (25 pass)
  • v1 output against upstream/dev: identical (Verathos is v2 only, so v1 does not list it)
  • v2 output: four verathos models, type decision, with the prices, limits and modalities above
  • bun test test/generate.test.ts in packages/core: the new test passes, and fails without the generator change

🤖 Generated with Claude Code

https://claude.ai/code/session_018k8EL6s5hEtTTMJ8Jjd4Ls

@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 Oct 20, 2026
@roykollensvendsen

Copy link
Copy Markdown
Contributor Author

A sync module for these files is ready as draft #10666, stacked on this PR. It keeps prices, max_state_tokens and input modalities current from the public /v1/models, never creates or deletes files, and leaves the four files here unchanged against today's list. I'll rebase it onto dev and mark it ready once this merges.

@github-actions github-actions Bot removed the reviewer: ready Automated review found no actionable items label Oct 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Action items

  • [medium] [possible mistake] models/vllm-sr/d3-mini.toml:28 - Check: Lab limit.context must reflect documented usable context, not raw architecture max. Why: This sets 262_144 from max_position_embeddings because the card states none, while same-family siblings models/vllm-sr/d3.toml and d3-flash.toml use 32_768 from serving docs; claiming 8× larger context for the smaller 4B sibling from a config field is internally inconsistent and risks routing oversized states to the lab limit. Action: Provide a direct source that d3-mini weights serve 262,144 usable tokens, or align the lab limit methodology with the d3/d3-flash siblings.

@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 Oct 21, 2026
@github-actions github-actions Bot removed the reviewer: ready Automated review found no actionable items label Oct 21, 2026
@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 Oct 21, 2026
@github-actions github-actions Bot removed the reviewer: ready Automated review found no actionable items label Oct 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Action items

  • [high] [violation] providers/verathos/models/clef-flash.toml:9 - Check: Provider base_model files must be override-only and never restate identical data. Why: input = ["text", "image/png", "image/jpeg", "image/webp"] is byte-identical to models/cloudflare/clef-flash.toml input, so it is not a delta despite the PR table claiming it as one. Action: Drop the identical input line and keep only real deltas in [modalities].
  • [high] [violation] providers/verathos/models/d3-flash.toml:10 - Check: Provider base_model files must keep only real deltas. Why: output = ["decision"] is identical to models/vllm-sr/d3-flash.toml output; [limit]/[modalities] objects deep-merge so input can be overridden alone. Action: Remove output = ["decision"] and keep only input = ["text"].
  • [high] [violation] providers/verathos/models/d3-mini.toml:10 - Check: Provider base_model files must keep only real deltas. Why: output = ["decision"] is identical to the new models/vllm-sr/d3-mini.toml output in the same PR; only the text-only input cap is a real delta. Action: Remove output = ["decision"] and keep only input = ["text"].
  • [medium] [possible mistake] providers/verathos/models/clef-flash.toml:10 - Check: System One modalities.output must match host behavior and lab/peer evidence. Why: Lab models/cloudflare/clef-flash.toml is output = ["text"] and same-surface System One peers providers/melious/models/clef-flash.toml and providers/openrouter/models/cloudflare/clef-flash.toml keep output = ["text"] with structured_output, while this file flips to output = ["decision"] without cited evidence for the difference. Action: Verify against https://api.verathos.ai/v1/models / https://verathos.ai/docs/api whether Verathos returns decision vs text-structured output on POST /v1/systemone, and either cite it in the leading comment or align to ["text"] like peers.

@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 Oct 22, 2026
@github-actions github-actions Bot removed the reviewer: ready Automated review found no actionable items label Oct 23, 2026
@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 Oct 23, 2026
Verathos Decide (Bittensor SN96) serves open-weight decision models on
POST /v1/systemone in the System One format. Adds the provider, its logo
and four v2 v2_only model files: kev-4b, clef-flash, d3-flash and
d3-mini, priced from the public GET /v1/models list.

Kev 4B and D3 Mini had no lab entry, so this adds v2_only lab files
models/jaredpalmer/kev-4b and models/vllm-sr/d3-mini (matching its d3
and d3-flash siblings) from their Hugging Face model cards. d3-flash
uses the existing vllm-sr/d3-flash.

v1 generation now leaves out a provider whose models are all v2_only
instead of failing with "has no models" (the same change as in anomalyco#10818);
the rest of the v1 output is unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018k8EL6s5hEtTTMJ8Jjd4Ls
@github-actions github-actions Bot removed the reviewer: ready Automated review found no actionable items label Oct 23, 2026
@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 Oct 23, 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