Skip to content

feat(tzafon): add Tzafon provider#3039

Open
eddieogola wants to merge 4 commits into
anomalyco:devfrom
eddieogola:add-tzafon-provider
Open

feat(tzafon): add Tzafon provider#3039
eddieogola wants to merge 4 commits into
anomalyco:devfrom
eddieogola:add-tzafon-provider

Conversation

@eddieogola

Copy link
Copy Markdown

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, doc points at the live pricing page (https://docs.lightcone.ai/guides/pricing/)
  • providers/tzafon/logo.svg — square viewBox, currentColor fill (adapted from Tzafon's icon mark)
  • providers/tzafon/models/tzafon.northstar-cua-fast.toml — CUA model, image input, tool calling
  • providers/tzafon/models/tzafon.northstar-cua-fast-1.6.toml — same shape, newer/smaller-context variant; priced the same as northstar-cua-fast since it isn't broken out separately on the pricing page yet
  • packages/core/src/sync/providers/tzafon.ts — sync module registered under the direct group. It only reconciles release_date from the live /v1/models listing and never auto-creates or auto-deletes models, since that endpoint doesn't expose authoritative pricing/limits/modalities. New/unmatched remote IDs are reported via skippedNotice, not silently created or dropped.

Scoped out for now: tzafon.sm-1 and tzafon.northstar-cua-faster/-faster-1.6 are intentionally not included in this PR — see Verification notes below.

Verification

  • Data verified live against api.tzafon.ai (2026-07-02) with a regular-user API key — context limits probed via oversized max_completion_tokens, and the /v1/models listing is key-scoped to public tzafon.* models only (never internal checkpoints, regardless of key).
  • bun validate passes clean.
  • bun models:sync tzafon --dry-run is clean (0 created, 0 updated, 0 removed).
  • opencode end-to-end: built 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 for tzafon.northstar-cua-fast; a real chat completion succeeded for tzafon.northstar-cua-fast-1.6.
  • tzafon.sm-1 is excluded from this PR: it responds to plain completions, but its backend rejects any request with tool_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-1 cannot 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-faster is documented on the pricing page but returns model not found on 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 validate
  • bun models:sync tzafon --dry-run
  • opencode: real completion + tool call against tzafon.northstar-cua-fast
  • opencode: real completion against tzafon.northstar-cua-fast-1.6

@eddieogola eddieogola marked this pull request as ready for review July 5, 2026 09:33
@eddieogola eddieogola marked this pull request as draft July 5, 2026 09:34
@eddieogola eddieogola force-pushed the add-tzafon-provider branch from a0a379d to 42e820d Compare July 5, 2026 09:36
@eddieogola eddieogola marked this pull request as ready for review July 5, 2026 09:36
@eddieogola eddieogola marked this pull request as draft July 6, 2026 01:54
@eddieogola eddieogola force-pushed the add-tzafon-provider branch from 42e820d to 1830930 Compare July 6, 2026 01:55
@eddieogola eddieogola marked this pull request as ready for review July 6, 2026 01:56
@eddieogola eddieogola marked this pull request as draft July 7, 2026 07:19
eddieogola and others added 4 commits July 7, 2026 10:22
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>
@eddieogola eddieogola force-pushed the add-tzafon-provider branch from 1830930 to 1e253b7 Compare July 7, 2026 07:23
@eddieogola eddieogola marked this pull request as ready for review July 7, 2026 07:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant