@adonis-agora/agent 0.56.0 → 0.57.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.
- package/CHANGELOG.md +8 -0
- package/dist/src/ag-ui/adapter.d.ts.map +1 -1
- package/dist/src/ag-ui/adapter.js +1 -2
- package/dist/src/ag-ui/adapter.js.map +1 -1
- package/dist/src/ag-ui/encoder.d.ts +7 -92
- package/dist/src/ag-ui/encoder.d.ts.map +1 -1
- package/dist/src/ag-ui/encoder.js +14 -498
- package/dist/src/ag-ui/encoder.js.map +1 -1
- package/dist/src/ag-ui/frames.d.ts +17 -0
- package/dist/src/ag-ui/frames.d.ts.map +1 -0
- package/dist/src/ag-ui/frames.js +69 -0
- package/dist/src/ag-ui/frames.js.map +1 -0
- package/dist/src/ag-ui/index.d.ts +9 -6
- package/dist/src/ag-ui/index.d.ts.map +1 -1
- package/dist/src/ag-ui/index.js +9 -6
- package/dist/src/ag-ui/index.js.map +1 -1
- package/dist/src/ag-ui/stream.d.ts +7 -23
- package/dist/src/ag-ui/stream.d.ts.map +1 -1
- package/dist/src/ag-ui/stream.js +9 -64
- package/dist/src/ag-ui/stream.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/package.json +3 -3
- package/dist/src/ag-ui/input.d.ts +0 -72
- package/dist/src/ag-ui/input.d.ts.map +0 -1
- package/dist/src/ag-ui/input.js +0 -216
- package/dist/src/ag-ui/input.js.map +0 -1
- package/dist/src/ag-ui/interrupt-id.d.ts +0 -27
- package/dist/src/ag-ui/interrupt-id.d.ts.map +0 -1
- package/dist/src/ag-ui/interrupt-id.js +0 -42
- package/dist/src/ag-ui/interrupt-id.js.map +0 -1
- package/dist/src/ag-ui/types.d.ts +0 -202
- package/dist/src/ag-ui/types.d.ts.map +0 -1
- package/dist/src/ag-ui/types.js +0 -33
- package/dist/src/ag-ui/types.js.map +0 -1
|
@@ -1,519 +1,35 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
const APPROVAL_SCHEMA = {
|
|
4
|
-
type: 'object',
|
|
5
|
-
properties: {
|
|
6
|
-
approved: { type: 'boolean' },
|
|
7
|
-
reason: { type: 'string' },
|
|
8
|
-
remember: { type: 'boolean' },
|
|
9
|
-
},
|
|
10
|
-
required: ['approved'],
|
|
11
|
-
};
|
|
12
|
-
/** The answer an elicitation expects: `{ answers: { <questionId>: string[] } }`. */
|
|
13
|
-
function elicitationSchema(request) {
|
|
14
|
-
const properties = {};
|
|
15
|
-
for (const question of request.questions) {
|
|
16
|
-
const options = question.options?.map((option) => option.value);
|
|
17
|
-
properties[question.id] = {
|
|
18
|
-
type: 'array',
|
|
19
|
-
title: question.prompt,
|
|
20
|
-
...(question.description !== undefined ? { description: question.description } : {}),
|
|
21
|
-
items: options !== undefined && options.length > 0 && question.allowFreeText !== true
|
|
22
|
-
? { type: 'string', enum: options }
|
|
23
|
-
: { type: 'string' },
|
|
24
|
-
...(question.multiple === true ? {} : { maxItems: 1 }),
|
|
25
|
-
...(question.defaults !== undefined ? { default: question.defaults } : {}),
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
type: 'object',
|
|
30
|
-
properties: { answers: { type: 'object', properties } },
|
|
31
|
-
required: ['answers'],
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function text(value) {
|
|
35
|
-
if (typeof value === 'string')
|
|
36
|
-
return value;
|
|
37
|
-
const json = JSON.stringify(value);
|
|
38
|
-
return json === undefined ? '' : json;
|
|
39
|
-
}
|
|
1
|
+
import { AgUiEncoder as SharedEncoder, } from '@dudousxd/nestjs-agent-core/ag-ui';
|
|
2
|
+
import { toAgUiFrame } from './frames.js';
|
|
40
3
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* request — served by any replica — replay the run's buffer, skip what the interrupted AG-UI run
|
|
45
|
-
* already delivered, and continue. It writes nothing itself; {@link agUiEvents} drives it and
|
|
46
|
-
* decides when the run has stopped to ask.
|
|
47
|
-
*
|
|
48
|
-
* What maps where:
|
|
49
|
-
* - `text` → `TEXT_MESSAGE_*` (one message per stretch of text);
|
|
50
|
-
* - `reasoning` → a reasoning span with one reasoning message;
|
|
51
|
-
* - `step-start`/`step-finish` → `STEP_STARTED`/`STEP_FINISHED`, the step's usage folded into the
|
|
52
|
-
* run's `usage`;
|
|
53
|
-
* - `tool-input-*` → `TOOL_CALL_START`/`ARGS`/`END`; `tool-output*` → `TOOL_CALL_RESULT`;
|
|
54
|
-
* - an approval or a question set the run parks on → an `Interrupt` on the closing `RUN_FINISHED`;
|
|
55
|
-
* - `cancelled` → the cancelled outcome; an error frame → `RUN_ERROR`;
|
|
56
|
-
* - generative UI, title, queue and the native approval/elicitation frames → `CUSTOM` events named
|
|
57
|
-
* in {@link AG_UI_CUSTOM}, for what AG-UI has no event for.
|
|
58
|
-
*
|
|
59
|
-
* Not mapped: sub-agent attribution (`subagentRunId`) — a delegated agent's frames are projected
|
|
60
|
-
* flat, as the protocol allows of a producer that does not attribute.
|
|
4
|
+
* The shared AG-UI encoder (`@dudousxd/nestjs-agent-core/ag-ui`, one implementation for both
|
|
5
|
+
* servers), reading this package's {@link StreamFrame}s. A pure state machine: the same frames
|
|
6
|
+
* always give the same events.
|
|
61
7
|
*/
|
|
62
8
|
export class AgUiEncoder {
|
|
63
|
-
|
|
64
|
-
position = 0;
|
|
65
|
-
started = false;
|
|
66
|
-
closed = false;
|
|
67
|
-
cancelled = false;
|
|
68
|
-
crossed = false;
|
|
69
|
-
messageSeq = 0;
|
|
70
|
-
stepSeq = 0;
|
|
71
|
-
openText;
|
|
72
|
-
openReasoning;
|
|
73
|
-
/** The last text message of the current step: a tool call attaches to it. */
|
|
74
|
-
stepMessage;
|
|
75
|
-
openSteps = [];
|
|
76
|
-
calls = new Map();
|
|
77
|
-
pending = new Map();
|
|
78
|
-
usage = new Map();
|
|
9
|
+
shared;
|
|
79
10
|
constructor(options) {
|
|
80
|
-
this.
|
|
11
|
+
this.shared = new SharedEncoder(options);
|
|
81
12
|
}
|
|
82
13
|
/** How many frames of the library stream this encoder has consumed. */
|
|
83
14
|
get consumed() {
|
|
84
|
-
return this.
|
|
15
|
+
return this.shared.consumed;
|
|
85
16
|
}
|
|
86
17
|
/** The run is waiting on at least one approval or question set nobody has settled yet. */
|
|
87
18
|
get waiting() {
|
|
88
|
-
return this.
|
|
19
|
+
return this.shared.waiting;
|
|
89
20
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Is anything still in flight that is NOT waiting on a person — a tool call announced and neither
|
|
92
|
-
* answered nor parked? While there is, more frames are coming without anyone's help.
|
|
93
|
-
*/
|
|
21
|
+
/** A tool call is announced and neither answered nor parked: more frames are coming. */
|
|
94
22
|
get busy() {
|
|
95
|
-
|
|
96
|
-
if (!call.answered && !this.pending.has(id))
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
return false;
|
|
23
|
+
return this.shared.busy;
|
|
100
24
|
}
|
|
101
|
-
/** `RUN_STARTED`, and the library's own ids for the run. Call once, before the first frame. */
|
|
102
25
|
start() {
|
|
103
|
-
|
|
104
|
-
return [];
|
|
105
|
-
this.started = true;
|
|
106
|
-
return [
|
|
107
|
-
{
|
|
108
|
-
type: 'RUN_STARTED',
|
|
109
|
-
threadId: this.options.threadId,
|
|
110
|
-
runId: this.options.runId,
|
|
111
|
-
protocolVersion: AG_UI_PROTOCOL_VERSION,
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
type: 'CUSTOM',
|
|
115
|
-
name: AG_UI_CUSTOM.run,
|
|
116
|
-
value: {
|
|
117
|
-
runId: this.options.streamRunId,
|
|
118
|
-
threadId: this.options.streamThreadId ?? this.options.threadId,
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
];
|
|
26
|
+
return this.shared.start();
|
|
122
27
|
}
|
|
123
|
-
/** The AG-UI events the next frame of the library stream stands for (possibly none). */
|
|
124
28
|
encode(frame) {
|
|
125
|
-
|
|
126
|
-
this.position += 1;
|
|
127
|
-
if (this.closed)
|
|
128
|
-
return [];
|
|
129
|
-
const skip = this.options.skip ?? 0;
|
|
130
|
-
if (!this.crossed && position >= skip)
|
|
131
|
-
this.crossBoundary();
|
|
132
|
-
const events = this.project(frame, position);
|
|
133
|
-
// A frame an earlier AG-UI run already delivered still moves the state (what is open, what is
|
|
134
|
-
// pending; NOT what was spent — usage is per run) but writes nothing. The last of them is the
|
|
135
|
-
// boundary: crossed at once, not when the next frame happens to arrive, because a run that was
|
|
136
|
-
// just answered may take a moment to write one.
|
|
137
|
-
if (position < skip) {
|
|
138
|
-
if (this.position >= skip)
|
|
139
|
-
this.crossBoundary();
|
|
140
|
-
return [];
|
|
141
|
-
}
|
|
142
|
-
return events;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* The replayed frames are behind us: from here on events are written. The AG-UI run that delivered
|
|
146
|
-
* them closed everything it had open before it finished, so this run starts with nothing open, and
|
|
147
|
-
* what the resuming request answered is no longer waiting.
|
|
148
|
-
*/
|
|
149
|
-
crossBoundary() {
|
|
150
|
-
this.crossed = true;
|
|
151
|
-
this.openText = undefined;
|
|
152
|
-
this.openReasoning = undefined;
|
|
153
|
-
this.stepMessage = undefined;
|
|
154
|
-
this.openSteps.length = 0;
|
|
155
|
-
for (const call of this.calls.values()) {
|
|
156
|
-
call.started = false;
|
|
157
|
-
call.ended = true;
|
|
158
|
-
}
|
|
159
|
-
for (const id of this.options.answered ?? [])
|
|
160
|
-
this.pending.delete(id);
|
|
161
|
-
}
|
|
162
|
-
get replaying() {
|
|
163
|
-
return this.position <= (this.options.skip ?? 0);
|
|
29
|
+
return this.shared.encode(toAgUiFrame(frame));
|
|
164
30
|
}
|
|
165
|
-
project(frame, position) {
|
|
166
|
-
switch (frame.t) {
|
|
167
|
-
case 'text':
|
|
168
|
-
return frame.v.length > 0 ? this.textDelta(frame.v) : [];
|
|
169
|
-
case 'component':
|
|
170
|
-
return [
|
|
171
|
-
this.custom(AG_UI_CUSTOM.ui, {
|
|
172
|
-
id: frame.id ?? `ui:${position}`,
|
|
173
|
-
component: frame.name,
|
|
174
|
-
props: frame.data,
|
|
175
|
-
...(frame.version !== undefined ? { version: frame.version } : {}),
|
|
176
|
-
...(frame.toolCallId !== undefined ? { toolCallId: frame.toolCallId } : {}),
|
|
177
|
-
}),
|
|
178
|
-
];
|
|
179
|
-
case 'approval': {
|
|
180
|
-
this.pending.set(frame.id, {
|
|
181
|
-
kind: 'approval',
|
|
182
|
-
parked: frame.runId,
|
|
183
|
-
toolCallId: frame.id,
|
|
184
|
-
interrupt: {
|
|
185
|
-
reason: 'tool_approval',
|
|
186
|
-
message: `Approve ${frame.toolName}?`,
|
|
187
|
-
toolCallId: frame.id,
|
|
188
|
-
responseSchema: APPROVAL_SCHEMA,
|
|
189
|
-
...(frame.expiresAt !== undefined ? { expiresAt: frame.expiresAt } : {}),
|
|
190
|
-
metadata: {
|
|
191
|
-
'agora.toolName': frame.toolName,
|
|
192
|
-
'agora.input': frame.input ?? null,
|
|
193
|
-
'agora.approver': frame.approver ?? 'requester',
|
|
194
|
-
},
|
|
195
|
-
},
|
|
196
|
-
});
|
|
197
|
-
return [
|
|
198
|
-
this.custom(AG_UI_CUSTOM.approvalRequested, {
|
|
199
|
-
id: frame.id,
|
|
200
|
-
runId: frame.runId,
|
|
201
|
-
toolName: frame.toolName,
|
|
202
|
-
input: frame.input ?? null,
|
|
203
|
-
approver: frame.approver ?? 'requester',
|
|
204
|
-
...(frame.expiresAt !== undefined ? { expiresAt: frame.expiresAt } : {}),
|
|
205
|
-
}),
|
|
206
|
-
];
|
|
207
|
-
}
|
|
208
|
-
case 'elicitation': {
|
|
209
|
-
this.pending.set(frame.id, {
|
|
210
|
-
kind: 'elicitation',
|
|
211
|
-
parked: frame.runId,
|
|
212
|
-
toolCallId: frame.id,
|
|
213
|
-
interrupt: {
|
|
214
|
-
reason: 'input_required',
|
|
215
|
-
message: frame.request.preamble ?? frame.request.questions[0]?.prompt ?? 'Input required',
|
|
216
|
-
// An intake's question set belongs to no tool call the stream announced.
|
|
217
|
-
...(this.calls.has(frame.id) ? { toolCallId: frame.id } : {}),
|
|
218
|
-
responseSchema: elicitationSchema(frame.request),
|
|
219
|
-
metadata: { 'agora.request': frame.request },
|
|
220
|
-
},
|
|
221
|
-
});
|
|
222
|
-
return [
|
|
223
|
-
this.custom(AG_UI_CUSTOM.elicitation, { runId: frame.runId, request: frame.request }),
|
|
224
|
-
];
|
|
225
|
-
}
|
|
226
|
-
case 'error': {
|
|
227
|
-
this.closed = true;
|
|
228
|
-
const usage = this.usageEntries();
|
|
229
|
-
return [
|
|
230
|
-
{
|
|
231
|
-
type: 'RUN_ERROR',
|
|
232
|
-
message: frame.message,
|
|
233
|
-
code: frame.code,
|
|
234
|
-
...(usage.length > 0 ? { usage } : {}),
|
|
235
|
-
},
|
|
236
|
-
];
|
|
237
|
-
}
|
|
238
|
-
case 'event':
|
|
239
|
-
return this.event(frame.event);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
event(event) {
|
|
243
|
-
switch (event.kind) {
|
|
244
|
-
case 'text':
|
|
245
|
-
return event.text.length > 0 ? this.textDelta(event.text) : [];
|
|
246
|
-
case 'reasoning':
|
|
247
|
-
return event.text.length > 0 ? this.reasoningDelta(event.text) : [];
|
|
248
|
-
case 'step-start': {
|
|
249
|
-
this.stepSeq += 1;
|
|
250
|
-
const stepName = `step-${this.stepSeq}`;
|
|
251
|
-
this.openSteps.push(stepName);
|
|
252
|
-
this.stepMessage = undefined;
|
|
253
|
-
return [...this.closeStreams(), { type: 'STEP_STARTED', stepName }];
|
|
254
|
-
}
|
|
255
|
-
case 'step-finish': {
|
|
256
|
-
const out = this.closeStreams();
|
|
257
|
-
if (!this.replaying)
|
|
258
|
-
this.addUsage(event.usage, event.model);
|
|
259
|
-
const stepName = this.openSteps.pop();
|
|
260
|
-
if (stepName !== undefined)
|
|
261
|
-
out.push({ type: 'STEP_FINISHED', stepName });
|
|
262
|
-
if (event.usage !== undefined || event.costUsd !== undefined) {
|
|
263
|
-
out.push(this.custom(AG_UI_CUSTOM.stepUsage, {
|
|
264
|
-
...(event.usage !== undefined ? { usage: event.usage } : {}),
|
|
265
|
-
...(event.costUsd !== undefined ? { costUsd: event.costUsd } : {}),
|
|
266
|
-
...(event.reasoningMs !== undefined ? { reasoningMs: event.reasoningMs } : {}),
|
|
267
|
-
}));
|
|
268
|
-
}
|
|
269
|
-
return out;
|
|
270
|
-
}
|
|
271
|
-
case 'tool-input-start': {
|
|
272
|
-
if (this.calls.has(event.id))
|
|
273
|
-
return [];
|
|
274
|
-
const out = this.closeStreams();
|
|
275
|
-
this.calls.set(event.id, {
|
|
276
|
-
name: event.name,
|
|
277
|
-
started: true,
|
|
278
|
-
ended: false,
|
|
279
|
-
sawDelta: false,
|
|
280
|
-
answered: false,
|
|
281
|
-
});
|
|
282
|
-
out.push(this.callStart(event.id, event.name));
|
|
283
|
-
return out;
|
|
284
|
-
}
|
|
285
|
-
case 'tool-input-delta': {
|
|
286
|
-
const call = this.calls.get(event.id);
|
|
287
|
-
if (call === undefined || call.ended || event.delta.length === 0)
|
|
288
|
-
return [];
|
|
289
|
-
call.sawDelta = true;
|
|
290
|
-
return [{ type: 'TOOL_CALL_ARGS', toolCallId: event.id, delta: event.delta }];
|
|
291
|
-
}
|
|
292
|
-
case 'tool-input-available': {
|
|
293
|
-
const known = this.calls.get(event.id);
|
|
294
|
-
if (known?.ended === true)
|
|
295
|
-
return [];
|
|
296
|
-
const out = this.closeStreams();
|
|
297
|
-
const call = known ?? {
|
|
298
|
-
name: event.name,
|
|
299
|
-
started: false,
|
|
300
|
-
ended: false,
|
|
301
|
-
sawDelta: false,
|
|
302
|
-
answered: false,
|
|
303
|
-
};
|
|
304
|
-
if (!call.started) {
|
|
305
|
-
call.started = true;
|
|
306
|
-
out.push(this.callStart(event.id, event.name));
|
|
307
|
-
}
|
|
308
|
-
if (!call.sawDelta) {
|
|
309
|
-
out.push({
|
|
310
|
-
type: 'TOOL_CALL_ARGS',
|
|
311
|
-
toolCallId: event.id,
|
|
312
|
-
delta: text(event.input ?? {}),
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
call.ended = true;
|
|
316
|
-
this.calls.set(event.id, call);
|
|
317
|
-
out.push({ type: 'TOOL_CALL_END', toolCallId: event.id });
|
|
318
|
-
return out;
|
|
319
|
-
}
|
|
320
|
-
case 'tool-output':
|
|
321
|
-
return this.result(event.id, text(event.output));
|
|
322
|
-
case 'tool-output-error':
|
|
323
|
-
return this.result(event.id, event.error, { 'agora.outcome': 'error' });
|
|
324
|
-
case 'tool-output-denied':
|
|
325
|
-
return this.result(event.id, event.reason ?? 'denied', { 'agora.outcome': 'denied' });
|
|
326
|
-
case 'approval-requested':
|
|
327
|
-
// Written by the loop as a typed `approval` frame; an event of this kind reaching the sink
|
|
328
|
-
// directly is carried as-is rather than guessed into an interrupt without its run id.
|
|
329
|
-
return [this.custom(AG_UI_CUSTOM.approvalRequested, event)];
|
|
330
|
-
case 'approval-settled':
|
|
331
|
-
this.pending.delete(event.id);
|
|
332
|
-
return [this.custom(AG_UI_CUSTOM.approvalSettled, event)];
|
|
333
|
-
case 'elicitation':
|
|
334
|
-
return [this.custom(AG_UI_CUSTOM.elicitation, { request: event.request })];
|
|
335
|
-
case 'ui': {
|
|
336
|
-
const { kind: _kind, ...component } = event;
|
|
337
|
-
return [this.custom(AG_UI_CUSTOM.ui, component)];
|
|
338
|
-
}
|
|
339
|
-
case 'title':
|
|
340
|
-
return [this.custom(AG_UI_CUSTOM.title, { title: event.title })];
|
|
341
|
-
case 'queue':
|
|
342
|
-
return [
|
|
343
|
-
this.custom(AG_UI_CUSTOM.queue, {
|
|
344
|
-
queue: event.queue,
|
|
345
|
-
...(event.started !== undefined ? { started: event.started } : {}),
|
|
346
|
-
}),
|
|
347
|
-
];
|
|
348
|
-
case 'cancelled':
|
|
349
|
-
this.cancelled = true;
|
|
350
|
-
return [];
|
|
351
|
-
default:
|
|
352
|
-
// A kind newer than this encoder: tolerated, as every reader of the stream must.
|
|
353
|
-
return [];
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* The events that end the AG-UI run: whatever is still open is closed first, then `RUN_FINISHED`
|
|
358
|
-
* with how it ended — interrupted when the run is waiting on someone, cancelled when it was
|
|
359
|
-
* stopped, success otherwise. Nothing after a `RUN_ERROR`. `ended` says the library run's stream
|
|
360
|
-
* itself ended, rather than this reader having stopped following it.
|
|
361
|
-
*/
|
|
362
31
|
finish(ended = false) {
|
|
363
|
-
|
|
364
|
-
return [];
|
|
365
|
-
this.closed = true;
|
|
366
|
-
if (!this.crossed)
|
|
367
|
-
this.crossBoundary();
|
|
368
|
-
// A library run that ended is waiting on no one, whatever it asked along the way.
|
|
369
|
-
if (ended)
|
|
370
|
-
this.pending.clear();
|
|
371
|
-
const out = this.start();
|
|
372
|
-
out.push(...this.closeStreams());
|
|
373
|
-
for (const [id, call] of this.calls) {
|
|
374
|
-
if (call.started && !call.ended) {
|
|
375
|
-
call.ended = true;
|
|
376
|
-
out.push({ type: 'TOOL_CALL_END', toolCallId: id });
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
while (this.openSteps.length > 0) {
|
|
380
|
-
out.push({ type: 'STEP_FINISHED', stepName: this.openSteps.pop() });
|
|
381
|
-
}
|
|
382
|
-
const usage = this.usageEntries();
|
|
383
|
-
const interrupts = this.cancelled ? [] : this.interrupts();
|
|
384
|
-
out.push({
|
|
385
|
-
type: 'RUN_FINISHED',
|
|
386
|
-
threadId: this.options.threadId,
|
|
387
|
-
runId: this.options.runId,
|
|
388
|
-
...(this.cancelled
|
|
389
|
-
? { outcome: { type: 'cancelled' } }
|
|
390
|
-
: interrupts.length > 0
|
|
391
|
-
? { outcome: { type: 'interrupt', interrupts } }
|
|
392
|
-
: {}),
|
|
393
|
-
...(usage.length > 0 ? { usage } : {}),
|
|
394
|
-
});
|
|
395
|
-
return out;
|
|
396
|
-
}
|
|
397
|
-
interrupts() {
|
|
398
|
-
return [...this.pending.values()].map((entry) => ({
|
|
399
|
-
id: encodeInterruptId({
|
|
400
|
-
kind: entry.kind,
|
|
401
|
-
parked: entry.parked,
|
|
402
|
-
stream: this.options.streamRunId,
|
|
403
|
-
toolCallId: entry.toolCallId,
|
|
404
|
-
position: this.position,
|
|
405
|
-
}),
|
|
406
|
-
...entry.interrupt,
|
|
407
|
-
}));
|
|
408
|
-
}
|
|
409
|
-
custom(name, value) {
|
|
410
|
-
return { type: 'CUSTOM', name, value };
|
|
411
|
-
}
|
|
412
|
-
nextMessageId() {
|
|
413
|
-
this.messageSeq += 1;
|
|
414
|
-
return `${this.options.runId}:m${this.messageSeq}`;
|
|
415
|
-
}
|
|
416
|
-
textDelta(delta) {
|
|
417
|
-
const out = [];
|
|
418
|
-
if (this.openReasoning !== undefined)
|
|
419
|
-
out.push(...this.closeReasoning());
|
|
420
|
-
if (this.openText === undefined) {
|
|
421
|
-
this.openText = this.nextMessageId();
|
|
422
|
-
this.stepMessage = this.openText;
|
|
423
|
-
out.push({ type: 'TEXT_MESSAGE_START', messageId: this.openText, role: 'assistant' });
|
|
424
|
-
}
|
|
425
|
-
out.push({ type: 'TEXT_MESSAGE_CONTENT', messageId: this.openText, delta });
|
|
426
|
-
return out;
|
|
427
|
-
}
|
|
428
|
-
reasoningDelta(delta) {
|
|
429
|
-
const out = [];
|
|
430
|
-
if (this.openText !== undefined)
|
|
431
|
-
out.push(...this.closeText());
|
|
432
|
-
if (this.openReasoning === undefined) {
|
|
433
|
-
this.openReasoning = this.nextMessageId();
|
|
434
|
-
out.push({ type: 'REASONING_START', messageId: this.openReasoning }, { type: 'REASONING_MESSAGE_START', messageId: this.openReasoning, role: 'reasoning' });
|
|
435
|
-
}
|
|
436
|
-
out.push({ type: 'REASONING_MESSAGE_CONTENT', messageId: this.openReasoning, delta });
|
|
437
|
-
return out;
|
|
438
|
-
}
|
|
439
|
-
closeText() {
|
|
440
|
-
if (this.openText === undefined)
|
|
441
|
-
return [];
|
|
442
|
-
const messageId = this.openText;
|
|
443
|
-
this.openText = undefined;
|
|
444
|
-
return [{ type: 'TEXT_MESSAGE_END', messageId }];
|
|
445
|
-
}
|
|
446
|
-
closeReasoning() {
|
|
447
|
-
if (this.openReasoning === undefined)
|
|
448
|
-
return [];
|
|
449
|
-
const messageId = this.openReasoning;
|
|
450
|
-
this.openReasoning = undefined;
|
|
451
|
-
return [
|
|
452
|
-
{ type: 'REASONING_MESSAGE_END', messageId },
|
|
453
|
-
{ type: 'REASONING_END', messageId },
|
|
454
|
-
];
|
|
455
|
-
}
|
|
456
|
-
closeStreams() {
|
|
457
|
-
return [...this.closeReasoning(), ...this.closeText()];
|
|
458
|
-
}
|
|
459
|
-
callStart(id, name) {
|
|
460
|
-
return {
|
|
461
|
-
type: 'TOOL_CALL_START',
|
|
462
|
-
toolCallId: id,
|
|
463
|
-
toolCallName: name,
|
|
464
|
-
...(this.stepMessage !== undefined ? { parentMessageId: this.stepMessage } : {}),
|
|
465
|
-
};
|
|
466
|
-
}
|
|
467
|
-
result(id, content, metadata) {
|
|
468
|
-
const call = this.calls.get(id);
|
|
469
|
-
if (call !== undefined)
|
|
470
|
-
call.answered = true;
|
|
471
|
-
else {
|
|
472
|
-
this.calls.set(id, {
|
|
473
|
-
name: '',
|
|
474
|
-
started: false,
|
|
475
|
-
ended: true,
|
|
476
|
-
sawDelta: false,
|
|
477
|
-
answered: true,
|
|
478
|
-
});
|
|
479
|
-
}
|
|
480
|
-
this.pending.delete(id);
|
|
481
|
-
return [
|
|
482
|
-
...this.closeStreams(),
|
|
483
|
-
{
|
|
484
|
-
type: 'TOOL_CALL_RESULT',
|
|
485
|
-
messageId: `${this.options.runId}:tool:${id}`,
|
|
486
|
-
toolCallId: id,
|
|
487
|
-
content,
|
|
488
|
-
role: 'tool',
|
|
489
|
-
...(metadata !== undefined ? { metadata } : {}),
|
|
490
|
-
},
|
|
491
|
-
];
|
|
492
|
-
}
|
|
493
|
-
addUsage(usage, model) {
|
|
494
|
-
if (usage === undefined)
|
|
495
|
-
return;
|
|
496
|
-
const name = typeof model === 'string' && model.length > 0 ? model : this.options.model;
|
|
497
|
-
const key = name ?? '';
|
|
498
|
-
const entry = this.usage.get(key) ?? (name !== undefined ? { model: name } : {});
|
|
499
|
-
// The library's accounting is already the protocol's: input and output are totals, cache and
|
|
500
|
-
// reasoning counts are parts of them. A count the provider did not report stays absent.
|
|
501
|
-
entry.inputTokens = (entry.inputTokens ?? 0) + usage.inputTokens;
|
|
502
|
-
entry.outputTokens = (entry.outputTokens ?? 0) + usage.outputTokens;
|
|
503
|
-
entry.totalTokens = entry.inputTokens + entry.outputTokens;
|
|
504
|
-
if (usage.cacheReadTokens !== undefined) {
|
|
505
|
-
entry.cachedInputTokens = (entry.cachedInputTokens ?? 0) + usage.cacheReadTokens;
|
|
506
|
-
}
|
|
507
|
-
if (usage.cacheWriteTokens !== undefined) {
|
|
508
|
-
entry.cacheWriteInputTokens = (entry.cacheWriteInputTokens ?? 0) + usage.cacheWriteTokens;
|
|
509
|
-
}
|
|
510
|
-
if (usage.reasoningTokens !== undefined) {
|
|
511
|
-
entry.reasoningTokens = (entry.reasoningTokens ?? 0) + usage.reasoningTokens;
|
|
512
|
-
}
|
|
513
|
-
this.usage.set(key, entry);
|
|
514
|
-
}
|
|
515
|
-
usageEntries() {
|
|
516
|
-
return [...this.usage.values()];
|
|
32
|
+
return this.shared.finish(ended);
|
|
517
33
|
}
|
|
518
34
|
}
|
|
519
35
|
//# sourceMappingURL=encoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../src/ag-ui/encoder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../src/ag-ui/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,IAAI,aAAa,GAC7B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACL,MAAM,CAAgB;IAEvC,YAAY,OAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,uEAAuE;IACvE,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,0FAA0F;IAC1F,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,wFAAwF;IACxF,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAkB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,KAAK;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AgUiSourceFrame } from '@dudousxd/nestjs-agent-core/ag-ui';
|
|
2
|
+
import type { StreamFrame } from '../spi/token-stream-sink.js';
|
|
3
|
+
/**
|
|
4
|
+
* One frame of this package's sink as the frame the shared AG-UI encoder reads
|
|
5
|
+
* (`@dudousxd/nestjs-agent-core/ag-ui`). The typed `approval` / `elicitation` frames carry what the
|
|
6
|
+
* shared vocabulary leaves optional — the PARKED run, the tool and its arguments — so an interrupt
|
|
7
|
+
* addresses a delegated sub-agent's own run.
|
|
8
|
+
*/
|
|
9
|
+
export declare function toAgUiFrame(frame: StreamFrame): AgUiSourceFrame;
|
|
10
|
+
/**
|
|
11
|
+
* A library run's stream as the shared encoder's frames. A hand-rolled iterator rather than a
|
|
12
|
+
* generator: the AG-UI driver lets go of a parked stream while a read is still pending, and a
|
|
13
|
+
* generator would queue that `return()` behind the read that never comes — the sink's subscription
|
|
14
|
+
* has to be released at once.
|
|
15
|
+
*/
|
|
16
|
+
export declare function agUiFrames(frames: AsyncIterable<StreamFrame>): AsyncIterable<AgUiSourceFrame>;
|
|
17
|
+
//# sourceMappingURL=frames.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../src/ag-ui/frames.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,CAoC/D;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,CAkB7F"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One frame of this package's sink as the frame the shared AG-UI encoder reads
|
|
3
|
+
* (`@dudousxd/nestjs-agent-core/ag-ui`). The typed `approval` / `elicitation` frames carry what the
|
|
4
|
+
* shared vocabulary leaves optional — the PARKED run, the tool and its arguments — so an interrupt
|
|
5
|
+
* addresses a delegated sub-agent's own run.
|
|
6
|
+
*/
|
|
7
|
+
export function toAgUiFrame(frame) {
|
|
8
|
+
switch (frame.t) {
|
|
9
|
+
case 'text':
|
|
10
|
+
return { kind: 'text', text: frame.v };
|
|
11
|
+
case 'component':
|
|
12
|
+
return {
|
|
13
|
+
kind: 'ui',
|
|
14
|
+
component: frame.name,
|
|
15
|
+
props: frame.data,
|
|
16
|
+
...(frame.id !== undefined ? { id: frame.id } : {}),
|
|
17
|
+
...(frame.version !== undefined ? { version: frame.version } : {}),
|
|
18
|
+
...(frame.toolCallId !== undefined ? { toolCallId: frame.toolCallId } : {}),
|
|
19
|
+
};
|
|
20
|
+
case 'approval':
|
|
21
|
+
return {
|
|
22
|
+
kind: 'approval-requested',
|
|
23
|
+
id: frame.id,
|
|
24
|
+
runId: frame.runId,
|
|
25
|
+
toolName: frame.toolName,
|
|
26
|
+
input: frame.input ?? null,
|
|
27
|
+
approver: frame.approver ?? 'requester',
|
|
28
|
+
...(frame.expiresAt !== undefined ? { expiresAt: frame.expiresAt } : {}),
|
|
29
|
+
};
|
|
30
|
+
case 'elicitation':
|
|
31
|
+
return {
|
|
32
|
+
kind: 'elicitation',
|
|
33
|
+
id: frame.id,
|
|
34
|
+
runId: frame.runId,
|
|
35
|
+
request: frame.request,
|
|
36
|
+
};
|
|
37
|
+
case 'error':
|
|
38
|
+
return { kind: 'error', code: frame.code, message: frame.message };
|
|
39
|
+
case 'event':
|
|
40
|
+
// The same vocabulary, copied: shared field for field (see `stream-events.ts`).
|
|
41
|
+
return frame.event;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A library run's stream as the shared encoder's frames. A hand-rolled iterator rather than a
|
|
46
|
+
* generator: the AG-UI driver lets go of a parked stream while a read is still pending, and a
|
|
47
|
+
* generator would queue that `return()` behind the read that never comes — the sink's subscription
|
|
48
|
+
* has to be released at once.
|
|
49
|
+
*/
|
|
50
|
+
export function agUiFrames(frames) {
|
|
51
|
+
return {
|
|
52
|
+
[Symbol.asyncIterator]() {
|
|
53
|
+
const inner = frames[Symbol.asyncIterator]();
|
|
54
|
+
return {
|
|
55
|
+
next: async () => {
|
|
56
|
+
const result = await inner.next();
|
|
57
|
+
return result.done === true
|
|
58
|
+
? { done: true, value: undefined }
|
|
59
|
+
: { done: false, value: toAgUiFrame(result.value) };
|
|
60
|
+
},
|
|
61
|
+
return: async () => {
|
|
62
|
+
await inner.return?.();
|
|
63
|
+
return { done: true, value: undefined };
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=frames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frames.js","sourceRoot":"","sources":["../../../src/ag-ui/frames.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAkB;IAC5C,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACzC,KAAK,WAAW;YACd,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,KAAK,UAAU;YACb,OAAO;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;gBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,WAAW;gBACvC,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzE,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAuE;aACvF,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACrE,KAAK,OAAO;YACV,gFAAgF;YAChF,OAAO,KAAK,CAAC,KAAwB,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,MAAkC;IAC3D,OAAO;QACL,CAAC,MAAM,CAAC,aAAa,CAAC;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7C,OAAO;gBACL,IAAI,EAAE,KAAK,IAAI,EAAE;oBACf,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;oBAClC,OAAO,MAAM,CAAC,IAAI,KAAK,IAAI;wBACzB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAa,EAAE,KAAK,EAAE,SAAS,EAAE;wBAC3C,CAAC,CAAC,EAAE,IAAI,EAAE,KAAc,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,CAAC;gBACD,MAAM,EAAE,KAAK,IAAI,EAAE;oBACjB,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACvB,OAAO,EAAE,IAAI,EAAE,IAAa,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBACnD,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|