@varo-ui/ai 1.2.0 → 2.0.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 +16 -1
- package/dist/index.d.mts +44 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +340 -46
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/agent-stream.ts +17 -2
- package/src/event-channel.ts +35 -12
- package/src/index.ts +1 -0
- package/src/markdown-view.ts +126 -45
- package/src/sse.ts +34 -9
- package/src/text-stream.ts +126 -39
- package/src/thread.ts +160 -0
- package/src/types.ts +48 -17
package/README.md
CHANGED
|
@@ -17,7 +17,22 @@ const transport = createAgentSseEventSource()
|
|
|
17
17
|
const controller = createAgentStreamController()
|
|
18
18
|
|
|
19
19
|
requestTask.onChunkReceived(({ data }) => transport.feed(data))
|
|
20
|
-
|
|
20
|
+
await controller.connect(transport.source)
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
`connect()` owns the iterator lifecycle: protocol `done`/`error` events settle the connection and request iterator cleanup, while natural iterator exhaustion synthesizes `done`.
|
|
24
|
+
|
|
25
|
+
## Thread versions
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
import { createAgentThreadController } from '@varo-ui/ai'
|
|
29
|
+
|
|
30
|
+
const thread = createAgentThreadController()
|
|
31
|
+
thread.append({ id: 'root', label: 'Initial answer' })
|
|
32
|
+
thread.fork('root', { id: 'verified', label: 'Verified branch' })
|
|
33
|
+
thread.select('root')
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The controller owns an immutable acyclic version graph. `append()` and `fork()` activate the new version; invalid ids, missing parents, cycles, and post-destroy mutations fail immediately.
|
|
37
|
+
|
|
23
38
|
[Documentation](https://daguanren21.github.io/Varo/ai/) · [Repository](https://github.com/daguanren21/Varo)
|
package/dist/index.d.mts
CHANGED
|
@@ -148,15 +148,21 @@ interface TextStreamSnapshot {
|
|
|
148
148
|
visible: string;
|
|
149
149
|
}
|
|
150
150
|
interface TextStreamOptions {
|
|
151
|
+
burstInitialContent?: boolean;
|
|
152
|
+
burstRevealThresholdChars?: number;
|
|
153
|
+
catchUpLatencyMs?: number;
|
|
151
154
|
catchUpThreshold?: number;
|
|
155
|
+
flushOnFinish?: boolean;
|
|
152
156
|
maxCharsPerCommit?: number;
|
|
153
157
|
maxCharsPerSecond?: number;
|
|
154
158
|
maxCommitFps?: number;
|
|
155
159
|
minCharsPerSecond?: number;
|
|
160
|
+
startDelayMs?: number;
|
|
156
161
|
targetLatencyMs?: number;
|
|
157
162
|
}
|
|
158
163
|
interface TextStreamController {
|
|
159
164
|
destroy: () => void;
|
|
165
|
+
dispose: () => void;
|
|
160
166
|
enqueue: (chunk: string) => void;
|
|
161
167
|
finish: (options?: {
|
|
162
168
|
flush?: boolean;
|
|
@@ -164,7 +170,9 @@ interface TextStreamController {
|
|
|
164
170
|
flush: () => void;
|
|
165
171
|
getSnapshot: () => TextStreamSnapshot;
|
|
166
172
|
pause: () => void;
|
|
167
|
-
reset: (content?: string
|
|
173
|
+
reset: (content?: string, options?: {
|
|
174
|
+
prefixKnown?: boolean;
|
|
175
|
+
}) => void;
|
|
168
176
|
resume: () => void;
|
|
169
177
|
subscribe: (listener: () => void) => () => void;
|
|
170
178
|
}
|
|
@@ -183,6 +191,28 @@ interface AgentEventChannel {
|
|
|
183
191
|
push: (event: AgentStreamEvent) => void;
|
|
184
192
|
source: AsyncIterable<AgentStreamEvent>;
|
|
185
193
|
}
|
|
194
|
+
interface AgentThreadVersion {
|
|
195
|
+
readonly createdAt?: string;
|
|
196
|
+
readonly id: string;
|
|
197
|
+
readonly label?: string;
|
|
198
|
+
readonly messageId?: string;
|
|
199
|
+
readonly parentId?: string;
|
|
200
|
+
readonly pinned?: boolean;
|
|
201
|
+
readonly summary?: string;
|
|
202
|
+
}
|
|
203
|
+
interface AgentThreadSnapshot {
|
|
204
|
+
readonly activeVersionId?: string;
|
|
205
|
+
readonly versions: readonly AgentThreadVersion[];
|
|
206
|
+
}
|
|
207
|
+
interface AgentThreadController {
|
|
208
|
+
append: (version: AgentThreadVersion) => void;
|
|
209
|
+
destroy: () => void;
|
|
210
|
+
fork: (parentId: string, version: Omit<AgentThreadVersion, 'parentId'>) => void;
|
|
211
|
+
getSnapshot: () => AgentThreadSnapshot;
|
|
212
|
+
reset: (initial?: AgentThreadSnapshot) => void;
|
|
213
|
+
select: (id: string) => void;
|
|
214
|
+
subscribe: (listener: () => void) => () => void;
|
|
215
|
+
}
|
|
186
216
|
//#endregion
|
|
187
217
|
//#region src/agent-stream.d.ts
|
|
188
218
|
interface AgentStreamControllerOptions {
|
|
@@ -230,6 +260,15 @@ interface AgentMarkdownViewNode {
|
|
|
230
260
|
text?: string;
|
|
231
261
|
title?: string;
|
|
232
262
|
}
|
|
263
|
+
type AgentRichTextNode = {
|
|
264
|
+
text: string;
|
|
265
|
+
type: 'text';
|
|
266
|
+
} | {
|
|
267
|
+
attrs?: Record<string, string>;
|
|
268
|
+
children?: AgentRichTextNode[];
|
|
269
|
+
name: 'br' | 'code' | 'del' | 'em' | 'ins' | 'mark' | 'span' | 'strong' | 'sub' | 'sup';
|
|
270
|
+
};
|
|
271
|
+
declare function toAgentRichTextNodes(nodes: AgentMarkdownViewNode[]): AgentRichTextNode[] | undefined;
|
|
233
272
|
declare function normalizeMarkdownNode(node: ParsedNode$1): AgentMarkdownViewNode;
|
|
234
273
|
declare function normalizeMarkdownNodes(nodes: ParsedNode$1[]): AgentMarkdownViewNode[];
|
|
235
274
|
//#endregion
|
|
@@ -245,5 +284,8 @@ declare function createAgentSseEventSource(): AgentSseEventSource;
|
|
|
245
284
|
//#region src/text-stream.d.ts
|
|
246
285
|
declare function createTextStream(options?: TextStreamOptions): TextStreamController;
|
|
247
286
|
//#endregion
|
|
248
|
-
|
|
287
|
+
//#region src/thread.d.ts
|
|
288
|
+
declare function createAgentThreadController(initial?: AgentThreadSnapshot): AgentThreadController;
|
|
289
|
+
//#endregion
|
|
290
|
+
export { AgentApprovalPart, AgentApprovalRequiredEvent, AgentApprovalResolvedEvent, AgentDataEvent, AgentDataPart, AgentDoneEvent, AgentErrorEvent, AgentEventChannel, AgentMarkdownNodeKind, AgentMarkdownViewNode, AgentMessageEndEvent, AgentMessageRole, AgentMessageStartEvent, AgentPartStatus, AgentReasoningDeltaEvent, AgentReasoningEndEvent, AgentReasoningPart, AgentReasoningStartEvent, AgentRichTextNode, AgentSseEventSource, AgentStreamController, AgentStreamControllerOptions, AgentStreamEvent, AgentStreamMessage, AgentStreamSnapshot, AgentStreamStatus, AgentTextDeltaEvent, AgentThreadController, AgentThreadSnapshot, AgentThreadVersion, AgentToolErrorEvent, AgentToolPart, AgentToolResultEvent, AgentToolStartEvent, AgentToolUpdateEvent, type ParsedNode, StreamingMarkdownParser, StreamingMarkdownParserOptions, TextStreamController, TextStreamOptions, TextStreamSnapshot, createAgentEventChannel, createAgentSseEventSource, createAgentStreamController, createAgentThreadController, createStreamingMarkdownParser, createTextStream, normalizeMarkdownNode, normalizeMarkdownNodes, parseAgentStreamEvent, toAgentRichTextNodes };
|
|
249
291
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/agent-stream.ts","../src/event-channel.ts","../src/event-parser.ts","../src/markdown.ts","../src/markdown-view.ts","../src/sse.ts","../src/text-stream.ts"],"mappings":";;;KAAY,gBAAA;AAAA,KACA,iBAAA;AAAA,KACA,eAAA;AAAA,UAEK,sBAAA;EACf,SAAA;EACA,IAAA,EAAM,gBAAgB;EACtB,IAAA;AAAA;AAAA,UAGe,mBAAA;EACf,KAAA;EACA,SAAA;EACA,IAAA;AAAA;AAAA,UAGe,oBAAA;EACf,SAAA;EACA,IAAI;AAAA;AAAA,UAGW,wBAAA;EACf,EAAA;EACA,KAAA;EACA,IAAA;AAAA;AAAA,UAGe,wBAAA;EACf,KAAA;EACA,EAAA;EACA,IAAA;AAAA;AAAA,UAGe,sBAAA;EACf,UAAA;EACA,EAAA;EACA,IAAA;AAAA;AAAA,UAGe,mBAAA;EACf,EAAA;EACA,KAAA;EACA,IAAA;EACA,OAAA;EACA,IAAA;AAAA;AAAA,UAGe,oBAAA;EACf,EAAA;EACA,OAAA;EACA,IAAA;AAAA;AAAA,UAGe,oBAAA;EACf,EAAA;EACA,MAAA;EACA,OAAA;EACA,IAAA;AAAA;AAAA,UAGe,mBAAA;EACf,KAAA;EACA,EAAA;EACA,IAAA;AAAA;AAAA,UAGe,0BAAA;EACf,OAAA,GAAU,KAAK;IACb,WAAA;IACA,QAAA;IACA,KAAA;IACA,KAAA;EAAA;EAEF,WAAA;EACA,EAAA;EACA,KAAA;EACA,IAAA;AAAA;AAAA,UAGe,0BAAA;EACf,EAAA;EACA,IAAA;EACA,KAAA;AAAA;AAAA,UAGe,cAAA;EACf,IAAA;EACA,IAAA;EACA,KAAA;AAAA;AAAA,UAGe,eAAA;EACf,IAAA;EACA,OAAA;EACA,SAAA;EACA,IAAA;AAAA;AAAA,UAGe,cAAA;EACf,IAAA;EACA,KAAA;IACE,WAAA;IACA,YAAA;EAAA;AAAA;AAAA,KAIQ,gBAAA,
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/agent-stream.ts","../src/event-channel.ts","../src/event-parser.ts","../src/markdown.ts","../src/markdown-view.ts","../src/sse.ts","../src/text-stream.ts","../src/thread.ts"],"mappings":";;;KAAY,gBAAA;AAAA,KACA,iBAAA;AAAA,KACA,eAAA;AAAA,UAEK,sBAAA;EACf,SAAA;EACA,IAAA,EAAM,gBAAgB;EACtB,IAAA;AAAA;AAAA,UAGe,mBAAA;EACf,KAAA;EACA,SAAA;EACA,IAAA;AAAA;AAAA,UAGe,oBAAA;EACf,SAAA;EACA,IAAI;AAAA;AAAA,UAGW,wBAAA;EACf,EAAA;EACA,KAAA;EACA,IAAA;AAAA;AAAA,UAGe,wBAAA;EACf,KAAA;EACA,EAAA;EACA,IAAA;AAAA;AAAA,UAGe,sBAAA;EACf,UAAA;EACA,EAAA;EACA,IAAA;AAAA;AAAA,UAGe,mBAAA;EACf,EAAA;EACA,KAAA;EACA,IAAA;EACA,OAAA;EACA,IAAA;AAAA;AAAA,UAGe,oBAAA;EACf,EAAA;EACA,OAAA;EACA,IAAA;AAAA;AAAA,UAGe,oBAAA;EACf,EAAA;EACA,MAAA;EACA,OAAA;EACA,IAAA;AAAA;AAAA,UAGe,mBAAA;EACf,KAAA;EACA,EAAA;EACA,IAAA;AAAA;AAAA,UAGe,0BAAA;EACf,OAAA,GAAU,KAAK;IACb,WAAA;IACA,QAAA;IACA,KAAA;IACA,KAAA;EAAA;EAEF,WAAA;EACA,EAAA;EACA,KAAA;EACA,IAAA;AAAA;AAAA,UAGe,0BAAA;EACf,EAAA;EACA,IAAA;EACA,KAAA;AAAA;AAAA,UAGe,cAAA;EACf,IAAA;EACA,IAAA;EACA,KAAA;AAAA;AAAA,UAGe,eAAA;EACf,IAAA;EACA,OAAA;EACA,SAAA;EACA,IAAA;AAAA;AAAA,UAGe,cAAA;EACf,IAAA;EACA,KAAA;IACE,WAAA;IACA,YAAA;EAAA;AAAA;AAAA,KAIQ,gBAAA,GACN,sBAAA,GACA,mBAAA,GACA,oBAAA,GACA,wBAAA,GACA,wBAAA,GACA,sBAAA,GACA,mBAAA,GACA,oBAAA,GACA,oBAAA,GACA,mBAAA,GACA,0BAAA,GACA,0BAAA,GACA,cAAA,GACA,eAAA,GACA,cAAA;AAAA,UAEW,kBAAA;EACf,KAAA;EACA,EAAA;EACA,IAAA,EAAM,gBAAgB;EACtB,MAAA;EACA,OAAA;AAAA;AAAA,UAGe,kBAAA;EACf,OAAA;EACA,UAAA;EACA,EAAA;EACA,MAAA,EAAQ,eAAe;EACvB,KAAA;AAAA;AAAA,UAGe,aAAA;EACf,KAAA;EACA,EAAA;EACA,KAAA;EACA,IAAA;EACA,MAAA;EACA,MAAA,EAAQ,eAAe;EACvB,OAAA;AAAA;AAAA,UAGe,iBAAA;EACf,OAAA,EAAS,0BAA0B;EACnC,WAAA;EACA,EAAA;EACA,aAAA;EACA,MAAA;EACA,KAAA;AAAA;AAAA,UAGe,aAAA;EACf,IAAA;EACA,KAAK;AAAA;AAAA,UAGU,mBAAA;EACf,QAAA,GAAW,iBAAA;EACX,IAAA,EAAM,aAAA;EACN,KAAA,GAAQ,eAAA;EACR,UAAA;EACA,OAAA,GAAU,kBAAA;EACV,SAAA,EAAW,kBAAA;EACX,MAAA,EAAQ,iBAAA;EACR,KAAA,EAAO,aAAA;EACP,KAAA,GAAQ,cAAA;AAAA;AAAA,UAGO,kBAAA;EACf,QAAA;EACA,IAAA;EACA,KAAA;EACA,MAAA;EACA,YAAA;EACA,MAAA;EACA,OAAA;AAAA;AAAA,UAGe,iBAAA;EACf,mBAAA;EACA,yBAAA;EACA,gBAAA;EACA,gBAAA;EACA,aAAA;EACA,iBAAA;EACA,iBAAA;EACA,YAAA;EACA,iBAAA;EACA,YAAA;EACA,eAAA;AAAA;AAAA,UAGe,oBAAA;EACf,OAAA;EACA,OAAA;EACA,OAAA,GAAU,KAAA;EACV,MAAA,GAAS,OAAA;IAAY,KAAA;EAAA;EACrB,KAAA;EACA,WAAA,QAAmB,kBAAkB;EACrC,KAAA;EACA,KAAA,GAAQ,OAAA,WAAkB,OAAA;IAAY,WAAA;EAAA;EACtC,MAAA;EACA,SAAA,GAAY,QAAA;AAAA;AAAA,UAGG,qBAAA;EACf,MAAA,GAAS,MAAA;EACT,OAAA,GAAU,MAAA,EAAQ,aAAA,CAAc,gBAAA,MAAsB,OAAA,CAAQ,mBAAA;EAC9D,OAAA;EACA,WAAA,QAAmB,mBAAA;EACnB,IAAA,GAAO,KAAA,EAAO,gBAAA;EACd,KAAA;EACA,SAAA,GAAY,QAAA;AAAA;AAAA,UAGG,iBAAA;EACf,GAAA;EACA,IAAA,GAAO,KAAA;EACP,IAAA,GAAO,KAAA,EAAO,gBAAA;EACd,MAAA,EAAQ,aAAA,CAAc,gBAAA;AAAA;AAAA,UAGP,kBAAA;EAAA,SACN,SAAA;EAAA,SACA,EAAA;EAAA,SACA,KAAA;EAAA,SACA,SAAA;EAAA,SACA,QAAA;EAAA,SACA,MAAA;EAAA,SACA,OAAA;AAAA;AAAA,UAGM,mBAAA;EAAA,SACN,eAAA;EAAA,SACA,QAAA,WAAmB,kBAAkB;AAAA;AAAA,UAG/B,qBAAA;EACf,MAAA,GAAS,OAAA,EAAS,kBAAA;EAClB,OAAA;EACA,IAAA,GAAO,QAAA,UAAkB,OAAA,EAAS,IAAA,CAAK,kBAAA;EACvC,WAAA,QAAmB,mBAAA;EACnB,KAAA,GAAQ,OAAA,GAAU,mBAAA;EAClB,MAAA,GAAS,EAAA;EACT,SAAA,GAAY,QAAA;AAAA;;;UC/OG,4BAAA;EACf,IAAA,GAAO,iBAAiB;AAAA;AAAA,iBAsBV,2BAAA,CACd,OAAA,GAAS,4BAAA,GACR,qBAAqB;;;iBCnCR,uBAAA,IAA2B,iBAAiB;;;iBCgD5C,qBAAA,CAAsB,KAAA,YAAiB,gBAAgB;;;UC1CtD,8BAAA;EACf,cAAA;EACA,UAAA;EACA,gBAAA;EACA,iBAAA,GAAoB,kBAAkB;EACtC,YAAA,IAAgB,GAAA;AAAA;AAAA,UAGD,uBAAA;EACf,KAAA,GAAQ,OAAA,UAAiB,OAAA;IAAY,KAAA;EAAA,MAAsB,YAAU;EACrE,KAAA;AAAA;AAAA,iBAKc,6BAAA,CACd,OAAA,GAAS,8BAAA,GACR,uBAAuB;;;KCtBd,qBAAA;AAAA,UA+BK,qBAAA;EACf,KAAA;EACA,GAAA;EACA,OAAA;EACA,QAAA,GAAW,qBAAA;EACX,MAAA;EACA,IAAA;EACA,IAAA,EAAM,qBAAqB;EAC3B,QAAA;EACA,KAAA;EACA,OAAA;EACA,OAAA;EACA,KAAA;EACA,IAAA;EACA,KAAA;AAAA;AAAA,KAGU,iBAAA;EAER,IAAA;EACA,IAAA;AAAA;EAGA,KAAA,GAAQ,MAAA;EACR,QAAA,GAAW,iBAAiB;EAC5B,IAAA;AAAA;AAAA,iBAmEY,oBAAA,CAAqB,KAAA,EAAO,qBAAA,KAA0B,iBAAiB;AAAA,iBA+CvE,qBAAA,CAAsB,IAAA,EAAM,YAAA,GAAa,qBAAqB;AAAA,iBAoI9D,sBAAA,CAAuB,KAAA,EAAO,YAAA,KAAe,qBAAqB;;;UC7SjE,mBAAA;EACf,GAAA;EACA,IAAA,GAAO,KAAA;EACP,IAAA,GAAO,KAAA,WAAgB,WAAA,GAAc,UAAA;EACrC,MAAA,EAAQ,aAAA,CAAc,gBAAA;AAAA;AAAA,iBAiFR,yBAAA,IAA6B,mBAAmB;;;iBCqLhD,gBAAA,CAAiB,OAAA,GAAS,iBAAA,GAAyB,oBAAoB;;;iBCxMvE,2BAAA,CACd,OAAA,GAAU,mBAAA,GACT,qBAAqB"}
|