feat(tzafon): add Tzafon provider - #3039
Conversation
a0a379d to
42e820d
Compare
42e820d to
1830930
Compare
1830930 to
1e253b7
Compare
1e253b7 to
d6f3e85
Compare
|
Based on my review of the PR metadata, diff, AGENTS.md, README.md, sync.md, schema code, existing sync providers, and the convention in synced provider TOMLs, here are my findings:
|
|
I've reviewed the PR metadata, diff, AGENTS.md, README, sync.md, the reasoning-options audit skill, the schema, the sync runner, and comparable provider modules (xai, ovhcloud, openai). Here's my analysis. Checklist verification:
The one material factual claim that cannot be verified from the cited source is the 1.6 pricing.
|
|
I've now thoroughly reviewed the PR. Let me summarize my analysis: PR overview: Adds a new "Tzafon" provider (OpenAI-compatible) with two CUA models, a compliant logo, and a sync module registered in the Key checks performed:
No actionable findings. |
Adds Tzafon (Northstar CUA Fast, Northstar CUA Fast 1.6, SM-1) as an OpenAI-compatible provider, plus a sync module that reconciles release_date from the live /v1/models listing without auto-creating or auto-deleting entries (pricing/limits/modalities aren't authoritative from that endpoint yet). Data verified live against api.tzafon.ai on 2026-07-02 with a regular-user key (context limits probed via oversized max_completion_tokens; the /v1/models listing is key-scoped to public tzafon.* models only). Official submission from Tzafon, maintained by the team going forward. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
sm-1's backend currently rejects any request with tool_choice=auto (missing --enable-auto-tool-choice / --tool-call-parser server flags), which breaks it for opencode's default agent path. Excluding until that's fixed server-side; the sync module already reports it via skippedNotice rather than silently dropping it. northstar-cua-fast-1.6 isn't broken out separately on the pricing page yet, so it's priced the same as northstar-cua-fast per Tzafon's call. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Swaps in the current icon mark from lightcone.ai/assets/logos, padded to a square viewBox (source is 14x12) and using currentColor per models.dev's logo convention. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Move source citations and rationale (pricing evidence, limit-probe notes, capability-flag reasoning) into a single leading comment block above `name =` in both model TOMLs, matching the ovhcloud pattern. Comments placed between sections or above individual keys are silently dropped by the daily sync rewrite, since tzafon is registered in the `direct` sync group. - translateModel now builds the synced model through an explicit buildTzafonModel() that validates required fields are present on the existing local TOML and throws otherwise, instead of spreading a deepPartial ExistingModel into a return typed as SyncedFullModel. Mirrors the pattern in xai.ts/google.ts. Confirmed with `bunx tsc --noEmit` that this resolves the type mismatch the automated review flagged. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
15ca719 to
d85755b
Compare
Action items
|
docs.lightcone.ai/guides/pricing/ now lists tzafon.northstar-cua-fast-1.6 directly, at $0.50/M input — cite that instead of the prior "not yet published" note. The page's pricing table only carries one price per model (its Input/Output columns collapse into a single value), so output still isn't broken out for fast-1.6 there; cost.output remains an assumption equal to northstar-cua-fast's $1.50/M, now stated precisely as such per the automated review's request for a direct citation. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The pricing page's table has mislabeled headers: description text sits under "Input" and the sole price value sits under "Output" for every row, including northstar-cua-fast itself. Cross-referencing the page's own callout box (northstar-cua-fast: input $0.50/M, output $1.50/M) confirms the table's $0.50/M values are actually input prices despite the header. Spell that out in the comment instead of citing the literal (wrong) column label. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Use the canonical documentation URL (https://docs.lightcone.ai/) instead of the pricing subpage, matching the README's convention of linking the provider's documentation, not a specific guide page. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Action items
|
Tzafon fixed the pricing table's column headers. It now directly states tzafon.northstar-cua-fast-1.6 at $0.50/M input, $1.50/M output — no more inference from northstar-cua-fast's callout text needed. cost values are unchanged; only the citation is updated. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Action items
|
State the current pricing and limit facts plainly instead of noting probe dates, "was $X" price-drop history, or the pricing table's now- fixed column bug. A reader encountering these files fresh only needs the current numbers and their source, not the editing history behind them. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
No actionable findings. |
Summary
Adds Tzafon as an OpenAI-compatible provider (
@ai-sdk/openai-compatible,api = "https://api.tzafon.ai/v1"), an official submission from the Tzafon team with a commitment to keep these entries current.providers/tzafon/provider.toml— provider metadata,docpoints at the live pricing page (https://docs.lightcone.ai/guides/pricing/)providers/tzafon/logo.svg— square viewBox,currentColorfill (adapted from Tzafon's icon mark)providers/tzafon/models/tzafon.northstar-cua-fast.toml— CUA model, image input, tool callingproviders/tzafon/models/tzafon.northstar-cua-fast-1.6.toml— same shape, newer/smaller-context variant; priced the same asnorthstar-cua-fastsince it isn't broken out separately on the pricing page yetpackages/core/src/sync/providers/tzafon.ts— sync module registered under thedirectgroup. It only reconcilesrelease_datefrom the live/v1/modelslisting and never auto-creates or auto-deletes models, since that endpoint doesn't expose authoritative pricing/limits/modalities. New/unmatched remote IDs are reported viaskippedNotice, not silently created or dropped.Scoped out for now:
tzafon.sm-1andtzafon.northstar-cua-faster/-faster-1.6are intentionally not included in this PR — see Verification notes below.Verification
api.tzafon.ai(2026-07-02) with a regular-user API key — context limits probed via oversizedmax_completion_tokens, and the/v1/modelslisting is key-scoped to publictzafon.*models only (never internal checkpoints, regardless of key).bun validatepasses clean.bun models:sync tzafon --dry-runis clean (0 created, 0 updated, 0 removed).packages/web, ran opencode against both models with a regular-user key — a real chat completion and a real tool call (bash tool invocation) both succeeded fortzafon.northstar-cua-fast; a real chat completion succeeded fortzafon.northstar-cua-fast-1.6.tzafon.sm-1is excluded from this PR: it responds to plain completions, but its backend rejects any request withtool_choice: "auto"("auto" tool choice requires --enable-auto-tool-choice and --tool-call-parser to be set) — confirmed via direct API calls, not an opencode quirk. Since opencode's default agent always sends tools,sm-1cannot be used from opencode until Tzafon relaunches that model's server with the right vLLM flags. Will follow up with a separate PR once that's fixed.tzafon.northstar-cua-fasteris documented on the pricing page but returnsmodel not foundon the live API — excluded per the "don't list models regular users can't reach" guidance. This is a Tzafon-side docs/API mismatch being tracked separately, not a models.dev catalog decision.Test plan
bun validatebun models:sync tzafon --dry-runtzafon.northstar-cua-fasttzafon.northstar-cua-fast-1.6