openai_sse_guard 0.1.1
openai_sse_guard: ^0.1.1 copied to clipboard
Bounded SSE stream observer for conservative replay decisions in OpenAI-compatible Dart clients.
import 'dart:convert';
import 'package:openai_sse_guard/openai_sse_guard.dart';
/// A complete, dependency-free example using the convenience stream API.
Future<void> main() async {
final chunks = Stream<List<int>>.fromIterable([
utf8.encode(
'event: response.output_text.delta\n'
'data: {"type":"response.output_text.delta"}\n\n',
),
utf8.encode(
'event: response.completed\n'
'data: {"type":"response.completed"}\n\n',
),
]);
final snapshot = await observeSse(chunks);
if (snapshot.termination != StreamTermination.done) {
throw StateError('stream did not complete: $snapshot');
}
// ignore: avoid_print
print(
'protocol=${snapshot.protocol.name}, '
'termination=${snapshot.termination.name}, '
'hasOutput=${snapshot.hasOutput}',
);
}