ngx-prompt-kit

Streaming (SSE)

ngx-prompt-kit original — not part of ibelick/prompt-kit

Transport helpers for consuming Server-Sent-Event chat streams. consumeSseFrames() is a pure frame splitter; readSseHttpEvents() adapts an Angular HttpClient event stream into per-frame callbacks. The caller owns interpreting each frame.

Examples

Frame parser playground

consumeSseFrames() splits a raw SSE body into the data payload of each complete frame, returning any partial tail. Paste raw frames below and parse them.

Installation

Add the SSE streaming helpers to your project.

ng generate ngx-prompt-kit:streaming

HTTP usage

readSseHttpEvents() handles the cumulative partialText / frame buffering; your callback parses each frame and decides what is a result or an error.

import { readSseHttpEvents } from 'ngx-prompt-kit/streaming';

let result: SendResult | null = null;
await readSseHttpEvents(
  http.post('/api/chat', body, { observe: 'events', reportProgress: true, responseType: 'text' }),
  (data) => {
    const payload = JSON.parse(data);
    if (payload.type === 'chunk') appendToken(payload.text);
    else if (payload.type === 'done') result = payload.result;
  },
);