Streaming
Si indicasstreaming: true en SessionConfig, recibirás las respuestas de Copilot como streaming.
De base, tanto el modo stdio como el TCP ya se comportan como streaming. La diferencia es que empezarás a recibir ASSISTANT_MESSAGE_DELTA.
- Para conseguir una visualización fluida, muestra tal cual sin añadir saltos de línea.
- No lo combines con
spin()de Laravel Prompts porque rompe la visualización.
Patrones de uso concretos
Comando Artisan
Como arriba, escribe directamente conecho o con $this->output->write(). La visualización es igual que usando Copilot CLI directamente, por lo que resulta intuitivo. Con stream() de Laravel Prompts también puedes mostrarlo con efecto de fade-in.
Entrega como Server-Sent Events (SSE) en una página web
Forma con response()->eventStream()
response()->eventStream() se añadió justo antes del lanzamiento de Laravel 12. Este paquete solo soporta Laravel 12+, así que puedes usarlo.
Forma con response()->stream()
Ejemplo de código en el frontend
copilot.blade.php es solo para comprobar la visualización de forma sencilla. Para producción, si usas React o Vue, se recomienda usar el paquete npm oficial de Laravel: @laravel/stream-react o @laravel/stream-vue.
Entrega por WebSocket
Combinando las funciones de notificaciones y broadcasting de Laravel con Reverb, también puedes entregar losdelta por WebSocket.
wire:stream de Livewire
Con Livewire también puedes mostrar streaming usando la directiva wire:stream.
Consulta la información más reciente en el repositorio de GitHub.