async function streamQuery(query: string, tenantId: string) {
const response = await fetch('https://your-data-agent.com/v1/agent/stream', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ query, tenant_id: tenantId }),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const text = decoder.decode(value);
const lines = text.split('\n');
for (const line of lines) {
if (line.startsWith('data: ')) {
const event = JSON.parse(line.slice(6));
if (event.type === 'status') {
// Show progress to user
console.log(`Step ${event.data.step}: ${event.data.title}`);
console.log(event.data.description);
} else if (event.type === 'final') {
// Display final answer
console.log('Answer:', event.data.answer);
return event.data;
} else if (event.type === 'error') {
throw new Error(event.data.message);
}
}
}
}
}
// Usage
const result = await streamQuery('What are my top clusters?', 'tenant-123');