@agentplat/streaming 0.2.0-beta.1 → 0.2.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,7 +4,17 @@ Server-Sent Events helpers for normalized `AgentStreamEvent` streams. The
4
4
  package depends on Web Standards and small structural Node response types; it
5
5
  does not depend on Next.js, Express or Hono.
6
6
 
7
- ## Web `Response` (Next.js, Hono and other Fetch-compatible frameworks)
7
+ ## Next.js App Router
8
+
9
+ ```ts
10
+ import { toNextSseResponse } from '@agentplat/streaming';
11
+
12
+ return toNextSseResponse(request, (signal) =>
13
+ session.stream({ input: scenario, signal })
14
+ );
15
+ ```
16
+
17
+ ## Web `Response` (Hono and other Fetch-compatible frameworks)
8
18
 
9
19
  ```ts
10
20
  import { streamToSSE } from '@agentplat/streaming';
@@ -22,5 +32,23 @@ import { pipeSSE } from '@agentplat/streaming';
22
32
  await pipeSSE(runtime.stream(agent, input, context), response);
23
33
  ```
24
34
 
35
+ ## Browser parser
36
+
37
+ ```ts
38
+ import type { MultiAgentSessionEvent } from '@agentplat/framework';
39
+ import { parseAgentSseStream } from '@agentplat/streaming';
40
+
41
+ for await (const envelope of parseAgentSseStream<MultiAgentSessionEvent>(
42
+ response.body,
43
+ { signal }
44
+ )) {
45
+ // Envelope v1 is parsed and its sequence is validated.
46
+ }
47
+ ```
48
+
25
49
  The wire envelope is versioned and includes a monotonic sequence number. Do
26
50
  not send credentials or secrets in runtime stream event payloads.
51
+
52
+ For callback-style UI integration, use `subscribeAgentSse(response, { onEvent,
53
+ onError, signal })`. It uses the same parser and rethrows malformed or failed
54
+ streams after invoking `onError`.
package/dist/index.d.ts CHANGED
@@ -1,16 +1,17 @@
1
- import type { JsonObject } from '@agentplat/core';
2
- import type { AgentStreamEvent } from '@agentplat/runtime';
1
+ import type { AgentStreamEvent, StreamEvent } from '@agentplat/runtime';
3
2
  /** Stable version of the public SSE JSON envelope. */
4
3
  export declare const AGENTPLAT_SSE_VERSION: 1;
5
- /** JSON body carried in each AgentPlat SSE event. */
6
- export interface AgentSseEnvelope {
4
+ /**
5
+ * JSON body carried in each AgentPlat SSE event.
6
+ *
7
+ * Passing a discriminated event union preserves its event-specific payload
8
+ * types on both the server and browser sides.
9
+ */
10
+ export type AgentSseEnvelope<TEvent extends StreamEvent = AgentStreamEvent> = TEvent extends StreamEvent ? {
7
11
  version: typeof AGENTPLAT_SSE_VERSION;
8
12
  sequence: number;
9
- type: AgentStreamEvent['type'];
10
- runId?: string;
11
- content?: string;
12
- payload?: JsonObject;
13
- }
13
+ type: TEvent['type'];
14
+ } & Pick<TEvent, Extract<keyof TEvent, 'runId' | 'content' | 'payload'>> : never;
14
15
  /** Shared behavior for Web and Node SSE helpers. */
15
16
  export interface AgentSseOptions {
16
17
  signal?: AbortSignal;
@@ -19,6 +20,22 @@ export interface AgentSseOptions {
19
20
  /** Defaults to false so unexpected adapter details are not sent to clients. */
20
21
  exposeErrors?: boolean;
21
22
  }
23
+ /** Browser-side parsing and validation behavior. */
24
+ export interface ParseAgentSseOptions<TEvent extends StreamEvent> {
25
+ signal?: AbortSignal;
26
+ /** Defaults to true and requires contiguous sequence numbers starting at 1. */
27
+ strictSequence?: boolean;
28
+ /** Optional event-specific runtime validation after envelope validation. */
29
+ validate?: (envelope: AgentSseEnvelope<TEvent>) => void;
30
+ }
31
+ /** Callback hooks for consuming an AgentPlat SSE response without UI framework glue. */
32
+ export interface AgentSseSubscription<TEvent extends StreamEvent> {
33
+ onEvent(envelope: AgentSseEnvelope<TEvent>): void | Promise<void>;
34
+ onError?(error: unknown): void | Promise<void>;
35
+ signal?: AbortSignal;
36
+ strictSequence?: boolean;
37
+ validate?: (envelope: AgentSseEnvelope<TEvent>) => void;
38
+ }
22
39
  /** Minimal Node/Express response surface used without a framework dependency. */
23
40
  export interface NodeSseResponse {
24
41
  setHeader(name: string, value: string): void;
@@ -27,14 +44,32 @@ export interface NodeSseResponse {
27
44
  flushHeaders?(): void;
28
45
  once?(event: 'drain', listener: () => void): unknown;
29
46
  }
30
- /** Encode one normalized runtime event as a versioned SSE frame. */
31
- export declare function encodeSseEvent(event: AgentStreamEvent, sequence: number): string;
32
- /** Convert runtime events to a Fetch-compatible streaming SSE response. */
33
- export declare function toSseResponse(events: AsyncIterable<AgentStreamEvent>, options?: AgentSseOptions): Response;
47
+ /** Encode one normalized runtime or orchestration event as a versioned frame. */
48
+ export declare function encodeSseEvent<TEvent extends StreamEvent>(event: TEvent, sequence: number): string;
49
+ /** Convert events to a Fetch-compatible streaming SSE response. */
50
+ export declare function toSseResponse<TEvent extends StreamEvent>(events: AsyncIterable<TEvent>, options?: AgentSseOptions): Response;
34
51
  /** Alias with the spelling commonly used in web framework examples. */
35
52
  export declare const streamToSSE: typeof toSseResponse;
36
- /** Pipe runtime events to an Express-compatible Node response. */
37
- export declare function pipeSse(events: AsyncIterable<AgentStreamEvent>, response: NodeSseResponse, options?: AgentSseOptions): Promise<void>;
53
+ /**
54
+ * Next.js App Router helper that shares `request.signal` with event creation
55
+ * and SSE transport cancellation, making model abort propagation explicit.
56
+ */
57
+ export declare function toNextSseResponse<TEvent extends StreamEvent>(request: Request, createEvents: (signal: AbortSignal) => AsyncIterable<TEvent>, options?: Omit<AgentSseOptions, 'signal'>): Response;
58
+ /** Pipe events to an Express-compatible Node response. */
59
+ export declare function pipeSse<TEvent extends StreamEvent>(events: AsyncIterable<TEvent>, response: NodeSseResponse, options?: AgentSseOptions): Promise<void>;
38
60
  /** Alias with the spelling commonly used in Express examples. */
39
61
  export declare const pipeSSE: typeof pipeSse;
62
+ /**
63
+ * Parse a Fetch response body into validated, typed AgentPlat SSE envelopes.
64
+ * Frames split across arbitrary network chunks and multi-line data fields are
65
+ * handled without framework-specific browser code.
66
+ */
67
+ export declare function parseAgentSseStream<TEvent extends StreamEvent = AgentStreamEvent>(readable: ReadableStream<Uint8Array>, options?: ParseAgentSseOptions<TEvent>): AsyncIterable<AgentSseEnvelope<TEvent>>;
68
+ /**
69
+ * Consume a Fetch response through the validated envelope parser.
70
+ *
71
+ * Errors are reported to `onError` and then rethrown so callers cannot
72
+ * accidentally treat a broken stream as a completed session.
73
+ */
74
+ export declare function subscribeAgentSse<TEvent extends StreamEvent = AgentStreamEvent>(response: Response, subscription: AgentSseSubscription<TEvent>): Promise<void>;
40
75
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,EAAG,CAAU,CAAC;AAEhD,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,qBAAqB,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,GAAG,IAAI,IAAI,CAAC;IACZ,YAAY,CAAC,IAAI,IAAI,CAAC;IACtB,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;CACtD;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,MAAM,GACf,MAAM,CAcR;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACvC,OAAO,GAAE,eAAoB,GAC5B,QAAQ,CAuDV;AAED,uEAAuE;AACvE,eAAO,MAAM,WAAW,sBAAgB,CAAC;AAEzC,kEAAkE;AAClE,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACvC,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,iEAAiE;AACjE,eAAO,MAAM,OAAO,gBAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /** Stable version of the public SSE JSON envelope. */
2
2
  export const AGENTPLAT_SSE_VERSION = 1;
3
- /** Encode one normalized runtime event as a versioned SSE frame. */
3
+ /** Encode one normalized runtime or orchestration event as a versioned frame. */
4
4
  export function encodeSseEvent(event, sequence) {
5
5
  if (!Number.isInteger(sequence) || sequence < 1) {
6
6
  throw new TypeError('SSE sequence must be a positive integer');
@@ -16,7 +16,7 @@ export function encodeSseEvent(event, sequence) {
16
16
  const id = `${event.runId ?? 'stream'}:${sequence}`;
17
17
  return `id: ${id}\nevent: agentplat.${event.type}\ndata: ${JSON.stringify(envelope)}\n\n`;
18
18
  }
19
- /** Convert runtime events to a Fetch-compatible streaming SSE response. */
19
+ /** Convert events to a Fetch-compatible streaming SSE response. */
20
20
  export function toSseResponse(events, options = {}) {
21
21
  const iterator = events[Symbol.asyncIterator]();
22
22
  const encoder = new TextEncoder();
@@ -40,6 +40,14 @@ export function toSseResponse(events, options = {}) {
40
40
  }
41
41
  try {
42
42
  const next = await iterator.next();
43
+ if (closed)
44
+ return;
45
+ if (options.signal?.aborted) {
46
+ closed = true;
47
+ await iterator.return?.();
48
+ controller.close();
49
+ return;
50
+ }
43
51
  if (next.done) {
44
52
  closed = true;
45
53
  controller.close();
@@ -49,7 +57,7 @@ export function toSseResponse(events, options = {}) {
49
57
  controller.enqueue(encoder.encode(encodeSseEvent(next.value, ++sequence)));
50
58
  }
51
59
  catch (error) {
52
- if (!closed && !options.signal?.aborted && lastType !== 'failed') {
60
+ if (!closed && !options.signal?.aborted && !isFailureType(lastType)) {
53
61
  controller.enqueue(encoder.encode(encodeSseEvent(errorEvent(error, options.exposeErrors), ++sequence)));
54
62
  }
55
63
  closed = true;
@@ -67,7 +75,17 @@ export function toSseResponse(events, options = {}) {
67
75
  }
68
76
  /** Alias with the spelling commonly used in web framework examples. */
69
77
  export const streamToSSE = toSseResponse;
70
- /** Pipe runtime events to an Express-compatible Node response. */
78
+ /**
79
+ * Next.js App Router helper that shares `request.signal` with event creation
80
+ * and SSE transport cancellation, making model abort propagation explicit.
81
+ */
82
+ export function toNextSseResponse(request, createEvents, options = {}) {
83
+ return toSseResponse(createEvents(request.signal), {
84
+ ...options,
85
+ signal: request.signal,
86
+ });
87
+ }
88
+ /** Pipe events to an Express-compatible Node response. */
71
89
  export async function pipeSse(events, response, options = {}) {
72
90
  for (const [name, value] of sseHeaders(options.headers)) {
73
91
  response.setHeader(name, value);
@@ -87,7 +105,7 @@ export async function pipeSse(events, response, options = {}) {
87
105
  }
88
106
  }
89
107
  catch (error) {
90
- if (!options.signal?.aborted && lastType !== 'failed') {
108
+ if (!options.signal?.aborted && !isFailureType(lastType)) {
91
109
  await write(response, encodeSseEvent(errorEvent(error, options.exposeErrors), ++sequence));
92
110
  }
93
111
  }
@@ -97,6 +115,145 @@ export async function pipeSse(events, response, options = {}) {
97
115
  }
98
116
  /** Alias with the spelling commonly used in Express examples. */
99
117
  export const pipeSSE = pipeSse;
118
+ /**
119
+ * Parse a Fetch response body into validated, typed AgentPlat SSE envelopes.
120
+ * Frames split across arbitrary network chunks and multi-line data fields are
121
+ * handled without framework-specific browser code.
122
+ */
123
+ export async function* parseAgentSseStream(readable, options = {}) {
124
+ const reader = readable.getReader();
125
+ const decoder = new TextDecoder();
126
+ let buffer = '';
127
+ let expectedSequence = 1;
128
+ const onAbort = () => {
129
+ void reader.cancel(options.signal?.reason);
130
+ };
131
+ options.signal?.addEventListener('abort', onAbort, { once: true });
132
+ try {
133
+ if (options.signal?.aborted) {
134
+ await reader.cancel(options.signal.reason);
135
+ return;
136
+ }
137
+ while (true) {
138
+ if (options.signal?.aborted)
139
+ return;
140
+ const { done, value } = await reader.read();
141
+ if (options.signal?.aborted)
142
+ return;
143
+ if (done) {
144
+ buffer += decoder.decode();
145
+ break;
146
+ }
147
+ buffer += decoder.decode(value, { stream: true });
148
+ let extracted = extractFrame(buffer);
149
+ while (extracted) {
150
+ buffer = extracted.rest;
151
+ const envelope = parseFrame(extracted.frame);
152
+ if (envelope) {
153
+ expectedSequence = validateSequence(envelope.sequence, expectedSequence, options.strictSequence ?? true);
154
+ options.validate?.(envelope);
155
+ yield envelope;
156
+ }
157
+ extracted = extractFrame(buffer);
158
+ }
159
+ }
160
+ if (buffer.trim()) {
161
+ const envelope = parseFrame(buffer);
162
+ if (envelope) {
163
+ validateSequence(envelope.sequence, expectedSequence, options.strictSequence ?? true);
164
+ options.validate?.(envelope);
165
+ yield envelope;
166
+ }
167
+ }
168
+ }
169
+ finally {
170
+ options.signal?.removeEventListener('abort', onAbort);
171
+ reader.releaseLock();
172
+ }
173
+ }
174
+ /**
175
+ * Consume a Fetch response through the validated envelope parser.
176
+ *
177
+ * Errors are reported to `onError` and then rethrown so callers cannot
178
+ * accidentally treat a broken stream as a completed session.
179
+ */
180
+ export async function subscribeAgentSse(response, subscription) {
181
+ if (!response.ok) {
182
+ const error = new Error(`AgentPlat SSE request failed with HTTP ${response.status}`);
183
+ await subscription.onError?.(error);
184
+ throw error;
185
+ }
186
+ if (!response.body) {
187
+ const error = new Error('AgentPlat SSE response has no body');
188
+ await subscription.onError?.(error);
189
+ throw error;
190
+ }
191
+ try {
192
+ for await (const envelope of parseAgentSseStream(response.body, {
193
+ signal: subscription.signal,
194
+ strictSequence: subscription.strictSequence,
195
+ validate: subscription.validate,
196
+ })) {
197
+ await subscription.onEvent(envelope);
198
+ }
199
+ }
200
+ catch (error) {
201
+ await subscription.onError?.(error);
202
+ throw error;
203
+ }
204
+ }
205
+ function parseFrame(frame) {
206
+ const data = frame
207
+ .split(/\r?\n/)
208
+ .filter((line) => line.startsWith('data:'))
209
+ .map((line) => line.slice(5).replace(/^ /, ''));
210
+ if (data.length === 0)
211
+ return undefined;
212
+ let parsed;
213
+ try {
214
+ parsed = JSON.parse(data.join('\n'));
215
+ }
216
+ catch {
217
+ throw new TypeError('Invalid JSON in AgentPlat SSE data');
218
+ }
219
+ if (!isObject(parsed)) {
220
+ throw new TypeError('AgentPlat SSE data must be an object');
221
+ }
222
+ if (parsed.version !== AGENTPLAT_SSE_VERSION) {
223
+ throw new TypeError(`Unsupported AgentPlat SSE version: ${parsed.version}`);
224
+ }
225
+ if (!Number.isInteger(parsed.sequence) || Number(parsed.sequence) < 1) {
226
+ throw new TypeError('AgentPlat SSE sequence must be a positive integer');
227
+ }
228
+ if (typeof parsed.type !== 'string' || !parsed.type) {
229
+ throw new TypeError('AgentPlat SSE event type is required');
230
+ }
231
+ if (parsed.runId !== undefined && typeof parsed.runId !== 'string') {
232
+ throw new TypeError('AgentPlat SSE runId must be a string');
233
+ }
234
+ if (parsed.content !== undefined && typeof parsed.content !== 'string') {
235
+ throw new TypeError('AgentPlat SSE content must be a string');
236
+ }
237
+ if (parsed.payload !== undefined && !isObject(parsed.payload)) {
238
+ throw new TypeError('AgentPlat SSE payload must be an object');
239
+ }
240
+ return parsed;
241
+ }
242
+ function extractFrame(buffer) {
243
+ const boundary = /\r?\n\r?\n/.exec(buffer);
244
+ if (!boundary || boundary.index === undefined)
245
+ return undefined;
246
+ return {
247
+ frame: buffer.slice(0, boundary.index),
248
+ rest: buffer.slice(boundary.index + boundary[0].length),
249
+ };
250
+ }
251
+ function validateSequence(sequence, expected, strict) {
252
+ if (strict && sequence !== expected) {
253
+ throw new TypeError(`Unexpected AgentPlat SSE sequence ${sequence}; expected ${expected}`);
254
+ }
255
+ return sequence + 1;
256
+ }
100
257
  function sseHeaders(additional) {
101
258
  const headers = new Headers(additional);
102
259
  headers.set('Content-Type', 'text/event-stream; charset=utf-8');
@@ -117,6 +274,12 @@ function errorEvent(error, exposeErrors = false) {
117
274
  content: exposeErrors && error instanceof Error ? error.message : 'Stream failed',
118
275
  };
119
276
  }
277
+ function isFailureType(type) {
278
+ return type === 'failed' || type?.endsWith('_failed') === true;
279
+ }
280
+ function isObject(value) {
281
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
282
+ }
120
283
  async function write(response, chunk) {
121
284
  if (response.write(chunk) || !response.once)
122
285
  return;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentplat/streaming",
3
- "version": "0.2.0-beta.1",
3
+ "version": "0.2.0-beta.6",
4
4
  "description": "Framework-neutral SSE helpers for AgentPlat runtime streams.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -18,8 +18,8 @@
18
18
  "README.md"
19
19
  ],
20
20
  "dependencies": {
21
- "@agentplat/core": "^0.2.0-beta.1",
22
- "@agentplat/runtime": "^0.2.0-beta.1"
21
+ "@agentplat/runtime": "^0.2.0-beta.6",
22
+ "@agentplat/core": "^0.2.0-beta.6"
23
23
  },
24
24
  "publishConfig": {
25
25
  "access": "public"