Skip to content

Fix examples broken by SDK 5.12 and platform changes; add gap-filling samples - #81

Open
abhishekmishragithub wants to merge 1 commit into
mainfrom
fix/sdk-512-audit
Open

Fix examples broken by SDK 5.12 and platform changes; add gap-filling samples#81
abhishekmishragithub wants to merge 1 commit into
mainfrom
fix/sdk-512-audit

Conversation

@abhishekmishragithub

Copy link
Copy Markdown
Collaborator

Fixes (broken today)

  • governance: the merged sample imported a smallestai.agentic module that has never existed in any SDK release, and used invented signatures throughout (generate_response(transcript), AtomsCrewApp(agent=...), voice/language on the node). Rewritten on the real crew surface with working TealTiger guardrails: PII is redacted from the caller turn before the LLM sees it and from the reply before TTS, plus a per-call turn cap.
  • Mobile examples (react_native agent + widget setup scripts, RN atomsRest.ts, iOS AtomsRest.swift): the v1 versioning flow (/drafts, /versions/{v}/activate) now returns 404. Migrated to the v2 branches flow: resolve the live branch, PUT .../branches/{id}/draft, publish, then poll the branch until the async security scan closes the draft. Raw REST responses use camelCase and _id; the clients handle both key styles.
  • Hydra voices: the S2S voice catalog changed and every previously shipped id (wren, sloane, reed, ...) is rejected. Demo presets, the voice picker, and docs now use current voices (aria, maya, marin, sterling, kai, zoe).
  • README stubs: text-to-speech/voice-cloning and text-to-speech/sdk-usage replaced their "Coming Soon" text and removed-method snippets (add_voice, WavesClient.synthesize) with the current create_voice_clone / list_voice_clones / synthesize_tts patterns.

New examples (documented features with no cookbook coverage)

  • text-to-speech/word-timestamps-live: per-word timing frames on the TTS WebSocket, printed as live captions while the audio saves to WAV.
  • llm/tool-calling (new llm/ section): Electron function calling through the OpenAI-compatible /waves/v1 endpoint.
  • speech-to-speech/python-quickstart: minimal headless Hydra client (session.configure, real-time paced audio, VAD turn close, transcript streaming).
  • voice-agents/web_call_session: the new web-call session API (client.atoms.web_call.*) returning the room token/host and the calls.get follow-up.

How it was tested

All Python paths ran against api.smallest.ai with a real org key on smallestai 5.12.0: the governance agent answered a turn with the SSN in the transcript redacted before the LLM call (verified in logs); setup_agent.py created an agent, edited and published a branch draft through the scan poll, and went live (test agent archived afterward); word-timestamps returned 12 timed words plus audio; Electron executed a real tool round trip; web_call minted a live session; the Hydra quickstart streams and prints the reply transcript. Swift and TS clients are parse-checked; mobile flows still need a device test.

Known platform issues found (escalated separately, not fixable here)

  • wss /atoms/v1/agent/connect rejects every documented auth variant with 401 (register-call token and api-key+agent_id), which affects the merged mobile examples and PR recipe(voice-agents): agent_ws_client_tools — Atoms Agent WS client-tools sample #78; atoms.web_call LiveKit sessions work, suggesting the realtime transport moved.
  • Hydra sessions return transcript deltas but no response.output_audio.delta frames (July runs returned audio on the same flow).
  • voice-agents/atoms_sdk_web_agent uses npm atoms-client-sdk while docs now describe @smallest-ai/agent-sdk; both exist, migration is a follow-up.

… samples

Fixes:
- governance: the sample imported a smallestai.agentic module that has
  never existed and used invented node/tool/app signatures. Rewritten on
  the real crew surface (OutputCrewNode subclass, ToolRegistry.discover,
  AtomsCrewApp setup_handler) with working TealTiger guardrails: PII is
  redacted from the caller turn before the LLM sees it and from the
  reply before TTS, with a per-call turn cap.
- Mobile examples (react-native x2, iOS): the v1 agent-versioning flow
  (drafts/versions/activate) now 404s. Migrated to the v2 branches flow:
  resolve the live branch, PUT the branch draft, publish, and poll the
  branch until the async security scan closes the draft. Raw REST
  responses use camelCase and _id, handled in the py/ts/swift clients.
- Hydra: the voice catalog changed and the old ids are rejected.
  Presets, voice picker, and docs move to current voices (aria, maya,
  sterling, ...).
- voice-cloning and sdk-usage READMEs: replaced Coming Soon stubs and
  removed-method snippets (add_voice, WavesClient.synthesize) with the
  current create_voice_clone / list_voice_clones / synthesize_tts
  patterns and doc links.

New examples for documented-but-uncovered features:
- text-to-speech/word-timestamps-live: per-word timing frames on the
  TTS WebSocket, printed as live captions.
- llm/tool-calling: Electron function calling through the
  OpenAI-compatible /waves/v1 endpoint, plus an llm section index.
- speech-to-speech/python-quickstart: minimal headless Hydra client
  with real-time pacing and VAD turn close.
- voice-agents/web_call_session: the web-call session API (token,
  room, conversation id) with the calls.get follow-up.
@crim-app

crim-app Bot commented Sep 6, 2026

Copy link
Copy Markdown

crim doesn't review pull requests automatically here.

Comment crim review on this pull request whenever you want a review.

@vercel

vercel Bot commented Sep 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
smallest-showcase Ready Ready Preview Sep 6, 2026 1:30pm UTC

Request Review

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