@scenaro/sdk

0.3.0

Legacy API removed
  • Removed useScenarioSession, AgentListener, useConversationMessages, UI activity exports
  • Removed ScenaroClient.getScenario() (endpoint never existed server-side)
  • Added rawConfig on ScenaroSession / useScenaroSession for wire-format config access
  • SessionEventBridge + useFeatureToolRpc replace legacy listener plumbing internally
  • All experiences and platform-spa migrated to useScenaroSession

0.2.0

New session contract — useScenaroSession and headless ScenaroSession
  • New single entry point: useScenaroSession({ scenario, tools, onMessage, onError, onSessionEnd }) — handles identification, session start, transport connection, config handshake, and tool RPC. No AgentListener to mount, no manual RoomContext wiring.
  • New framework-agnostic ScenaroSession class (@scenaro/sdk) with typed events (status-change, agent-state, message, config, session-end, error).
  • Frontend tools are plain functions (args, context) => result — request IDs, response wrapping, and the RPC timeout (TIMEOUT + aborted context.signal) are handled by the SDK.
  • Typed errors: ScenaroError with stable code values.
  • Curated SessionConfig (camelCase) replaces raw wire payload exposure; Collection is now fully typed in @scenaro/sdk/protocol.
  • LiveKit isolated behind an internal transport boundary (lint-enforced); room stays available as a documented LiveKit extension for advanced integrations.
  • ScenaroProvider injects LiveKit RoomContext automatically and disposes the session on unmount.
Breaking changes
  • Root entry (@scenaro/sdk) is now framework-agnostic: React exports moved exclusively to @scenaro/sdk/react.
  • Removed the empty @scenaro/sdk/ui sub-export.
  • startSession no longer defaults language to 'fr-FR' — omitting it uses the scenario’s configured language.
  • getAppSession, LEGACY_KEYS, and ApiFetchOptions are no longer exported from @scenaro/sdk/client (internal plumbing).
Deprecations (removal in 0.3.0)
  • useScenarioSession, AgentListener, useConversationMessages, ui-activity-tracker exports — see the migration guide.
  • ScenaroClient.getScenario() — the backing endpoint is not implemented server-side.

0.1.1

Simplified session storage
  • Identity stored in a single app-scoped blob: scenaro_session:app:{applicationId}
  • Removed redundant flat keys (scenaro_user_token, scenaro_user_id, etc.)
  • Automatic migration from legacy storage formats on read
  • Legacy platform-spa keys (user_token, external_id) still supported via fallback

0.1.0

Initial npm release
  • Package renamed from @scenaro/embed-sdk to @scenaro/sdk
  • Sub-exports: protocol, client, react, ui
  • Two-hop auth: identifyUser + startSession
  • ScenaroProvider, useScenarioSession, AgentListener
  • FeatureProvider with injectable registry
  • Scoped ScenaroEventBus (replaces window.__)
  • LiveKit peer dependencies (>=2.0.0)
  • Protocol: data-channel topics, message types, RPC contracts

Documentation

2026-07-11

SDK 0.3.0 documentation alignment
  • New Implement an experience journey map
  • New Tools and features — session tools vs FeatureProvider
  • Removed stale legacy API references (useScenarioSession, AgentListener, getScenario)
  • Version pins updated to @scenaro/sdk@0.3.0
  • OpenAPI: removed unimplemented GET /public/scenarios/{uuid}
Transport terminology
  • New Transport page — the engine-agnostic boundary behind ScenaroSession (LiveKit today, extensible to other engines such as Pipecat)
  • Renamed guides/advanced-livekit-integration to Advanced: Transport extensions (redirect kept)
  • Documentation now distinguishes the portable contract (status, messages, config, tools) from engine extensions (room, RoomContext) everywhere — install instructions, diagrams, and reference tables no longer imply LiveKit is required for the embed path

2026-07-10

Initial public documentation
  • Mintlify site at docs.scenaro.io
  • AI-ready: llms.txt, .md export, MCP server, contextual menu
  • Guides: quickstart, auth, protocol, feature registry, 5 recipes
  • SDK reference for client, react, protocol, session
  • Public API OpenAPI spec (initial)

Reporting issues