Skip to content

feat!: 6.0 namespace rename (atoms→agents, waves→speech) - #89

Draft
abhishekmishragithub wants to merge 2 commits into
mainfrom
feat/6.0-agents-speech
Draft

feat!: 6.0 namespace rename (atoms→agents, waves→speech)#89
abhishekmishragithub wants to merge 2 commits into
mainfrom
feat/6.0-agents-speech

Conversation

@abhishekmishragithub

Copy link
Copy Markdown
Collaborator

What

Renames the two SDK product surfaces to industry-standard names, as the 6.0 major:

  • atomsagents (voice-agent platform)
  • wavesspeech (TTS / STT / voices)

Generated from the matching namespace rename in the Fern config (separate PR). The wire API, auth, method signatures, and observability are unchanged — this is an SDK-surface rename plus a soft backward-compat layer.

Backward compatibility (soft, removed in the next major)

Old names keep working and emit a DeprecationWarning:

  • client.atoms / client.wavesclient.agents / client.speech
  • attribute access smallestai.atoms / smallestai.waves
  • deep imports, e.g. import smallestai.atoms.crew.nodes, from smallestai.waves.helpers import synthesize_to_file

All aliases keep object identity with the new modules (a sys.meta_path finder for deep imports + client attribute properties). Covered by tests/custom/test_6_0_rename_compat.py.

Preserved

  • Observability headers (X-Source, X-Fern-SDK-Version)
  • PlanNotEntitledError + actionable error-message hints
  • CLI, crew/helpers, streaming TTS/STT helpers

Tooling

  • ruff lint/format applied (imports sorted, unused imports removed).

Local checks

  • pytest tests/custom — 104 passed, 1 skipped
  • mypy . — 0 errors
  • ruff check . — clean
  • back-compat + deep-import identity + headers verified

Follow-ups (not in this PR)

  • uv build-system migration (kept separate — it touches the poetry-based publish pipeline and needs its own regen proof).
  • Paired Fern-config PR must merge so future regens keep the new namespaces.
  • Docs update (client.atomsagents, wavesspeech, migration section, redirects).

Do not merge on my behalf — for review first. Merging a version bump to main auto-publishes to PyPI.

Rename the two product surfaces to industry-standard names:
- atoms -> agents (voice-agent platform)
- waves -> speech (TTS/STT/voices)

The wire API, auth, method signatures, and observability headers are
unchanged. This is an SDK-surface rename generated from the updated
namespaces in the Fern config, plus a soft backward-compat layer.

Backward compatibility (deprecated, removed in the next major):
- client.atoms / client.waves resolve to client.agents / client.speech
- attribute access smallestai.atoms / smallestai.waves
- deep imports (import smallestai.atoms.crew.nodes, from
  smallestai.waves.helpers import synthesize_to_file)
All old names emit a DeprecationWarning and keep object identity with the
new modules (a sys.meta_path finder plus client attribute aliases).

Preserved: X-Source / X-Fern-SDK-Version headers, PlanNotEntitledError and
error-message hints, the CLI, crew/helpers, and the streaming TTS/STT
helpers. ruff lint/format applied. Adds tests/custom/test_6_0_rename_compat.py
covering the new surface, deprecated aliases, deep-import identity, and the
observability header.

See MIGRATION.md and CHANGELOG.md.
The cloning endpoint accepts model=lightning-v3.1-pro (premium Pro pool),
confirmed against the live API. Add it to the CreateVoiceCloneSpeechRequestModel
literal so it surfaces in type hints / autocomplete. Matches the regen output
from the updated voice-cloning spec; the union's Any fallback already accepted it
at runtime.
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