Task Summary
Settle the agent-service ↔ frontend WebSocket protocol. Extract the message types into a dedicated types/ws module (client.ts / server.ts / index.ts), normalize the wire discriminators (client message/stop → prompt/command; server→client renamed to payload nouns init→snapshot, state→status), and make the socket carry only conversation + lifecycle: drop the completion frame and the operatorResults payload from snapshot/step (run-end becomes a status frame, which also unsticks the client from GENERATING after an error), and pull operator results on demand via GET /operator-results. Bring server.ts to 100% test coverage.
Part of #5747. Implemented by #5751.
Task Type
Task Summary
Settle the agent-service ↔ frontend WebSocket protocol. Extract the message types into a dedicated
types/wsmodule (client.ts/server.ts/index.ts), normalize the wire discriminators (clientmessage/stop→prompt/command; server→client renamed to payload nounsinit→snapshot,state→status), and make the socket carry only conversation + lifecycle: drop thecompletionframe and theoperatorResultspayload fromsnapshot/step(run-end becomes astatusframe, which also unsticks the client fromGENERATINGafter an error), and pull operator results on demand viaGET /operator-results. Bringserver.tsto 100% test coverage.Part of #5747. Implemented by #5751.
Task Type