Campaign scheduling, retries, and flat disposition metrics

POST /campaign now accepts scheduledAt (ISO-8601, must be in the future), maxRetries (0–10, default 3), retryDelay (1–1440 minutes, default 15), and phoneNumberIds for outbound caller-ID rotation. Campaigns created with scheduledAt start in scheduled status and auto-dial at the specified time.

Disposition metrics on postCallAnalyticsConfig now use a flat dispositionMetricType field instead of the nested dispositionValues.type shape. Both the spec and docs reflect this; existing payloads with the nested shape continue to work but the flat form is the documented one going forward.


Realtime Agent WebSocket API and WebSocket SDK

The public WebSocket protocol for talking to an Atoms agent is now documented as an AsyncAPI spec and rendered in the API reference. Connect at wss://api.smallest.ai/atoms/v1/agent/connect. Exchange input_audio_buffer.append, output_audio.delta, agent_start_talking, agent_stop_talking, and interruption events.

A JavaScript SDK for embedding the same flow in a web page is published on npm as @smallest-ai/agent-sdk. It wraps the WebSocket, microphone capture, and audio playback.