@assistant-ui/react 0.5.16 → 0.5.18

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/dist/index.d.mts CHANGED
@@ -186,10 +186,13 @@ type ChatModelRunOptions = {
186
186
  messages: ThreadMessage[];
187
187
  abortSignal: AbortSignal;
188
188
  config: ModelConfig;
189
+ /**
190
+ * @deprecated Declare the run function as an AsyncGenerator instead. This method will be removed in v0.6
191
+ */
189
192
  onUpdate: (result: ChatModelRunUpdate) => void;
190
193
  };
191
194
  type ChatModelAdapter = {
192
- run: (options: ChatModelRunOptions) => Promise<ChatModelRunResult>;
195
+ run: (options: ChatModelRunOptions) => Promise<ChatModelRunResult> | AsyncGenerator<ChatModelRunResult, void>;
193
196
  };
194
197
 
195
198
  declare abstract class BaseAssistantRuntime<TThreadRuntime extends ReactThreadRuntime> implements AssistantRuntime {
@@ -296,7 +299,7 @@ type EdgeChatAdapterOptions = {
296
299
  declare class EdgeChatAdapter implements ChatModelAdapter {
297
300
  private options;
298
301
  constructor(options: EdgeChatAdapterOptions);
299
- run({ messages, abortSignal, config, onUpdate }: ChatModelRunOptions): Promise<ChatModelRunResult>;
302
+ run({ messages, abortSignal, config }: ChatModelRunOptions): AsyncGenerator<ChatModelRunResult, void, unknown>;
300
303
  }
301
304
 
302
305
  type EdgeRuntimeOptions = EdgeChatAdapterOptions & LocalRuntimeOptions;
@@ -658,7 +661,7 @@ declare class ExternalStoreThreadRuntime implements ReactThreadRuntime {
658
661
  cancel: boolean;
659
662
  copy: boolean;
660
663
  };
661
- messages: any[];
664
+ messages: ThreadMessage[];
662
665
  isDisabled: boolean;
663
666
  isRunning: boolean;
664
667
  constructor(store: ExternalStoreAdapter<any>);
package/dist/index.d.ts CHANGED
@@ -186,10 +186,13 @@ type ChatModelRunOptions = {
186
186
  messages: ThreadMessage[];
187
187
  abortSignal: AbortSignal;
188
188
  config: ModelConfig;
189
+ /**
190
+ * @deprecated Declare the run function as an AsyncGenerator instead. This method will be removed in v0.6
191
+ */
189
192
  onUpdate: (result: ChatModelRunUpdate) => void;
190
193
  };
191
194
  type ChatModelAdapter = {
192
- run: (options: ChatModelRunOptions) => Promise<ChatModelRunResult>;
195
+ run: (options: ChatModelRunOptions) => Promise<ChatModelRunResult> | AsyncGenerator<ChatModelRunResult, void>;
193
196
  };
194
197
 
195
198
  declare abstract class BaseAssistantRuntime<TThreadRuntime extends ReactThreadRuntime> implements AssistantRuntime {
@@ -296,7 +299,7 @@ type EdgeChatAdapterOptions = {
296
299
  declare class EdgeChatAdapter implements ChatModelAdapter {
297
300
  private options;
298
301
  constructor(options: EdgeChatAdapterOptions);
299
- run({ messages, abortSignal, config, onUpdate }: ChatModelRunOptions): Promise<ChatModelRunResult>;
302
+ run({ messages, abortSignal, config }: ChatModelRunOptions): AsyncGenerator<ChatModelRunResult, void, unknown>;
300
303
  }
301
304
 
302
305
  type EdgeRuntimeOptions = EdgeChatAdapterOptions & LocalRuntimeOptions;
@@ -658,7 +661,7 @@ declare class ExternalStoreThreadRuntime implements ReactThreadRuntime {
658
661
  cancel: boolean;
659
662
  copy: boolean;
660
663
  };
661
- messages: any[];
664
+ messages: ThreadMessage[];
662
665
  isDisabled: boolean;
663
666
  isRunning: boolean;
664
667
  constructor(store: ExternalStoreAdapter<any>);
package/dist/index.js CHANGED
@@ -3428,7 +3428,7 @@ var EdgeChatAdapter = class {
3428
3428
  constructor(options) {
3429
3429
  this.options = options;
3430
3430
  }
3431
- async run({ messages, abortSignal, config, onUpdate }) {
3431
+ async *run({ messages, abortSignal, config }) {
3432
3432
  const result = await fetch(this.options.api, {
3433
3433
  method: "POST",
3434
3434
  headers: {
@@ -3449,11 +3449,10 @@ var EdgeChatAdapter = class {
3449
3449
  const stream = result.body.pipeThrough(new TextDecoderStream()).pipeThrough(chunkByLineStream()).pipeThrough(assistantDecoderStream()).pipeThrough(toolResultStream(config.tools)).pipeThrough(runResultStream());
3450
3450
  let update;
3451
3451
  for await (update of asAsyncIterable(stream)) {
3452
- onUpdate(update);
3452
+ yield update;
3453
3453
  }
3454
3454
  if (update === void 0)
3455
3455
  throw new Error("No data received from Edge Runtime");
3456
- return update;
3457
3456
  }
3458
3457
  };
3459
3458
 
@@ -3572,21 +3571,27 @@ var LocalThreadRuntime = class {
3572
3571
  });
3573
3572
  }
3574
3573
  try {
3575
- const result = await this.adapter.run({
3574
+ const promiseOrGenerator = this.adapter.run({
3576
3575
  messages,
3577
3576
  abortSignal: this.abortController.signal,
3578
3577
  config: this.configProvider.getModelConfig(),
3579
3578
  onUpdate: updateMessage
3580
3579
  });
3581
- if (result.status?.type === "running")
3582
- throw new Error(
3583
- "Unexpected running status returned from ChatModelAdapter"
3584
- );
3580
+ if (Symbol.asyncIterator in promiseOrGenerator) {
3581
+ for await (const r of promiseOrGenerator) {
3582
+ updateMessage(r);
3583
+ }
3584
+ } else {
3585
+ updateMessage(await promiseOrGenerator);
3586
+ }
3585
3587
  this.abortController = null;
3586
- updateMessage({
3587
- status: { type: "complete", reason: "unknown" },
3588
- ...result
3589
- });
3588
+ if (message.status.type === "running") {
3589
+ updateMessage({
3590
+ status: { type: "complete", reason: "unknown" }
3591
+ });
3592
+ } else {
3593
+ this.notifySubscribers();
3594
+ }
3590
3595
  } catch (e) {
3591
3596
  this.abortController = null;
3592
3597
  if (e instanceof Error && e.name === "AbortError") {
@@ -3827,9 +3832,11 @@ var hasUpcomingMessage = (isRunning, messages) => {
3827
3832
  var ExternalStoreThreadRuntime = class {
3828
3833
  constructor(store) {
3829
3834
  this.store = store;
3830
- this.isDisabled = store.isDisabled ?? false;
3831
- this.isRunning = store.isRunning ?? false;
3832
- this.messages = store.messages;
3835
+ this.updateData(
3836
+ store.isDisabled ?? false,
3837
+ store.isRunning ?? false,
3838
+ store.messages
3839
+ );
3833
3840
  this.useStore = (0, import_zustand14.create)(() => ({
3834
3841
  store
3835
3842
  }));
@@ -3847,9 +3854,9 @@ var ExternalStoreThreadRuntime = class {
3847
3854
  copy: this.store.onCopy !== null
3848
3855
  };
3849
3856
  }
3850
- messages;
3851
- isDisabled;
3852
- isRunning;
3857
+ messages = [];
3858
+ isDisabled = false;
3859
+ isRunning = false;
3853
3860
  getBranches(messageId) {
3854
3861
  return this.repository.getBranches(messageId);
3855
3862
  }