Streaming (SSE)
Recibe los eventos del run en vivo, evento por evento, con Server-Sent Events.
Streaming (SSE)
En vez de esperar el resultado completo, puedes recibir el run en vivo a medida que el Met piensa y responde. Meteor lo entrega como un stream de Server-Sent Events (SSE).
Con el SDK
for await (const ev of met.runs.stream({ input: '¿Qué puedo automatizar?' })) {
switch (ev.type) {
case 'run.output':
process.stdout.write(ev.data); // texto incremental
break;
case 'run.completed':
console.log('\nlisto');
break;
}
}
El SDK parsea el stream y te entrega objetos { type, data } tipados. Bajo el capó es el mismo POST /workspaces/:id/runs con stream: true y Accept: text/event-stream.
Esquema de eventos
El stream emite un conjunto cerrado y versionado de eventos:
| Evento | Cuándo |
|---|---|
run.started | El run arrancó |
run.step | Un paso del Met (proyección curada del trace) |
run.output | Fragmento de la respuesta |
run.completed | Terminó bien |
run.failed | Terminó con error |
run.step es una vista curada: expone el tipo de paso, la iteración, el nombre de la tool y el actor — nunca prompts internos, inputs crudos de tools, costos de proveedor ni conteo de tokens.
Con curl
curl -N https://api.met.meteor.com.co/api/v1/workspaces/7/runs \
-H "Authorization: Bearer $MET_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{"input":"Hola","stream":true}'
El flag -N desactiva el buffering para ver los eventos llegar.
El streaming no reintenta automáticamente: un stream cortado a la mitad no es reanudable de forma transparente. Para lógica crítica, combina el stream con un
retrieve()final del run.