RealtimeSessionController constructor
RealtimeSessionController({
- RealtimeSession? session,
- List<
RealtimeFunctionToolHandler> ? initialTools,
Implementation
RealtimeSessionController({RealtimeSession? session, List<RealtimeFunctionToolHandler>? initialTools}) : _session = session {
_sub = serverEvents.listen(_handleSessionEvents);
if (initialTools != null) {
for (final tool in initialTools) {
if (_tools.containsKey(tool.metadata.name)) {
throw new ArgumentError("duplicate tool ${tool.metadata.name}");
}
_tools[tool.metadata.name] = tool;
}
}
_ready.future.then((_) {
if (initialTools != null) {
send(SessionUpdateEvent(session: RealtimeSession(tools: [...initialTools.map((t) => t.metadata)])));
}
});
}