feat(tzafon): add Tzafon provider#3039
Open
eddieogola wants to merge 4 commits into
Open
Conversation
a0a379d to
42e820d
Compare
42e820d to
1830930
Compare
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>
1830930 to
1e253b7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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