@kruntime/ag-ui 0.1.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/README.md ADDED
@@ -0,0 +1,75 @@
1
+ # @kruntime/ag-ui
2
+
3
+ AG-UI protocol adapter for KRuntime AgentSessions.
4
+
5
+ K keeps its own durable event stream small and Unix-like. `@kruntime/ag-ui`
6
+ adapts that stream to the AG-UI protocol used by chat and agent frontends.
7
+ It is not a UI framework and it is not runtime truth.
8
+
9
+ ```ts
10
+ import { AgUiEventType, agUiEvents } from '@kruntime/ag-ui'
11
+
12
+ const abort = new AbortController()
13
+
14
+ for await (const event of agUiEvents(agent, {
15
+ since: lastCursor,
16
+ signal: abort.signal,
17
+ })) {
18
+ socket.send(JSON.stringify(event))
19
+ }
20
+ ```
21
+
22
+ ## Mental Model
23
+
24
+ ```text
25
+ AgentSession.events({ since })
26
+ durable K event cursor stream
27
+ |
28
+ v
29
+ @kruntime/ag-ui projector
30
+ AG-UI run/message/tool/custom events
31
+ |
32
+ v
33
+ web, H5, mini program, Electron, plugin, SaaS UI
34
+ ```
35
+
36
+ The bridge does not become runtime truth. It only projects runtime truth:
37
+
38
+ - `turn { status: 'running' }` -> `RUN_STARTED`
39
+ - `content { kind: 'text' | 'reasoning' | ... }` -> message content events
40
+ - `tool { status: 'requested' | ... }` -> tool call events
41
+ - `process { status: 'output' | ... }` -> terminal/activity events
42
+ - `approval` and `signal` -> custom state/activity events
43
+ - terminal `turn` statuses -> `RUN_FINISHED` or `RUN_ERROR`
44
+
45
+ Input messages are read from `agent.messages.*`, not from a public
46
+ input-specific event. K's public event stream describes runtime work; message
47
+ history describes conversation state.
48
+
49
+ AG-UI wants explicit run and message boundaries. K events already have turn
50
+ boundaries, and the bridge can synthesize missing message starts and ends when
51
+ a client reconnects in the middle of a turn. K core does not need AG-UI-specific
52
+ start/end events for every UI concern.
53
+
54
+ ## UI Pattern
55
+
56
+ ```ts
57
+ const agent = await computer.login('claw', { id: `web:${userId}` })
58
+
59
+ const abort = new AbortController()
60
+ const task = agent.run('请整理今天的记忆', { by: `web:${userId}` })
61
+
62
+ for await (const event of agUiEvents(agent, { since: cursor, signal: abort.signal })) {
63
+ renderAgUiEvent(event)
64
+ cursor = Number(event.k?.cursor ?? cursor)
65
+ if (event.type === AgUiEventType.RUN_FINISHED || event.type === AgUiEventType.RUN_ERROR) {
66
+ abort.abort()
67
+ }
68
+ }
69
+
70
+ await task
71
+ ```
72
+
73
+ Use `agent.on(...)` for local in-process callbacks. Use
74
+ `agent.events({ since, signal })` or `agUiEvents(...)` for UI, because cursor
75
+ streams survive reconnects and process recovery.
@@ -0,0 +1,100 @@
1
+ import type { AgentSession, EventEnvelope, KMessage, RuntimeEvent } from '@kruntime/komputer';
2
+ export declare const AgUiEventType: {
3
+ readonly TEXT_MESSAGE_START: "TEXT_MESSAGE_START";
4
+ readonly TEXT_MESSAGE_CONTENT: "TEXT_MESSAGE_CONTENT";
5
+ readonly TEXT_MESSAGE_END: "TEXT_MESSAGE_END";
6
+ readonly TEXT_MESSAGE_CHUNK: "TEXT_MESSAGE_CHUNK";
7
+ readonly TOOL_CALL_START: "TOOL_CALL_START";
8
+ readonly TOOL_CALL_ARGS: "TOOL_CALL_ARGS";
9
+ readonly TOOL_CALL_END: "TOOL_CALL_END";
10
+ readonly TOOL_CALL_CHUNK: "TOOL_CALL_CHUNK";
11
+ readonly TOOL_CALL_RESULT: "TOOL_CALL_RESULT";
12
+ readonly STATE_SNAPSHOT: "STATE_SNAPSHOT";
13
+ readonly STATE_DELTA: "STATE_DELTA";
14
+ readonly MESSAGES_SNAPSHOT: "MESSAGES_SNAPSHOT";
15
+ readonly ACTIVITY_SNAPSHOT: "ACTIVITY_SNAPSHOT";
16
+ readonly ACTIVITY_DELTA: "ACTIVITY_DELTA";
17
+ readonly RAW: "RAW";
18
+ readonly CUSTOM: "CUSTOM";
19
+ readonly RUN_STARTED: "RUN_STARTED";
20
+ readonly RUN_FINISHED: "RUN_FINISHED";
21
+ readonly RUN_ERROR: "RUN_ERROR";
22
+ readonly STEP_STARTED: "STEP_STARTED";
23
+ readonly STEP_FINISHED: "STEP_FINISHED";
24
+ readonly REASONING_START: "REASONING_START";
25
+ readonly REASONING_MESSAGE_START: "REASONING_MESSAGE_START";
26
+ readonly REASONING_MESSAGE_CONTENT: "REASONING_MESSAGE_CONTENT";
27
+ readonly REASONING_MESSAGE_END: "REASONING_MESSAGE_END";
28
+ readonly REASONING_MESSAGE_CHUNK: "REASONING_MESSAGE_CHUNK";
29
+ readonly REASONING_END: "REASONING_END";
30
+ readonly REASONING_ENCRYPTED_VALUE: "REASONING_ENCRYPTED_VALUE";
31
+ };
32
+ export type AgUiEventType = typeof AgUiEventType[keyof typeof AgUiEventType];
33
+ export interface AgUiKMeta {
34
+ cursor?: number;
35
+ sessionId?: string;
36
+ agent?: string;
37
+ messageId?: string;
38
+ turnId?: string;
39
+ opId?: string;
40
+ receiptId?: string;
41
+ eventType?: string;
42
+ }
43
+ export interface AgUiBaseEvent {
44
+ type: AgUiEventType;
45
+ timestamp?: number;
46
+ rawEvent?: EventEnvelope;
47
+ k?: AgUiKMeta;
48
+ [key: string]: unknown;
49
+ }
50
+ export type AgUiEvent = AgUiBaseEvent;
51
+ export interface AgUiProjectorOptions {
52
+ threadId?: string | ((row: EventEnvelope) => string);
53
+ includeRawEvent?: boolean;
54
+ customPrefix?: string;
55
+ }
56
+ export interface AgUiEventStreamOptions extends AgUiProjectorOptions {
57
+ since?: number;
58
+ types?: RuntimeEvent['type'][];
59
+ signal?: AbortSignal;
60
+ }
61
+ export interface AgUiMessagesSnapshotOptions {
62
+ view?: 'full' | 'current';
63
+ since?: number;
64
+ before?: number;
65
+ limit?: number;
66
+ threadId?: string;
67
+ }
68
+ export declare class AgUiProjector {
69
+ private readonly options;
70
+ private readonly runs;
71
+ constructor(options?: AgUiProjectorOptions);
72
+ project(row: EventEnvelope): AgUiEvent[];
73
+ private projectContentDelta;
74
+ private projectToolCall;
75
+ private projectToolResult;
76
+ private endRun;
77
+ private startRun;
78
+ private runStartedEvent;
79
+ private finishSyntheticRun;
80
+ private ensureRunStarted;
81
+ private getOrCreateRun;
82
+ private ensureTextMessage;
83
+ private ensureReasoningMessage;
84
+ private raw;
85
+ private custom;
86
+ private event;
87
+ private threadId;
88
+ }
89
+ export declare function projectAgUiEvent(row: EventEnvelope, options?: AgUiProjectorOptions): AgUiEvent[];
90
+ export declare function agUiEvents(agent: AgentSession, options?: AgUiEventStreamOptions): AsyncIterable<AgUiEvent>;
91
+ export declare function createAgUiBridge(agent: AgentSession, options?: AgUiProjectorOptions): {
92
+ events: (streamOptions?: Omit<AgUiEventStreamOptions, keyof AgUiProjectorOptions>) => AsyncIterable<AgUiBaseEvent>;
93
+ messages: (snapshotOptions?: Omit<AgUiMessagesSnapshotOptions, "threadId">) => Promise<AgUiBaseEvent>;
94
+ send: (input: Parameters<typeof import("@kruntime/komputer").normalizeInput>[0], options?: import("@kruntime/komputer").SendOptions) => Promise<Record<string, unknown>>;
95
+ decide: (approvalId: string, decision: unknown, options?: {
96
+ by?: string;
97
+ }) => Promise<Record<string, unknown>>;
98
+ };
99
+ export declare function agUiMessagesSnapshot(agent: AgentSession, options?: AgUiMessagesSnapshotOptions): Promise<AgUiEvent>;
100
+ export declare function toAgUiMessage(message: KMessage): Record<string, unknown>;
package/dist/index.js ADDED
@@ -0,0 +1,436 @@
1
+ export const AgUiEventType = {
2
+ TEXT_MESSAGE_START: 'TEXT_MESSAGE_START',
3
+ TEXT_MESSAGE_CONTENT: 'TEXT_MESSAGE_CONTENT',
4
+ TEXT_MESSAGE_END: 'TEXT_MESSAGE_END',
5
+ TEXT_MESSAGE_CHUNK: 'TEXT_MESSAGE_CHUNK',
6
+ TOOL_CALL_START: 'TOOL_CALL_START',
7
+ TOOL_CALL_ARGS: 'TOOL_CALL_ARGS',
8
+ TOOL_CALL_END: 'TOOL_CALL_END',
9
+ TOOL_CALL_CHUNK: 'TOOL_CALL_CHUNK',
10
+ TOOL_CALL_RESULT: 'TOOL_CALL_RESULT',
11
+ STATE_SNAPSHOT: 'STATE_SNAPSHOT',
12
+ STATE_DELTA: 'STATE_DELTA',
13
+ MESSAGES_SNAPSHOT: 'MESSAGES_SNAPSHOT',
14
+ ACTIVITY_SNAPSHOT: 'ACTIVITY_SNAPSHOT',
15
+ ACTIVITY_DELTA: 'ACTIVITY_DELTA',
16
+ RAW: 'RAW',
17
+ CUSTOM: 'CUSTOM',
18
+ RUN_STARTED: 'RUN_STARTED',
19
+ RUN_FINISHED: 'RUN_FINISHED',
20
+ RUN_ERROR: 'RUN_ERROR',
21
+ STEP_STARTED: 'STEP_STARTED',
22
+ STEP_FINISHED: 'STEP_FINISHED',
23
+ REASONING_START: 'REASONING_START',
24
+ REASONING_MESSAGE_START: 'REASONING_MESSAGE_START',
25
+ REASONING_MESSAGE_CONTENT: 'REASONING_MESSAGE_CONTENT',
26
+ REASONING_MESSAGE_END: 'REASONING_MESSAGE_END',
27
+ REASONING_MESSAGE_CHUNK: 'REASONING_MESSAGE_CHUNK',
28
+ REASONING_END: 'REASONING_END',
29
+ REASONING_ENCRYPTED_VALUE: 'REASONING_ENCRYPTED_VALUE',
30
+ };
31
+ export class AgUiProjector {
32
+ options;
33
+ runs = new Map();
34
+ constructor(options = {}) {
35
+ this.options = options;
36
+ }
37
+ project(row) {
38
+ const event = row.event;
39
+ switch (event.type) {
40
+ case 'turn':
41
+ return event.status === 'running' ? [this.startRun(row)] : this.endRun(row, event);
42
+ case 'content':
43
+ return this.projectContentDelta(row, event);
44
+ case 'tool':
45
+ return event.status === 'requested' || event.status === 'running' || event.status === 'waiting_approval'
46
+ ? this.projectToolCall(row, event)
47
+ : this.projectToolResult(row, event);
48
+ case 'process':
49
+ return [this.custom(row, 'process', event)];
50
+ case 'approval':
51
+ return [this.custom(row, 'approval', event)];
52
+ case 'message':
53
+ return [this.custom(row, 'message', event)];
54
+ case 'signal':
55
+ return [this.custom(row, 'signal', event)];
56
+ default:
57
+ return [this.raw(row)];
58
+ }
59
+ }
60
+ projectContentDelta(row, event) {
61
+ const content = recordField(event, 'content');
62
+ const text = stringField(event, 'text') ?? (content?.type === 'text' ? content.text : undefined);
63
+ const out = [];
64
+ const run = this.ensureRunStarted(row, out);
65
+ if (event.type === 'content' && event.kind === 'reasoning') {
66
+ const messageId = this.ensureReasoningMessage(row, run, out);
67
+ if (text)
68
+ out.push(this.event(row, { type: AgUiEventType.REASONING_MESSAGE_CONTENT, messageId, delta: text }));
69
+ return out;
70
+ }
71
+ if (typeof text !== 'string')
72
+ return [...out, this.custom(row, 'content', event)];
73
+ const messageId = this.ensureTextMessage(row, run, out);
74
+ if (text)
75
+ out.push(this.event(row, { type: AgUiEventType.TEXT_MESSAGE_CONTENT, messageId, delta: text }));
76
+ return out;
77
+ }
78
+ projectToolCall(row, event) {
79
+ const out = [];
80
+ const run = this.ensureRunStarted(row, out);
81
+ const toolCallId = toolCallIdFor(row);
82
+ const toolCallName = stringField(event, 'tool') || 'tool';
83
+ run.openToolCalls.add(toolCallId);
84
+ out.push(this.event(row, {
85
+ type: AgUiEventType.TOOL_CALL_START,
86
+ toolCallId,
87
+ toolCallName,
88
+ parentMessageId: run.textMessageId,
89
+ }));
90
+ if (Object.prototype.hasOwnProperty.call(event, 'input')) {
91
+ out.push(this.event(row, {
92
+ type: AgUiEventType.TOOL_CALL_ARGS,
93
+ toolCallId,
94
+ delta: stableStringify(event.input),
95
+ }));
96
+ }
97
+ return out;
98
+ }
99
+ projectToolResult(row, event) {
100
+ const out = [];
101
+ const run = this.ensureRunStarted(row, out);
102
+ const toolCallId = toolCallIdFor(row);
103
+ const resultText = toolResultText(event);
104
+ out.push(this.event(row, {
105
+ type: AgUiEventType.TOOL_CALL_RESULT,
106
+ messageId: `tool:${toolCallId}`,
107
+ toolCallId,
108
+ content: resultText,
109
+ role: 'tool',
110
+ }), this.event(row, {
111
+ type: AgUiEventType.TOOL_CALL_END,
112
+ toolCallId,
113
+ }));
114
+ run.openToolCalls.delete(toolCallId);
115
+ if (!turnIdFor(row))
116
+ out.push(this.finishSyntheticRun(row, run, { status: 'completed' }));
117
+ return out;
118
+ }
119
+ endRun(row, event) {
120
+ const out = [];
121
+ const run = this.ensureRunStarted(row, out);
122
+ if (run.textMessageId) {
123
+ out.push(this.event(row, { type: AgUiEventType.TEXT_MESSAGE_END, messageId: run.textMessageId }));
124
+ run.textMessageId = undefined;
125
+ }
126
+ if (run.reasoningMessageId) {
127
+ out.push(this.event(row, { type: AgUiEventType.REASONING_MESSAGE_END, messageId: run.reasoningMessageId }));
128
+ out.push(this.event(row, { type: AgUiEventType.REASONING_END, messageId: run.reasoningMessageId }));
129
+ run.reasoningMessageId = undefined;
130
+ }
131
+ const status = stringField(event, 'status') || 'completed';
132
+ if (status === 'failed' || status === 'blocked' || status === 'cancelled') {
133
+ out.push(this.event(row, {
134
+ type: AgUiEventType.RUN_ERROR,
135
+ message: stringField(event, 'reason') || `Agent turn ${status}`,
136
+ code: `turn_${status}`,
137
+ }));
138
+ }
139
+ else if (status === 'waiting_approval') {
140
+ out.push(this.event(row, {
141
+ type: AgUiEventType.RUN_FINISHED,
142
+ threadId: run.threadId,
143
+ runId: run.runId,
144
+ result: turnResult(event),
145
+ outcome: {
146
+ type: 'interrupt',
147
+ interrupts: [{
148
+ id: stringField(event, 'approvalId') || `${run.runId}:approval`,
149
+ reason: 'approval',
150
+ message: stringField(event, 'reason') || 'Approval required',
151
+ metadata: { k: metaFromEnvelope(row) },
152
+ }],
153
+ },
154
+ }));
155
+ }
156
+ else {
157
+ out.push(this.event(row, {
158
+ type: AgUiEventType.RUN_FINISHED,
159
+ threadId: run.threadId,
160
+ runId: run.runId,
161
+ result: turnResult(event),
162
+ outcome: { type: 'success' },
163
+ }));
164
+ }
165
+ this.runs.delete(run.runId);
166
+ return out;
167
+ }
168
+ startRun(row) {
169
+ const { run } = this.getOrCreateRun(row);
170
+ return this.runStartedEvent(row, run);
171
+ }
172
+ runStartedEvent(row, run) {
173
+ return this.event(row, {
174
+ type: AgUiEventType.RUN_STARTED,
175
+ threadId: run.threadId,
176
+ runId: run.runId,
177
+ });
178
+ }
179
+ finishSyntheticRun(row, run, result) {
180
+ this.runs.delete(run.runId);
181
+ return this.event(row, {
182
+ type: AgUiEventType.RUN_FINISHED,
183
+ threadId: run.threadId,
184
+ runId: run.runId,
185
+ result,
186
+ outcome: { type: 'success' },
187
+ });
188
+ }
189
+ ensureRunStarted(row, out) {
190
+ const { run, created } = this.getOrCreateRun(row);
191
+ if (created)
192
+ out.push(this.runStartedEvent(row, run));
193
+ return run;
194
+ }
195
+ getOrCreateRun(row) {
196
+ const runId = runIdFor(row);
197
+ const existing = this.runs.get(runId);
198
+ if (existing)
199
+ return { run: existing, created: false };
200
+ const run = {
201
+ runId,
202
+ threadId: this.threadId(row),
203
+ started: true,
204
+ openToolCalls: new Set(),
205
+ };
206
+ this.runs.set(runId, run);
207
+ return { run, created: true };
208
+ }
209
+ ensureTextMessage(row, run, out) {
210
+ if (run.textMessageId)
211
+ return run.textMessageId;
212
+ run.textMessageId = `message:${run.runId}`;
213
+ out.push(this.event(row, {
214
+ type: AgUiEventType.TEXT_MESSAGE_START,
215
+ messageId: run.textMessageId,
216
+ role: 'assistant',
217
+ }));
218
+ return run.textMessageId;
219
+ }
220
+ ensureReasoningMessage(row, run, out) {
221
+ if (run.reasoningMessageId)
222
+ return run.reasoningMessageId;
223
+ run.reasoningMessageId = `reasoning:${run.runId}`;
224
+ out.push(this.event(row, {
225
+ type: AgUiEventType.REASONING_START,
226
+ messageId: run.reasoningMessageId,
227
+ }));
228
+ out.push(this.event(row, {
229
+ type: AgUiEventType.REASONING_MESSAGE_START,
230
+ messageId: run.reasoningMessageId,
231
+ role: 'reasoning',
232
+ }));
233
+ return run.reasoningMessageId;
234
+ }
235
+ raw(row) {
236
+ return this.event(row, {
237
+ type: AgUiEventType.RAW,
238
+ event: row.event,
239
+ source: 'kruntime',
240
+ });
241
+ }
242
+ custom(row, name, value) {
243
+ return this.event(row, {
244
+ type: AgUiEventType.CUSTOM,
245
+ name: `${this.options.customPrefix ?? 'k'}.${name}`,
246
+ value,
247
+ });
248
+ }
249
+ event(row, event) {
250
+ const timestamp = Date.parse(row.at);
251
+ const base = {
252
+ timestamp: Number.isFinite(timestamp) ? timestamp : undefined,
253
+ k: metaFromEnvelope(row),
254
+ ...(this.options.includeRawEvent ? { rawEvent: row } : {}),
255
+ };
256
+ return { ...base, ...event };
257
+ }
258
+ threadId(row) {
259
+ if (typeof this.options.threadId === 'function')
260
+ return this.options.threadId(row);
261
+ return this.options.threadId || row.sessionId || 'default';
262
+ }
263
+ }
264
+ export function projectAgUiEvent(row, options = {}) {
265
+ return new AgUiProjector(options).project(row);
266
+ }
267
+ export async function* agUiEvents(agent, options = {}) {
268
+ const projector = new AgUiProjector(options);
269
+ for await (const row of agent.events({ since: options.since, types: options.types, signal: options.signal })) {
270
+ for (const event of projector.project(row))
271
+ yield event;
272
+ }
273
+ }
274
+ export function createAgUiBridge(agent, options = {}) {
275
+ return {
276
+ events: (streamOptions = {}) => agUiEvents(agent, { ...options, ...streamOptions }),
277
+ messages: (snapshotOptions = {}) => agUiMessagesSnapshot(agent, { threadId: typeof options.threadId === 'string' ? options.threadId : undefined, ...snapshotOptions }),
278
+ send: agent.send.bind(agent),
279
+ decide: agent.decide.bind(agent),
280
+ };
281
+ }
282
+ export async function agUiMessagesSnapshot(agent, options = {}) {
283
+ const page = await agent.messages.get({
284
+ view: options.view ?? 'full',
285
+ since: options.since,
286
+ before: options.before,
287
+ limit: options.limit,
288
+ });
289
+ return {
290
+ type: AgUiEventType.MESSAGES_SNAPSHOT,
291
+ messages: page.messages.map(toAgUiMessage),
292
+ timestamp: Date.now(),
293
+ k: {
294
+ sessionId: agent.sessionId,
295
+ agent: agent.agentName,
296
+ eventType: 'messages.snapshot',
297
+ },
298
+ threadId: options.threadId || agent.sessionId,
299
+ cursor: page.cursor,
300
+ hasMore: page.hasMore,
301
+ };
302
+ }
303
+ export function toAgUiMessage(message) {
304
+ const id = message.id || (message.seq === undefined ? `message:${message.at ?? 'unknown'}` : `message:${message.seq}`);
305
+ const role = normalizeRole(message.role);
306
+ if (role === 'assistant') {
307
+ const toolCalls = message.content
308
+ .filter((block) => block.type === 'tool_use')
309
+ .map((block) => ({
310
+ id: String(block.id || block.toolUseId || `tool:${id}`),
311
+ type: 'function',
312
+ function: {
313
+ name: String(block.name || 'tool'),
314
+ arguments: stableStringify(block.input ?? {}),
315
+ },
316
+ }));
317
+ return {
318
+ id,
319
+ role,
320
+ content: textFromBlocks(message.content) || undefined,
321
+ toolCalls: toolCalls.length ? toolCalls : undefined,
322
+ name: message.by,
323
+ };
324
+ }
325
+ if (role === 'tool') {
326
+ const block = message.content.find((item) => item.type === 'tool_result') || message.content[0];
327
+ return {
328
+ id,
329
+ role,
330
+ content: textFromBlocks(message.content),
331
+ toolCallId: String(block?.toolUseId || block?.id || ''),
332
+ error: block?.ok === false ? String(block.status || 'tool failed') : undefined,
333
+ };
334
+ }
335
+ return {
336
+ id,
337
+ role,
338
+ content: textFromBlocks(message.content),
339
+ name: message.by,
340
+ };
341
+ }
342
+ function normalizeRole(role) {
343
+ if (role === 'developer' || role === 'system' || role === 'assistant' || role === 'user' || role === 'tool' || role === 'activity' || role === 'reasoning')
344
+ return role;
345
+ return 'developer';
346
+ }
347
+ function runIdFor(row) {
348
+ const turnId = turnIdFor(row);
349
+ if (turnId)
350
+ return turnId;
351
+ if (row.opId)
352
+ return `op:${row.opId}`;
353
+ if (row.messageId)
354
+ return `message:${row.messageId}`;
355
+ if (row.receiptId)
356
+ return `receipt:${row.receiptId}`;
357
+ return `event:${row.cursor}`;
358
+ }
359
+ function turnIdFor(row) {
360
+ return row.turnId || stringField(row.event, 'turnId');
361
+ }
362
+ function toolCallIdFor(row) {
363
+ return row.opId || stringField(row.event, 'opId') || `tool:${row.cursor}`;
364
+ }
365
+ function metaFromEnvelope(row) {
366
+ return {
367
+ cursor: row.cursor,
368
+ sessionId: row.sessionId,
369
+ agent: row.agent,
370
+ messageId: row.messageId,
371
+ turnId: row.turnId,
372
+ opId: row.opId,
373
+ receiptId: row.receiptId,
374
+ eventType: row.event?.type,
375
+ };
376
+ }
377
+ function textFromBlocks(blocks = []) {
378
+ return blocks.map((block) => {
379
+ if (typeof block.text === 'string')
380
+ return block.text;
381
+ if (typeof block.stdout === 'string')
382
+ return block.stdout;
383
+ if (typeof block.stderr === 'string')
384
+ return block.stderr;
385
+ if (block.type === 'tool_result')
386
+ return stableStringify(block);
387
+ return '';
388
+ }).filter(Boolean).join('');
389
+ }
390
+ function toolResultText(event) {
391
+ const result = event.result;
392
+ if (typeof result === 'string')
393
+ return result;
394
+ if (result instanceof Uint8Array)
395
+ return new TextDecoder().decode(result);
396
+ if (result && typeof result === 'object') {
397
+ const record = result;
398
+ if (typeof record.stdout === 'string' || typeof record.stderr === 'string') {
399
+ return `${record.stdout ?? ''}${record.stderr ?? ''}`;
400
+ }
401
+ }
402
+ return stableStringify(result);
403
+ }
404
+ function turnResult(event) {
405
+ return {
406
+ status: stringField(event, 'status'),
407
+ text: stringField(event, 'text'),
408
+ reason: stringField(event, 'reason'),
409
+ provider: event.provider,
410
+ };
411
+ }
412
+ function stableStringify(value) {
413
+ if (typeof value === 'string')
414
+ return value;
415
+ if (value === undefined)
416
+ return '';
417
+ try {
418
+ return JSON.stringify(value);
419
+ }
420
+ catch {
421
+ return String(value);
422
+ }
423
+ }
424
+ function stringField(record, key) {
425
+ if (!record || typeof record !== 'object')
426
+ return undefined;
427
+ const value = record[key];
428
+ return typeof value === 'string' ? value : undefined;
429
+ }
430
+ function recordField(record, key) {
431
+ if (!record || typeof record !== 'object')
432
+ return undefined;
433
+ const value = record[key];
434
+ return value && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
435
+ }
436
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/ag-ui/src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@kruntime/ag-ui",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "AG-UI protocol projection for KRuntime AgentSessions.",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.js"
10
+ }
11
+ },
12
+ "types": "./dist/index.d.ts",
13
+ "files": [
14
+ "dist",
15
+ "README.md"
16
+ ],
17
+ "dependencies": {
18
+ "@kruntime/komputer": "0.1.0"
19
+ },
20
+ "license": "UNLICENSED",
21
+ "publishConfig": {
22
+ "access": "public"
23
+ }
24
+ }