Guías / Streaming (SSE)

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:

EventoCuándo
run.startedEl run arrancó
run.stepUn paso del Met (proyección curada del trace)
run.outputFragmento de la respuesta
run.completedTerminó bien
run.failedTerminó 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.