Parte do epic #1036
Depende de: #1042 #1040 #1041 #1043
Objetivo
Reescrever packages/core/src/session-event.ts (9 KB) e packages/core/src/session-message-updater.ts (13 KB) em Go. Esses módulos gerenciam o streaming de eventos da sessão com LLM e são o coração do agent swarm.
Mapeamento Effect-TS → Go
O maior desafio aqui é que o código atual usa Effect fibers e streams (packages/core/src/effect/). O equivalente em Go é:
| Effect-TS |
Go |
Effect.fiber |
goroutine |
Stream |
channel |
Effect.cancel |
context.WithCancel |
Effect.retry |
loop com backoff |
Layer (dependency injection) |
struct com interfaces |
Comportamentos a preservar
Endpoints Go a implementar
POST /session ← cria sessão
GET /session/:id/events ← SSE com eventos em tempo real
POST /session/:id/message ← envia mensagem ao LLM
DELETE /session/:id ← cancela sessão
GET /session/:id/messages ← histórico de mensagens
Tarefas
Critérios de aceite
Parte do epic #1036
Depende de: #1042 #1040 #1041 #1043
Objetivo
Reescrever
packages/core/src/session-event.ts(9 KB) epackages/core/src/session-message-updater.ts(13 KB) em Go. Esses módulos gerenciam o streaming de eventos da sessão com LLM e são o coração do agent swarm.Mapeamento Effect-TS → Go
O maior desafio aqui é que o código atual usa Effect fibers e streams (
packages/core/src/effect/). O equivalente em Go é:Effect.fibergoroutineStreamchannelEffect.cancelcontext.WithCancelEffect.retryLayer(dependency injection)Comportamentos a preservar
Endpoints Go a implementar
Tarefas
session-event.tsinternal/session/event.gointernal/session/updater.gocom goroutinescontext.Contextpackages/go-core-clientgo-core-sessione validarCritérios de aceite