@tanstack/ai-client 0.22.1 → 0.23.1

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.
Files changed (72) hide show
  1. package/README.md +15 -1
  2. package/dist/esm/audio-recorder.js +190 -213
  3. package/dist/esm/audio-recorder.js.map +1 -1
  4. package/dist/esm/chat-client.d.ts +172 -3
  5. package/dist/esm/chat-client.js +1656 -1386
  6. package/dist/esm/chat-client.js.map +1 -1
  7. package/dist/esm/cleared-stream-tracker.d.ts +23 -0
  8. package/dist/esm/cleared-stream-tracker.js +97 -0
  9. package/dist/esm/cleared-stream-tracker.js.map +1 -0
  10. package/dist/esm/client-persistor.d.ts +25 -12
  11. package/dist/esm/client-persistor.js +260 -235
  12. package/dist/esm/client-persistor.js.map +1 -1
  13. package/dist/esm/connection-adapters.d.ts +231 -10
  14. package/dist/esm/connection-adapters.js +989 -574
  15. package/dist/esm/connection-adapters.js.map +1 -1
  16. package/dist/esm/devtools-noop.d.ts +1 -0
  17. package/dist/esm/devtools-noop.js +79 -139
  18. package/dist/esm/devtools-noop.js.map +1 -1
  19. package/dist/esm/devtools.d.ts +31 -1
  20. package/dist/esm/devtools.js +977 -1127
  21. package/dist/esm/devtools.js.map +1 -1
  22. package/dist/esm/events.js +224 -226
  23. package/dist/esm/events.js.map +1 -1
  24. package/dist/esm/generation-client.d.ts +145 -2
  25. package/dist/esm/generation-client.js +659 -321
  26. package/dist/esm/generation-client.js.map +1 -1
  27. package/dist/esm/generation-reconstruct.d.ts +21 -0
  28. package/dist/esm/generation-reconstruct.js +85 -0
  29. package/dist/esm/generation-reconstruct.js.map +1 -0
  30. package/dist/esm/generation-types.d.ts +289 -3
  31. package/dist/esm/generation-types.js +356 -13
  32. package/dist/esm/generation-types.js.map +1 -1
  33. package/dist/esm/index.d.ts +9 -4
  34. package/dist/esm/index.js +7 -39
  35. package/dist/esm/interrupt-manager.d.ts +77 -0
  36. package/dist/esm/interrupt-manager.js +787 -0
  37. package/dist/esm/interrupt-manager.js.map +1 -0
  38. package/dist/esm/mcp-app-bridge.js +56 -64
  39. package/dist/esm/mcp-app-bridge.js.map +1 -1
  40. package/dist/esm/realtime-client.js +366 -440
  41. package/dist/esm/realtime-client.js.map +1 -1
  42. package/dist/esm/response-stream.js +19 -26
  43. package/dist/esm/response-stream.js.map +1 -1
  44. package/dist/esm/sse-parser.js +44 -47
  45. package/dist/esm/sse-parser.js.map +1 -1
  46. package/dist/esm/sse-utils.js +8 -9
  47. package/dist/esm/sse-utils.js.map +1 -1
  48. package/dist/esm/storage-adapters.d.ts +62 -0
  49. package/dist/esm/storage-adapters.js +174 -0
  50. package/dist/esm/storage-adapters.js.map +1 -0
  51. package/dist/esm/types.d.ts +212 -10
  52. package/dist/esm/types.js +38 -7
  53. package/dist/esm/types.js.map +1 -1
  54. package/dist/esm/video-generation-client.d.ts +113 -2
  55. package/dist/esm/video-generation-client.js +665 -379
  56. package/dist/esm/video-generation-client.js.map +1 -1
  57. package/package.json +7 -7
  58. package/src/chat-client.ts +1079 -61
  59. package/src/cleared-stream-tracker.ts +151 -0
  60. package/src/client-persistor.ts +102 -33
  61. package/src/connection-adapters.ts +1185 -142
  62. package/src/devtools-noop.ts +4 -3
  63. package/src/devtools.ts +121 -3
  64. package/src/generation-client.ts +563 -13
  65. package/src/generation-reconstruct.ts +121 -0
  66. package/src/generation-types.ts +727 -3
  67. package/src/index.ts +56 -1
  68. package/src/interrupt-manager.ts +1440 -0
  69. package/src/storage-adapters.ts +242 -0
  70. package/src/types.ts +301 -9
  71. package/src/video-generation-client.ts +479 -13
  72. package/dist/esm/index.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { AnyClientTool, StreamChunk } from '@tanstack/ai/client';
2
+ import { AIDevtoolsEventVisibility } from '@tanstack/ai-event-client';
2
3
  import { ChatClientEventContext, ChatClientEventEmitter, ChatClientRunEventContext } from './events.js';
3
4
  import { ChatClientState, ConnectionStatus, QueuedMessage, UIMessage } from './types.js';
4
5
  export interface AIDevtoolsDisplayOptions {
@@ -131,9 +132,17 @@ export declare class ClientDevtoolsBridge<TSnapshot extends object> {
131
132
  private prepareForMountEmit;
132
133
  private activate;
133
134
  private handleRequestState;
135
+ /**
136
+ * Extension hook for subclasses to replay any additional cached state on a
137
+ * `devtools:request-state` (i.e. when a panel opens). Called only after the
138
+ * base guards (disposed/superseded/targetHookId) pass. No-op by default.
139
+ */
140
+ protected onReplayState(): void;
134
141
  private handleToolFixtureApply;
135
142
  private matchesFixtureTarget;
136
- private createEnvelope;
143
+ protected createEnvelope(eventType: 'hook:registered' | 'hook:updated' | 'hook:unregistered' | 'hook:state-snapshot' | 'tools:registered' | 'memory:retrieve:started' | 'memory:retrieve:completed' | 'memory:snapshot' | AIDevtoolsRunEventType, visibility?: AIDevtoolsEventVisibility, context?: {
144
+ runId?: string;
145
+ }): import('@tanstack/ai-event-client').AIDevtoolsEventEnvelope;
137
146
  private createMetadataPayload;
138
147
  }
139
148
  export interface ChatDevtoolsBridgeOptions extends AIDevtoolsBridgeOptions<AIDevtoolsChatSnapshot> {
@@ -150,6 +159,8 @@ export declare class ChatDevtoolsBridge extends ClientDevtoolsBridge<AIDevtoolsC
150
159
  private currentStreamId;
151
160
  private lastStreamId;
152
161
  private lastRunEventContext;
162
+ /** Last transported `memory:state` value, replayed when a panel opens. */
163
+ private lastMemoryStateValue;
153
164
  constructor(options: ChatDevtoolsBridgeOptions);
154
165
  setCurrentStreamId(streamId: string | null): void;
155
166
  /**
@@ -165,6 +176,25 @@ export declare class ChatDevtoolsBridge extends ClientDevtoolsBridge<AIDevtoolsC
165
176
  resolveStreamId(): string;
166
177
  beginRun(runId: string, threadId: string): void;
167
178
  observeChunk(chunk: StreamChunk): void;
179
+ /**
180
+ * Record a transported `memory:state` value (the server memory middleware's
181
+ * per-turn recall metrics + store snapshot). Called from the chat client's
182
+ * `onCustomEvent` handler — the designated path for CUSTOM stream events —
183
+ * NOT from `observeChunk`. Re-emits the browser `memory:*` events the devtools
184
+ * store consumes, and caches the value so a panel opened later can replay it
185
+ * (see {@link onReplayState}). Symmetric with the generation bridge's
186
+ * `recordResultChange` / `recordProgressChange`.
187
+ */
188
+ recordMemoryState(rawValue: unknown): void;
189
+ /**
190
+ * Re-emit the browser-side `memory:*` events from a transported
191
+ * `memory:state` value. The devtools store consumes these to render the
192
+ * Memory tab (operations timeline + live contents). The recall pair mirrors
193
+ * the server middleware's own emits; the snapshot is included only when the
194
+ * adapter supports introspection.
195
+ */
196
+ private emitMemoryState;
197
+ protected onReplayState(): void;
168
198
  getCurrentRunEventContext(): ChatClientRunEventContext | undefined;
169
199
  getCurrentOrLastRunEventContext(): ChatClientRunEventContext | undefined;
170
200
  findToolCallContext(toolCallId: string): ChatClientEventContext;