@rudderjs/ai 1.13.0 → 1.15.0

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.
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Named-event SSE protocol for streaming an agent loop to a browser.
3
+ *
4
+ * `@rudderjs/ai` already ships the Vercel AI SDK data-stream protocol
5
+ * ({@link toVercelDataStream}) - the numeric-prefix wire (`0:` / `9:` / `a:`
6
+ * ...). This is the alternative for apps that want a plain
7
+ * `text/event-stream` with self-describing event names that mirror the agent
8
+ * loop's own lifecycle (`text`, `tool_call`, `tool_update`, `tool_result`,
9
+ * `pending_client_tools`, `tool_approval_required`, `handoff`, `complete`,
10
+ * `error`).
11
+ *
12
+ * Both ends live here so the wire vocabulary can never drift:
13
+ *
14
+ * - Server: {@link toAgentSseStream} / {@link toAgentSseResponse} project an
15
+ * `agent.stream()` result onto the named events and frame them as SSE.
16
+ * - Browser: {@link readAgentStream} decodes the same events back into an
17
+ * {@link AgentStreamTurn} and fires per-event callbacks for UI side effects.
18
+ * {@link applyAgentSseEvent} is exposed so the per-event reducer can be
19
+ * unit-tested against a synthetic turn.
20
+ *
21
+ * Runtime-agnostic: uses only web globals (`ReadableStream`, `Response`,
22
+ * `TextEncoder` / `TextDecoder`, `crypto.randomUUID`), no `node:` imports, so
23
+ * the module is safe in the main entry and runs server-side (Node / edge) and
24
+ * client-side alike.
25
+ *
26
+ * This ships the framework-generic core. App-specific events (conversation
27
+ * ids, billing, sub-run fan-out bookkeeping, server-authoritative history
28
+ * sync) are not part of it - emit and decode those alongside this protocol on
29
+ * your own channel.
30
+ */
31
+ import type { AgentStreamResponse, AiMessage, FinishReason, TokenUsage, ToolCall } from './types.js';
32
+ /** The named SSE events this protocol emits, in agent-loop order. */
33
+ export type AgentSseEventName = 'text' | 'tool_call' | 'tool_update' | 'tool_result' | 'pending_client_tools' | 'tool_approval_required' | 'handoff' | 'complete' | 'error';
34
+ /** What the loop parked on when it paused, surfaced on the `complete` event. */
35
+ export type AgentAwaiting = 'client_tools' | 'approval';
36
+ export interface AgentSseTextPayload {
37
+ text: string;
38
+ }
39
+ export interface AgentSseToolCallPayload {
40
+ id?: string;
41
+ tool: string;
42
+ input?: Record<string, unknown>;
43
+ }
44
+ export interface AgentSseToolUpdatePayload {
45
+ id?: string;
46
+ tool?: string;
47
+ update: unknown;
48
+ }
49
+ export interface AgentSseToolResultPayload {
50
+ id?: string;
51
+ toolCallId?: string;
52
+ tool?: string;
53
+ /** String passthrough when the tool returned a string, else JSON-encoded. */
54
+ content: string;
55
+ }
56
+ export interface AgentSsePendingClientToolsPayload {
57
+ toolCalls: ToolCall[];
58
+ }
59
+ export interface AgentSseApprovalPayload {
60
+ toolCall: ToolCall;
61
+ isClientTool: boolean;
62
+ }
63
+ export interface AgentSseHandoffPayload {
64
+ from: string;
65
+ to: string;
66
+ message?: string;
67
+ }
68
+ export interface AgentSseCompletePayload {
69
+ done: true;
70
+ finishReason?: FinishReason;
71
+ awaiting?: AgentAwaiting;
72
+ /** Number of model steps the run took (`response.steps.length`). */
73
+ steps?: number;
74
+ usage?: TokenUsage;
75
+ }
76
+ export interface AgentSseErrorPayload {
77
+ message: string;
78
+ }
79
+ /**
80
+ * Project an `agent.stream()` result onto the named-event SSE wire as a
81
+ * `ReadableStream<Uint8Array>`.
82
+ *
83
+ * Iterates the chunk stream, emits one named event per loop chunk, then
84
+ * awaits the `response` promise and emits a terminal `complete` event
85
+ * carrying `done`, `finishReason`, the `awaiting` pause (if any), step count,
86
+ * and usage. If iteration or the response throws, an `error` event is emitted
87
+ * and the stream closes cleanly so the browser reader's `onError` fires.
88
+ */
89
+ export declare function toAgentSseStream(streaming: AgentStreamResponse): ReadableStream<Uint8Array>;
90
+ /**
91
+ * Wrap {@link toAgentSseStream} in a `Response` with the standard
92
+ * `text/event-stream` headers (no caching, no proxy buffering). Return it
93
+ * directly from a route handler.
94
+ */
95
+ export declare function toAgentSseResponse(streaming: AgentStreamResponse, init?: ResponseInit): Response;
96
+ /**
97
+ * The accumulated state of one streamed agent turn, built up event by event
98
+ * by {@link readAgentStream}. Mirrors {@link AgentResponse} fields the browser
99
+ * needs to render the turn and build the next continuation request.
100
+ */
101
+ export interface AgentStreamTurn {
102
+ /** Concatenated `text` event deltas. */
103
+ assistantText: string;
104
+ /** Tool calls stamped by `tool_call` events (for the next continuation). */
105
+ assistantToolCalls: ToolCall[];
106
+ /** Server-side `role:'tool'` result messages from `tool_result` events. */
107
+ serverToolResults: AiMessage[];
108
+ /** Client tool calls from a `pending_client_tools` event to run locally. */
109
+ pendingClientTools: ToolCall[];
110
+ /** Approval pause from a `tool_approval_required` event. */
111
+ pendingApproval: AgentSseApprovalPayload | null;
112
+ /** Chain of agent class names traversed via `handoff` events. */
113
+ handoffPath: string[];
114
+ /** `true` once a `complete` event with `done: true` arrived. */
115
+ done: boolean;
116
+ /** What the run paused on, from the `complete` event. */
117
+ awaiting: AgentAwaiting | undefined;
118
+ }
119
+ /** A fresh, empty {@link AgentStreamTurn}. */
120
+ export declare function newAgentStreamTurn(): AgentStreamTurn;
121
+ /** Per-event callbacks fired by {@link readAgentStream} for UI side effects. */
122
+ export interface AgentStreamCallbacks {
123
+ onText?: (text: string) => void;
124
+ onToolCall?: (call: AgentSseToolCallPayload) => void;
125
+ onToolUpdate?: (update: AgentSseToolUpdatePayload) => void;
126
+ onToolResult?: (result: AgentSseToolResultPayload) => void;
127
+ onPendingClientTools?: (toolCalls: ToolCall[]) => void;
128
+ onToolApprovalRequired?: (approval: AgentSseApprovalPayload) => void;
129
+ onHandoff?: (handoff: AgentSseHandoffPayload) => void;
130
+ onComplete?: (data: AgentSseCompletePayload) => void;
131
+ onError?: (error: AgentSseErrorPayload) => void;
132
+ }
133
+ /**
134
+ * Read a named-event agent-SSE response body, applying each event to a fresh
135
+ * {@link AgentStreamTurn} and firing the matching callback. Resolves with the
136
+ * accumulated turn once the stream closes.
137
+ *
138
+ * The caller owns the `fetch` and the `!resp.ok` branch (so a rich error body
139
+ * can be read for non-2xx responses); pass an already-OK response. A missing
140
+ * body resolves to an empty turn. Malformed event JSON is skipped.
141
+ */
142
+ export declare function readAgentStream(resp: Response, callbacks?: AgentStreamCallbacks): Promise<AgentStreamTurn>;
143
+ /**
144
+ * Apply a single parsed SSE event to the turn state and fire the matching
145
+ * callback. Mutates `turn`; otherwise pure. Exposed for unit-testing the
146
+ * reducer against a synthetic turn without a live stream.
147
+ */
148
+ export declare function applyAgentSseEvent(event: string, data: unknown, turn: AgentStreamTurn, callbacks?: AgentStreamCallbacks): void;
149
+ //# sourceMappingURL=agent-sse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-sse.d.ts","sourceRoot":"","sources":["../src/agent-sse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Named-event SSE protocol for streaming an agent loop to a browser.
3
+ *
4
+ * `@rudderjs/ai` already ships the Vercel AI SDK data-stream protocol
5
+ * ({@link toVercelDataStream}) - the numeric-prefix wire (`0:` / `9:` / `a:`
6
+ * ...). This is the alternative for apps that want a plain
7
+ * `text/event-stream` with self-describing event names that mirror the agent
8
+ * loop's own lifecycle (`text`, `tool_call`, `tool_update`, `tool_result`,
9
+ * `pending_client_tools`, `tool_approval_required`, `handoff`, `complete`,
10
+ * `error`).
11
+ *
12
+ * Both ends live here so the wire vocabulary can never drift:
13
+ *
14
+ * - Server: {@link toAgentSseStream} / {@link toAgentSseResponse} project an
15
+ * `agent.stream()` result onto the named events and frame them as SSE.
16
+ * - Browser: {@link readAgentStream} decodes the same events back into an
17
+ * {@link AgentStreamTurn} and fires per-event callbacks for UI side effects.
18
+ * {@link applyAgentSseEvent} is exposed so the per-event reducer can be
19
+ * unit-tested against a synthetic turn.
20
+ *
21
+ * Runtime-agnostic: uses only web globals (`ReadableStream`, `Response`,
22
+ * `TextEncoder` / `TextDecoder`, `crypto.randomUUID`), no `node:` imports, so
23
+ * the module is safe in the main entry and runs server-side (Node / edge) and
24
+ * client-side alike.
25
+ *
26
+ * This ships the framework-generic core. App-specific events (conversation
27
+ * ids, billing, sub-run fan-out bookkeeping, server-authoritative history
28
+ * sync) are not part of it - emit and decode those alongside this protocol on
29
+ * your own channel.
30
+ */
31
+ // ─── Server: project a stream onto SSE ────────────────────
32
+ /** Map a finish reason to the pause it represents, if any. */
33
+ function awaitingFor(reason) {
34
+ if (reason === 'client_tool_calls')
35
+ return 'client_tools';
36
+ if (reason === 'tool_approval_required')
37
+ return 'approval';
38
+ return undefined;
39
+ }
40
+ function frame(event, data) {
41
+ return `event: ${event}\ndata: ${JSON.stringify(data)}\n\n`;
42
+ }
43
+ /**
44
+ * Project an `agent.stream()` result onto the named-event SSE wire as a
45
+ * `ReadableStream<Uint8Array>`.
46
+ *
47
+ * Iterates the chunk stream, emits one named event per loop chunk, then
48
+ * awaits the `response` promise and emits a terminal `complete` event
49
+ * carrying `done`, `finishReason`, the `awaiting` pause (if any), step count,
50
+ * and usage. If iteration or the response throws, an `error` event is emitted
51
+ * and the stream closes cleanly so the browser reader's `onError` fires.
52
+ */
53
+ export function toAgentSseStream(streaming) {
54
+ const { stream, response } = streaming;
55
+ const encoder = new TextEncoder();
56
+ return new ReadableStream({
57
+ async start(controller) {
58
+ const emit = (event, data) => controller.enqueue(encoder.encode(frame(event, data)));
59
+ try {
60
+ for await (const chunk of stream) {
61
+ emitChunk(chunk, emit);
62
+ }
63
+ const res = await response;
64
+ const awaiting = awaitingFor(res.finishReason);
65
+ const complete = {
66
+ done: true,
67
+ steps: res.steps.length,
68
+ usage: res.usage,
69
+ };
70
+ if (res.finishReason)
71
+ complete.finishReason = res.finishReason;
72
+ if (awaiting)
73
+ complete.awaiting = awaiting;
74
+ emit('complete', complete);
75
+ }
76
+ catch (err) {
77
+ const message = err instanceof Error ? err.message : String(err);
78
+ emit('error', { message });
79
+ }
80
+ finally {
81
+ controller.close();
82
+ }
83
+ },
84
+ });
85
+ }
86
+ function emitChunk(chunk, emit) {
87
+ switch (chunk.type) {
88
+ case 'text-delta':
89
+ if (chunk.text)
90
+ emit('text', { text: chunk.text });
91
+ return;
92
+ case 'tool-call':
93
+ emit('tool_call', {
94
+ ...(chunk.toolCall?.id ? { id: chunk.toolCall.id } : {}),
95
+ tool: chunk.toolCall?.name ?? '',
96
+ input: chunk.toolCall?.arguments ?? {},
97
+ });
98
+ return;
99
+ case 'tool-update':
100
+ emit('tool_update', {
101
+ ...(chunk.toolCall?.id ? { id: chunk.toolCall.id } : {}),
102
+ ...(chunk.toolCall?.name ? { tool: chunk.toolCall.name } : {}),
103
+ update: chunk.update,
104
+ });
105
+ return;
106
+ case 'tool-result': {
107
+ const id = chunk.toolCall?.id;
108
+ emit('tool_result', {
109
+ ...(id ? { id, toolCallId: id } : {}),
110
+ ...(chunk.toolCall?.name ? { tool: chunk.toolCall.name } : {}),
111
+ content: typeof chunk.result === 'string' ? chunk.result : JSON.stringify(chunk.result),
112
+ });
113
+ return;
114
+ }
115
+ case 'pending-client-tools':
116
+ emit('pending_client_tools', { toolCalls: chunk.toolCalls ?? [] });
117
+ return;
118
+ case 'pending-approval':
119
+ if (chunk.toolCall) {
120
+ emit('tool_approval_required', {
121
+ toolCall: chunk.toolCall,
122
+ isClientTool: chunk.isClientTool ?? false,
123
+ });
124
+ }
125
+ return;
126
+ case 'handoff':
127
+ if (chunk.handoff)
128
+ emit('handoff', chunk.handoff);
129
+ return;
130
+ // 'tool-call-delta' | 'usage' | 'finish' carry no named event - the
131
+ // terminal `complete` event reports finish reason + usage from the
132
+ // resolved AgentResponse.
133
+ }
134
+ }
135
+ /**
136
+ * Wrap {@link toAgentSseStream} in a `Response` with the standard
137
+ * `text/event-stream` headers (no caching, no proxy buffering). Return it
138
+ * directly from a route handler.
139
+ */
140
+ export function toAgentSseResponse(streaming, init) {
141
+ const headers = new Headers(init?.headers);
142
+ headers.set('Content-Type', 'text/event-stream; charset=utf-8');
143
+ headers.set('Cache-Control', 'no-cache, no-transform');
144
+ headers.set('Connection', 'keep-alive');
145
+ // Disable nginx response buffering so events flush as they're produced.
146
+ headers.set('X-Accel-Buffering', 'no');
147
+ return new Response(toAgentSseStream(streaming), { ...init, headers });
148
+ }
149
+ /** A fresh, empty {@link AgentStreamTurn}. */
150
+ export function newAgentStreamTurn() {
151
+ return {
152
+ assistantText: '',
153
+ assistantToolCalls: [],
154
+ serverToolResults: [],
155
+ pendingClientTools: [],
156
+ pendingApproval: null,
157
+ handoffPath: [],
158
+ done: false,
159
+ awaiting: undefined,
160
+ };
161
+ }
162
+ function randomId() {
163
+ return typeof crypto !== 'undefined' && crypto.randomUUID
164
+ ? crypto.randomUUID()
165
+ : `tc-${Date.now()}-${Math.round(Math.random() * 1e9)}`;
166
+ }
167
+ /**
168
+ * Read a named-event agent-SSE response body, applying each event to a fresh
169
+ * {@link AgentStreamTurn} and firing the matching callback. Resolves with the
170
+ * accumulated turn once the stream closes.
171
+ *
172
+ * The caller owns the `fetch` and the `!resp.ok` branch (so a rich error body
173
+ * can be read for non-2xx responses); pass an already-OK response. A missing
174
+ * body resolves to an empty turn. Malformed event JSON is skipped.
175
+ */
176
+ export async function readAgentStream(resp, callbacks = {}) {
177
+ const turn = newAgentStreamTurn();
178
+ if (!resp.body)
179
+ return turn;
180
+ const reader = resp.body.getReader();
181
+ const decoder = new TextDecoder();
182
+ let buffer = '';
183
+ // Hoisted across reads: an `event:` line and its `data:` line can land in
184
+ // separate `read()` chunks when the body is sliced mid-frame.
185
+ let currentEvent = '';
186
+ for (;;) {
187
+ const { done, value } = await reader.read();
188
+ if (done)
189
+ break;
190
+ buffer += decoder.decode(value, { stream: true });
191
+ const lines = buffer.split('\n');
192
+ buffer = lines.pop() ?? '';
193
+ for (const line of lines) {
194
+ if (line.startsWith('event: ')) {
195
+ currentEvent = line.slice(7);
196
+ }
197
+ else if (line.startsWith('data: ') && currentEvent) {
198
+ try {
199
+ applyAgentSseEvent(currentEvent, JSON.parse(line.slice(6)), turn, callbacks);
200
+ }
201
+ catch { /* skip malformed JSON */ }
202
+ currentEvent = '';
203
+ }
204
+ }
205
+ }
206
+ return turn;
207
+ }
208
+ /**
209
+ * Apply a single parsed SSE event to the turn state and fire the matching
210
+ * callback. Mutates `turn`; otherwise pure. Exposed for unit-testing the
211
+ * reducer against a synthetic turn without a live stream.
212
+ */
213
+ export function applyAgentSseEvent(event, data, turn, callbacks = {}) {
214
+ switch (event) {
215
+ case 'text': {
216
+ const d = data;
217
+ turn.assistantText += d.text;
218
+ callbacks.onText?.(d.text);
219
+ return;
220
+ }
221
+ case 'tool_call': {
222
+ const d = data;
223
+ turn.assistantToolCalls.push({
224
+ id: d.id ?? randomId(),
225
+ name: d.tool,
226
+ arguments: d.input ?? {},
227
+ });
228
+ callbacks.onToolCall?.(d);
229
+ return;
230
+ }
231
+ case 'tool_update': {
232
+ callbacks.onToolUpdate?.(data);
233
+ return;
234
+ }
235
+ case 'tool_result': {
236
+ const d = data;
237
+ const toolCallId = d.toolCallId ?? d.id;
238
+ if (toolCallId) {
239
+ turn.serverToolResults.push({ role: 'tool', content: d.content, toolCallId });
240
+ }
241
+ callbacks.onToolResult?.(d);
242
+ return;
243
+ }
244
+ case 'pending_client_tools': {
245
+ const d = data;
246
+ turn.pendingClientTools = d.toolCalls ?? [];
247
+ callbacks.onPendingClientTools?.(turn.pendingClientTools);
248
+ return;
249
+ }
250
+ case 'tool_approval_required': {
251
+ const d = data;
252
+ turn.pendingApproval = { toolCall: d.toolCall, isClientTool: d.isClientTool };
253
+ callbacks.onToolApprovalRequired?.(d);
254
+ return;
255
+ }
256
+ case 'handoff': {
257
+ const d = data;
258
+ if (turn.handoffPath.length === 0 && d.from)
259
+ turn.handoffPath.push(d.from);
260
+ if (d.to)
261
+ turn.handoffPath.push(d.to);
262
+ callbacks.onHandoff?.(d);
263
+ return;
264
+ }
265
+ case 'complete': {
266
+ const d = data;
267
+ if (d.done === true)
268
+ turn.done = true;
269
+ turn.awaiting = d.awaiting;
270
+ callbacks.onComplete?.(d);
271
+ return;
272
+ }
273
+ case 'error': {
274
+ const d = data;
275
+ callbacks.onError?.(d);
276
+ return;
277
+ }
278
+ }
279
+ }
280
+ //# sourceMappingURL=agent-sse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-sse.js","sourceRoot":"","sources":["../src/agent-sse.ts"],"names":[],"mappings":"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"}
package/dist/agent.d.ts CHANGED
@@ -384,8 +384,23 @@ export declare abstract class Agent {
384
384
  * Projects an inner-agent {@link StreamChunk} into a {@link SubAgentUpdate} the
385
385
  * host can render, or `null` to suppress it. Used by both {@link Agent.asTool}
386
386
  * (`streaming`) and the streaming resume path ({@link SubAgentResumeOptions.streaming}).
387
+ *
388
+ * On the resume paths the projector also receives a `ctx` 2nd arg carrying the
389
+ * originating sub-run's `originalSubRunId` (and the host `key` when batched via
390
+ * {@link Agent.resumeManyAsTool}), so a side-effect projector can fan a raw
391
+ * chunk out to the correct per-sub-agent channel and return `null`:
392
+ *
393
+ * ```ts
394
+ * streaming: (chunk, ctx) => { pumpToChannel(ctx!.originalSubRunId, chunk); return null }
395
+ * ```
396
+ *
397
+ * `ctx` is optional — {@link Agent.asTool}'s initial-dispatch path omits it, and
398
+ * existing projectors that ignore the arg are unaffected.
387
399
  */
388
- export type ChunkProjector = (chunk: StreamChunk) => SubAgentUpdate | null;
400
+ export type ChunkProjector = (chunk: StreamChunk, ctx?: {
401
+ originalSubRunId: string;
402
+ key?: string;
403
+ }) => SubAgentUpdate | null;
389
404
  /**
390
405
  * Live-progress option shared by {@link Agent.asTool} and the streaming resume
391
406
  * surface: `true` uses {@link defaultSubAgentProjector}; a function is your own
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -369,8 +369,9 @@ export class Agent {
369
369
  if (options.streaming) {
370
370
  const project = options.streaming === true ? defaultSubAgentProjector : options.streaming;
371
371
  const { stream, response } = options.agent.stream('', promptOpts);
372
+ const ctx = { originalSubRunId: subRunId, ...(options.key !== undefined ? { key: options.key } : {}) };
372
373
  for await (const chunk of stream) {
373
- const update = project(chunk);
374
+ const update = project(chunk, ctx);
374
375
  if (update && options.onUpdate)
375
376
  await options.onUpdate(update);
376
377
  }
@@ -460,6 +461,8 @@ export class Agent {
460
461
  // Thread the shared projector + correlate each update back to this item.
461
462
  if (options.streaming !== undefined)
462
463
  opts.streaming = options.streaming;
464
+ if (req.key !== undefined)
465
+ opts.key = req.key;
463
466
  if (options.onUpdate) {
464
467
  const batchOnUpdate = options.onUpdate;
465
468
  opts.onUpdate = (update) => batchOnUpdate(update, base);