const API_KEY = 'sigmic_your_key_here';
const BASE_URL = 'https://api.sigmic.ai';
async function runTask(message) {
// 1. Create the task
const formData = new FormData();
formData.append('message', message);
const createResponse = await fetch(`${BASE_URL}/api/v1/tasks`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}` },
body: formData
});
const { data: { id: taskId } } = await createResponse.json();
console.log('Task ID:', taskId);
// 2. Stream the execution
const streamResponse = await fetch(`${BASE_URL}/api/v1/tasks/${taskId}/stream`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
const reader = streamResponse.body.getReader();
const decoder = new TextDecoder();
let buffer = '';
let finalResponse = '';
while (true) {
const { done, value } = await reader.read();
if (done) break;
buffer += decoder.decode(value, { stream: true });
const events = buffer.split('\n\n');
buffer = events.pop() || '';
for (const eventStr of events) {
if (!eventStr.trim() || eventStr.startsWith(':')) continue;
const lines = eventStr.split('\n');
const eventType = lines[0]?.replace('event: ', '');
const dataLine = lines[1]?.replace('data: ', '');
if (!dataLine) continue;
const data = JSON.parse(dataLine);
if (eventType === 'history_done') {
console.log(`Loaded ${data.messageCount} history messages`);
}
if (eventType === 'content') {
process.stdout.write(data.text);
}
if (eventType === 'done') {
finalResponse = data.finalResponse;
console.log('\n');
}
}
}
return { taskId, finalResponse };
}
// Run it
const { taskId, finalResponse } = await runTask('Explain what an API is in one sentence');
console.log('Final response:', finalResponse);