@assistant-ui/react 0.5.72 → 0.5.74

Sign up to get free protection for your applications and to get access to all the features.
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');
@@ -672,12 +672,7 @@ var useBranchPickerCount = () => {
672
672
 
673
673
  var useBranchPickerNext = () => {
674
674
  const messageRuntime = useMessageRuntime();
675
- const messageStore = useMessageStore();
676
- const editComposerStore = useEditComposerStore();
677
- const disabled = useCombinedStore(
678
- [messageStore, editComposerStore],
679
- (m, c) => c.isEditing || m.branchNumber >= m.branchCount
680
- );
675
+ const disabled = useMessage((m) => m.branchNumber >= m.branchCount);
681
676
  const callback = _react.useCallback.call(void 0, () => {
682
677
  messageRuntime.switchToBranch({ position: "next" });
683
678
  }, [messageRuntime]);
@@ -695,12 +690,7 @@ var useBranchPickerNumber = () => {
695
690
 
696
691
  var useBranchPickerPrevious = () => {
697
692
  const messageRuntime = useMessageRuntime();
698
- const messageStore = useMessageStore();
699
- const editComposerStore = useEditComposerStore();
700
- const disabled = useCombinedStore(
701
- [messageStore, editComposerStore],
702
- (m, c) => c.isEditing || m.branchNumber <= 1
703
- );
693
+ const disabled = useMessage((m) => m.branchNumber <= 1);
704
694
  const callback = _react.useCallback.call(void 0, () => {
705
695
  messageRuntime.switchToBranch({ position: "previous" });
706
696
  }, [messageRuntime]);
@@ -1238,6 +1228,119 @@ var AssistantModalPrimitiveAnchor = _react.forwardRef.call(void 0,
1238
1228
  );
1239
1229
  AssistantModalPrimitiveAnchor.displayName = "AssistantModalPrimitive.Anchor";
1240
1230
 
1231
+ // src/primitives/attachment/index.ts
1232
+ var attachment_exports = {};
1233
+ _chunkPZ5AY32Cjs.__export.call(void 0, attachment_exports, {
1234
+ Name: () => AttachmentPrimitiveName,
1235
+ Remove: () => AttachmentPrimitiveRemove,
1236
+ Root: () => AttachmentPrimitiveRoot,
1237
+ unstable_Thumb: () => AttachmentPrimitiveThumb
1238
+ });
1239
+
1240
+ // src/primitives/attachment/AttachmentRoot.tsx
1241
+
1242
+
1243
+
1244
+ var AttachmentPrimitiveRoot = _react.forwardRef.call(void 0, (props, ref) => {
1245
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactprimitive.Primitive.div, { ...props, ref });
1246
+ });
1247
+ AttachmentPrimitiveRoot.displayName = "AttachmentPrimitive.Root";
1248
+
1249
+ // src/primitives/attachment/AttachmentThumb.tsx
1250
+
1251
+
1252
+ // src/context/react/AttachmentContext.ts
1253
+
1254
+ var AttachmentContext = _react.createContext.call(void 0,
1255
+ null
1256
+ );
1257
+ function useAttachmentContext(options) {
1258
+ const context = _react.useContext.call(void 0, AttachmentContext);
1259
+ if (!_optionalChain([options, 'optionalAccess', _15 => _15.optional]) && !context)
1260
+ throw new Error(
1261
+ "This component must be used within a ComposerPrimitive.Attachments or MessagePrimitive.Attachments component."
1262
+ );
1263
+ return context;
1264
+ }
1265
+ function useThreadComposerAttachmentContext(options) {
1266
+ const context = useAttachmentContext(options);
1267
+ if (!context) return null;
1268
+ if (context.source !== "thread-composer")
1269
+ throw new Error(
1270
+ "This component must be used within a thread's ComposerPrimitive.Attachments component."
1271
+ );
1272
+ return context;
1273
+ }
1274
+ function useEditComposerAttachmentContext(options) {
1275
+ const context = useAttachmentContext(options);
1276
+ if (!context) return null;
1277
+ if (context.source !== "edit-composer")
1278
+ throw new Error(
1279
+ "This component must be used within a messages's ComposerPrimitive.Attachments component."
1280
+ );
1281
+ return context;
1282
+ }
1283
+ function useMessageAttachmentContext(options) {
1284
+ const context = useAttachmentContext(options);
1285
+ if (!context) return null;
1286
+ if (context.source !== "message")
1287
+ throw new Error(
1288
+ "This component must be used within a MessagePrimitive.Attachments component."
1289
+ );
1290
+ return context;
1291
+ }
1292
+ function useAttachmentRuntime(options) {
1293
+ const attachmentRuntime = useAttachmentContext(options);
1294
+ if (!attachmentRuntime) return null;
1295
+ return attachmentRuntime.useAttachmentRuntime();
1296
+ }
1297
+ var { useAttachment } = createContextStoreHook(
1298
+ useAttachmentContext,
1299
+ "useAttachment"
1300
+ );
1301
+ var { useAttachment: useThreadComposerAttachment } = createContextStoreHook(useThreadComposerAttachmentContext, "useAttachment");
1302
+ var { useAttachment: useEditComposerAttachment } = createContextStoreHook(useEditComposerAttachmentContext, "useAttachment");
1303
+ var { useAttachment: useMessageAttachment } = createContextStoreHook(
1304
+ useMessageAttachmentContext,
1305
+ "useAttachment"
1306
+ );
1307
+
1308
+ // src/primitives/attachment/AttachmentThumb.tsx
1309
+
1310
+
1311
+ var AttachmentPrimitiveThumb = _react.forwardRef.call(void 0, () => {
1312
+ const ext = useAttachment((a) => a.name.split(".").pop());
1313
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _reactprimitive.Primitive.div, { children: [
1314
+ ".",
1315
+ ext
1316
+ ] });
1317
+ });
1318
+ AttachmentPrimitiveThumb.displayName = "AttachmentPrimitive.Thumb";
1319
+
1320
+ // src/primitives/attachment/AttachmentName.tsx
1321
+
1322
+ var AttachmentPrimitiveName = () => {
1323
+ const name = useAttachment((a) => a.name);
1324
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: name });
1325
+ };
1326
+ AttachmentPrimitiveName.displayName = "AttachmentPrimitive.Name";
1327
+
1328
+ // src/primitive-hooks/attachment/useAttachmentRemove.ts
1329
+
1330
+ var useAttachmentRemove = () => {
1331
+ const attachmentRuntime = useAttachmentRuntime();
1332
+ const handleRemoveAttachment = _react.useCallback.call(void 0, () => {
1333
+ attachmentRuntime.remove();
1334
+ }, [attachmentRuntime]);
1335
+ return handleRemoveAttachment;
1336
+ };
1337
+
1338
+ // src/primitives/attachment/AttachmentRemove.tsx
1339
+ var AttachmentPrimitiveRemove = createActionButton(
1340
+ "AttachmentPrimitive.Remove",
1341
+ useAttachmentRemove
1342
+ );
1343
+
1241
1344
  // src/primitives/branchPicker/index.ts
1242
1345
  var branchPicker_exports = {};
1243
1346
  _chunkPZ5AY32Cjs.__export.call(void 0, branchPicker_exports, {
@@ -1341,9 +1444,9 @@ var useIsHoveringRef = () => {
1341
1444
  );
1342
1445
  return useManagedRef(callbackRef);
1343
1446
  };
1344
- var MessagePrimitiveRoot = _react.forwardRef.call(void 0, (props, forwardRef33) => {
1447
+ var MessagePrimitiveRoot = _react.forwardRef.call(void 0, (props, forwardRef35) => {
1345
1448
  const isHoveringRef = useIsHoveringRef();
1346
- const ref = _reactcomposerefs.useComposedRefs.call(void 0, forwardRef33, isHoveringRef);
1449
+ const ref = _reactcomposerefs.useComposedRefs.call(void 0, forwardRef35, isHoveringRef);
1347
1450
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactprimitive.Primitive.div, { ...props, ref });
1348
1451
  });
1349
1452
  MessagePrimitiveRoot.displayName = "MessagePrimitive.Root";
@@ -1434,7 +1537,7 @@ var withSmoothContextProvider = (Component) => {
1434
1537
  };
1435
1538
  function useSmoothContext(options) {
1436
1539
  const context = _react.useContext.call(void 0, SmoothContext);
1437
- if (!_optionalChain([options, 'optionalAccess', _15 => _15.optional]) && !context)
1540
+ if (!_optionalChain([options, 'optionalAccess', _16 => _16.optional]) && !context)
1438
1541
  throw new Error(
1439
1542
  "This component must be used within a SmoothContextProvider."
1440
1543
  );
@@ -1644,7 +1747,7 @@ var BaseSubject = (_class2 = class {constructor() { _class2.prototype.__init5.ca
1644
1747
  if (this._connection) return;
1645
1748
  this._connection = this._connect();
1646
1749
  } else {
1647
- _optionalChain([this, 'access', _16 => _16._connection, 'optionalCall', _17 => _17()]);
1750
+ _optionalChain([this, 'access', _17 => _17._connection, 'optionalCall', _18 => _18()]);
1648
1751
  this._connection = void 0;
1649
1752
  }
1650
1753
  }
@@ -1743,40 +1846,40 @@ var EMPTY_ARRAY = Object.freeze([]);
1743
1846
  var getThreadComposerState = (runtime, focus, onFocus) => {
1744
1847
  return Object.freeze({
1745
1848
  type: "thread",
1746
- isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _18 => _18.isEditing]), () => ( false)),
1747
- canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _19 => _19.canCancel]), () => ( false)),
1748
- isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _20 => _20.isEmpty]), () => ( true)),
1749
- text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _21 => _21.text]), () => ( "")),
1750
- attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _22 => _22.attachments]), () => ( EMPTY_ARRAY)),
1751
- attachmentAccept: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _23 => _23.attachmentAccept]), () => ( "*")),
1752
- value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _24 => _24.text]), () => ( "")),
1753
- setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _25 => _25.setText, 'access', _26 => _26.bind, 'call', _27 => _27(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1754
- setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _28 => _28.setText, 'access', _29 => _29.bind, 'call', _30 => _30(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1849
+ isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _19 => _19.isEditing]), () => ( false)),
1850
+ canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _20 => _20.canCancel]), () => ( false)),
1851
+ isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _21 => _21.isEmpty]), () => ( true)),
1852
+ text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _22 => _22.text]), () => ( "")),
1853
+ attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _23 => _23.attachments]), () => ( EMPTY_ARRAY)),
1854
+ attachmentAccept: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _24 => _24.attachmentAccept]), () => ( "*")),
1855
+ value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _25 => _25.text]), () => ( "")),
1856
+ setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _26 => _26.setText, 'access', _27 => _27.bind, 'call', _28 => _28(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1857
+ setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _29 => _29.setText, 'access', _30 => _30.bind, 'call', _31 => _31(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1755
1858
  // edit: beginEdit,
1756
- send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _31 => _31.send, 'access', _32 => _32.bind, 'call', _33 => _33(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1757
- cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _34 => _34.cancel, 'access', _35 => _35.bind, 'call', _36 => _36(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1859
+ send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _32 => _32.send, 'access', _33 => _33.bind, 'call', _34 => _34(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1860
+ cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _35 => _35.cancel, 'access', _36 => _36.bind, 'call', _37 => _37(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1758
1861
  focus,
1759
1862
  onFocus,
1760
- reset: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _37 => _37.reset, 'access', _38 => _38.bind, 'call', _39 => _39(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1761
- addAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _40 => _40.addAttachment, 'access', _41 => _41.bind, 'call', _42 => _42(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1762
- removeAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _43 => _43.removeAttachment, 'access', _44 => _44.bind, 'call', _45 => _45(runtime)]), () => ( METHOD_NOT_SUPPORTED))
1863
+ reset: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _38 => _38.reset, 'access', _39 => _39.bind, 'call', _40 => _40(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1864
+ addAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _41 => _41.addAttachment, 'access', _42 => _42.bind, 'call', _43 => _43(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1865
+ removeAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _44 => _44.removeAttachment, 'access', _45 => _45.bind, 'call', _46 => _46(runtime)]), () => ( METHOD_NOT_SUPPORTED))
1763
1866
  });
1764
1867
  };
1765
1868
  var getEditComposerState = (runtime, beginEdit) => {
1766
1869
  return Object.freeze({
1767
1870
  type: "edit",
1768
- isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _46 => _46.isEditing]), () => ( false)),
1769
- canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _47 => _47.canCancel]), () => ( false)),
1770
- isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _48 => _48.isEmpty]), () => ( true)),
1771
- text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _49 => _49.text]), () => ( "")),
1772
- attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _50 => _50.attachments]), () => ( EMPTY_ARRAY)),
1773
- attachmentAccept: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _51 => _51.attachmentAccept]), () => ( "*")),
1774
- value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _52 => _52.text]), () => ( "")),
1775
- setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _53 => _53.setText, 'access', _54 => _54.bind, 'call', _55 => _55(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1776
- setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _56 => _56.setText, 'access', _57 => _57.bind, 'call', _58 => _58(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1871
+ isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _47 => _47.isEditing]), () => ( false)),
1872
+ canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _48 => _48.canCancel]), () => ( false)),
1873
+ isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _49 => _49.isEmpty]), () => ( true)),
1874
+ text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _50 => _50.text]), () => ( "")),
1875
+ attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _51 => _51.attachments]), () => ( EMPTY_ARRAY)),
1876
+ attachmentAccept: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _52 => _52.attachmentAccept]), () => ( "*")),
1877
+ value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _53 => _53.text]), () => ( "")),
1878
+ setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _54 => _54.setText, 'access', _55 => _55.bind, 'call', _56 => _56(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1879
+ setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _57 => _57.setText, 'access', _58 => _58.bind, 'call', _59 => _59(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1777
1880
  edit: beginEdit,
1778
- send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _59 => _59.send, 'access', _60 => _60.bind, 'call', _61 => _61(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1779
- cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _62 => _62.cancel, 'access', _63 => _63.bind, 'call', _64 => _64(runtime)]), () => ( METHOD_NOT_SUPPORTED))
1881
+ send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _60 => _60.send, 'access', _61 => _61.bind, 'call', _62 => _62(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
1882
+ cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _63 => _63.cancel, 'access', _64 => _64.bind, 'call', _65 => _65(runtime)]), () => ( METHOD_NOT_SUPPORTED))
1780
1883
  });
1781
1884
  };
1782
1885
  var ComposerRuntimeImpl = class {
@@ -1889,7 +1992,7 @@ var ThreadComposerRuntimeImpl = (_class5 = class extends ComposerRuntimeImpl {
1889
1992
  this._getState = stateBinding.getState.bind(stateBinding);
1890
1993
  }
1891
1994
  get attachments() {
1892
- return _nullishCoalesce(_optionalChain([this, 'access', _65 => _65.getState, 'call', _66 => _66(), 'optionalAccess', _67 => _67.attachments]), () => ( EMPTY_ARRAY));
1995
+ return _nullishCoalesce(_optionalChain([this, 'access', _66 => _66.getState, 'call', _67 => _67(), 'optionalAccess', _68 => _68.attachments]), () => ( EMPTY_ARRAY));
1893
1996
  }
1894
1997
  getState() {
1895
1998
  return this._getState();
@@ -1991,19 +2094,19 @@ var NestedSubscriptionSubject = class extends BaseSubject {
1991
2094
  this.notifySubscribers();
1992
2095
  };
1993
2096
  let lastState = this.binding.getState();
1994
- let innerUnsubscribe = _optionalChain([lastState, 'optionalAccess', _68 => _68.subscribe, 'call', _69 => _69(callback)]);
2097
+ let innerUnsubscribe = _optionalChain([lastState, 'optionalAccess', _69 => _69.subscribe, 'call', _70 => _70(callback)]);
1995
2098
  const onRuntimeUpdate = () => {
1996
2099
  const newState = this.binding.getState();
1997
2100
  if (newState === lastState) return;
1998
2101
  lastState = newState;
1999
- _optionalChain([innerUnsubscribe, 'optionalCall', _70 => _70()]);
2000
- innerUnsubscribe = _optionalChain([this, 'access', _71 => _71.binding, 'access', _72 => _72.getState, 'call', _73 => _73(), 'optionalAccess', _74 => _74.subscribe, 'call', _75 => _75(callback)]);
2102
+ _optionalChain([innerUnsubscribe, 'optionalCall', _71 => _71()]);
2103
+ innerUnsubscribe = _optionalChain([this, 'access', _72 => _72.binding, 'access', _73 => _73.getState, 'call', _74 => _74(), 'optionalAccess', _75 => _75.subscribe, 'call', _76 => _76(callback)]);
2001
2104
  callback();
2002
2105
  };
2003
2106
  const outerUnsubscribe = this.binding.subscribe(onRuntimeUpdate);
2004
2107
  return () => {
2005
- _optionalChain([outerUnsubscribe, 'optionalCall', _76 => _76()]);
2006
- _optionalChain([innerUnsubscribe, 'optionalCall', _77 => _77()]);
2108
+ _optionalChain([outerUnsubscribe, 'optionalCall', _77 => _77()]);
2109
+ _optionalChain([innerUnsubscribe, 'optionalCall', _78 => _78()]);
2007
2110
  };
2008
2111
  }
2009
2112
  };
@@ -2120,7 +2223,7 @@ var MessageRuntimeImpl = (_class6 = class {
2120
2223
  new ShallowMemoizeSubject({
2121
2224
  getState: () => {
2122
2225
  const attachments = this.getState().attachments;
2123
- const attachment = _optionalChain([attachments, 'optionalAccess', _78 => _78[idx]]);
2226
+ const attachment = _optionalChain([attachments, 'optionalAccess', _79 => _79[idx]]);
2124
2227
  if (!attachment) return SKIP_UPDATE;
2125
2228
  return {
2126
2229
  ...attachment,
@@ -2209,7 +2312,7 @@ var MessageContentPartImpl = ({
2209
2312
  };
2210
2313
  var MessageContentPart = _react.memo.call(void 0,
2211
2314
  MessageContentPartImpl,
2212
- (prev, next) => prev.partIndex === next.partIndex && _optionalChain([prev, 'access', _79 => _79.components, 'optionalAccess', _80 => _80.Text]) === _optionalChain([next, 'access', _81 => _81.components, 'optionalAccess', _82 => _82.Text]) && _optionalChain([prev, 'access', _83 => _83.components, 'optionalAccess', _84 => _84.Image]) === _optionalChain([next, 'access', _85 => _85.components, 'optionalAccess', _86 => _86.Image]) && _optionalChain([prev, 'access', _87 => _87.components, 'optionalAccess', _88 => _88.UI]) === _optionalChain([next, 'access', _89 => _89.components, 'optionalAccess', _90 => _90.UI]) && _optionalChain([prev, 'access', _91 => _91.components, 'optionalAccess', _92 => _92.tools]) === _optionalChain([next, 'access', _93 => _93.components, 'optionalAccess', _94 => _94.tools])
2315
+ (prev, next) => prev.partIndex === next.partIndex && _optionalChain([prev, 'access', _80 => _80.components, 'optionalAccess', _81 => _81.Text]) === _optionalChain([next, 'access', _82 => _82.components, 'optionalAccess', _83 => _83.Text]) && _optionalChain([prev, 'access', _84 => _84.components, 'optionalAccess', _85 => _85.Image]) === _optionalChain([next, 'access', _86 => _86.components, 'optionalAccess', _87 => _87.Image]) && _optionalChain([prev, 'access', _88 => _88.components, 'optionalAccess', _89 => _89.UI]) === _optionalChain([next, 'access', _90 => _90.components, 'optionalAccess', _91 => _91.UI]) && _optionalChain([prev, 'access', _92 => _92.components, 'optionalAccess', _93 => _93.tools]) === _optionalChain([next, 'access', _94 => _94.components, 'optionalAccess', _95 => _95.tools])
2213
2316
  );
2214
2317
  var MessagePrimitiveContent = ({
2215
2318
  components
@@ -2228,62 +2331,6 @@ MessagePrimitiveInProgress.displayName = "MessagePrimitive.InProgress";
2228
2331
  // src/primitives/message/MessageAttachments.tsx
2229
2332
 
2230
2333
 
2231
- // src/context/react/AttachmentContext.ts
2232
-
2233
- var AttachmentContext = _react.createContext.call(void 0,
2234
- null
2235
- );
2236
- function useAttachmentContext(options) {
2237
- const context = _react.useContext.call(void 0, AttachmentContext);
2238
- if (!_optionalChain([options, 'optionalAccess', _95 => _95.optional]) && !context)
2239
- throw new Error(
2240
- "This component must be used within a ComposerPrimitive.Attachments or MessagePrimitive.Attachments component."
2241
- );
2242
- return context;
2243
- }
2244
- function useThreadComposerAttachmentContext(options) {
2245
- const context = useAttachmentContext(options);
2246
- if (!context) return null;
2247
- if (context.source !== "thread-composer")
2248
- throw new Error(
2249
- "This component must be used within a thread's ComposerPrimitive.Attachments component."
2250
- );
2251
- return context;
2252
- }
2253
- function useEditComposerAttachmentContext(options) {
2254
- const context = useAttachmentContext(options);
2255
- if (!context) return null;
2256
- if (context.source !== "edit-composer")
2257
- throw new Error(
2258
- "This component must be used within a messages's ComposerPrimitive.Attachments component."
2259
- );
2260
- return context;
2261
- }
2262
- function useMessageAttachmentContext(options) {
2263
- const context = useAttachmentContext(options);
2264
- if (!context) return null;
2265
- if (context.source !== "message")
2266
- throw new Error(
2267
- "This component must be used within a MessagePrimitive.Attachments component."
2268
- );
2269
- return context;
2270
- }
2271
- function useAttachmentRuntime(options) {
2272
- const attachmentRuntime = useAttachmentContext(options);
2273
- if (!attachmentRuntime) return null;
2274
- return attachmentRuntime.useAttachmentRuntime();
2275
- }
2276
- var { useAttachment } = createContextStoreHook(
2277
- useAttachmentContext,
2278
- "useAttachment"
2279
- );
2280
- var { useAttachment: useThreadComposerAttachment } = createContextStoreHook(useThreadComposerAttachmentContext, "useAttachment");
2281
- var { useAttachment: useEditComposerAttachment } = createContextStoreHook(useEditComposerAttachmentContext, "useAttachment");
2282
- var { useAttachment: useMessageAttachment } = createContextStoreHook(
2283
- useMessageAttachmentContext,
2284
- "useAttachment"
2285
- );
2286
-
2287
2334
  // src/context/providers/AttachmentRuntimeProvider.tsx
2288
2335
 
2289
2336
 
@@ -3109,7 +3156,7 @@ var DefaultThreadComposerRuntimeCore = (_class9 = class extends BaseComposerRunt
3109
3156
  var ProxyConfigProvider = (_class10 = class {constructor() { _class10.prototype.__init19.call(this); }
3110
3157
  __init19() {this._providers = /* @__PURE__ */ new Set()}
3111
3158
  getModelConfig() {
3112
- return _chunk5KIEXJRKjs.mergeModelConfigs.call(void 0, this._providers);
3159
+ return _chunkKVXP3Q6Kjs.mergeModelConfigs.call(void 0, this._providers);
3113
3160
  }
3114
3161
  registerModelConfigProvider(provider) {
3115
3162
  this._providers.add(provider);
@@ -3687,7 +3734,7 @@ var ThreadRuntimeImpl = (_class12 = class {
3687
3734
  }, _class12);
3688
3735
 
3689
3736
  // src/runtimes/edge/converters/fromLanguageModelMessages.ts
3690
- var fromLanguageModelMessages = (lm, { mergeRoundtrips }) => {
3737
+ var fromLanguageModelMessages = (lm, { mergeSteps }) => {
3691
3738
  const messages2 = [];
3692
3739
  for (const lmMessage of lm) {
3693
3740
  const role = lmMessage.role;
@@ -3750,7 +3797,7 @@ var fromLanguageModelMessages = (lm, { mergeRoundtrips }) => {
3750
3797
  }
3751
3798
  return part;
3752
3799
  });
3753
- if (mergeRoundtrips) {
3800
+ if (mergeSteps) {
3754
3801
  const previousMessage = messages2[messages2.length - 1];
3755
3802
  if (_optionalChain([previousMessage, 'optionalAccess', _181 => _181.role]) === "assistant") {
3756
3803
  previousMessage.content.push(...newContent);
@@ -3841,14 +3888,14 @@ function streamPartDecoderStream() {
3841
3888
  controller.enqueue(decodeStreamPart(chunk));
3842
3889
  }
3843
3890
  });
3844
- return new (0, _chunk5KIEXJRKjs.PipeableTransformStream)((readable) => {
3891
+ return new (0, _chunkKVXP3Q6Kjs.PipeableTransformStream)((readable) => {
3845
3892
  return readable.pipeThrough(new TextDecoderStream()).pipeThrough(chunkByLineStream()).pipeThrough(decodeStream);
3846
3893
  });
3847
3894
  }
3848
3895
 
3849
3896
  // src/runtimes/edge/streams/utils/index.ts
3850
3897
  var streamUtils = {
3851
- streamPartEncoderStream: _chunk5KIEXJRKjs.streamPartEncoderStream,
3898
+ streamPartEncoderStream: _chunkKVXP3Q6Kjs.streamPartEncoderStream,
3852
3899
  streamPartDecoderStream
3853
3900
  };
3854
3901
 
@@ -3861,7 +3908,7 @@ function assistantDecoderStream() {
3861
3908
  let currentToolCall;
3862
3909
  return new TransformStream({
3863
3910
  transform({ type, value }, controller) {
3864
- if (currentToolCall && type !== "2" /* ToolCallArgsTextDelta */ && type !== "E" /* Error */) {
3911
+ if (currentToolCall && type !== "c" /* ToolCallDelta */ && type !== "3" /* Error */) {
3865
3912
  controller.enqueue({
3866
3913
  type: "tool-call",
3867
3914
  toolCallType: "function",
@@ -3879,48 +3926,82 @@ function assistantDecoderStream() {
3879
3926
  });
3880
3927
  break;
3881
3928
  }
3882
- case "1" /* ToolCallBegin */: {
3883
- const { id, name } = value;
3929
+ case "b" /* ToolCallBegin */: {
3930
+ const { toolCallId: id, toolName: name } = value;
3884
3931
  toolCallNames.set(id, name);
3885
3932
  currentToolCall = { id, name, argsText: "" };
3886
3933
  break;
3887
3934
  }
3888
- case "2" /* ToolCallArgsTextDelta */: {
3889
- const delta = value;
3890
- currentToolCall.argsText += delta;
3935
+ case "c" /* ToolCallDelta */: {
3936
+ const { toolCallId, argsTextDelta } = value;
3937
+ if (_optionalChain([currentToolCall, 'optionalAccess', _183 => _183.id]) !== toolCallId) {
3938
+ throw new Error(
3939
+ `Received tool call delta for unknown tool call "${toolCallId}".`
3940
+ );
3941
+ }
3942
+ currentToolCall.argsText += argsTextDelta;
3891
3943
  controller.enqueue({
3892
3944
  type: "tool-call-delta",
3893
3945
  toolCallType: "function",
3894
3946
  toolCallId: currentToolCall.id,
3895
3947
  toolName: currentToolCall.name,
3896
- argsTextDelta: delta
3948
+ argsTextDelta
3897
3949
  });
3898
3950
  break;
3899
3951
  }
3900
- case "3" /* ToolCallResult */: {
3952
+ case "a" /* ToolCallResult */: {
3901
3953
  controller.enqueue({
3902
3954
  type: "tool-result",
3903
3955
  toolCallType: "function",
3904
- toolCallId: value.id,
3905
- toolName: toolCallNames.get(value.id),
3956
+ toolCallId: value.toolCallId,
3957
+ toolName: toolCallNames.get(value.toolCallId),
3906
3958
  result: value.result
3907
3959
  });
3908
3960
  break;
3909
3961
  }
3910
- case "F" /* Finish */: {
3962
+ case "d" /* Finish */: {
3911
3963
  controller.enqueue({
3912
3964
  type: "finish",
3913
3965
  ...value
3914
3966
  });
3915
3967
  break;
3916
3968
  }
3917
- case "E" /* Error */: {
3969
+ case "3" /* Error */: {
3918
3970
  controller.enqueue({
3919
3971
  type: "error",
3920
3972
  error: value
3921
3973
  });
3922
3974
  break;
3923
3975
  }
3976
+ case "9" /* ToolCall */: {
3977
+ const { toolCallId, toolName, args } = value;
3978
+ const argsText = JSON.stringify(args);
3979
+ controller.enqueue({
3980
+ type: "tool-call-delta",
3981
+ toolCallType: "function",
3982
+ toolCallId,
3983
+ toolName,
3984
+ argsTextDelta: argsText
3985
+ });
3986
+ controller.enqueue({
3987
+ type: "tool-call",
3988
+ toolCallType: "function",
3989
+ toolCallId,
3990
+ toolName,
3991
+ args: argsText
3992
+ });
3993
+ break;
3994
+ }
3995
+ case "e" /* StepFinish */: {
3996
+ controller.enqueue({
3997
+ type: "step-finish",
3998
+ ...value
3999
+ });
4000
+ break;
4001
+ }
4002
+ // TODO
4003
+ case "2" /* Data */:
4004
+ break;
3924
4005
  default: {
3925
4006
  const unhandledType = type;
3926
4007
  throw new Error(`Unhandled chunk type: ${unhandledType}`);
@@ -3957,8 +4038,8 @@ var EdgeChatAdapter = class {
3957
4038
  credentials: _nullishCoalesce(this.options.credentials, () => ( "same-origin")),
3958
4039
  body: JSON.stringify({
3959
4040
  system: config.system,
3960
- messages: _chunk5KIEXJRKjs.toCoreMessages.call(void 0, messages2),
3961
- tools: config.tools ? _chunk5KIEXJRKjs.toLanguageModelTools.call(void 0, config.tools) : [],
4041
+ messages: _chunkKVXP3Q6Kjs.toCoreMessages.call(void 0, messages2),
4042
+ tools: config.tools ? _chunkKVXP3Q6Kjs.toLanguageModelTools.call(void 0, config.tools) : [],
3962
4043
  ...config.callSettings,
3963
4044
  ...config.config,
3964
4045
  ...this.options.body
@@ -3968,7 +4049,7 @@ var EdgeChatAdapter = class {
3968
4049
  if (!result.ok) {
3969
4050
  throw new Error(`Status ${result.status}: ${await result.text()}`);
3970
4051
  }
3971
- const stream = result.body.pipeThrough(streamPartDecoderStream()).pipeThrough(assistantDecoderStream()).pipeThrough(_chunk5KIEXJRKjs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunk5KIEXJRKjs.runResultStream.call(void 0, ));
4052
+ const stream = result.body.pipeThrough(streamPartDecoderStream()).pipeThrough(assistantDecoderStream()).pipeThrough(_chunkKVXP3Q6Kjs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunkKVXP3Q6Kjs.runResultStream.call(void 0, ));
3972
4053
  let update;
3973
4054
  for await (update of asAsyncIterable(stream)) {
3974
4055
  yield update;
@@ -3980,9 +4061,14 @@ var EdgeChatAdapter = class {
3980
4061
 
3981
4062
  // src/runtimes/local/LocalRuntimeOptions.tsx
3982
4063
  var splitLocalRuntimeOptions = (options) => {
3983
- const { initialMessages, maxToolRoundtrips, adapters, ...rest } = options;
4064
+ const { initialMessages, maxToolRoundtrips, maxSteps, adapters, ...rest } = options;
3984
4065
  return {
3985
- localRuntimeOptions: { initialMessages, maxToolRoundtrips, adapters },
4066
+ localRuntimeOptions: {
4067
+ initialMessages,
4068
+ maxToolRoundtrips,
4069
+ maxSteps,
4070
+ adapters
4071
+ },
3986
4072
  otherOptions: rest
3987
4073
  };
3988
4074
  };
@@ -3995,7 +4081,7 @@ var useEdgeRuntime = (options) => {
3995
4081
  };
3996
4082
 
3997
4083
  // 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);
4084
+ 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
4085
 
4000
4086
  // src/runtimes/composer/DefaultEditComposerRuntimeCore.tsx
4001
4087
  var DefaultEditComposerRuntimeCore = class extends BaseComposerRuntimeCore {
@@ -4083,18 +4169,18 @@ var LocalThreadRuntimeCore = (_class13 = class {
4083
4169
  set options({ initialMessages, ...options }) {
4084
4170
  this._options = options;
4085
4171
  let hasUpdates = false;
4086
- const canSpeak = _optionalChain([options, 'access', _185 => _185.adapters, 'optionalAccess', _186 => _186.speech]) !== void 0;
4172
+ const canSpeak = _optionalChain([options, 'access', _186 => _186.adapters, 'optionalAccess', _187 => _187.speech]) !== void 0;
4087
4173
  if (this.capabilities.speak !== canSpeak) {
4088
4174
  this.capabilities.speak = canSpeak;
4089
4175
  hasUpdates = true;
4090
4176
  }
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;
4177
+ this.composer.setAttachmentAdapter(_optionalChain([options, 'access', _188 => _188.adapters, 'optionalAccess', _189 => _189.attachments]));
4178
+ const canAttach = _optionalChain([options, 'access', _190 => _190.adapters, 'optionalAccess', _191 => _191.attachments]) !== void 0;
4093
4179
  if (this.capabilities.attachments !== canAttach) {
4094
4180
  this.capabilities.attachments = canAttach;
4095
4181
  hasUpdates = true;
4096
4182
  }
4097
- const canFeedback = _optionalChain([options, 'access', _191 => _191.adapters, 'optionalAccess', _192 => _192.feedback]) !== void 0;
4183
+ const canFeedback = _optionalChain([options, 'access', _192 => _192.adapters, 'optionalAccess', _193 => _193.feedback]) !== void 0;
4098
4184
  if (this.capabilities.feedback !== canFeedback) {
4099
4185
  this.capabilities.feedback = canFeedback;
4100
4186
  hasUpdates = true;
@@ -4153,33 +4239,25 @@ var LocalThreadRuntimeCore = (_class13 = class {
4153
4239
  }
4154
4240
  async performRoundtrip(parentId, message) {
4155
4241
  const messages2 = this.repository.getMessages();
4156
- _optionalChain([this, 'access', _193 => _193.abortController, 'optionalAccess', _194 => _194.abort, 'call', _195 => _195()]);
4242
+ _optionalChain([this, 'access', _194 => _194.abortController, 'optionalAccess', _195 => _195.abort, 'call', _196 => _196()]);
4157
4243
  this.abortController = new AbortController();
4158
4244
  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]);
4245
+ const initialSteps = _optionalChain([message, 'access', _197 => _197.metadata, 'optionalAccess', _198 => _198.steps]);
4246
+ const initalCustom = _optionalChain([message, 'access', _199 => _199.metadata, 'optionalAccess', _200 => _200.custom]);
4161
4247
  const updateMessage = (m) => {
4248
+ const newSteps = _optionalChain([m, 'access', _201 => _201.metadata, 'optionalAccess', _202 => _202.steps]) || _optionalChain([m, 'access', _203 => _203.metadata, 'optionalAccess', _204 => _204.roundtrips]);
4249
+ const steps2 = newSteps ? [..._nullishCoalesce(initialSteps, () => ( [])), ...newSteps] : void 0;
4162
4250
  message = {
4163
4251
  ...message,
4164
4252
  ...m.content ? { content: [...initialContent, ..._nullishCoalesce(m.content, () => ( []))] } : void 0,
4165
4253
  status: _nullishCoalesce(m.status, () => ( message.status)),
4166
4254
  // 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,
4255
+ ...steps2 ? { roundtrips: steps2 } : void 0,
4173
4256
  ...m.metadata ? {
4174
4257
  metadata: {
4175
4258
  ...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]) ? {
4259
+ ...steps2 ? { roundtrips: steps2, steps: steps2 } : void 0,
4260
+ ..._optionalChain([m, 'access', _205 => _205.metadata, 'optionalAccess', _206 => _206.custom]) ? {
4183
4261
  custom: { ..._nullishCoalesce(initalCustom, () => ( {})), ...m.metadata.custom }
4184
4262
  } : void 0
4185
4263
  }
@@ -4188,9 +4266,9 @@ var LocalThreadRuntimeCore = (_class13 = class {
4188
4266
  this.repository.addOrUpdateMessage(parentId, message);
4189
4267
  this.notifySubscribers();
4190
4268
  };
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) {
4269
+ const maxSteps = this.options.maxSteps ? this.options.maxSteps : (_nullishCoalesce(this.options.maxToolRoundtrips, () => ( 1))) + 1;
4270
+ const steps = _nullishCoalesce(_optionalChain([message, 'access', _207 => _207.metadata, 'optionalAccess', _208 => _208.steps, 'optionalAccess', _209 => _209.length]), () => ( 0));
4271
+ if (steps >= maxSteps) {
4194
4272
  updateMessage({
4195
4273
  status: {
4196
4274
  type: "incomplete",
@@ -4288,7 +4366,7 @@ var LocalThreadRuntimeCore = (_class13 = class {
4288
4366
  // TODO lift utterance state to thread runtime
4289
4367
 
4290
4368
  speak(messageId) {
4291
- const adapter = _optionalChain([this, 'access', _207 => _207.options, 'access', _208 => _208.adapters, 'optionalAccess', _209 => _209.speech]);
4369
+ const adapter = _optionalChain([this, 'access', _210 => _210.options, 'access', _211 => _211.adapters, 'optionalAccess', _212 => _212.speech]);
4292
4370
  if (!adapter) throw new Error("Speech adapter not configured");
4293
4371
  const { message } = this.repository.getMessage(messageId);
4294
4372
  if (this._utterance) {
@@ -4305,7 +4383,7 @@ var LocalThreadRuntimeCore = (_class13 = class {
4305
4383
  return this._utterance;
4306
4384
  }
4307
4385
  submitFeedback({ messageId, type }) {
4308
- const adapter = _optionalChain([this, 'access', _210 => _210.options, 'access', _211 => _211.adapters, 'optionalAccess', _212 => _212.feedback]);
4386
+ const adapter = _optionalChain([this, 'access', _213 => _213.options, 'access', _214 => _214.adapters, 'optionalAccess', _215 => _215.feedback]);
4309
4387
  if (!adapter) throw new Error("Feedback adapter not configured");
4310
4388
  const { message } = this.repository.getMessage(messageId);
4311
4389
  adapter.submit({ message, type });
@@ -4352,7 +4430,7 @@ var LocalRuntimeCore = class extends BaseAssistantRuntimeCore {
4352
4430
  const messages2 = fromCoreMessages(initialMessages);
4353
4431
  this.thread.import({
4354
4432
  messages: messages2.map((m, idx) => ({
4355
- parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _213 => _213[idx - 1], 'optionalAccess', _214 => _214.id]), () => ( null)),
4433
+ parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _216 => _216[idx - 1], 'optionalAccess', _217 => _217.id]), () => ( null)),
4356
4434
  message: m
4357
4435
  }))
4358
4436
  });
@@ -4486,7 +4564,7 @@ var fromThreadMessageLike = (like, fallbackId, fallbackStatus) => {
4486
4564
  // src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx
4487
4565
  var EMPTY_ARRAY2 = Object.freeze([]);
4488
4566
  var hasUpcomingMessage = (isRunning, messages2) => {
4489
- return isRunning && _optionalChain([messages2, 'access', _215 => _215[messages2.length - 1], 'optionalAccess', _216 => _216.role]) !== "assistant";
4567
+ return isRunning && _optionalChain([messages2, 'access', _218 => _218[messages2.length - 1], 'optionalAccess', _219 => _219.role]) !== "assistant";
4490
4568
  };
4491
4569
  var ExternalStoreThreadRuntimeCore = (_class15 = class {
4492
4570
  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 +4630,12 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4552
4630
  reload: this._store.onReload !== void 0,
4553
4631
  cancel: this._store.onCancel !== void 0,
4554
4632
  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,
4633
+ unstable_copy: _optionalChain([this, 'access', _223 => _223._store, 'access', _224 => _224.unstable_capabilities, 'optionalAccess', _225 => _225.copy]) !== false,
4556
4634
  // 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])
4635
+ attachments: !!_optionalChain([this, 'access', _226 => _226.store, 'access', _227 => _227.adapters, 'optionalAccess', _228 => _228.attachments]),
4636
+ feedback: !!_optionalChain([this, 'access', _229 => _229.store, 'access', _230 => _230.adapters, 'optionalAccess', _231 => _231.feedback])
4559
4637
  };
4560
- this.composer.setAttachmentAdapter(_optionalChain([this, 'access', _229 => _229._store, 'access', _230 => _230.adapters, 'optionalAccess', _231 => _231.attachments]));
4638
+ this.composer.setAttachmentAdapter(_optionalChain([this, 'access', _232 => _232._store, 'access', _233 => _233.adapters, 'optionalAccess', _234 => _234.attachments]));
4561
4639
  if (oldStore) {
4562
4640
  if (oldStore.convertMessage !== store.convertMessage) {
4563
4641
  this._converter = new ThreadMessageConverter();
@@ -4583,7 +4661,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4583
4661
  for (let i = 0; i < messages2.length; i++) {
4584
4662
  const message = messages2[i];
4585
4663
  const parent = messages2[i - 1];
4586
- this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _232 => _232.id]), () => ( null)), message);
4664
+ this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _235 => _235.id]), () => ( null)), message);
4587
4665
  }
4588
4666
  if (this.assistantOptimisticId) {
4589
4667
  this.repository.deleteMessage(this.assistantOptimisticId);
@@ -4591,7 +4669,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4591
4669
  }
4592
4670
  if (hasUpcomingMessage(isRunning, messages2)) {
4593
4671
  this.assistantOptimisticId = this.repository.appendOptimisticMessage(
4594
- _nullishCoalesce(_optionalChain([messages2, 'access', _233 => _233.at, 'call', _234 => _234(-1), 'optionalAccess', _235 => _235.id]), () => ( null)),
4672
+ _nullishCoalesce(_optionalChain([messages2, 'access', _236 => _236.at, 'call', _237 => _237(-1), 'optionalAccess', _238 => _238.id]), () => ( null)),
4595
4673
  {
4596
4674
  role: "assistant",
4597
4675
  content: []
@@ -4599,7 +4677,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4599
4677
  );
4600
4678
  }
4601
4679
  this.repository.resetHead(
4602
- _nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([messages2, 'access', _236 => _236.at, 'call', _237 => _237(-1), 'optionalAccess', _238 => _238.id]))), () => ( null))
4680
+ _nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([messages2, 'access', _239 => _239.at, 'call', _240 => _240(-1), 'optionalAccess', _241 => _241.id]))), () => ( null))
4603
4681
  );
4604
4682
  this.messages = this.repository.getMessages();
4605
4683
  this.notifySubscribers();
@@ -4620,7 +4698,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4620
4698
  this.updateMessages(this.repository.getMessages());
4621
4699
  }
4622
4700
  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)))) {
4701
+ if (message.parentId !== (_nullishCoalesce(_optionalChain([this, 'access', _242 => _242.messages, 'access', _243 => _243.at, 'call', _244 => _244(-1), 'optionalAccess', _245 => _245.id]), () => ( null)))) {
4624
4702
  if (!this._store.onEdit)
4625
4703
  throw new Error("Runtime does not support editing messages.");
4626
4704
  await this._store.onEdit(message);
@@ -4643,7 +4721,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4643
4721
  }
4644
4722
  let messages2 = this.repository.getMessages();
4645
4723
  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])) {
4724
+ 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
4725
  this.repository.deleteMessage(previousMessage.id);
4648
4726
  if (!this.composer.text.trim()) {
4649
4727
  this.composer.setText(getThreadMessageText(previousMessage));
@@ -4668,7 +4746,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4668
4746
  return this._store.onSpeak(message);
4669
4747
  }
4670
4748
  submitFeedback({ messageId, type }) {
4671
- const adapter = _optionalChain([this, 'access', _247 => _247._store, 'access', _248 => _248.adapters, 'optionalAccess', _249 => _249.feedback]);
4749
+ const adapter = _optionalChain([this, 'access', _250 => _250._store, 'access', _251 => _251.adapters, 'optionalAccess', _252 => _252.feedback]);
4672
4750
  if (!adapter) throw new Error("Feedback adapter not configured");
4673
4751
  const { message } = this.repository.getMessage(messageId);
4674
4752
  adapter.submit({ message, type });
@@ -4678,7 +4756,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
4678
4756
  return () => this._subscriptions.delete(callback);
4679
4757
  }
4680
4758
  __init42() {this.updateMessages = (messages2) => {
4681
- _optionalChain([this, 'access', _250 => _250._store, 'access', _251 => _251.setMessages, 'optionalCall', _252 => _252(
4759
+ _optionalChain([this, 'access', _253 => _253._store, 'access', _254 => _254.setMessages, 'optionalCall', _255 => _255(
4682
4760
  messages2.flatMap(getExternalStoreMessage).filter((m) => m != null)
4683
4761
  )]);
4684
4762
  }}
@@ -4902,18 +4980,18 @@ var DangerousInBrowserAdapter = class {
4902
4980
  this.options = options;
4903
4981
  }
4904
4982
  async *run({ messages: messages2, abortSignal, config }) {
4905
- const res = await _chunk5KIEXJRKjs.getEdgeRuntimeStream.call(void 0, {
4983
+ const res = await _chunkKVXP3Q6Kjs.getEdgeRuntimeStream.call(void 0, {
4906
4984
  options: this.options,
4907
4985
  abortSignal,
4908
4986
  requestData: {
4909
4987
  system: config.system,
4910
- messages: _chunk5KIEXJRKjs.toCoreMessages.call(void 0, messages2),
4911
- tools: config.tools ? _chunk5KIEXJRKjs.toLanguageModelTools.call(void 0, config.tools) : [],
4988
+ messages: _chunkKVXP3Q6Kjs.toCoreMessages.call(void 0, messages2),
4989
+ tools: config.tools ? _chunkKVXP3Q6Kjs.toLanguageModelTools.call(void 0, config.tools) : [],
4912
4990
  ...config.callSettings,
4913
4991
  ...config.config
4914
4992
  }
4915
4993
  });
4916
- const stream = res.pipeThrough(_chunk5KIEXJRKjs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunk5KIEXJRKjs.runResultStream.call(void 0, ));
4994
+ const stream = res.pipeThrough(_chunkKVXP3Q6Kjs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunkKVXP3Q6Kjs.runResultStream.call(void 0, ));
4917
4995
  for await (const update of asAsyncIterable(stream)) {
4918
4996
  yield update;
4919
4997
  }
@@ -5133,7 +5211,7 @@ var ThreadConfigProvider = ({
5133
5211
  }) => {
5134
5212
  const hasAssistant = !!useAssistantRuntime({ optional: true });
5135
5213
  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;
5214
+ if (!_optionalChain([config, 'optionalAccess', _256 => _256.runtime])) return configProvider;
5137
5215
  if (hasAssistant) {
5138
5216
  throw new Error(
5139
5217
  "You provided a runtime to <Thread> while simulataneously using <AssistantRuntimeProvider>. This is not allowed."
@@ -5461,7 +5539,7 @@ var AssistantMessageContent = _react.forwardRef.call(void 0, ({ components: comp
5461
5539
  {
5462
5540
  components: {
5463
5541
  ...componentsProp,
5464
- Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess', _254 => _254.Text]), () => ( components.Text)), () => ( content_part_default.Text)),
5542
+ Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess', _257 => _257.Text]), () => ( components.Text)), () => ( content_part_default.Text)),
5465
5543
  tools: toolsComponents
5466
5544
  }
5467
5545
  }
@@ -5511,15 +5589,13 @@ CircleStopIcon.displayName = "CircleStopIcon";
5511
5589
 
5512
5590
 
5513
5591
 
5514
- var ComposerAttachmentRoot = withDefaults("div", {
5592
+ var ComposerAttachmentRoot = withDefaults(attachment_exports.Root, {
5515
5593
  className: "aui-composer-attachment-root"
5516
5594
  });
5517
5595
  ComposerAttachmentRoot.displayName = "ComposerAttachmentRoot";
5518
5596
  var ComposerAttachment2 = () => {
5519
- const attachment = useThreadComposerAttachment((a) => a.attachment);
5520
5597
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ComposerAttachmentRoot, { children: [
5521
- ".",
5522
- attachment.name.split(".").pop(),
5598
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, attachment_exports.unstable_Thumb, {}),
5523
5599
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ComposerAttachmentRemove, {})
5524
5600
  ] });
5525
5601
  };
@@ -5530,22 +5606,17 @@ var ComposerAttachmentRemove = _react.forwardRef.call(void 0, (props, ref) => {
5530
5606
  composer: { removeAttachment: { tooltip = "Remove file" } = {} } = {}
5531
5607
  } = {}
5532
5608
  } = useThreadConfig();
5533
- const attachmentRuntime = useAttachmentRuntime();
5534
- const handleRemoveAttachment = () => {
5535
- attachmentRuntime.remove();
5536
- };
5537
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5609
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, attachment_exports.Remove, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5538
5610
  TooltipIconButton,
5539
5611
  {
5540
5612
  tooltip,
5541
5613
  className: "aui-composer-attachment-remove",
5542
5614
  side: "top",
5543
5615
  ...props,
5544
- onClick: handleRemoveAttachment,
5545
5616
  ref,
5546
5617
  children: _nullishCoalesce(props.children, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleXIcon, {})))
5547
5618
  }
5548
- );
5619
+ ) });
5549
5620
  });
5550
5621
  ComposerAttachmentRemove.displayName = "ComposerAttachmentRemove";
5551
5622
  var exports5 = {
@@ -5603,7 +5674,7 @@ var ComposerAttachments = ({ components }) => {
5603
5674
  {
5604
5675
  components: {
5605
5676
  ...components,
5606
- Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _255 => _255.Attachment]), () => ( composer_attachment_default))
5677
+ Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _258 => _258.Attachment]), () => ( composer_attachment_default))
5607
5678
  }
5608
5679
  }
5609
5680
  ) });
@@ -5729,7 +5800,7 @@ var ThreadWelcomeSuggestions = () => {
5729
5800
  const suggestions2 = useThread((t) => t.suggestions);
5730
5801
  const { welcome: { suggestions } = {} } = useThreadConfig();
5731
5802
  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) => {
5803
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestionContainer, { children: _optionalChain([finalSuggestions, 'optionalAccess', _259 => _259.map, 'call', _260 => _260((suggestion, idx) => {
5733
5804
  const key = `${suggestion.prompt}-${idx}`;
5734
5805
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestion, { suggestion }, key);
5735
5806
  })]) });
@@ -5783,16 +5854,12 @@ var user_action_bar_default = Object.assign(UserActionBar, exports8);
5783
5854
 
5784
5855
  // src/ui/user-message-attachment.tsx
5785
5856
 
5786
- var UserMessageAttachmentRoot = withDefaults("div", {
5857
+ var UserMessageAttachmentRoot = withDefaults(attachment_exports.Root, {
5787
5858
  className: "aui-user-message-attachment-root"
5788
5859
  });
5789
5860
  UserMessageAttachmentRoot.displayName = "UserMessageAttachmentRoot";
5790
5861
  var UserMessageAttachment = () => {
5791
- const attachment = useAttachment((a) => a.attachment);
5792
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, UserMessageAttachmentRoot, { children: [
5793
- ".",
5794
- attachment.name.split(".").pop()
5795
- ] });
5862
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UserMessageAttachmentRoot, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, attachment_exports.unstable_Thumb, {}) });
5796
5863
  };
5797
5864
  UserMessageAttachment.displayName = "UserMessageAttachment";
5798
5865
  var exports9 = {
@@ -5828,7 +5895,7 @@ var UserMessageContent = _react.forwardRef.call(void 0,
5828
5895
  {
5829
5896
  components: {
5830
5897
  ...components,
5831
- Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _258 => _258.Text]), () => ( content_part_default.Text))
5898
+ Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _261 => _261.Text]), () => ( content_part_default.Text))
5832
5899
  }
5833
5900
  }
5834
5901
  ) });
@@ -5846,7 +5913,7 @@ var UserMessageAttachments = ({
5846
5913
  {
5847
5914
  components: {
5848
5915
  ...components,
5849
- Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _259 => _259.Attachment]), () => ( user_message_attachment_default))
5916
+ Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _262 => _262.Attachment]), () => ( user_message_attachment_default))
5850
5917
  }
5851
5918
  }
5852
5919
  ) }) });
@@ -5915,9 +5982,14 @@ var edit_composer_default = Object.assign(EditComposer, exports11);
5915
5982
  // src/ui/thread.tsx
5916
5983
 
5917
5984
  var Thread = (config) => {
5918
- const { components: { Composer: ComposerComponent = composer_default } = {} } = config;
5985
+ const {
5986
+ components: {
5987
+ Composer: ComposerComponent = composer_default,
5988
+ ThreadWelcome: ThreadWelcomeComponent = thread_welcome_default
5989
+ } = {}
5990
+ } = config;
5919
5991
  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, {}),
5992
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeComponent, {}),
5921
5993
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadMessages, {}),
5922
5994
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadFollowupSuggestions, {}),
5923
5995
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ThreadViewportFooter, { children: [
@@ -5950,10 +6022,10 @@ var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, ..
5950
6022
  thread_exports.Messages,
5951
6023
  {
5952
6024
  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))
6025
+ UserMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _263 => _263.UserMessage]), () => ( user_message_default)),
6026
+ EditComposer: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _264 => _264.EditComposer]), () => ( edit_composer_default)),
6027
+ AssistantMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _265 => _265.AssistantMessage]), () => ( assistant_message_default)),
6028
+ SystemMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _266 => _266.SystemMessage]), () => ( SystemMessage))
5957
6029
  },
5958
6030
  ...rest
5959
6031
  }
@@ -5964,7 +6036,7 @@ var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, ..
5964
6036
  ThreadMessages.displayName = "ThreadMessages";
5965
6037
  var ThreadFollowupSuggestions = () => {
5966
6038
  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,
6039
+ 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
6040
  thread_exports.Suggestion,
5969
6041
  {
5970
6042
  className: "aui-thread-followup-suggestion",
@@ -6192,5 +6264,6 @@ var assistant_modal_default = Object.assign(AssistantModal, exports13);
6192
6264
 
6193
6265
 
6194
6266
 
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;
6267
+
6268
+ 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.AttachmentPrimitive = attachment_exports; 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
6269
  //# sourceMappingURL=index.js.map