@assistant-ui/react 0.5.72 → 0.5.73

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.js CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
 
11
11
 
12
- var _chunk5KIEXJRKjs = require('./chunk-5KIEXJRK.js');
12
+ var _chunkKVXP3Q6Kjs = require('./chunk-KVXP3Q6K.js');
13
13
 
14
14
 
15
15
  var _chunkPZ5AY32Cjs = require('./chunk-PZ5AY32C.js');
@@ -3109,7 +3109,7 @@ var DefaultThreadComposerRuntimeCore = (_class9 = class extends BaseComposerRunt
3109
3109
  var ProxyConfigProvider = (_class10 = class {constructor() { _class10.prototype.__init19.call(this); }
3110
3110
  __init19() {this._providers = /* @__PURE__ */ new Set()}
3111
3111
  getModelConfig() {
3112
- return _chunk5KIEXJRKjs.mergeModelConfigs.call(void 0, this._providers);
3112
+ return _chunkKVXP3Q6Kjs.mergeModelConfigs.call(void 0, this._providers);
3113
3113
  }
3114
3114
  registerModelConfigProvider(provider) {
3115
3115
  this._providers.add(provider);
@@ -3687,7 +3687,7 @@ var ThreadRuntimeImpl = (_class12 = class {
3687
3687
  }, _class12);
3688
3688
 
3689
3689
  // src/runtimes/edge/converters/fromLanguageModelMessages.ts
3690
- var fromLanguageModelMessages = (lm, { mergeRoundtrips }) => {
3690
+ var fromLanguageModelMessages = (lm, { mergeSteps }) => {
3691
3691
  const messages2 = [];
3692
3692
  for (const lmMessage of lm) {
3693
3693
  const role = lmMessage.role;
@@ -3750,7 +3750,7 @@ var fromLanguageModelMessages = (lm, { mergeRoundtrips }) => {
3750
3750
  }
3751
3751
  return part;
3752
3752
  });
3753
- if (mergeRoundtrips) {
3753
+ if (mergeSteps) {
3754
3754
  const previousMessage = messages2[messages2.length - 1];
3755
3755
  if (_optionalChain([previousMessage, 'optionalAccess', _181 => _181.role]) === "assistant") {
3756
3756
  previousMessage.content.push(...newContent);
@@ -3841,14 +3841,14 @@ function streamPartDecoderStream() {
3841
3841
  controller.enqueue(decodeStreamPart(chunk));
3842
3842
  }
3843
3843
  });
3844
- return new (0, _chunk5KIEXJRKjs.PipeableTransformStream)((readable) => {
3844
+ return new (0, _chunkKVXP3Q6Kjs.PipeableTransformStream)((readable) => {
3845
3845
  return readable.pipeThrough(new TextDecoderStream()).pipeThrough(chunkByLineStream()).pipeThrough(decodeStream);
3846
3846
  });
3847
3847
  }
3848
3848
 
3849
3849
  // src/runtimes/edge/streams/utils/index.ts
3850
3850
  var streamUtils = {
3851
- streamPartEncoderStream: _chunk5KIEXJRKjs.streamPartEncoderStream,
3851
+ streamPartEncoderStream: _chunkKVXP3Q6Kjs.streamPartEncoderStream,
3852
3852
  streamPartDecoderStream
3853
3853
  };
3854
3854
 
@@ -3861,7 +3861,7 @@ function assistantDecoderStream() {
3861
3861
  let currentToolCall;
3862
3862
  return new TransformStream({
3863
3863
  transform({ type, value }, controller) {
3864
- if (currentToolCall && type !== "2" /* ToolCallArgsTextDelta */ && type !== "E" /* Error */) {
3864
+ if (currentToolCall && type !== "c" /* ToolCallDelta */ && type !== "3" /* Error */) {
3865
3865
  controller.enqueue({
3866
3866
  type: "tool-call",
3867
3867
  toolCallType: "function",
@@ -3879,48 +3879,82 @@ function assistantDecoderStream() {
3879
3879
  });
3880
3880
  break;
3881
3881
  }
3882
- case "1" /* ToolCallBegin */: {
3883
- const { id, name } = value;
3882
+ case "b" /* ToolCallBegin */: {
3883
+ const { toolCallId: id, toolName: name } = value;
3884
3884
  toolCallNames.set(id, name);
3885
3885
  currentToolCall = { id, name, argsText: "" };
3886
3886
  break;
3887
3887
  }
3888
- case "2" /* ToolCallArgsTextDelta */: {
3889
- const delta = value;
3890
- currentToolCall.argsText += delta;
3888
+ case "c" /* ToolCallDelta */: {
3889
+ const { toolCallId, argsTextDelta } = value;
3890
+ if (_optionalChain([currentToolCall, 'optionalAccess', _183 => _183.id]) !== toolCallId) {
3891
+ throw new Error(
3892
+ `Received tool call delta for unknown tool call "${toolCallId}".`
3893
+ );
3894
+ }
3895
+ currentToolCall.argsText += argsTextDelta;
3891
3896
  controller.enqueue({
3892
3897
  type: "tool-call-delta",
3893
3898
  toolCallType: "function",
3894
3899
  toolCallId: currentToolCall.id,
3895
3900
  toolName: currentToolCall.name,
3896
- argsTextDelta: delta
3901
+ argsTextDelta
3897
3902
  });
3898
3903
  break;
3899
3904
  }
3900
- case "3" /* ToolCallResult */: {
3905
+ case "a" /* ToolCallResult */: {
3901
3906
  controller.enqueue({
3902
3907
  type: "tool-result",
3903
3908
  toolCallType: "function",
3904
- toolCallId: value.id,
3905
- toolName: toolCallNames.get(value.id),
3909
+ toolCallId: value.toolCallId,
3910
+ toolName: toolCallNames.get(value.toolCallId),
3906
3911
  result: value.result
3907
3912
  });
3908
3913
  break;
3909
3914
  }
3910
- case "F" /* Finish */: {
3915
+ case "d" /* Finish */: {
3911
3916
  controller.enqueue({
3912
3917
  type: "finish",
3913
3918
  ...value
3914
3919
  });
3915
3920
  break;
3916
3921
  }
3917
- case "E" /* Error */: {
3922
+ case "3" /* Error */: {
3918
3923
  controller.enqueue({
3919
3924
  type: "error",
3920
3925
  error: value
3921
3926
  });
3922
3927
  break;
3923
3928
  }
3929
+ case "9" /* ToolCall */: {
3930
+ const { toolCallId, toolName, args } = value;
3931
+ const argsText = JSON.stringify(args);
3932
+ controller.enqueue({
3933
+ type: "tool-call-delta",
3934
+ toolCallType: "function",
3935
+ toolCallId,
3936
+ toolName,
3937
+ argsTextDelta: argsText
3938
+ });
3939
+ controller.enqueue({
3940
+ type: "tool-call",
3941
+ toolCallType: "function",
3942
+ toolCallId,
3943
+ toolName,
3944
+ args: argsText
3945
+ });
3946
+ break;
3947
+ }
3948
+ case "e" /* StepFinish */: {
3949
+ controller.enqueue({
3950
+ type: "step-finish",
3951
+ ...value
3952
+ });
3953
+ break;
3954
+ }
3955
+ // TODO
3956
+ case "2" /* Data */:
3957
+ break;
3924
3958
  default: {
3925
3959
  const unhandledType = type;
3926
3960
  throw new Error(`Unhandled chunk type: ${unhandledType}`);
@@ -3957,8 +3991,8 @@ var EdgeChatAdapter = class {
3957
3991
  credentials: _nullishCoalesce(this.options.credentials, () => ( "same-origin")),
3958
3992
  body: JSON.stringify({
3959
3993
  system: config.system,
3960
- messages: _chunk5KIEXJRKjs.toCoreMessages.call(void 0, messages2),
3961
- tools: config.tools ? _chunk5KIEXJRKjs.toLanguageModelTools.call(void 0, config.tools) : [],
3994
+ messages: _chunkKVXP3Q6Kjs.toCoreMessages.call(void 0, messages2),
3995
+ tools: config.tools ? _chunkKVXP3Q6Kjs.toLanguageModelTools.call(void 0, config.tools) : [],
3962
3996
  ...config.callSettings,
3963
3997
  ...config.config,
3964
3998
  ...this.options.body
@@ -3968,7 +4002,7 @@ var EdgeChatAdapter = class {
3968
4002
  if (!result.ok) {
3969
4003
  throw new Error(`Status ${result.status}: ${await result.text()}`);
3970
4004
  }
3971
- const stream = result.body.pipeThrough(streamPartDecoderStream()).pipeThrough(assistantDecoderStream()).pipeThrough(_chunk5KIEXJRKjs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunk5KIEXJRKjs.runResultStream.call(void 0, ));
4005
+ const stream = result.body.pipeThrough(streamPartDecoderStream()).pipeThrough(assistantDecoderStream()).pipeThrough(_chunkKVXP3Q6Kjs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunkKVXP3Q6Kjs.runResultStream.call(void 0, ));
3972
4006
  let update;
3973
4007
  for await (update of asAsyncIterable(stream)) {
3974
4008
  yield update;
@@ -3980,9 +4014,14 @@ var EdgeChatAdapter = class {
3980
4014
 
3981
4015
  // src/runtimes/local/LocalRuntimeOptions.tsx
3982
4016
  var splitLocalRuntimeOptions = (options) => {
3983
- const { initialMessages, maxToolRoundtrips, adapters, ...rest } = options;
4017
+ const { initialMessages, maxToolRoundtrips, maxSteps, adapters, ...rest } = options;
3984
4018
  return {
3985
- localRuntimeOptions: { initialMessages, maxToolRoundtrips, adapters },
4019
+ localRuntimeOptions: {
4020
+ initialMessages,
4021
+ maxToolRoundtrips,
4022
+ maxSteps,
4023
+ adapters
4024
+ },
3986
4025
  otherOptions: rest
3987
4026
  };
3988
4027
  };
@@ -3995,7 +4034,7 @@ var useEdgeRuntime = (options) => {
3995
4034
  };
3996
4035
 
3997
4036
  // src/runtimes/local/shouldContinue.tsx
3998
- var shouldContinue = (result) => _optionalChain([result, 'access', _183 => _183.status, 'optionalAccess', _184 => _184.type]) === "requires-action" && result.status.reason === "tool-calls" && result.content.every((c) => c.type !== "tool-call" || !!c.result);
4037
+ var shouldContinue = (result) => _optionalChain([result, 'access', _184 => _184.status, 'optionalAccess', _185 => _185.type]) === "requires-action" && result.status.reason === "tool-calls" && result.content.every((c) => c.type !== "tool-call" || !!c.result);
3999
4038
 
4000
4039
  // src/runtimes/composer/DefaultEditComposerRuntimeCore.tsx
4001
4040
  var DefaultEditComposerRuntimeCore = class extends BaseComposerRuntimeCore {
@@ -4083,18 +4122,18 @@ var LocalThreadRuntimeCore = (_class13 = class {
4083
4122
  set options({ initialMessages, ...options }) {
4084
4123
  this._options = options;
4085
4124
  let hasUpdates = false;
4086
- const canSpeak = _optionalChain([options, 'access', _185 => _185.adapters, 'optionalAccess', _186 => _186.speech]) !== void 0;
4125
+ const canSpeak = _optionalChain([options, 'access', _186 => _186.adapters, 'optionalAccess', _187 => _187.speech]) !== void 0;
4087
4126
  if (this.capabilities.speak !== canSpeak) {
4088
4127
  this.capabilities.speak = canSpeak;
4089
4128
  hasUpdates = true;
4090
4129
  }
4091
- this.composer.setAttachmentAdapter(_optionalChain([options, 'access', _187 => _187.adapters, 'optionalAccess', _188 => _188.attachments]));
4092
- const canAttach = _optionalChain([options, 'access', _189 => _189.adapters, 'optionalAccess', _190 => _190.attachments]) !== void 0;
4130
+ this.composer.setAttachmentAdapter(_optionalChain([options, 'access', _188 => _188.adapters, 'optionalAccess', _189 => _189.attachments]));
4131
+ const canAttach = _optionalChain([options, 'access', _190 => _190.adapters, 'optionalAccess', _191 => _191.attachments]) !== void 0;
4093
4132
  if (this.capabilities.attachments !== canAttach) {
4094
4133
  this.capabilities.attachments = canAttach;
4095
4134
  hasUpdates = true;
4096
4135
  }
4097
- const canFeedback = _optionalChain([options, 'access', _191 => _191.adapters, 'optionalAccess', _192 => _192.feedback]) !== void 0;
4136
+ const canFeedback = _optionalChain([options, 'access', _192 => _192.adapters, 'optionalAccess', _193 => _193.feedback]) !== void 0;
4098
4137
  if (this.capabilities.feedback !== canFeedback) {
4099
4138
  this.capabilities.feedback = canFeedback;
4100
4139
  hasUpdates = true;
@@ -4153,33 +4192,25 @@ var LocalThreadRuntimeCore = (_class13 = class {
4153
4192
  }
4154
4193
  async performRoundtrip(parentId, message) {
4155
4194
  const messages2 = this.repository.getMessages();
4156
- _optionalChain([this, 'access', _193 => _193.abortController, 'optionalAccess', _194 => _194.abort, 'call', _195 => _195()]);
4195
+ _optionalChain([this, 'access', _194 => _194.abortController, 'optionalAccess', _195 => _195.abort, 'call', _196 => _196()]);
4157
4196
  this.abortController = new AbortController();
4158
4197
  const initialContent = message.content;
4159
- const initialRoundtrips = _optionalChain([message, 'access', _196 => _196.metadata, 'optionalAccess', _197 => _197.roundtrips]);
4160
- const initalCustom = _optionalChain([message, 'access', _198 => _198.metadata, 'optionalAccess', _199 => _199.custom]);
4198
+ const initialSteps = _optionalChain([message, 'access', _197 => _197.metadata, 'optionalAccess', _198 => _198.steps]);
4199
+ const initalCustom = _optionalChain([message, 'access', _199 => _199.metadata, 'optionalAccess', _200 => _200.custom]);
4161
4200
  const updateMessage = (m) => {
4201
+ const newSteps = _optionalChain([m, 'access', _201 => _201.metadata, 'optionalAccess', _202 => _202.steps]) || _optionalChain([m, 'access', _203 => _203.metadata, 'optionalAccess', _204 => _204.roundtrips]);
4202
+ const steps2 = newSteps ? [..._nullishCoalesce(initialSteps, () => ( [])), ...newSteps] : void 0;
4162
4203
  message = {
4163
4204
  ...message,
4164
4205
  ...m.content ? { content: [...initialContent, ..._nullishCoalesce(m.content, () => ( []))] } : void 0,
4165
4206
  status: _nullishCoalesce(m.status, () => ( message.status)),
4166
4207
  // TODO deprecated, remove in v0.6
4167
- ..._optionalChain([m, 'access', _200 => _200.metadata, 'optionalAccess', _201 => _201.roundtrips]) ? {
4168
- roundtrips: [
4169
- ..._nullishCoalesce(initialRoundtrips, () => ( [])),
4170
- ...m.metadata.roundtrips
4171
- ]
4172
- } : void 0,
4208
+ ...steps2 ? { roundtrips: steps2 } : void 0,
4173
4209
  ...m.metadata ? {
4174
4210
  metadata: {
4175
4211
  ...message.metadata,
4176
- ...m.metadata.roundtrips ? {
4177
- roundtrips: [
4178
- ..._nullishCoalesce(initialRoundtrips, () => ( [])),
4179
- ...m.metadata.roundtrips
4180
- ]
4181
- } : void 0,
4182
- ..._optionalChain([m, 'access', _202 => _202.metadata, 'optionalAccess', _203 => _203.custom]) ? {
4212
+ ...steps2 ? { roundtrips: steps2, steps: steps2 } : void 0,
4213
+ ..._optionalChain([m, 'access', _205 => _205.metadata, 'optionalAccess', _206 => _206.custom]) ? {
4183
4214
  custom: { ..._nullishCoalesce(initalCustom, () => ( {})), ...m.metadata.custom }
4184
4215
  } : void 0
4185
4216
  }
@@ -4188,9 +4219,9 @@ var LocalThreadRuntimeCore = (_class13 = class {
4188
4219
  this.repository.addOrUpdateMessage(parentId, message);
4189
4220
  this.notifySubscribers();
4190
4221
  };
4191
- const maxToolRoundtrips = _nullishCoalesce(this.options.maxToolRoundtrips, () => ( 1));
4192
- const toolRoundtrips = _nullishCoalesce(_optionalChain([message, 'access', _204 => _204.metadata, 'optionalAccess', _205 => _205.roundtrips, 'optionalAccess', _206 => _206.length]), () => ( 0));
4193
- if (toolRoundtrips > maxToolRoundtrips) {
4222
+ const maxSteps = this.options.maxSteps ? this.options.maxSteps : (_nullishCoalesce(this.options.maxToolRoundtrips, () => ( 1))) + 1;
4223
+ const steps = _nullishCoalesce(_optionalChain([message, 'access', _207 => _207.metadata, 'optionalAccess', _208 => _208.steps, 'optionalAccess', _209 => _209.length]), () => ( 0));
4224
+ if (steps >= maxSteps) {
4194
4225
  updateMessage({
4195
4226
  status: {
4196
4227
  type: "incomplete",
@@ -4288,7 +4319,7 @@ var LocalThreadRuntimeCore = (_class13 = class {
4288
4319
  // TODO lift utterance state to thread runtime
4289
4320
 
4290
4321
  speak(messageId) {
4291
- const adapter = _optionalChain([this, 'access', _207 => _207.options, 'access', _208 => _208.adapters, 'optionalAccess', _209 => _209.speech]);
4322
+ const adapter = _optionalChain([this, 'access', _210 => _210.options, 'access', _211 => _211.adapters, 'optionalAccess', _212 => _212.speech]);
4292
4323
  if (!adapter) throw new Error("Speech adapter not configured");
4293
4324
  const { message } = this.repository.getMessage(messageId);
4294
4325
  if (this._utterance) {
@@ -4305,7 +4336,7 @@ var LocalThreadRuntimeCore = (_class13 = class {
4305
4336
  return this._utterance;
4306
4337
  }
4307
4338
  submitFeedback({ messageId, type }) {
4308
- const adapter = _optionalChain([this, 'access', _210 => _210.options, 'access', _211 => _211.adapters, 'optionalAccess', _212 => _212.feedback]);
4339
+ const adapter = _optionalChain([this, 'access', _213 => _213.options, 'access', _214 => _214.adapters, 'optionalAccess', _215 => _215.feedback]);
4309
4340
  if (!adapter) throw new Error("Feedback adapter not configured");
4310
4341
  const { message } = this.repository.getMessage(messageId);
4311
4342
  adapter.submit({ message, type });
@@ -4352,7 +4383,7 @@ var LocalRuntimeCore = class extends BaseAssistantRuntimeCore {
4352
4383
  const messages2 = fromCoreMessages(initialMessages);
4353
4384
  this.thread.import({
4354
4385
  messages: messages2.map((m, idx) => ({
4355
- parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _213 => _213[idx - 1], 'optionalAccess', _214 => _214.id]), () => ( null)),
4386
+ parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _216 => _216[idx - 1], 'optionalAccess', _217 => _217.id]), () => ( null)),
4356
4387
  message: m
4357
4388
  }))
4358
4389
  });
@@ -4486,7 +4517,7 @@ var fromThreadMessageLike = (like, fallbackId, fallbackStatus) => {
4486
4517
  // src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx
4487
4518
  var EMPTY_ARRAY2 = Object.freeze([]);
4488
4519
  var hasUpcomingMessage = (isRunning, messages2) => {
4489
- return isRunning && _optionalChain([messages2, 'access', _215 => _215[messages2.length - 1], 'optionalAccess', _216 => _216.role]) !== "assistant";
4520
+ return isRunning && _optionalChain([messages2, 'access', _218 => _218[messages2.length - 1], 'optionalAccess', _219 => _219.role]) !== "assistant";
4490
4521
  };
4491
4522
  var ExternalStoreThreadRuntimeCore = (_class15 = class {
4492
4523
  constructor(configProvider, store) {;_class15.prototype.__init33.call(this);_class15.prototype.__init34.call(this);_class15.prototype.__init35.call(this);_class15.prototype.__init36.call(this);_class15.prototype.__init37.call(this);_class15.prototype.__init38.call(this);_class15.prototype.__init39.call(this);_class15.prototype.__init40.call(this);_class15.prototype.__init41.call(this);_class15.prototype.__init42.call(this);
@@ -4552,12 +4583,12 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4552
4583
  reload: this._store.onReload !== void 0,
4553
4584
  cancel: this._store.onCancel !== void 0,
4554
4585
  speak: this._store.onSpeak !== void 0,
4555
- unstable_copy: _optionalChain([this, 'access', _220 => _220._store, 'access', _221 => _221.unstable_capabilities, 'optionalAccess', _222 => _222.copy]) !== false,
4586
+ unstable_copy: _optionalChain([this, 'access', _223 => _223._store, 'access', _224 => _224.unstable_capabilities, 'optionalAccess', _225 => _225.copy]) !== false,
4556
4587
  // default true
4557
- attachments: !!_optionalChain([this, 'access', _223 => _223.store, 'access', _224 => _224.adapters, 'optionalAccess', _225 => _225.attachments]),
4558
- feedback: !!_optionalChain([this, 'access', _226 => _226.store, 'access', _227 => _227.adapters, 'optionalAccess', _228 => _228.feedback])
4588
+ attachments: !!_optionalChain([this, 'access', _226 => _226.store, 'access', _227 => _227.adapters, 'optionalAccess', _228 => _228.attachments]),
4589
+ feedback: !!_optionalChain([this, 'access', _229 => _229.store, 'access', _230 => _230.adapters, 'optionalAccess', _231 => _231.feedback])
4559
4590
  };
4560
- this.composer.setAttachmentAdapter(_optionalChain([this, 'access', _229 => _229._store, 'access', _230 => _230.adapters, 'optionalAccess', _231 => _231.attachments]));
4591
+ this.composer.setAttachmentAdapter(_optionalChain([this, 'access', _232 => _232._store, 'access', _233 => _233.adapters, 'optionalAccess', _234 => _234.attachments]));
4561
4592
  if (oldStore) {
4562
4593
  if (oldStore.convertMessage !== store.convertMessage) {
4563
4594
  this._converter = new ThreadMessageConverter();
@@ -4583,7 +4614,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4583
4614
  for (let i = 0; i < messages2.length; i++) {
4584
4615
  const message = messages2[i];
4585
4616
  const parent = messages2[i - 1];
4586
- this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _232 => _232.id]), () => ( null)), message);
4617
+ this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _235 => _235.id]), () => ( null)), message);
4587
4618
  }
4588
4619
  if (this.assistantOptimisticId) {
4589
4620
  this.repository.deleteMessage(this.assistantOptimisticId);
@@ -4591,7 +4622,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4591
4622
  }
4592
4623
  if (hasUpcomingMessage(isRunning, messages2)) {
4593
4624
  this.assistantOptimisticId = this.repository.appendOptimisticMessage(
4594
- _nullishCoalesce(_optionalChain([messages2, 'access', _233 => _233.at, 'call', _234 => _234(-1), 'optionalAccess', _235 => _235.id]), () => ( null)),
4625
+ _nullishCoalesce(_optionalChain([messages2, 'access', _236 => _236.at, 'call', _237 => _237(-1), 'optionalAccess', _238 => _238.id]), () => ( null)),
4595
4626
  {
4596
4627
  role: "assistant",
4597
4628
  content: []
@@ -4599,7 +4630,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4599
4630
  );
4600
4631
  }
4601
4632
  this.repository.resetHead(
4602
- _nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([messages2, 'access', _236 => _236.at, 'call', _237 => _237(-1), 'optionalAccess', _238 => _238.id]))), () => ( null))
4633
+ _nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([messages2, 'access', _239 => _239.at, 'call', _240 => _240(-1), 'optionalAccess', _241 => _241.id]))), () => ( null))
4603
4634
  );
4604
4635
  this.messages = this.repository.getMessages();
4605
4636
  this.notifySubscribers();
@@ -4620,7 +4651,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4620
4651
  this.updateMessages(this.repository.getMessages());
4621
4652
  }
4622
4653
  async append(message) {
4623
- if (message.parentId !== (_nullishCoalesce(_optionalChain([this, 'access', _239 => _239.messages, 'access', _240 => _240.at, 'call', _241 => _241(-1), 'optionalAccess', _242 => _242.id]), () => ( null)))) {
4654
+ if (message.parentId !== (_nullishCoalesce(_optionalChain([this, 'access', _242 => _242.messages, 'access', _243 => _243.at, 'call', _244 => _244(-1), 'optionalAccess', _245 => _245.id]), () => ( null)))) {
4624
4655
  if (!this._store.onEdit)
4625
4656
  throw new Error("Runtime does not support editing messages.");
4626
4657
  await this._store.onEdit(message);
@@ -4643,7 +4674,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4643
4674
  }
4644
4675
  let messages2 = this.repository.getMessages();
4645
4676
  const previousMessage = messages2[messages2.length - 1];
4646
- if (_optionalChain([previousMessage, 'optionalAccess', _243 => _243.role]) === "user" && previousMessage.id === _optionalChain([messages2, 'access', _244 => _244.at, 'call', _245 => _245(-1), 'optionalAccess', _246 => _246.id])) {
4677
+ if (_optionalChain([previousMessage, 'optionalAccess', _246 => _246.role]) === "user" && previousMessage.id === _optionalChain([messages2, 'access', _247 => _247.at, 'call', _248 => _248(-1), 'optionalAccess', _249 => _249.id])) {
4647
4678
  this.repository.deleteMessage(previousMessage.id);
4648
4679
  if (!this.composer.text.trim()) {
4649
4680
  this.composer.setText(getThreadMessageText(previousMessage));
@@ -4668,7 +4699,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4668
4699
  return this._store.onSpeak(message);
4669
4700
  }
4670
4701
  submitFeedback({ messageId, type }) {
4671
- const adapter = _optionalChain([this, 'access', _247 => _247._store, 'access', _248 => _248.adapters, 'optionalAccess', _249 => _249.feedback]);
4702
+ const adapter = _optionalChain([this, 'access', _250 => _250._store, 'access', _251 => _251.adapters, 'optionalAccess', _252 => _252.feedback]);
4672
4703
  if (!adapter) throw new Error("Feedback adapter not configured");
4673
4704
  const { message } = this.repository.getMessage(messageId);
4674
4705
  adapter.submit({ message, type });
@@ -4678,7 +4709,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4678
4709
  return () => this._subscriptions.delete(callback);
4679
4710
  }
4680
4711
  __init42() {this.updateMessages = (messages2) => {
4681
- _optionalChain([this, 'access', _250 => _250._store, 'access', _251 => _251.setMessages, 'optionalCall', _252 => _252(
4712
+ _optionalChain([this, 'access', _253 => _253._store, 'access', _254 => _254.setMessages, 'optionalCall', _255 => _255(
4682
4713
  messages2.flatMap(getExternalStoreMessage).filter((m) => m != null)
4683
4714
  )]);
4684
4715
  }}
@@ -4902,18 +4933,18 @@ var DangerousInBrowserAdapter = class {
4902
4933
  this.options = options;
4903
4934
  }
4904
4935
  async *run({ messages: messages2, abortSignal, config }) {
4905
- const res = await _chunk5KIEXJRKjs.getEdgeRuntimeStream.call(void 0, {
4936
+ const res = await _chunkKVXP3Q6Kjs.getEdgeRuntimeStream.call(void 0, {
4906
4937
  options: this.options,
4907
4938
  abortSignal,
4908
4939
  requestData: {
4909
4940
  system: config.system,
4910
- messages: _chunk5KIEXJRKjs.toCoreMessages.call(void 0, messages2),
4911
- tools: config.tools ? _chunk5KIEXJRKjs.toLanguageModelTools.call(void 0, config.tools) : [],
4941
+ messages: _chunkKVXP3Q6Kjs.toCoreMessages.call(void 0, messages2),
4942
+ tools: config.tools ? _chunkKVXP3Q6Kjs.toLanguageModelTools.call(void 0, config.tools) : [],
4912
4943
  ...config.callSettings,
4913
4944
  ...config.config
4914
4945
  }
4915
4946
  });
4916
- const stream = res.pipeThrough(_chunk5KIEXJRKjs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunk5KIEXJRKjs.runResultStream.call(void 0, ));
4947
+ const stream = res.pipeThrough(_chunkKVXP3Q6Kjs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunkKVXP3Q6Kjs.runResultStream.call(void 0, ));
4917
4948
  for await (const update of asAsyncIterable(stream)) {
4918
4949
  yield update;
4919
4950
  }
@@ -5133,7 +5164,7 @@ var ThreadConfigProvider = ({
5133
5164
  }) => {
5134
5165
  const hasAssistant = !!useAssistantRuntime({ optional: true });
5135
5166
  const configProvider = config && Object.keys(_nullishCoalesce(config, () => ( {}))).length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadConfigContext.Provider, { value: config, children }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children });
5136
- if (!_optionalChain([config, 'optionalAccess', _253 => _253.runtime])) return configProvider;
5167
+ if (!_optionalChain([config, 'optionalAccess', _256 => _256.runtime])) return configProvider;
5137
5168
  if (hasAssistant) {
5138
5169
  throw new Error(
5139
5170
  "You provided a runtime to <Thread> while simulataneously using <AssistantRuntimeProvider>. This is not allowed."
@@ -5461,7 +5492,7 @@ var AssistantMessageContent = _react.forwardRef.call(void 0, ({ components: comp
5461
5492
  {
5462
5493
  components: {
5463
5494
  ...componentsProp,
5464
- Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess', _254 => _254.Text]), () => ( components.Text)), () => ( content_part_default.Text)),
5495
+ Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess', _257 => _257.Text]), () => ( components.Text)), () => ( content_part_default.Text)),
5465
5496
  tools: toolsComponents
5466
5497
  }
5467
5498
  }
@@ -5603,7 +5634,7 @@ var ComposerAttachments = ({ components }) => {
5603
5634
  {
5604
5635
  components: {
5605
5636
  ...components,
5606
- Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _255 => _255.Attachment]), () => ( composer_attachment_default))
5637
+ Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _258 => _258.Attachment]), () => ( composer_attachment_default))
5607
5638
  }
5608
5639
  }
5609
5640
  ) });
@@ -5729,7 +5760,7 @@ var ThreadWelcomeSuggestions = () => {
5729
5760
  const suggestions2 = useThread((t) => t.suggestions);
5730
5761
  const { welcome: { suggestions } = {} } = useThreadConfig();
5731
5762
  const finalSuggestions = suggestions2.length ? suggestions2 : suggestions;
5732
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestionContainer, { children: _optionalChain([finalSuggestions, 'optionalAccess', _256 => _256.map, 'call', _257 => _257((suggestion, idx) => {
5763
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestionContainer, { children: _optionalChain([finalSuggestions, 'optionalAccess', _259 => _259.map, 'call', _260 => _260((suggestion, idx) => {
5733
5764
  const key = `${suggestion.prompt}-${idx}`;
5734
5765
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestion, { suggestion }, key);
5735
5766
  })]) });
@@ -5828,7 +5859,7 @@ var UserMessageContent = _react.forwardRef.call(void 0,
5828
5859
  {
5829
5860
  components: {
5830
5861
  ...components,
5831
- Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _258 => _258.Text]), () => ( content_part_default.Text))
5862
+ Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _261 => _261.Text]), () => ( content_part_default.Text))
5832
5863
  }
5833
5864
  }
5834
5865
  ) });
@@ -5846,7 +5877,7 @@ var UserMessageAttachments = ({
5846
5877
  {
5847
5878
  components: {
5848
5879
  ...components,
5849
- Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _259 => _259.Attachment]), () => ( user_message_attachment_default))
5880
+ Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _262 => _262.Attachment]), () => ( user_message_attachment_default))
5850
5881
  }
5851
5882
  }
5852
5883
  ) }) });
@@ -5915,9 +5946,14 @@ var edit_composer_default = Object.assign(EditComposer, exports11);
5915
5946
  // src/ui/thread.tsx
5916
5947
 
5917
5948
  var Thread = (config) => {
5918
- const { components: { Composer: ComposerComponent = composer_default } = {} } = config;
5949
+ const {
5950
+ components: {
5951
+ Composer: ComposerComponent = composer_default,
5952
+ ThreadWelcome: ThreadWelcomeComponent = thread_welcome_default
5953
+ } = {}
5954
+ } = config;
5919
5955
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadRoot, { config, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ThreadViewport, { children: [
5920
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, thread_welcome_default, {}),
5956
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeComponent, {}),
5921
5957
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadMessages, {}),
5922
5958
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadFollowupSuggestions, {}),
5923
5959
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ThreadViewportFooter, { children: [
@@ -5950,10 +5986,10 @@ var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, ..
5950
5986
  thread_exports.Messages,
5951
5987
  {
5952
5988
  components: {
5953
- UserMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _260 => _260.UserMessage]), () => ( user_message_default)),
5954
- EditComposer: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _261 => _261.EditComposer]), () => ( edit_composer_default)),
5955
- AssistantMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _262 => _262.AssistantMessage]), () => ( assistant_message_default)),
5956
- SystemMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _263 => _263.SystemMessage]), () => ( SystemMessage))
5989
+ UserMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _263 => _263.UserMessage]), () => ( user_message_default)),
5990
+ EditComposer: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _264 => _264.EditComposer]), () => ( edit_composer_default)),
5991
+ AssistantMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _265 => _265.AssistantMessage]), () => ( assistant_message_default)),
5992
+ SystemMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _266 => _266.SystemMessage]), () => ( SystemMessage))
5957
5993
  },
5958
5994
  ...rest
5959
5995
  }
@@ -5964,7 +6000,7 @@ var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, ..
5964
6000
  ThreadMessages.displayName = "ThreadMessages";
5965
6001
  var ThreadFollowupSuggestions = () => {
5966
6002
  const suggestions = useThread((t) => t.suggestions);
5967
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, thread_exports.If, { empty: false, running: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aui-thread-followup-suggestions", children: _optionalChain([suggestions, 'optionalAccess', _264 => _264.map, 'call', _265 => _265((suggestion, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6003
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, thread_exports.If, { empty: false, running: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aui-thread-followup-suggestions", children: _optionalChain([suggestions, 'optionalAccess', _267 => _267.map, 'call', _268 => _268((suggestion, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5968
6004
  thread_exports.Suggestion,
5969
6005
  {
5970
6006
  className: "aui-thread-followup-suggestion",
@@ -6192,5 +6228,5 @@ var assistant_modal_default = Object.assign(AssistantModal, exports13);
6192
6228
 
6193
6229
 
6194
6230
 
6195
- exports.ActionBarPrimitive = actionBar_exports; exports.AssistantActionBar = assistant_action_bar_default; exports.AssistantMessage = assistant_message_default; exports.AssistantModal = assistant_modal_default; exports.AssistantModalPrimitive = assistantModal_exports; exports.AssistantRuntimeProvider = AssistantRuntimeProvider; exports.BranchPicker = branch_picker_default; exports.BranchPickerPrimitive = branchPicker_exports; exports.Composer = composer_default; exports.ComposerAttachment = composer_attachment_default; exports.ComposerPrimitive = composer_exports; exports.CompositeAttachmentAdapter = CompositeAttachmentAdapter; exports.ContentPart = content_part_default; exports.ContentPartPrimitive = contentPart_exports; exports.EdgeChatAdapter = EdgeChatAdapter; exports.EditComposer = edit_composer_default; exports.INTERNAL = internal_exports; exports.MessagePrimitive = message_exports; exports.SimpleImageAttachmentAdapter = SimpleImageAttachmentAdapter; exports.SimpleTextAttachmentAdapter = SimpleTextAttachmentAdapter; exports.TextContentPartProvider = TextContentPartProvider; exports.Thread = thread_default; exports.ThreadConfigProvider = ThreadConfigProvider; exports.ThreadPrimitive = thread_exports; exports.ThreadWelcome = thread_welcome_default; exports.UserActionBar = user_action_bar_default; exports.UserMessage = user_message_default; exports.UserMessageAttachment = user_message_attachment_default; exports.WebSpeechSynthesisAdapter = WebSpeechSynthesisAdapter; exports.fromCoreMessage = fromCoreMessage; exports.fromCoreMessages = fromCoreMessages; exports.fromLanguageModelMessages = fromLanguageModelMessages; exports.fromLanguageModelTools = fromLanguageModelTools; exports.getExternalStoreMessage = getExternalStoreMessage; exports.makeAssistantTool = makeAssistantTool; exports.makeAssistantToolUI = makeAssistantToolUI; exports.streamUtils = streamUtils; exports.subscribeToMainThread = subscribeToMainThread; exports.toCoreMessage = _chunk5KIEXJRKjs.toCoreMessage; exports.toCoreMessages = _chunk5KIEXJRKjs.toCoreMessages; exports.toLanguageModelMessages = _chunk5KIEXJRKjs.toLanguageModelMessages; exports.toLanguageModelTools = _chunk5KIEXJRKjs.toLanguageModelTools; exports.useActionBarCopy = useActionBarCopy; exports.useActionBarEdit = useActionBarEdit; exports.useActionBarFeedbackNegative = useActionBarFeedbackNegative; exports.useActionBarFeedbackPositive = useActionBarFeedbackPositive; exports.useActionBarReload = useActionBarReload; exports.useActionBarSpeak = useActionBarSpeak; exports.useActionBarStopSpeaking = useActionBarStopSpeaking; exports.useAppendMessage = useAppendMessage; exports.useAssistantActions = useAssistantActions; exports.useAssistantActionsStore = useAssistantActionsStore; exports.useAssistantContext = useAssistantContext; exports.useAssistantInstructions = useAssistantInstructions; exports.useAssistantRuntime = useAssistantRuntime; exports.useAssistantRuntimeStore = useAssistantRuntimeStore; exports.useAssistantTool = useAssistantTool; exports.useAssistantToolUI = useAssistantToolUI; exports.useBranchPickerCount = useBranchPickerCount; exports.useBranchPickerNext = useBranchPickerNext; exports.useBranchPickerNumber = useBranchPickerNumber; exports.useBranchPickerPrevious = useBranchPickerPrevious; exports.useComposer = useComposer; exports.useComposerAddAttachment = useComposerAddAttachment; exports.useComposerCancel = useComposerCancel; exports.useComposerContext = useComposerContext; exports.useComposerIf = useComposerIf; exports.useComposerRuntime = useComposerRuntime; exports.useComposerSend = useComposerSend; exports.useComposerStore = useComposerStore; exports.useContentPart = useContentPart; exports.useContentPartContext = useContentPartContext; exports.useContentPartDisplay = useContentPartDisplay; exports.useContentPartImage = useContentPartImage; exports.useContentPartRuntime = useContentPartRuntime; exports.useContentPartStore = useContentPartStore; exports.useContentPartText = useContentPartText; exports.useDangerousInBrowserRuntime = useDangerousInBrowserRuntime; exports.useEdgeRuntime = useEdgeRuntime; exports.useEditComposer = useEditComposer; exports.useEditComposerStore = useEditComposerStore; exports.useExternalMessageConverter = useExternalMessageConverter; exports.useExternalStoreRuntime = useExternalStoreRuntime; exports.useLocalRuntime = useLocalRuntime; exports.useMessage = useMessage; exports.useMessageContext = useMessageContext; exports.useMessageIf = useMessageIf; exports.useMessageRuntime = useMessageRuntime; exports.useMessageStore = useMessageStore; exports.useMessageUtils = useMessageUtils; exports.useMessageUtilsStore = useMessageUtilsStore; exports.useSwitchToNewThread = useSwitchToNewThread; exports.useThread = useThread; exports.useThreadActions = useThreadActions; exports.useThreadActionsStore = useThreadActionsStore; exports.useThreadComposer = useThreadComposer; exports.useThreadComposerStore = useThreadComposerStore; exports.useThreadConfig = useThreadConfig; exports.useThreadContext = useThreadContext; exports.useThreadEmpty = useThreadEmpty; exports.useThreadIf = useThreadIf; exports.useThreadMessages = useThreadMessages; exports.useThreadMessagesStore = useThreadMessagesStore; exports.useThreadRuntime = useThreadRuntime; exports.useThreadRuntimeStore = useThreadRuntimeStore; exports.useThreadScrollToBottom = useThreadScrollToBottom; exports.useThreadStore = useThreadStore; exports.useThreadSuggestion = useThreadSuggestion; exports.useThreadViewport = useThreadViewport; exports.useThreadViewportStore = useThreadViewportStore; exports.useToolUIs = useToolUIs; exports.useToolUIsStore = useToolUIsStore;
6231
+ exports.ActionBarPrimitive = actionBar_exports; exports.AssistantActionBar = assistant_action_bar_default; exports.AssistantMessage = assistant_message_default; exports.AssistantModal = assistant_modal_default; exports.AssistantModalPrimitive = assistantModal_exports; exports.AssistantRuntimeProvider = AssistantRuntimeProvider; exports.BranchPicker = branch_picker_default; exports.BranchPickerPrimitive = branchPicker_exports; exports.Composer = composer_default; exports.ComposerAttachment = composer_attachment_default; exports.ComposerPrimitive = composer_exports; exports.CompositeAttachmentAdapter = CompositeAttachmentAdapter; exports.ContentPart = content_part_default; exports.ContentPartPrimitive = contentPart_exports; exports.EdgeChatAdapter = EdgeChatAdapter; exports.EditComposer = edit_composer_default; exports.INTERNAL = internal_exports; exports.MessagePrimitive = message_exports; exports.SimpleImageAttachmentAdapter = SimpleImageAttachmentAdapter; exports.SimpleTextAttachmentAdapter = SimpleTextAttachmentAdapter; exports.TextContentPartProvider = TextContentPartProvider; exports.Thread = thread_default; exports.ThreadConfigProvider = ThreadConfigProvider; exports.ThreadPrimitive = thread_exports; exports.ThreadWelcome = thread_welcome_default; exports.UserActionBar = user_action_bar_default; exports.UserMessage = user_message_default; exports.UserMessageAttachment = user_message_attachment_default; exports.WebSpeechSynthesisAdapter = WebSpeechSynthesisAdapter; exports.fromCoreMessage = fromCoreMessage; exports.fromCoreMessages = fromCoreMessages; exports.fromLanguageModelMessages = fromLanguageModelMessages; exports.fromLanguageModelTools = fromLanguageModelTools; exports.getExternalStoreMessage = getExternalStoreMessage; exports.makeAssistantTool = makeAssistantTool; exports.makeAssistantToolUI = makeAssistantToolUI; exports.streamUtils = streamUtils; exports.subscribeToMainThread = subscribeToMainThread; exports.toCoreMessage = _chunkKVXP3Q6Kjs.toCoreMessage; exports.toCoreMessages = _chunkKVXP3Q6Kjs.toCoreMessages; exports.toLanguageModelMessages = _chunkKVXP3Q6Kjs.toLanguageModelMessages; exports.toLanguageModelTools = _chunkKVXP3Q6Kjs.toLanguageModelTools; exports.useActionBarCopy = useActionBarCopy; exports.useActionBarEdit = useActionBarEdit; exports.useActionBarFeedbackNegative = useActionBarFeedbackNegative; exports.useActionBarFeedbackPositive = useActionBarFeedbackPositive; exports.useActionBarReload = useActionBarReload; exports.useActionBarSpeak = useActionBarSpeak; exports.useActionBarStopSpeaking = useActionBarStopSpeaking; exports.useAppendMessage = useAppendMessage; exports.useAssistantActions = useAssistantActions; exports.useAssistantActionsStore = useAssistantActionsStore; exports.useAssistantContext = useAssistantContext; exports.useAssistantInstructions = useAssistantInstructions; exports.useAssistantRuntime = useAssistantRuntime; exports.useAssistantRuntimeStore = useAssistantRuntimeStore; exports.useAssistantTool = useAssistantTool; exports.useAssistantToolUI = useAssistantToolUI; exports.useBranchPickerCount = useBranchPickerCount; exports.useBranchPickerNext = useBranchPickerNext; exports.useBranchPickerNumber = useBranchPickerNumber; exports.useBranchPickerPrevious = useBranchPickerPrevious; exports.useComposer = useComposer; exports.useComposerAddAttachment = useComposerAddAttachment; exports.useComposerCancel = useComposerCancel; exports.useComposerContext = useComposerContext; exports.useComposerIf = useComposerIf; exports.useComposerRuntime = useComposerRuntime; exports.useComposerSend = useComposerSend; exports.useComposerStore = useComposerStore; exports.useContentPart = useContentPart; exports.useContentPartContext = useContentPartContext; exports.useContentPartDisplay = useContentPartDisplay; exports.useContentPartImage = useContentPartImage; exports.useContentPartRuntime = useContentPartRuntime; exports.useContentPartStore = useContentPartStore; exports.useContentPartText = useContentPartText; exports.useDangerousInBrowserRuntime = useDangerousInBrowserRuntime; exports.useEdgeRuntime = useEdgeRuntime; exports.useEditComposer = useEditComposer; exports.useEditComposerStore = useEditComposerStore; exports.useExternalMessageConverter = useExternalMessageConverter; exports.useExternalStoreRuntime = useExternalStoreRuntime; exports.useLocalRuntime = useLocalRuntime; exports.useMessage = useMessage; exports.useMessageContext = useMessageContext; exports.useMessageIf = useMessageIf; exports.useMessageRuntime = useMessageRuntime; exports.useMessageStore = useMessageStore; exports.useMessageUtils = useMessageUtils; exports.useMessageUtilsStore = useMessageUtilsStore; exports.useSwitchToNewThread = useSwitchToNewThread; exports.useThread = useThread; exports.useThreadActions = useThreadActions; exports.useThreadActionsStore = useThreadActionsStore; exports.useThreadComposer = useThreadComposer; exports.useThreadComposerStore = useThreadComposerStore; exports.useThreadConfig = useThreadConfig; exports.useThreadContext = useThreadContext; exports.useThreadEmpty = useThreadEmpty; exports.useThreadIf = useThreadIf; exports.useThreadMessages = useThreadMessages; exports.useThreadMessagesStore = useThreadMessagesStore; exports.useThreadRuntime = useThreadRuntime; exports.useThreadRuntimeStore = useThreadRuntimeStore; exports.useThreadScrollToBottom = useThreadScrollToBottom; exports.useThreadStore = useThreadStore; exports.useThreadSuggestion = useThreadSuggestion; exports.useThreadViewport = useThreadViewport; exports.useThreadViewportStore = useThreadViewportStore; exports.useToolUIs = useToolUIs; exports.useToolUIsStore = useToolUIsStore;
6196
6232
  //# sourceMappingURL=index.js.map