@varo-ui/ai 1.2.0 → 2.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 CHANGED
@@ -17,7 +17,22 @@ const transport = createAgentSseEventSource()
17
17
  const controller = createAgentStreamController()
18
18
 
19
19
  requestTask.onChunkReceived(({ data }) => transport.feed(data))
20
- void controller.connect(transport.source)
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) => void;
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
- export { AgentApprovalPart, AgentApprovalRequiredEvent, AgentApprovalResolvedEvent, AgentDataEvent, AgentDataPart, AgentDoneEvent, AgentErrorEvent, AgentEventChannel, AgentMarkdownNodeKind, AgentMarkdownViewNode, AgentMessageEndEvent, AgentMessageRole, AgentMessageStartEvent, AgentPartStatus, AgentReasoningDeltaEvent, AgentReasoningEndEvent, AgentReasoningPart, AgentReasoningStartEvent, AgentSseEventSource, AgentStreamController, AgentStreamControllerOptions, AgentStreamEvent, AgentStreamMessage, AgentStreamSnapshot, AgentStreamStatus, AgentTextDeltaEvent, AgentToolErrorEvent, AgentToolPart, AgentToolResultEvent, AgentToolStartEvent, AgentToolUpdateEvent, type ParsedNode, StreamingMarkdownParser, StreamingMarkdownParserOptions, TextStreamController, TextStreamOptions, TextStreamSnapshot, createAgentEventChannel, createAgentSseEventSource, createAgentStreamController, createStreamingMarkdownParser, createTextStream, normalizeMarkdownNode, normalizeMarkdownNodes, parseAgentStreamEvent };
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
@@ -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":"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"}
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":"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"}