Skip to content

feat: consume @jambonz/schema ^0.4.0 — llm optional, no vendor enum#18

Merged
davehorton merged 1 commit into
mainfrom
feat/schema-0.4-llm-optional
Jul 16, 2026
Merged

feat: consume @jambonz/schema ^0.4.0 — llm optional, no vendor enum#18
davehorton merged 1 commit into
mainfrom
feat/schema-0.4-llm-optional

Conversation

@davehorton

@davehorton davehorton commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

What

Updates the SDK to @jambonz/schema@^0.4.0 and reconciles the TS types with the current schema.

  • llm is now optional on the agent verb, and llm.vendor/llm.model are optional within it — matching schema 0.4.0. When omitted, the server resolves them from the application's default LLM (exactly like stt/tts). AgentVerb.llm, AgentLlm.vendor, and AgentLlm.model are now optional.
  • Retires the llm.vendor enum codegen. The schema intentionally has no vendor enum (so new LLMs don't require a schema release), so scripts/gen-llm-vendors.mjs and the generated LLM_VENDORS/LlmVendor union are removed. LlmVendor is now a free-form string; vendor is validated at runtime by the server against its registered @jambonz/llm adapters. Removed the gen:types/prebuild/pretypecheck scripts and the schema-drift test that guarded the union.
  • Schema-drift catch-up (needed to pass the drift tests after the bump): added dial.srtpEncryption and recognizer.xaiOptions, which landed in the schema between 0.3.19 and 0.4.0.

Breaking change

LLM_VENDORS (the exported vendor array) is removed, and LlmVendor widens from a union to string. Consumers relying on the union for exhaustiveness will need to adjust. Suggest a minor bump given 0.x.

Tests

npm test — 122 pass. Typecheck clean. Build (tsup) clean. The removed test was the LLM_VENDORS equals agent.schema.json llm.vendor.enum drift check, which no longer applies.

The agent verb's llm (and vendor/model) are now optional, falling back to the
application default like stt/tts. Retires the llm.vendor enum codegen
(gen-llm-vendors.mjs + generated union): vendor is free-form so new LLMs need
no schema release. Adds dial.srtpEncryption and recognizer.xaiOptions to match
the current schema.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@davehorton
davehorton merged commit a4eac3d into main Jul 16, 2026
1 check passed
@davehorton
davehorton deleted the feat/schema-0.4-llm-optional branch July 16, 2026 20: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