@scenaro/sdk
0.3.0
Legacy API removed- Removed
useScenarioSession,AgentListener,useConversationMessages, UI activity exports - Removed
ScenaroClient.getScenario()(endpoint never existed server-side) - Added
rawConfigonScenaroSession/useScenaroSessionfor wire-format config access SessionEventBridge+useFeatureToolRpcreplace 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. NoAgentListenerto mount, no manualRoomContextwiring. - New framework-agnostic
ScenaroSessionclass (@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+ abortedcontext.signal) are handled by the SDK. - Typed errors:
ScenaroErrorwith stablecodevalues. - Curated
SessionConfig(camelCase) replaces raw wire payload exposure;Collectionis now fully typed in@scenaro/sdk/protocol. - LiveKit isolated behind an internal transport boundary (lint-enforced);
roomstays available as a documented LiveKit extension for advanced integrations. ScenaroProviderinjects LiveKitRoomContextautomatically and disposes the session on unmount.
- Root entry (
@scenaro/sdk) is now framework-agnostic: React exports moved exclusively to@scenaro/sdk/react. - Removed the empty
@scenaro/sdk/uisub-export. startSessionno longer defaultslanguageto'fr-FR'— omitting it uses the scenario’s configured language.getAppSession,LEGACY_KEYS, andApiFetchOptionsare no longer exported from@scenaro/sdk/client(internal plumbing).
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-sdkto@scenaro/sdk - Sub-exports:
protocol,client,react,ui - Two-hop auth:
identifyUser+startSession ScenaroProvider,useScenarioSession,AgentListenerFeatureProviderwith injectable registry- Scoped
ScenaroEventBus(replaceswindow.__) - 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}
- New Transport page — the engine-agnostic boundary behind
ScenaroSession(LiveKit today, extensible to other engines such as Pipecat) - Renamed
guides/advanced-livekit-integrationto 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,.mdexport, 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
- SDK bugs: github.com/scenaro/projects/issues
- Documentation: same repo, label
documentation