subscribeToolEvents method
GET /tools/events?snapshot=1
Implementation
Future<Stream<ToolLifecycleEventDto>> subscribeToolEvents({
required String daemonApiKey,
bool snapshot = true,
}) async {
final sseStream = await toolSse.request(
'/events',
queryParameters: {'snapshot': snapshot ? '1' : '0'},
method: 'GET',
headers: {TOOL_API_KEY_HEADER: daemonApiKey},
);
return sseStream.transform(
StreamTransformer<String, ToolLifecycleEventDto>.fromHandlers(
handleData: (chunk, sink) {
SseClient.parse(chunk, (event, data) {
if (event == 'ready') return;
if (event == ToolLifecycleEventType.SNAPSHOT ||
event == ToolLifecycleEventType.READY ||
event == ToolLifecycleEventType.DRAINING ||
event == ToolLifecycleEventType.UNAVAILABLE ||
event == ToolLifecycleEventType.REMOVED) {
sink.add(ToolLifecycleEventDto.fromJson(data));
}
});
},
),
);
}