@assistant-ui/react 0.5.81 → 0.5.82
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/{chunk-CYIFAX4U.js → chunk-C6UZOY5A.js} +1 -1
- package/dist/chunk-C6UZOY5A.js.map +1 -0
- package/dist/{chunk-RHM73CQE.mjs → chunk-TWIMAOZR.mjs} +1 -1
- package/dist/chunk-TWIMAOZR.mjs.map +1 -0
- package/dist/{edge-rTP-G718.d.mts → edge-8bY1SEQ-.d.mts} +4 -1
- package/dist/{edge-rTP-G718.d.ts → edge-8bY1SEQ-.d.ts} +4 -1
- package/dist/edge.js.map +1 -1
- package/dist/edge.mjs.map +1 -1
- package/dist/index.d.mts +150 -25
- package/dist/index.d.ts +150 -25
- package/dist/index.js +413 -261
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +304 -152
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-CYIFAX4U.js.map +0 -1
- package/dist/chunk-RHM73CQE.mjs.map +0 -1
    
        package/dist/index.js
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8; var _class9; var _class10; var _class11; var _class12; var _class13; var _class14; var _class15; var _class16; | 
| 1 | 
            +
            "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8; var _class9; var _class10; var _class11; var _class12; var _class13; var _class14; var _class15; var _class16;
         | 
| 2 2 |  | 
| 3 3 |  | 
| 4 4 |  | 
| @@ -9,7 +9,7 @@ | |
| 9 9 |  | 
| 10 10 |  | 
| 11 11 |  | 
| 12 | 
            -
            var  | 
| 12 | 
            +
            var _chunkC6UZOY5Ajs = require('./chunk-C6UZOY5A.js');
         | 
| 13 13 |  | 
| 14 14 |  | 
| 15 15 | 
             
            var _chunkPZ5AY32Cjs = require('./chunk-PZ5AY32C.js');
         | 
| @@ -155,6 +155,15 @@ var { | |
| 155 155 | 
             
              useViewport: useThreadViewport,
         | 
| 156 156 | 
             
              useViewportStore: useThreadViewportStore
         | 
| 157 157 | 
             
            } = createContextStoreHook(useThreadContext, "useViewport");
         | 
| 158 | 
            +
            function useThreadModelConfig(options) {
         | 
| 159 | 
            +
              const [, rerender] = _react.useState.call(void 0, {});
         | 
| 160 | 
            +
              const runtime = useThreadRuntime(options);
         | 
| 161 | 
            +
              _react.useEffect.call(void 0, () => {
         | 
| 162 | 
            +
                return _optionalChain([runtime, 'optionalAccess', _5 => _5.unstable_on, 'call', _6 => _6("model-config-update", () => rerender({}))]);
         | 
| 163 | 
            +
              }, [runtime]);
         | 
| 164 | 
            +
              if (!runtime) return null;
         | 
| 165 | 
            +
              return _optionalChain([runtime, 'optionalAccess', _7 => _7.getModelConfig, 'call', _8 => _8()]);
         | 
| 166 | 
            +
            }
         | 
| 158 167 |  | 
| 159 168 | 
             
            // src/context/stores/ThreadViewport.tsx
         | 
| 160 169 |  | 
| @@ -294,6 +303,9 @@ var ContentPartRuntimeImpl = class { | |
| 294 303 | 
             
                this.messageApi = messageApi;
         | 
| 295 304 | 
             
                this.threadApi = threadApi;
         | 
| 296 305 | 
             
              }
         | 
| 306 | 
            +
              get path() {
         | 
| 307 | 
            +
                return this.contentBinding.path;
         | 
| 308 | 
            +
              }
         | 
| 297 309 | 
             
              getState() {
         | 
| 298 310 | 
             
                return this.contentBinding.getState();
         | 
| 299 311 | 
             
              }
         | 
| @@ -404,7 +416,7 @@ var { useComposer, useComposerStore } = createContextStoreHook( | |
| 404 416 | 
             
            function useComposerRuntime(options) {
         | 
| 405 417 | 
             
              const messageRuntime = useMessageRuntime({ optional: true });
         | 
| 406 418 | 
             
              const threadRuntime = useThreadRuntime(options);
         | 
| 407 | 
            -
              return messageRuntime ? messageRuntime.composer : _nullishCoalesce(_optionalChain([threadRuntime, 'optionalAccess',  | 
| 419 | 
            +
              return messageRuntime ? messageRuntime.composer : _nullishCoalesce(_optionalChain([threadRuntime, 'optionalAccess', _9 => _9.composer]), () => ( null));
         | 
| 408 420 | 
             
            }
         | 
| 409 421 |  | 
| 410 422 | 
             
            // src/hooks/useAppendMessage.tsx
         | 
| @@ -448,7 +460,7 @@ var useAssistantTool = (tool) => { | |
| 448 460 | 
             
                const unsub2 = render ? toolUIsStore.getState().setToolUI(toolName, render) : void 0;
         | 
| 449 461 | 
             
                return () => {
         | 
| 450 462 | 
             
                  unsub1();
         | 
| 451 | 
            -
                  _optionalChain([unsub2, 'optionalCall',  | 
| 463 | 
            +
                  _optionalChain([unsub2, 'optionalCall', _10 => _10()]);
         | 
| 452 464 | 
             
                };
         | 
| 453 465 | 
             
              }, [assistantRuntime, toolUIsStore, tool]);
         | 
| 454 466 | 
             
            };
         | 
| @@ -500,64 +512,23 @@ var useAssistantInstructions = (instruction) => { | |
| 500 512 |  | 
| 501 513 | 
             
            // src/primitive-hooks/actionBar/useActionBarCopy.tsx
         | 
| 502 514 |  | 
| 503 | 
            -
             | 
| 504 | 
            -
            // src/utils/combined/useCombinedStore.ts
         | 
| 505 | 
            -
             | 
| 506 | 
            -
             | 
| 507 | 
            -
            // src/utils/combined/createCombinedStore.ts
         | 
| 508 | 
            -
             | 
| 509 | 
            -
            var createCombinedStore = (stores) => {
         | 
| 510 | 
            -
              const subscribe = (callback) => {
         | 
| 511 | 
            -
                const unsubscribes = stores.map((store) => store.subscribe(callback));
         | 
| 512 | 
            -
                return () => {
         | 
| 513 | 
            -
                  for (const unsub of unsubscribes) {
         | 
| 514 | 
            -
                    unsub();
         | 
| 515 | 
            -
                  }
         | 
| 516 | 
            -
                };
         | 
| 517 | 
            -
              };
         | 
| 518 | 
            -
              return (selector) => {
         | 
| 519 | 
            -
                const getSnapshot = () => selector(...stores.map((store) => store.getState()));
         | 
| 520 | 
            -
                return _react.useSyncExternalStore.call(void 0, subscribe, getSnapshot, getSnapshot);
         | 
| 521 | 
            -
              };
         | 
| 522 | 
            -
            };
         | 
| 523 | 
            -
             | 
| 524 | 
            -
            // src/utils/combined/useCombinedStore.ts
         | 
| 525 | 
            -
            var useCombinedStore = (stores, selector) => {
         | 
| 526 | 
            -
              const useCombined = _react.useMemo.call(void 0, () => createCombinedStore(stores), stores);
         | 
| 527 | 
            -
              return useCombined(selector);
         | 
| 528 | 
            -
            };
         | 
| 529 | 
            -
             | 
| 530 | 
            -
            // src/utils/getThreadMessageText.tsx
         | 
| 531 | 
            -
            var getThreadMessageText = (message) => {
         | 
| 532 | 
            -
              const textParts = message.content.filter(
         | 
| 533 | 
            -
                (part) => part.type === "text"
         | 
| 534 | 
            -
              );
         | 
| 535 | 
            -
              return textParts.map((part) => part.text).join("\n\n");
         | 
| 536 | 
            -
            };
         | 
| 537 | 
            -
             | 
| 538 | 
            -
            // src/primitive-hooks/actionBar/useActionBarCopy.tsx
         | 
| 539 515 | 
             
            var useActionBarCopy = ({
         | 
| 540 516 | 
             
              copiedDuration = 3e3
         | 
| 541 517 | 
             
            } = {}) => {
         | 
| 542 518 | 
             
              const messageRuntime = useMessageRuntime();
         | 
| 543 519 | 
             
              const composerRuntime = useComposerRuntime();
         | 
| 544 | 
            -
              const  | 
| 545 | 
            -
              const hasCopyableContent =  | 
| 546 | 
            -
                 | 
| 547 | 
            -
             | 
| 548 | 
            -
                  return !c.isEditing && (message.role !== "assistant" || message.status.type !== "running") && message.content.some((c2) => c2.type === "text" && c2.text.length > 0);
         | 
| 549 | 
            -
                }
         | 
| 550 | 
            -
              );
         | 
| 520 | 
            +
              const setIsCopied = useMessageUtils((s) => s.setIsCopied);
         | 
| 521 | 
            +
              const hasCopyableContent = useMessage((message) => {
         | 
| 522 | 
            +
                return (message.role !== "assistant" || message.status.type !== "running") && message.content.some((c) => c.type === "text" && c.text.length > 0);
         | 
| 523 | 
            +
              });
         | 
| 551 524 | 
             
              const callback = _react.useCallback.call(void 0, () => {
         | 
| 552 | 
            -
                const message = messageRuntime.getState();
         | 
| 553 | 
            -
                const { setIsCopied } = messageUtilsStore.getState();
         | 
| 554 525 | 
             
                const { isEditing, text: composerValue } = composerRuntime.getState();
         | 
| 555 | 
            -
                const valueToCopy = isEditing ? composerValue :  | 
| 526 | 
            +
                const valueToCopy = isEditing ? composerValue : messageRuntime.unstable_getCopyText();
         | 
| 556 527 | 
             
                navigator.clipboard.writeText(valueToCopy).then(() => {
         | 
| 557 528 | 
             
                  setIsCopied(true);
         | 
| 558 529 | 
             
                  setTimeout(() => setIsCopied(false), copiedDuration);
         | 
| 559 530 | 
             
                });
         | 
| 560 | 
            -
              }, [messageRuntime,  | 
| 531 | 
            +
              }, [messageRuntime, setIsCopied, composerRuntime, copiedDuration]);
         | 
| 561 532 | 
             
              if (!hasCopyableContent) return null;
         | 
| 562 533 | 
             
              return callback;
         | 
| 563 534 | 
             
            };
         | 
| @@ -576,6 +547,34 @@ var useActionBarEdit = () => { | |
| 576 547 |  | 
| 577 548 | 
             
            // src/primitive-hooks/actionBar/useActionBarReload.tsx
         | 
| 578 549 |  | 
| 550 | 
            +
             | 
| 551 | 
            +
            // src/utils/combined/useCombinedStore.ts
         | 
| 552 | 
            +
             | 
| 553 | 
            +
             | 
| 554 | 
            +
            // src/utils/combined/createCombinedStore.ts
         | 
| 555 | 
            +
             | 
| 556 | 
            +
            var createCombinedStore = (stores) => {
         | 
| 557 | 
            +
              const subscribe = (callback) => {
         | 
| 558 | 
            +
                const unsubscribes = stores.map((store) => store.subscribe(callback));
         | 
| 559 | 
            +
                return () => {
         | 
| 560 | 
            +
                  for (const unsub of unsubscribes) {
         | 
| 561 | 
            +
                    unsub();
         | 
| 562 | 
            +
                  }
         | 
| 563 | 
            +
                };
         | 
| 564 | 
            +
              };
         | 
| 565 | 
            +
              return (selector) => {
         | 
| 566 | 
            +
                const getSnapshot = () => selector(...stores.map((store) => store.getState()));
         | 
| 567 | 
            +
                return _react.useSyncExternalStore.call(void 0, subscribe, getSnapshot, getSnapshot);
         | 
| 568 | 
            +
              };
         | 
| 569 | 
            +
            };
         | 
| 570 | 
            +
             | 
| 571 | 
            +
            // src/utils/combined/useCombinedStore.ts
         | 
| 572 | 
            +
            var useCombinedStore = (stores, selector) => {
         | 
| 573 | 
            +
              const useCombined = _react.useMemo.call(void 0, () => createCombinedStore(stores), stores);
         | 
| 574 | 
            +
              return useCombined(selector);
         | 
| 575 | 
            +
            };
         | 
| 576 | 
            +
             | 
| 577 | 
            +
            // src/primitive-hooks/actionBar/useActionBarReload.tsx
         | 
| 579 578 | 
             
            var useActionBarReload = () => {
         | 
| 580 579 | 
             
              const messageRuntime = useMessageRuntime();
         | 
| 581 580 | 
             
              const threadRuntime = useThreadRuntime();
         | 
| @@ -723,7 +722,7 @@ var useComposerAddAttachment = () => { | |
| 723 722 | 
             
                  input.accept = attachmentAccept;
         | 
| 724 723 | 
             
                }
         | 
| 725 724 | 
             
                input.onchange = (e) => {
         | 
| 726 | 
            -
                  const file = _optionalChain([e, 'access',  | 
| 725 | 
            +
                  const file = _optionalChain([e, 'access', _11 => _11.target, 'access', _12 => _12.files, 'optionalAccess', _13 => _13[0]]);
         | 
| 727 726 | 
             
                  if (!file) return;
         | 
| 728 727 | 
             
                  composerRuntime.addAttachment(file);
         | 
| 729 728 | 
             
                };
         | 
| @@ -799,7 +798,7 @@ var useMessageIf = (props) => { | |
| 799 798 | 
             
                    return false;
         | 
| 800 799 | 
             
                  if (props.hasContent === true && content.length === 0) return false;
         | 
| 801 800 | 
             
                  if (props.hasContent === false && content.length > 0) return false;
         | 
| 802 | 
            -
                  if (props.submittedFeedback !== void 0 && (_nullishCoalesce(_optionalChain([submittedFeedback, 'optionalAccess',  | 
| 801 | 
            +
                  if (props.submittedFeedback !== void 0 && (_nullishCoalesce(_optionalChain([submittedFeedback, 'optionalAccess', _14 => _14.type]), () => ( null))) !== props.submittedFeedback)
         | 
| 803 802 | 
             
                    return false;
         | 
| 804 803 | 
             
                  return true;
         | 
| 805 804 | 
             
                }
         | 
| @@ -933,7 +932,7 @@ var ActionBarPrimitiveCopy = _react.forwardRef.call(void 0, ({ copiedDuration, o | |
| 933 932 | 
             
                  ref: forwardedRef,
         | 
| 934 933 | 
             
                  disabled: disabled || !callback,
         | 
| 935 934 | 
             
                  onClick: _primitive.composeEventHandlers.call(void 0, onClick, () => {
         | 
| 936 | 
            -
                    _optionalChain([callback, 'optionalCall',  | 
| 935 | 
            +
                    _optionalChain([callback, 'optionalCall', _15 => _15()]);
         | 
| 937 936 | 
             
                  })
         | 
| 938 937 | 
             
                }
         | 
| 939 938 | 
             
              );
         | 
| @@ -965,7 +964,7 @@ var createActionButton = (displayName, useActionButton, forwardProps = []) => { | |
| 965 964 | 
             
                    ref: forwardedRef,
         | 
| 966 965 | 
             
                    disabled: primitiveProps.disabled || !callback,
         | 
| 967 966 | 
             
                    onClick: _primitive.composeEventHandlers.call(void 0, primitiveProps.onClick, () => {
         | 
| 968 | 
            -
                      _optionalChain([callback, 'optionalCall',  | 
| 967 | 
            +
                      _optionalChain([callback, 'optionalCall', _16 => _16()]);
         | 
| 969 968 | 
             
                    })
         | 
| 970 969 | 
             
                  }
         | 
| 971 970 | 
             
                );
         | 
| @@ -1014,7 +1013,7 @@ var ActionBarPrimitiveStopSpeaking = _react.forwardRef.call(void 0, (props, ref) | |
| 1014 1013 | 
             
                  ...props,
         | 
| 1015 1014 | 
             
                  ref,
         | 
| 1016 1015 | 
             
                  onClick: _primitive.composeEventHandlers.call(void 0, props.onClick, () => {
         | 
| 1017 | 
            -
                    _optionalChain([callback, 'optionalCall',  | 
| 1016 | 
            +
                    _optionalChain([callback, 'optionalCall', _17 => _17()]);
         | 
| 1018 1017 | 
             
                  })
         | 
| 1019 1018 | 
             
                }
         | 
| 1020 1019 | 
             
              );
         | 
| @@ -1028,7 +1027,7 @@ ActionBarPrimitiveStopSpeaking.displayName = "ActionBarPrimitive.StopSpeaking"; | |
| 1028 1027 |  | 
| 1029 1028 | 
             
            var ActionBarPrimitiveFeedbackPositive = _react.forwardRef.call(void 0, ({ onClick, disabled, ...props }, forwardedRef) => {
         | 
| 1030 1029 | 
             
              const isSubmitted = useMessage(
         | 
| 1031 | 
            -
                (u) => _optionalChain([u, 'access',  | 
| 1030 | 
            +
                (u) => _optionalChain([u, 'access', _18 => _18.submittedFeedback, 'optionalAccess', _19 => _19.type]) === "positive"
         | 
| 1032 1031 | 
             
              );
         | 
| 1033 1032 | 
             
              const callback = useActionBarFeedbackPositive();
         | 
| 1034 1033 | 
             
              return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
         | 
| @@ -1040,7 +1039,7 @@ var ActionBarPrimitiveFeedbackPositive = _react.forwardRef.call(void 0, ({ onCli | |
| 1040 1039 | 
             
                  ref: forwardedRef,
         | 
| 1041 1040 | 
             
                  disabled: disabled || !callback,
         | 
| 1042 1041 | 
             
                  onClick: _primitive.composeEventHandlers.call(void 0, onClick, () => {
         | 
| 1043 | 
            -
                    _optionalChain([callback, 'optionalCall',  | 
| 1042 | 
            +
                    _optionalChain([callback, 'optionalCall', _20 => _20()]);
         | 
| 1044 1043 | 
             
                  })
         | 
| 1045 1044 | 
             
                }
         | 
| 1046 1045 | 
             
              );
         | 
| @@ -1054,7 +1053,7 @@ ActionBarPrimitiveFeedbackPositive.displayName = "ActionBarPrimitive.FeedbackPos | |
| 1054 1053 |  | 
| 1055 1054 | 
             
            var ActionBarPrimitiveFeedbackNegative = _react.forwardRef.call(void 0, ({ onClick, disabled, ...props }, forwardedRef) => {
         | 
| 1056 1055 | 
             
              const isSubmitted = useMessage(
         | 
| 1057 | 
            -
                (u) => _optionalChain([u, 'access',  | 
| 1056 | 
            +
                (u) => _optionalChain([u, 'access', _21 => _21.submittedFeedback, 'optionalAccess', _22 => _22.type]) === "negative"
         | 
| 1058 1057 | 
             
              );
         | 
| 1059 1058 | 
             
              const callback = useActionBarFeedbackNegative();
         | 
| 1060 1059 | 
             
              return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
         | 
| @@ -1066,7 +1065,7 @@ var ActionBarPrimitiveFeedbackNegative = _react.forwardRef.call(void 0, ({ onCli | |
| 1066 1065 | 
             
                  ref: forwardedRef,
         | 
| 1067 1066 | 
             
                  disabled: disabled || !callback,
         | 
| 1068 1067 | 
             
                  onClick: _primitive.composeEventHandlers.call(void 0, onClick, () => {
         | 
| 1069 | 
            -
                    _optionalChain([callback, 'optionalCall',  | 
| 1068 | 
            +
                    _optionalChain([callback, 'optionalCall', _23 => _23()]);
         | 
| 1070 1069 | 
             
                  })
         | 
| 1071 1070 | 
             
                }
         | 
| 1072 1071 | 
             
              );
         | 
| @@ -1224,7 +1223,7 @@ var AttachmentContext = _react.createContext.call(void 0, | |
| 1224 1223 | 
             
            );
         | 
| 1225 1224 | 
             
            function useAttachmentContext(options) {
         | 
| 1226 1225 | 
             
              const context = _react.useContext.call(void 0, AttachmentContext);
         | 
| 1227 | 
            -
              if (!_optionalChain([options, 'optionalAccess',  | 
| 1226 | 
            +
              if (!_optionalChain([options, 'optionalAccess', _24 => _24.optional]) && !context)
         | 
| 1228 1227 | 
             
                throw new Error(
         | 
| 1229 1228 | 
             
                  "This component must be used within a ComposerPrimitive.Attachments or MessagePrimitive.Attachments component."
         | 
| 1230 1229 | 
             
                );
         | 
| @@ -1505,7 +1504,7 @@ var withSmoothContextProvider = (Component) => { | |
| 1505 1504 | 
             
            };
         | 
| 1506 1505 | 
             
            function useSmoothContext(options) {
         | 
| 1507 1506 | 
             
              const context = _react.useContext.call(void 0, SmoothContext);
         | 
| 1508 | 
            -
              if (!_optionalChain([options, 'optionalAccess',  | 
| 1507 | 
            +
              if (!_optionalChain([options, 'optionalAccess', _25 => _25.optional]) && !context)
         | 
| 1509 1508 | 
             
                throw new Error(
         | 
| 1510 1509 | 
             
                  "This component must be used within a SmoothContextProvider."
         | 
| 1511 1510 | 
             
                );
         | 
| @@ -1655,11 +1654,22 @@ var ContentPartPrimitiveInProgress = ({ children }) => { | |
| 1655 1654 | 
             
            };
         | 
| 1656 1655 | 
             
            ContentPartPrimitiveInProgress.displayName = "ContentPartPrimitive.InProgress";
         | 
| 1657 1656 |  | 
| 1657 | 
            +
            // src/utils/getThreadMessageText.tsx
         | 
| 1658 | 
            +
            var getThreadMessageText = (message) => {
         | 
| 1659 | 
            +
              const textParts = message.content.filter(
         | 
| 1660 | 
            +
                (part) => part.type === "text"
         | 
| 1661 | 
            +
              );
         | 
| 1662 | 
            +
              return textParts.map((part) => part.text).join("\n\n");
         | 
| 1663 | 
            +
            };
         | 
| 1664 | 
            +
             | 
| 1658 1665 | 
             
            // src/api/AttachmentRuntime.ts
         | 
| 1659 1666 | 
             
            var AttachmentRuntimeImpl = class {
         | 
| 1660 1667 | 
             
              constructor(_core) {
         | 
| 1661 1668 | 
             
                this._core = _core;
         | 
| 1662 1669 | 
             
              }
         | 
| 1670 | 
            +
              get path() {
         | 
| 1671 | 
            +
                return this._core.path;
         | 
| 1672 | 
            +
              }
         | 
| 1663 1673 | 
             
              getState() {
         | 
| 1664 1674 | 
             
                return this._core.getState();
         | 
| 1665 1675 | 
             
              }
         | 
| @@ -1715,7 +1725,7 @@ var BaseSubject = (_class2 = class {constructor() { _class2.prototype.__init5.ca | |
| 1715 1725 | 
             
                  if (this._connection) return;
         | 
| 1716 1726 | 
             
                  this._connection = this._connect();
         | 
| 1717 1727 | 
             
                } else {
         | 
| 1718 | 
            -
                  _optionalChain([this, 'access',  | 
| 1728 | 
            +
                  _optionalChain([this, 'access', _26 => _26._connection, 'optionalCall', _27 => _27()]);
         | 
| 1719 1729 | 
             
                  this._connection = void 0;
         | 
| 1720 1730 | 
             
                }
         | 
| 1721 1731 | 
             
              }
         | 
| @@ -1738,6 +1748,9 @@ var LazyMemoizeSubject = (_class3 = class extends BaseSubject { | |
| 1738 1748 | 
             
                super();_class3.prototype.__init6.call(this);_class3.prototype.__init7.call(this);;
         | 
| 1739 1749 | 
             
                this.binding = binding;
         | 
| 1740 1750 | 
             
              }
         | 
| 1751 | 
            +
              get path() {
         | 
| 1752 | 
            +
                return this.binding.path;
         | 
| 1753 | 
            +
              }
         | 
| 1741 1754 | 
             
              __init6() {this._previousStateDirty = true}
         | 
| 1742 1755 |  | 
| 1743 1756 | 
             
              __init7() {this.getState = () => {
         | 
| @@ -1784,6 +1797,9 @@ var ShallowMemoizeSubject = (_class4 = class extends BaseSubject { | |
| 1784 1797 | 
             
                  throw new Error("Entry not available in the store");
         | 
| 1785 1798 | 
             
                this._previousState = state;
         | 
| 1786 1799 | 
             
              }
         | 
| 1800 | 
            +
              get path() {
         | 
| 1801 | 
            +
                return this.binding.path;
         | 
| 1802 | 
            +
              }
         | 
| 1787 1803 |  | 
| 1788 1804 | 
             
              __init8() {this.getState = () => {
         | 
| 1789 1805 | 
             
                if (!this.isConnected) this._syncState();
         | 
| @@ -1814,42 +1830,45 @@ var EMPTY_ARRAY = Object.freeze([]); | |
| 1814 1830 | 
             
            var getThreadComposerState = (runtime) => {
         | 
| 1815 1831 | 
             
              return Object.freeze({
         | 
| 1816 1832 | 
             
                type: "thread",
         | 
| 1817 | 
            -
                isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1818 | 
            -
                canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1819 | 
            -
                isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1820 | 
            -
                text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1821 | 
            -
                attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1822 | 
            -
                value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1823 | 
            -
                setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1824 | 
            -
                setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1833 | 
            +
                isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _28 => _28.isEditing]), () => ( false)),
         | 
| 1834 | 
            +
                canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _29 => _29.canCancel]), () => ( false)),
         | 
| 1835 | 
            +
                isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _30 => _30.isEmpty]), () => ( true)),
         | 
| 1836 | 
            +
                text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _31 => _31.text]), () => ( "")),
         | 
| 1837 | 
            +
                attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _32 => _32.attachments]), () => ( EMPTY_ARRAY)),
         | 
| 1838 | 
            +
                value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _33 => _33.text]), () => ( "")),
         | 
| 1839 | 
            +
                setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _34 => _34.setText, 'access', _35 => _35.bind, 'call', _36 => _36(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
         | 
| 1840 | 
            +
                setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _37 => _37.setText, 'access', _38 => _38.bind, 'call', _39 => _39(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
         | 
| 1825 1841 | 
             
                // edit: beginEdit,
         | 
| 1826 | 
            -
                send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1827 | 
            -
                cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1828 | 
            -
                reset: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1829 | 
            -
                addAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1830 | 
            -
                removeAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1842 | 
            +
                send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _40 => _40.send, 'access', _41 => _41.bind, 'call', _42 => _42(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
         | 
| 1843 | 
            +
                cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _43 => _43.cancel, 'access', _44 => _44.bind, 'call', _45 => _45(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
         | 
| 1844 | 
            +
                reset: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _46 => _46.reset, 'access', _47 => _47.bind, 'call', _48 => _48(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
         | 
| 1845 | 
            +
                addAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _49 => _49.addAttachment, 'access', _50 => _50.bind, 'call', _51 => _51(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
         | 
| 1846 | 
            +
                removeAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _52 => _52.removeAttachment, 'access', _53 => _53.bind, 'call', _54 => _54(runtime)]), () => ( METHOD_NOT_SUPPORTED))
         | 
| 1831 1847 | 
             
              });
         | 
| 1832 1848 | 
             
            };
         | 
| 1833 1849 | 
             
            var getEditComposerState = (runtime, beginEdit) => {
         | 
| 1834 1850 | 
             
              return Object.freeze({
         | 
| 1835 1851 | 
             
                type: "edit",
         | 
| 1836 | 
            -
                isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1837 | 
            -
                canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1838 | 
            -
                isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1839 | 
            -
                text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1840 | 
            -
                attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1841 | 
            -
                value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1842 | 
            -
                setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1843 | 
            -
                setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1852 | 
            +
                isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _55 => _55.isEditing]), () => ( false)),
         | 
| 1853 | 
            +
                canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _56 => _56.canCancel]), () => ( false)),
         | 
| 1854 | 
            +
                isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _57 => _57.isEmpty]), () => ( true)),
         | 
| 1855 | 
            +
                text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _58 => _58.text]), () => ( "")),
         | 
| 1856 | 
            +
                attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _59 => _59.attachments]), () => ( EMPTY_ARRAY)),
         | 
| 1857 | 
            +
                value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _60 => _60.text]), () => ( "")),
         | 
| 1858 | 
            +
                setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _61 => _61.setText, 'access', _62 => _62.bind, 'call', _63 => _63(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
         | 
| 1859 | 
            +
                setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _64 => _64.setText, 'access', _65 => _65.bind, 'call', _66 => _66(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
         | 
| 1844 1860 | 
             
                edit: beginEdit,
         | 
| 1845 | 
            -
                send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1846 | 
            -
                cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',  | 
| 1861 | 
            +
                send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _67 => _67.send, 'access', _68 => _68.bind, 'call', _69 => _69(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
         | 
| 1862 | 
            +
                cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _70 => _70.cancel, 'access', _71 => _71.bind, 'call', _72 => _72(runtime)]), () => ( METHOD_NOT_SUPPORTED))
         | 
| 1847 1863 | 
             
              });
         | 
| 1848 1864 | 
             
            };
         | 
| 1849 1865 | 
             
            var ComposerRuntimeImpl = class {
         | 
| 1850 1866 | 
             
              constructor(_core) {
         | 
| 1851 1867 | 
             
                this._core = _core;
         | 
| 1852 1868 | 
             
              }
         | 
| 1869 | 
            +
              get path() {
         | 
| 1870 | 
            +
                return this._core.path;
         | 
| 1871 | 
            +
              }
         | 
| 1853 1872 | 
             
              /**
         | 
| 1854 1873 | 
             
               * @deprecated Use `getState().isEditing` instead. This will be removed in 0.6.0.
         | 
| 1855 1874 | 
             
               */
         | 
| @@ -1935,23 +1954,28 @@ var ComposerRuntimeImpl = class { | |
| 1935 1954 | 
             
              }
         | 
| 1936 1955 | 
             
            };
         | 
| 1937 1956 | 
             
            var ThreadComposerRuntimeImpl = class extends ComposerRuntimeImpl {
         | 
| 1957 | 
            +
              get path() {
         | 
| 1958 | 
            +
                return this._core.path;
         | 
| 1959 | 
            +
              }
         | 
| 1938 1960 | 
             
              get type() {
         | 
| 1939 1961 | 
             
                return "thread";
         | 
| 1940 1962 | 
             
              }
         | 
| 1941 1963 |  | 
| 1942 1964 | 
             
              constructor(core) {
         | 
| 1943 1965 | 
             
                const stateBinding = new LazyMemoizeSubject({
         | 
| 1966 | 
            +
                  path: core.path,
         | 
| 1944 1967 | 
             
                  getState: () => getThreadComposerState(core.getState()),
         | 
| 1945 1968 | 
             
                  subscribe: (callback) => core.subscribe(callback)
         | 
| 1946 1969 | 
             
                });
         | 
| 1947 1970 | 
             
                super({
         | 
| 1971 | 
            +
                  path: core.path,
         | 
| 1948 1972 | 
             
                  getState: () => core.getState(),
         | 
| 1949 1973 | 
             
                  subscribe: (callback) => stateBinding.subscribe(callback)
         | 
| 1950 1974 | 
             
                });
         | 
| 1951 1975 | 
             
                this._getState = stateBinding.getState.bind(stateBinding);
         | 
| 1952 1976 | 
             
              }
         | 
| 1953 1977 | 
             
              get attachments() {
         | 
| 1954 | 
            -
                return _nullishCoalesce(_optionalChain([this, 'access',  | 
| 1978 | 
            +
                return _nullishCoalesce(_optionalChain([this, 'access', _73 => _73.getState, 'call', _74 => _74(), 'optionalAccess', _75 => _75.attachments]), () => ( EMPTY_ARRAY));
         | 
| 1955 1979 | 
             
              }
         | 
| 1956 1980 | 
             
              getState() {
         | 
| 1957 1981 | 
             
                return this._getState();
         | 
| @@ -1959,6 +1983,12 @@ var ThreadComposerRuntimeImpl = class extends ComposerRuntimeImpl { | |
| 1959 1983 | 
             
              getAttachmentByIndex(idx) {
         | 
| 1960 1984 | 
             
                return new ThreadComposerAttachmentRuntimeImpl(
         | 
| 1961 1985 | 
             
                  new ShallowMemoizeSubject({
         | 
| 1986 | 
            +
                    path: {
         | 
| 1987 | 
            +
                      ...this.path,
         | 
| 1988 | 
            +
                      attachmentSource: "thread-composer",
         | 
| 1989 | 
            +
                      attachmentSelector: { type: "index", index: idx },
         | 
| 1990 | 
            +
                      ref: this.path.ref + `${this.path.ref}.attachments[${idx}]`
         | 
| 1991 | 
            +
                    },
         | 
| 1962 1992 | 
             
                    getState: () => {
         | 
| 1963 1993 | 
             
                      const attachments = this.getState().attachments;
         | 
| 1964 1994 | 
             
                      const attachment = attachments[idx];
         | 
| @@ -1978,16 +2008,21 @@ var ThreadComposerRuntimeImpl = class extends ComposerRuntimeImpl { | |
| 1978 2008 | 
             
            var EditComposerRuntimeImpl = class extends ComposerRuntimeImpl {
         | 
| 1979 2009 | 
             
              constructor(core, _beginEdit) {
         | 
| 1980 2010 | 
             
                const stateBinding = new LazyMemoizeSubject({
         | 
| 2011 | 
            +
                  path: core.path,
         | 
| 1981 2012 | 
             
                  getState: () => getEditComposerState(core.getState(), this._beginEdit),
         | 
| 1982 2013 | 
             
                  subscribe: (callback) => core.subscribe(callback)
         | 
| 1983 2014 | 
             
                });
         | 
| 1984 2015 | 
             
                super({
         | 
| 2016 | 
            +
                  path: core.path,
         | 
| 1985 2017 | 
             
                  getState: () => core.getState(),
         | 
| 1986 2018 | 
             
                  subscribe: (callback) => stateBinding.subscribe(callback)
         | 
| 1987 2019 | 
             
                });
         | 
| 1988 2020 | 
             
                this._beginEdit = _beginEdit;
         | 
| 1989 2021 | 
             
                this._getState = stateBinding.getState.bind(stateBinding);
         | 
| 1990 2022 | 
             
              }
         | 
| 2023 | 
            +
              get path() {
         | 
| 2024 | 
            +
                return this._core.path;
         | 
| 2025 | 
            +
              }
         | 
| 1991 2026 | 
             
              get type() {
         | 
| 1992 2027 | 
             
                return "edit";
         | 
| 1993 2028 | 
             
              }
         | 
| @@ -2007,6 +2042,12 @@ var EditComposerRuntimeImpl = class extends ComposerRuntimeImpl { | |
| 2007 2042 | 
             
              getAttachmentByIndex(idx) {
         | 
| 2008 2043 | 
             
                return new EditComposerAttachmentRuntimeImpl(
         | 
| 2009 2044 | 
             
                  new ShallowMemoizeSubject({
         | 
| 2045 | 
            +
                    path: {
         | 
| 2046 | 
            +
                      ...this.path,
         | 
| 2047 | 
            +
                      attachmentSource: "edit-composer",
         | 
| 2048 | 
            +
                      attachmentSelector: { type: "index", index: idx },
         | 
| 2049 | 
            +
                      ref: this.path.ref + `${this.path.ref}.attachments[${idx}]`
         | 
| 2050 | 
            +
                    },
         | 
| 2010 2051 | 
             
                    getState: () => {
         | 
| 2011 2052 | 
             
                      const attachments = this.getState().attachments;
         | 
| 2012 2053 | 
             
                      const attachment = attachments[idx];
         | 
| @@ -2030,6 +2071,9 @@ var NestedSubscriptionSubject = class extends BaseSubject { | |
| 2030 2071 | 
             
                super();
         | 
| 2031 2072 | 
             
                this.binding = binding;
         | 
| 2032 2073 | 
             
              }
         | 
| 2074 | 
            +
              get path() {
         | 
| 2075 | 
            +
                return this.binding.path;
         | 
| 2076 | 
            +
              }
         | 
| 2033 2077 | 
             
              getState() {
         | 
| 2034 2078 | 
             
                return this.binding.getState();
         | 
| 2035 2079 | 
             
              }
         | 
| @@ -2041,19 +2085,19 @@ var NestedSubscriptionSubject = class extends BaseSubject { | |
| 2041 2085 | 
             
                  this.notifySubscribers();
         | 
| 2042 2086 | 
             
                };
         | 
| 2043 2087 | 
             
                let lastState = this.binding.getState();
         | 
| 2044 | 
            -
                let innerUnsubscribe = _optionalChain([lastState, 'optionalAccess',  | 
| 2088 | 
            +
                let innerUnsubscribe = _optionalChain([lastState, 'optionalAccess', _76 => _76.subscribe, 'call', _77 => _77(callback)]);
         | 
| 2045 2089 | 
             
                const onRuntimeUpdate = () => {
         | 
| 2046 2090 | 
             
                  const newState = this.binding.getState();
         | 
| 2047 2091 | 
             
                  if (newState === lastState) return;
         | 
| 2048 2092 | 
             
                  lastState = newState;
         | 
| 2049 | 
            -
                  _optionalChain([innerUnsubscribe, 'optionalCall',  | 
| 2050 | 
            -
                  innerUnsubscribe = _optionalChain([this, 'access',  | 
| 2093 | 
            +
                  _optionalChain([innerUnsubscribe, 'optionalCall', _78 => _78()]);
         | 
| 2094 | 
            +
                  innerUnsubscribe = _optionalChain([this, 'access', _79 => _79.binding, 'access', _80 => _80.getState, 'call', _81 => _81(), 'optionalAccess', _82 => _82.subscribe, 'call', _83 => _83(callback)]);
         | 
| 2051 2095 | 
             
                  callback();
         | 
| 2052 2096 | 
             
                };
         | 
| 2053 2097 | 
             
                const outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);
         | 
| 2054 2098 | 
             
                return () => {
         | 
| 2055 | 
            -
                  _optionalChain([outerUnsubscribe, 'optionalCall',  | 
| 2056 | 
            -
                  _optionalChain([innerUnsubscribe, 'optionalCall',  | 
| 2099 | 
            +
                  _optionalChain([outerUnsubscribe, 'optionalCall', _84 => _84()]);
         | 
| 2100 | 
            +
                  _optionalChain([innerUnsubscribe, 'optionalCall', _85 => _85()]);
         | 
| 2057 2101 | 
             
                };
         | 
| 2058 2102 | 
             
              }
         | 
| 2059 2103 | 
             
            };
         | 
| @@ -2092,18 +2136,27 @@ var getContentPartState = (message, partIndex) => { | |
| 2092 2136 | 
             
              const status = toContentPartStatus(message, partIndex, part);
         | 
| 2093 2137 | 
             
              return Object.freeze({ ...part, part, status });
         | 
| 2094 2138 | 
             
            };
         | 
| 2095 | 
            -
            var MessageRuntimeImpl =  | 
| 2096 | 
            -
              constructor(_core, _threadBinding) { | 
| 2139 | 
            +
            var MessageRuntimeImpl = class {
         | 
| 2140 | 
            +
              constructor(_core, _threadBinding) {
         | 
| 2097 2141 | 
             
                this._core = _core;
         | 
| 2098 2142 | 
             
                this._threadBinding = _threadBinding;
         | 
| 2143 | 
            +
                this.composer = new EditComposerRuntimeImpl(
         | 
| 2144 | 
            +
                  new NestedSubscriptionSubject({
         | 
| 2145 | 
            +
                    path: {
         | 
| 2146 | 
            +
                      ...this.path,
         | 
| 2147 | 
            +
                      ref: this.path.ref + `${this.path.ref}.composer`,
         | 
| 2148 | 
            +
                      composerSource: "edit"
         | 
| 2149 | 
            +
                    },
         | 
| 2150 | 
            +
                    getState: () => this._threadBinding.getState().getEditComposer(this._core.getState().id),
         | 
| 2151 | 
            +
                    subscribe: (callback) => this._threadBinding.subscribe(callback)
         | 
| 2152 | 
            +
                  }),
         | 
| 2153 | 
            +
                  () => this._threadBinding.getState().beginEdit(this._core.getState().id)
         | 
| 2154 | 
            +
                );
         | 
| 2099 2155 | 
             
              }
         | 
| 2100 | 
            -
               | 
| 2101 | 
            -
                 | 
| 2102 | 
            -
             | 
| 2103 | 
            -
             | 
| 2104 | 
            -
                }),
         | 
| 2105 | 
            -
                () => this._threadBinding.getState().beginEdit(this._core.getState().id)
         | 
| 2106 | 
            -
              )}
         | 
| 2156 | 
            +
              get path() {
         | 
| 2157 | 
            +
                return this._core.path;
         | 
| 2158 | 
            +
              }
         | 
| 2159 | 
            +
              
         | 
| 2107 2160 | 
             
              getState() {
         | 
| 2108 2161 | 
             
                return this._core.getState();
         | 
| 2109 2162 | 
             
              }
         | 
| @@ -2123,7 +2176,7 @@ var MessageRuntimeImpl = (_class5 = class { | |
| 2123 2176 | 
             
                const state = this._core.getState();
         | 
| 2124 2177 | 
             
                if (!state) throw new Error("Message is not available");
         | 
| 2125 2178 | 
             
                const thread = this._threadBinding.getState();
         | 
| 2126 | 
            -
                if (_optionalChain([thread, 'access',  | 
| 2179 | 
            +
                if (_optionalChain([thread, 'access', _86 => _86.speech, 'optionalAccess', _87 => _87.messageId]) === state.id) {
         | 
| 2127 2180 | 
             
                  this._threadBinding.getState().stopSpeaking();
         | 
| 2128 2181 | 
             
                } else {
         | 
| 2129 2182 | 
             
                  throw new Error("Message is not being spoken");
         | 
| @@ -2159,13 +2212,21 @@ var MessageRuntimeImpl = (_class5 = class { | |
| 2159 2212 | 
             
                if (!targetBranch) throw new Error("Branch not found");
         | 
| 2160 2213 | 
             
                this._threadBinding.getState().switchToBranch(targetBranch);
         | 
| 2161 2214 | 
             
              }
         | 
| 2215 | 
            +
              unstable_getCopyText() {
         | 
| 2216 | 
            +
                return getThreadMessageText(this.getState());
         | 
| 2217 | 
            +
              }
         | 
| 2162 2218 | 
             
              subscribe(callback) {
         | 
| 2163 2219 | 
             
                return this._core.subscribe(callback);
         | 
| 2164 2220 | 
             
              }
         | 
| 2165 2221 | 
             
              getContentPartByIndex(idx) {
         | 
| 2166 | 
            -
                if (idx < 0) throw new Error(" | 
| 2222 | 
            +
                if (idx < 0) throw new Error("Content part index must be >= 0");
         | 
| 2167 2223 | 
             
                return new ContentPartRuntimeImpl(
         | 
| 2168 2224 | 
             
                  new ShallowMemoizeSubject({
         | 
| 2225 | 
            +
                    path: {
         | 
| 2226 | 
            +
                      ...this.path,
         | 
| 2227 | 
            +
                      ref: this.path.ref + `${this.path.ref}.content[${idx}]`,
         | 
| 2228 | 
            +
                      contentPartSelector: { type: "index", index: idx }
         | 
| 2229 | 
            +
                    },
         | 
| 2169 2230 | 
             
                    getState: () => {
         | 
| 2170 2231 | 
             
                      return getContentPartState(this.getState(), idx);
         | 
| 2171 2232 | 
             
                    },
         | 
| @@ -2175,12 +2236,40 @@ var MessageRuntimeImpl = (_class5 = class { | |
| 2175 2236 | 
             
                  this._threadBinding
         | 
| 2176 2237 | 
             
                );
         | 
| 2177 2238 | 
             
              }
         | 
| 2239 | 
            +
              getContentPartByToolCallId(toolCallId) {
         | 
| 2240 | 
            +
                return new ContentPartRuntimeImpl(
         | 
| 2241 | 
            +
                  new ShallowMemoizeSubject({
         | 
| 2242 | 
            +
                    path: {
         | 
| 2243 | 
            +
                      ...this.path,
         | 
| 2244 | 
            +
                      ref: this.path.ref + `${this.path.ref}.content[toolCallId=${JSON.stringify(toolCallId)}]`,
         | 
| 2245 | 
            +
                      contentPartSelector: { type: "toolCallId", toolCallId }
         | 
| 2246 | 
            +
                    },
         | 
| 2247 | 
            +
                    getState: () => {
         | 
| 2248 | 
            +
                      const state = this._core.getState();
         | 
| 2249 | 
            +
                      const idx = state.content.findIndex(
         | 
| 2250 | 
            +
                        (part) => part.type === "tool-call" && part.toolCallId === toolCallId
         | 
| 2251 | 
            +
                      );
         | 
| 2252 | 
            +
                      if (idx === -1) return SKIP_UPDATE;
         | 
| 2253 | 
            +
                      return getContentPartState(state, idx);
         | 
| 2254 | 
            +
                    },
         | 
| 2255 | 
            +
                    subscribe: (callback) => this._core.subscribe(callback)
         | 
| 2256 | 
            +
                  }),
         | 
| 2257 | 
            +
                  this._core,
         | 
| 2258 | 
            +
                  this._threadBinding
         | 
| 2259 | 
            +
                );
         | 
| 2260 | 
            +
              }
         | 
| 2178 2261 | 
             
              getAttachmentByIndex(idx) {
         | 
| 2179 2262 | 
             
                return new MessageAttachmentRuntimeImpl(
         | 
| 2180 2263 | 
             
                  new ShallowMemoizeSubject({
         | 
| 2264 | 
            +
                    path: {
         | 
| 2265 | 
            +
                      ...this.path,
         | 
| 2266 | 
            +
                      ref: this.path.ref + `${this.path.ref}.attachments[${idx}]`,
         | 
| 2267 | 
            +
                      attachmentSource: "message",
         | 
| 2268 | 
            +
                      attachmentSelector: { type: "index", index: idx }
         | 
| 2269 | 
            +
                    },
         | 
| 2181 2270 | 
             
                    getState: () => {
         | 
| 2182 2271 | 
             
                      const attachments = this.getState().attachments;
         | 
| 2183 | 
            -
                      const attachment = _optionalChain([attachments, 'optionalAccess',  | 
| 2272 | 
            +
                      const attachment = _optionalChain([attachments, 'optionalAccess', _88 => _88[idx]]);
         | 
| 2184 2273 | 
             
                      if (!attachment) return SKIP_UPDATE;
         | 
| 2185 2274 | 
             
                      return {
         | 
| 2186 2275 | 
             
                        ...attachment,
         | 
| @@ -2192,7 +2281,7 @@ var MessageRuntimeImpl = (_class5 = class { | |
| 2192 2281 | 
             
                  })
         | 
| 2193 2282 | 
             
                );
         | 
| 2194 2283 | 
             
              }
         | 
| 2195 | 
            -
            } | 
| 2284 | 
            +
            };
         | 
| 2196 2285 |  | 
| 2197 2286 | 
             
            // src/primitives/message/MessageContent.tsx
         | 
| 2198 2287 |  | 
| @@ -2263,7 +2352,7 @@ var MessageContentPartImpl = ({ | |
| 2263 2352 | 
             
            };
         | 
| 2264 2353 | 
             
            var MessageContentPart = _react.memo.call(void 0, 
         | 
| 2265 2354 | 
             
              MessageContentPartImpl,
         | 
| 2266 | 
            -
              (prev, next) => prev.partIndex === next.partIndex && _optionalChain([prev, 'access',  | 
| 2355 | 
            +
              (prev, next) => prev.partIndex === next.partIndex && _optionalChain([prev, 'access', _89 => _89.components, 'optionalAccess', _90 => _90.Text]) === _optionalChain([next, 'access', _91 => _91.components, 'optionalAccess', _92 => _92.Text]) && _optionalChain([prev, 'access', _93 => _93.components, 'optionalAccess', _94 => _94.Image]) === _optionalChain([next, 'access', _95 => _95.components, 'optionalAccess', _96 => _96.Image]) && _optionalChain([prev, 'access', _97 => _97.components, 'optionalAccess', _98 => _98.UI]) === _optionalChain([next, 'access', _99 => _99.components, 'optionalAccess', _100 => _100.UI]) && _optionalChain([prev, 'access', _101 => _101.components, 'optionalAccess', _102 => _102.tools]) === _optionalChain([next, 'access', _103 => _103.components, 'optionalAccess', _104 => _104.tools])
         | 
| 2267 2356 | 
             
            );
         | 
| 2268 2357 | 
             
            var MessagePrimitiveContent = ({
         | 
| 2269 2358 | 
             
              components
         | 
| @@ -2329,11 +2418,11 @@ var getComponent = (components, attachment) => { | |
| 2329 2418 | 
             
              const type = attachment.type;
         | 
| 2330 2419 | 
             
              switch (type) {
         | 
| 2331 2420 | 
             
                case "image":
         | 
| 2332 | 
            -
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 2421 | 
            +
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _105 => _105.Image]), () => ( _optionalChain([components, 'optionalAccess', _106 => _106.Attachment])));
         | 
| 2333 2422 | 
             
                case "document":
         | 
| 2334 | 
            -
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 2423 | 
            +
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _107 => _107.Document]), () => ( _optionalChain([components, 'optionalAccess', _108 => _108.Attachment])));
         | 
| 2335 2424 | 
             
                case "file":
         | 
| 2336 | 
            -
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 2425 | 
            +
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _109 => _109.File]), () => ( _optionalChain([components, 'optionalAccess', _110 => _110.Attachment])));
         | 
| 2337 2426 | 
             
                default:
         | 
| 2338 2427 | 
             
                  const _exhaustiveCheck = type;
         | 
| 2339 2428 | 
             
                  throw new Error(`Unknown attachment type: ${_exhaustiveCheck}`);
         | 
| @@ -2356,7 +2445,7 @@ var MessageAttachmentImpl = ({ components, attachmentIndex }) => { | |
| 2356 2445 | 
             
            };
         | 
| 2357 2446 | 
             
            var MessageAttachment = _react.memo.call(void 0, 
         | 
| 2358 2447 | 
             
              MessageAttachmentImpl,
         | 
| 2359 | 
            -
              (prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access',  | 
| 2448 | 
            +
              (prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access', _111 => _111.components, 'optionalAccess', _112 => _112.Image]) === _optionalChain([next, 'access', _113 => _113.components, 'optionalAccess', _114 => _114.Image]) && _optionalChain([prev, 'access', _115 => _115.components, 'optionalAccess', _116 => _116.Document]) === _optionalChain([next, 'access', _117 => _117.components, 'optionalAccess', _118 => _118.Document]) && _optionalChain([prev, 'access', _119 => _119.components, 'optionalAccess', _120 => _120.File]) === _optionalChain([next, 'access', _121 => _121.components, 'optionalAccess', _122 => _122.File]) && _optionalChain([prev, 'access', _123 => _123.components, 'optionalAccess', _124 => _124.Attachment]) === _optionalChain([next, 'access', _125 => _125.components, 'optionalAccess', _126 => _126.Attachment])
         | 
| 2360 2449 | 
             
            );
         | 
| 2361 2450 | 
             
            var MessagePrimitiveAttachments = ({ components }) => {
         | 
| 2362 2451 | 
             
              const attachmentsCount = useMessage(({ message }) => {
         | 
| @@ -2482,7 +2571,7 @@ var ComposerPrimitiveInput = _react.forwardRef.call(void 0, | |
| 2482 2571 | 
             
                    const { isRunning } = threadRuntime.getState();
         | 
| 2483 2572 | 
             
                    if (!isRunning) {
         | 
| 2484 2573 | 
             
                      e.preventDefault();
         | 
| 2485 | 
            -
                      _optionalChain([textareaRef, 'access',  | 
| 2574 | 
            +
                      _optionalChain([textareaRef, 'access', _127 => _127.current, 'optionalAccess', _128 => _128.closest, 'call', _129 => _129("form"), 'optionalAccess', _130 => _130.requestSubmit, 'call', _131 => _131()]);
         | 
| 2486 2575 | 
             
                    }
         | 
| 2487 2576 | 
             
                  }
         | 
| 2488 2577 | 
             
                };
         | 
| @@ -2556,11 +2645,11 @@ var getComponent2 = (components, attachment) => { | |
| 2556 2645 | 
             
              const type = attachment.type;
         | 
| 2557 2646 | 
             
              switch (type) {
         | 
| 2558 2647 | 
             
                case "image":
         | 
| 2559 | 
            -
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 2648 | 
            +
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _132 => _132.Image]), () => ( _optionalChain([components, 'optionalAccess', _133 => _133.Attachment])));
         | 
| 2560 2649 | 
             
                case "document":
         | 
| 2561 | 
            -
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 2650 | 
            +
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _134 => _134.Document]), () => ( _optionalChain([components, 'optionalAccess', _135 => _135.Attachment])));
         | 
| 2562 2651 | 
             
                case "file":
         | 
| 2563 | 
            -
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 2652 | 
            +
                  return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _136 => _136.File]), () => ( _optionalChain([components, 'optionalAccess', _137 => _137.Attachment])));
         | 
| 2564 2653 | 
             
                default:
         | 
| 2565 2654 | 
             
                  const _exhaustiveCheck = type;
         | 
| 2566 2655 | 
             
                  throw new Error(`Unknown attachment type: ${_exhaustiveCheck}`);
         | 
| @@ -2583,7 +2672,7 @@ var ComposerAttachmentImpl = ({ components, attachmentIndex }) => { | |
| 2583 2672 | 
             
            };
         | 
| 2584 2673 | 
             
            var ComposerAttachment = _react.memo.call(void 0, 
         | 
| 2585 2674 | 
             
              ComposerAttachmentImpl,
         | 
| 2586 | 
            -
              (prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access',  | 
| 2675 | 
            +
              (prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access', _138 => _138.components, 'optionalAccess', _139 => _139.Image]) === _optionalChain([next, 'access', _140 => _140.components, 'optionalAccess', _141 => _141.Image]) && _optionalChain([prev, 'access', _142 => _142.components, 'optionalAccess', _143 => _143.Document]) === _optionalChain([next, 'access', _144 => _144.components, 'optionalAccess', _145 => _145.Document]) && _optionalChain([prev, 'access', _146 => _146.components, 'optionalAccess', _147 => _147.File]) === _optionalChain([next, 'access', _148 => _148.components, 'optionalAccess', _149 => _149.File]) && _optionalChain([prev, 'access', _150 => _150.components, 'optionalAccess', _151 => _151.Attachment]) === _optionalChain([next, 'access', _152 => _152.components, 'optionalAccess', _153 => _153.Attachment])
         | 
| 2587 2676 | 
             
            );
         | 
| 2588 2677 | 
             
            var ComposerPrimitiveAttachments = ({ components }) => {
         | 
| 2589 2678 | 
             
              const attachmentsCount = useComposer((s) => s.attachments.length);
         | 
| @@ -2927,7 +3016,7 @@ var subscribeToMainThread = (runtime, callback) => { | |
| 2927 3016 | 
             
              let first = true;
         | 
| 2928 3017 | 
             
              let cleanup;
         | 
| 2929 3018 | 
             
              const inner = () => {
         | 
| 2930 | 
            -
                _optionalChain([cleanup, 'optionalCall',  | 
| 3019 | 
            +
                _optionalChain([cleanup, 'optionalCall', _154 => _154()]);
         | 
| 2931 3020 | 
             
                cleanup = runtime.thread.subscribe(callback);
         | 
| 2932 3021 | 
             
                if (!first) {
         | 
| 2933 3022 | 
             
                  callback();
         | 
| @@ -2938,7 +3027,7 @@ var subscribeToMainThread = (runtime, callback) => { | |
| 2938 3027 | 
             
              inner();
         | 
| 2939 3028 | 
             
              return () => {
         | 
| 2940 3029 | 
             
                unsubscribe();
         | 
| 2941 | 
            -
                _optionalChain([cleanup, 'optionalCall',  | 
| 3030 | 
            +
                _optionalChain([cleanup, 'optionalCall', _155 => _155()]);
         | 
| 2942 3031 | 
             
              };
         | 
| 2943 3032 | 
             
            };
         | 
| 2944 3033 |  | 
| @@ -2946,8 +3035,8 @@ var subscribeToMainThread = (runtime, callback) => { | |
| 2946 3035 |  | 
| 2947 3036 |  | 
| 2948 3037 | 
             
            // src/runtimes/core/BaseAssistantRuntimeCore.tsx
         | 
| 2949 | 
            -
            var BaseAssistantRuntimeCore = ( | 
| 2950 | 
            -
              constructor(_thread) {; | 
| 3038 | 
            +
            var BaseAssistantRuntimeCore = (_class5 = class {
         | 
| 3039 | 
            +
              constructor(_thread) {;_class5.prototype.__init9.call(this);_class5.prototype.__init10.call(this);
         | 
| 2951 3040 | 
             
                this._thread = _thread;
         | 
| 2952 3041 | 
             
                this._thread = _thread;
         | 
| 2953 3042 | 
             
              }
         | 
| @@ -2958,15 +3047,15 @@ var BaseAssistantRuntimeCore = (_class6 = class { | |
| 2958 3047 | 
             
                this._thread = thread;
         | 
| 2959 3048 | 
             
                this.subscriptionHandler();
         | 
| 2960 3049 | 
             
              }
         | 
| 2961 | 
            -
               | 
| 3050 | 
            +
              __init9() {this._subscriptions = /* @__PURE__ */ new Set()}
         | 
| 2962 3051 | 
             
              subscribe(callback) {
         | 
| 2963 3052 | 
             
                this._subscriptions.add(callback);
         | 
| 2964 3053 | 
             
                return () => this._subscriptions.delete(callback);
         | 
| 2965 3054 | 
             
              }
         | 
| 2966 | 
            -
               | 
| 3055 | 
            +
              __init10() {this.subscriptionHandler = () => {
         | 
| 2967 3056 | 
             
                for (const callback of this._subscriptions) callback();
         | 
| 2968 3057 | 
             
              }}
         | 
| 2969 | 
            -
            },  | 
| 3058 | 
            +
            }, _class5);
         | 
| 2970 3059 |  | 
| 2971 3060 | 
             
            // src/internal.ts
         | 
| 2972 3061 | 
             
            var internal_exports = {};
         | 
| @@ -2986,12 +3075,12 @@ _chunkPZ5AY32Cjs.__export.call(void 0, internal_exports, { | |
| 2986 3075 |  | 
| 2987 3076 | 
             
            // src/runtimes/composer/BaseComposerRuntimeCore.tsx
         | 
| 2988 3077 | 
             
            var isAttachmentComplete = (a) => a.status.type === "complete";
         | 
| 2989 | 
            -
            var BaseComposerRuntimeCore = ( | 
| 2990 | 
            -
               | 
| 3078 | 
            +
            var BaseComposerRuntimeCore = (_class6 = class {constructor() { _class6.prototype.__init11.call(this);_class6.prototype.__init12.call(this);_class6.prototype.__init13.call(this);_class6.prototype.__init14.call(this); }
         | 
| 3079 | 
            +
              __init11() {this.isEditing = true}
         | 
| 2991 3080 | 
             
              getAttachmentAccept() {
         | 
| 2992 | 
            -
                return _nullishCoalesce(_optionalChain([this, 'access',  | 
| 3081 | 
            +
                return _nullishCoalesce(_optionalChain([this, 'access', _156 => _156.getAttachmentAdapter, 'call', _157 => _157(), 'optionalAccess', _158 => _158.accept]), () => ( "*"));
         | 
| 2993 3082 | 
             
              }
         | 
| 2994 | 
            -
               | 
| 3083 | 
            +
              __init12() {this._attachments = []}
         | 
| 2995 3084 | 
             
              set attachments(value) {
         | 
| 2996 3085 | 
             
                this._attachments = value;
         | 
| 2997 3086 | 
             
                this.notifySubscribers();
         | 
| @@ -3002,7 +3091,7 @@ var BaseComposerRuntimeCore = (_class7 = class {constructor() { _class7.prototyp | |
| 3002 3091 | 
             
              get isEmpty() {
         | 
| 3003 3092 | 
             
                return !this.text.trim() && !this.attachments.length;
         | 
| 3004 3093 | 
             
              }
         | 
| 3005 | 
            -
               | 
| 3094 | 
            +
              __init13() {this._text = ""}
         | 
| 3006 3095 | 
             
              get text() {
         | 
| 3007 3096 | 
             
                return this._text;
         | 
| 3008 3097 | 
             
              }
         | 
| @@ -3021,7 +3110,7 @@ var BaseComposerRuntimeCore = (_class7 = class {constructor() { _class7.prototyp | |
| 3021 3110 | 
             
                  this.attachments.map(async (a) => {
         | 
| 3022 3111 | 
             
                    if (isAttachmentComplete(a)) return a;
         | 
| 3023 3112 | 
             
                    const result = await adapter.send(a);
         | 
| 3024 | 
            -
                    if (_optionalChain([result, 'access',  | 
| 3113 | 
            +
                    if (_optionalChain([result, 'access', _159 => _159.status, 'optionalAccess', _160 => _160.type]) !== "complete") {
         | 
| 3025 3114 | 
             
                      result.status = { type: "complete" };
         | 
| 3026 3115 | 
             
                    }
         | 
| 3027 3116 | 
             
                    return result;
         | 
| @@ -3055,7 +3144,7 @@ var BaseComposerRuntimeCore = (_class7 = class {constructor() { _class7.prototyp | |
| 3055 3144 | 
             
                this._attachments = this._attachments.toSpliced(index, 1);
         | 
| 3056 3145 | 
             
                this.notifySubscribers();
         | 
| 3057 3146 | 
             
              }
         | 
| 3058 | 
            -
               | 
| 3147 | 
            +
              __init14() {this._subscriptions = /* @__PURE__ */ new Set()}
         | 
| 3059 3148 | 
             
              notifySubscribers() {
         | 
| 3060 3149 | 
             
                for (const callback of this._subscriptions) callback();
         | 
| 3061 3150 | 
             
              }
         | 
| @@ -3063,16 +3152,16 @@ var BaseComposerRuntimeCore = (_class7 = class {constructor() { _class7.prototyp | |
| 3063 3152 | 
             
                this._subscriptions.add(callback);
         | 
| 3064 3153 | 
             
                return () => this._subscriptions.delete(callback);
         | 
| 3065 3154 | 
             
              }
         | 
| 3066 | 
            -
            },  | 
| 3155 | 
            +
            }, _class6);
         | 
| 3067 3156 |  | 
| 3068 3157 | 
             
            // src/runtimes/composer/DefaultThreadComposerRuntimeCore.tsx
         | 
| 3069 | 
            -
            var DefaultThreadComposerRuntimeCore = ( | 
| 3158 | 
            +
            var DefaultThreadComposerRuntimeCore = (_class7 = class extends BaseComposerRuntimeCore {
         | 
| 3070 3159 | 
             
              constructor(runtime) {
         | 
| 3071 | 
            -
                super(); | 
| 3160 | 
            +
                super();_class7.prototype.__init15.call(this);;
         | 
| 3072 3161 | 
             
                this.runtime = runtime;
         | 
| 3073 3162 | 
             
                this.connect();
         | 
| 3074 3163 | 
             
              }
         | 
| 3075 | 
            -
               | 
| 3164 | 
            +
              __init15() {this._canCancel = false}
         | 
| 3076 3165 | 
             
              get canCancel() {
         | 
| 3077 3166 | 
             
                return this._canCancel;
         | 
| 3078 3167 | 
             
              }
         | 
| @@ -3080,7 +3169,7 @@ var DefaultThreadComposerRuntimeCore = (_class8 = class extends BaseComposerRunt | |
| 3080 3169 | 
             
                return super.attachments;
         | 
| 3081 3170 | 
             
              }
         | 
| 3082 3171 | 
             
              getAttachmentAdapter() {
         | 
| 3083 | 
            -
                return _optionalChain([this, 'access',  | 
| 3172 | 
            +
                return _optionalChain([this, 'access', _161 => _161.runtime, 'access', _162 => _162.adapters, 'optionalAccess', _163 => _163.attachments]);
         | 
| 3084 3173 | 
             
              }
         | 
| 3085 3174 | 
             
              connect() {
         | 
| 3086 3175 | 
             
                return this.runtime.subscribe(() => {
         | 
| @@ -3093,27 +3182,41 @@ var DefaultThreadComposerRuntimeCore = (_class8 = class extends BaseComposerRunt | |
| 3093 3182 | 
             
              async handleSend(message) {
         | 
| 3094 3183 | 
             
                this.runtime.append({
         | 
| 3095 3184 | 
             
                  ...message,
         | 
| 3096 | 
            -
                  parentId: _nullishCoalesce(_optionalChain([this, 'access',  | 
| 3185 | 
            +
                  parentId: _nullishCoalesce(_optionalChain([this, 'access', _164 => _164.runtime, 'access', _165 => _165.messages, 'access', _166 => _166.at, 'call', _167 => _167(-1), 'optionalAccess', _168 => _168.id]), () => ( null))
         | 
| 3097 3186 | 
             
                });
         | 
| 3098 3187 | 
             
              }
         | 
| 3099 3188 | 
             
              async cancel() {
         | 
| 3100 3189 | 
             
                this.runtime.cancelRun();
         | 
| 3101 3190 | 
             
              }
         | 
| 3102 | 
            -
            },  | 
| 3191 | 
            +
            }, _class7);
         | 
| 3103 3192 |  | 
| 3104 3193 | 
             
            // src/utils/ProxyConfigProvider.ts
         | 
| 3105 | 
            -
            var ProxyConfigProvider = ( | 
| 3106 | 
            -
               | 
| 3194 | 
            +
            var ProxyConfigProvider = (_class8 = class {constructor() { _class8.prototype.__init16.call(this);_class8.prototype.__init17.call(this); }
         | 
| 3195 | 
            +
              __init16() {this._providers = /* @__PURE__ */ new Set()}
         | 
| 3107 3196 | 
             
              getModelConfig() {
         | 
| 3108 | 
            -
                return  | 
| 3197 | 
            +
                return _chunkC6UZOY5Ajs.mergeModelConfigs.call(void 0, this._providers);
         | 
| 3109 3198 | 
             
              }
         | 
| 3110 3199 | 
             
              registerModelConfigProvider(provider) {
         | 
| 3111 3200 | 
             
                this._providers.add(provider);
         | 
| 3201 | 
            +
                const unsubscribe = _optionalChain([provider, 'access', _169 => _169.subscribe, 'optionalCall', _170 => _170(() => {
         | 
| 3202 | 
            +
                  this.notifySubscribers();
         | 
| 3203 | 
            +
                })]);
         | 
| 3204 | 
            +
                this.notifySubscribers();
         | 
| 3112 3205 | 
             
                return () => {
         | 
| 3113 3206 | 
             
                  this._providers.delete(provider);
         | 
| 3207 | 
            +
                  _optionalChain([unsubscribe, 'optionalCall', _171 => _171()]);
         | 
| 3208 | 
            +
                  this.notifySubscribers();
         | 
| 3114 3209 | 
             
                };
         | 
| 3115 3210 | 
             
              }
         | 
| 3116 | 
            -
             | 
| 3211 | 
            +
              __init17() {this._subscribers = /* @__PURE__ */ new Set()}
         | 
| 3212 | 
            +
              notifySubscribers() {
         | 
| 3213 | 
            +
                for (const callback of this._subscribers) callback();
         | 
| 3214 | 
            +
              }
         | 
| 3215 | 
            +
              subscribe(callback) {
         | 
| 3216 | 
            +
                this._subscribers.add(callback);
         | 
| 3217 | 
            +
                return () => this._subscribers.delete(callback);
         | 
| 3218 | 
            +
              }
         | 
| 3219 | 
            +
            }, _class8);
         | 
| 3117 3220 |  | 
| 3118 3221 | 
             
            // src/utils/idUtils.tsx
         | 
| 3119 3222 | 
             
            var _nonsecure = require('nanoid/non-secure');
         | 
| @@ -3180,7 +3283,7 @@ var findHead = (message) => { | |
| 3180 3283 | 
             
              if ("current" in message) return message;
         | 
| 3181 3284 | 
             
              return null;
         | 
| 3182 3285 | 
             
            };
         | 
| 3183 | 
            -
            var MessageRepository = ( | 
| 3286 | 
            +
            var MessageRepository = (_class9 = class {constructor() { _class9.prototype.__init18.call(this);_class9.prototype.__init19.call(this);_class9.prototype.__init20.call(this); }
         | 
| 3184 3287 | 
             
              __init18() {this.messages = /* @__PURE__ */ new Map()}
         | 
| 3185 3288 | 
             
              // message_id -> item
         | 
| 3186 3289 | 
             
              __init19() {this.head = null}
         | 
| @@ -3226,7 +3329,7 @@ var MessageRepository = (_class10 = class {constructor() { _class10.prototype.__ | |
| 3226 3329 | 
             
                }
         | 
| 3227 3330 | 
             
              }
         | 
| 3228 3331 | 
             
              getMessages() {
         | 
| 3229 | 
            -
                const messages2 = new Array(_nullishCoalesce(_optionalChain([this, 'access',  | 
| 3332 | 
            +
                const messages2 = new Array(_nullishCoalesce(_optionalChain([this, 'access', _172 => _172.head, 'optionalAccess', _173 => _173.level]), () => ( 0)));
         | 
| 3230 3333 | 
             
                for (let current = this.head; current; current = current.prev) {
         | 
| 3231 3334 | 
             
                  messages2[current.level] = current.current;
         | 
| 3232 3335 | 
             
                }
         | 
| @@ -3264,7 +3367,7 @@ var MessageRepository = (_class10 = class {constructor() { _class10.prototype.__ | |
| 3264 3367 | 
             
                    "MessageRepository(updateMessage): Message not found. This is likely an internal bug in assistant-ui."
         | 
| 3265 3368 | 
             
                  );
         | 
| 3266 3369 | 
             
                return {
         | 
| 3267 | 
            -
                  parentId: _nullishCoalesce(_optionalChain([message, 'access',  | 
| 3370 | 
            +
                  parentId: _nullishCoalesce(_optionalChain([message, 'access', _174 => _174.prev, 'optionalAccess', _175 => _175.current, 'access', _176 => _176.id]), () => ( null)),
         | 
| 3268 3371 | 
             
                  message: message.current
         | 
| 3269 3372 | 
             
                };
         | 
| 3270 3373 | 
             
              }
         | 
| @@ -3348,11 +3451,11 @@ var MessageRepository = (_class10 = class {constructor() { _class10.prototype.__ | |
| 3348 3451 | 
             
                for (const [, message] of this.messages) {
         | 
| 3349 3452 | 
             
                  exportItems.push({
         | 
| 3350 3453 | 
             
                    message: message.current,
         | 
| 3351 | 
            -
                    parentId: _nullishCoalesce(_optionalChain([message, 'access',  | 
| 3454 | 
            +
                    parentId: _nullishCoalesce(_optionalChain([message, 'access', _177 => _177.prev, 'optionalAccess', _178 => _178.current, 'access', _179 => _179.id]), () => ( null))
         | 
| 3352 3455 | 
             
                  });
         | 
| 3353 3456 | 
             
                }
         | 
| 3354 3457 | 
             
                return {
         | 
| 3355 | 
            -
                  headId: _nullishCoalesce(_optionalChain([this, 'access',  | 
| 3458 | 
            +
                  headId: _nullishCoalesce(_optionalChain([this, 'access', _180 => _180.head, 'optionalAccess', _181 => _181.current, 'access', _182 => _182.id]), () => ( null)),
         | 
| 3356 3459 | 
             
                  messages: exportItems
         | 
| 3357 3460 | 
             
                };
         | 
| 3358 3461 | 
             
              }
         | 
| @@ -3360,9 +3463,9 @@ var MessageRepository = (_class10 = class {constructor() { _class10.prototype.__ | |
| 3360 3463 | 
             
                for (const { message, parentId } of messages2) {
         | 
| 3361 3464 | 
             
                  this.addOrUpdateMessage(parentId, message);
         | 
| 3362 3465 | 
             
                }
         | 
| 3363 | 
            -
                this.resetHead(_nullishCoalesce(_nullishCoalesce(headId, () => ( _optionalChain([messages2, 'access',  | 
| 3466 | 
            +
                this.resetHead(_nullishCoalesce(_nullishCoalesce(headId, () => ( _optionalChain([messages2, 'access', _183 => _183.at, 'call', _184 => _184(-1), 'optionalAccess', _185 => _185.message, 'access', _186 => _186.id]))), () => ( null)));
         | 
| 3364 3467 | 
             
              }
         | 
| 3365 | 
            -
            },  | 
| 3468 | 
            +
            }, _class9);
         | 
| 3366 3469 |  | 
| 3367 3470 | 
             
            // src/ui/base/tooltip-icon-button.tsx
         | 
| 3368 3471 |  | 
| @@ -3464,7 +3567,7 @@ TooltipIconButton.displayName = "TooltipIconButton"; | |
| 3464 3567 | 
             
            var toAppendMessage = (messages2, message) => {
         | 
| 3465 3568 | 
             
              if (typeof message === "string") {
         | 
| 3466 3569 | 
             
                return {
         | 
| 3467 | 
            -
                  parentId: _nullishCoalesce(_optionalChain([messages2, 'access',  | 
| 3570 | 
            +
                  parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _187 => _187.at, 'call', _188 => _188(-1), 'optionalAccess', _189 => _189.id]), () => ( null)),
         | 
| 3468 3571 | 
             
                  role: "user",
         | 
| 3469 3572 | 
             
                  content: [{ type: "text", text: message }],
         | 
| 3470 3573 | 
             
                  attachments: []
         | 
| @@ -3474,7 +3577,7 @@ var toAppendMessage = (messages2, message) => { | |
| 3474 3577 | 
             
                return message;
         | 
| 3475 3578 | 
             
              }
         | 
| 3476 3579 | 
             
              return {
         | 
| 3477 | 
            -
                parentId: _nullishCoalesce(_nullishCoalesce(message.parentId, () => ( _optionalChain([messages2, 'access',  | 
| 3580 | 
            +
                parentId: _nullishCoalesce(_nullishCoalesce(message.parentId, () => ( _optionalChain([messages2, 'access', _190 => _190.at, 'call', _191 => _191(-1), 'optionalAccess', _192 => _192.id]))), () => ( null)),
         | 
| 3478 3581 | 
             
                role: _nullishCoalesce(message.role, () => ( "user")),
         | 
| 3479 3582 | 
             
                content: message.content,
         | 
| 3480 3583 | 
             
                attachments: _nullishCoalesce(message.attachments, () => ( []))
         | 
| @@ -3486,15 +3589,17 @@ var getThreadState = (runtime) => { | |
| 3486 3589 | 
             
                threadId: runtime.threadId,
         | 
| 3487 3590 | 
             
                capabilities: runtime.capabilities,
         | 
| 3488 3591 | 
             
                isDisabled: runtime.isDisabled,
         | 
| 3489 | 
            -
                isRunning: _optionalChain([lastMessage, 'optionalAccess',  | 
| 3592 | 
            +
                isRunning: _optionalChain([lastMessage, 'optionalAccess', _193 => _193.role]) !== "assistant" ? false : lastMessage.status.type === "running",
         | 
| 3490 3593 | 
             
                messages: runtime.messages,
         | 
| 3491 3594 | 
             
                suggestions: runtime.suggestions,
         | 
| 3492 3595 | 
             
                extras: runtime.extras,
         | 
| 3493 3596 | 
             
                speech: runtime.speech
         | 
| 3494 3597 | 
             
              });
         | 
| 3495 3598 | 
             
            };
         | 
| 3496 | 
            -
            var ThreadRuntimeImpl = ( | 
| 3497 | 
            -
               | 
| 3599 | 
            +
            var ThreadRuntimeImpl = (_class10 = class {
         | 
| 3600 | 
            +
              get path() {
         | 
| 3601 | 
            +
                return this._threadBinding.path;
         | 
| 3602 | 
            +
              }
         | 
| 3498 3603 | 
             
              /**
         | 
| 3499 3604 | 
             
               * @deprecated Use `getState().threadId` instead. This will be removed in 0.6.0.
         | 
| 3500 3605 | 
             
               */
         | 
| @@ -3547,24 +3652,32 @@ var ThreadRuntimeImpl = (_class11 = class { | |
| 3547 3652 | 
             
                return this._threadBinding.getState();
         | 
| 3548 3653 | 
             
              }
         | 
| 3549 3654 |  | 
| 3550 | 
            -
              constructor(threadBinding) {; | 
| 3655 | 
            +
              constructor(threadBinding) {;_class10.prototype.__init21.call(this);
         | 
| 3551 3656 | 
             
                const stateBinding = new LazyMemoizeSubject({
         | 
| 3657 | 
            +
                  path: threadBinding.path,
         | 
| 3552 3658 | 
             
                  getState: () => getThreadState(threadBinding.getState()),
         | 
| 3553 3659 | 
             
                  subscribe: (callback) => threadBinding.subscribe(callback)
         | 
| 3554 3660 | 
             
                });
         | 
| 3555 3661 | 
             
                this._threadBinding = {
         | 
| 3662 | 
            +
                  path: threadBinding.path,
         | 
| 3556 3663 | 
             
                  getState: () => threadBinding.getState(),
         | 
| 3557 3664 | 
             
                  getStateState: () => stateBinding.getState(),
         | 
| 3558 3665 | 
             
                  outerSubscribe: (callback) => threadBinding.outerSubscribe(callback),
         | 
| 3559 3666 | 
             
                  subscribe: (callback) => threadBinding.subscribe(callback)
         | 
| 3560 3667 | 
             
                };
         | 
| 3668 | 
            +
                this.composer = new ThreadComposerRuntimeImpl(
         | 
| 3669 | 
            +
                  new NestedSubscriptionSubject({
         | 
| 3670 | 
            +
                    path: {
         | 
| 3671 | 
            +
                      ...this.path,
         | 
| 3672 | 
            +
                      ref: this.path.ref + `${this.path.ref}.composer`,
         | 
| 3673 | 
            +
                      composerSource: "thread"
         | 
| 3674 | 
            +
                    },
         | 
| 3675 | 
            +
                    getState: () => this._threadBinding.getState().composer,
         | 
| 3676 | 
            +
                    subscribe: (callback) => this._threadBinding.subscribe(callback)
         | 
| 3677 | 
            +
                  })
         | 
| 3678 | 
            +
                );
         | 
| 3561 3679 | 
             
              }
         | 
| 3562 | 
            -
               | 
| 3563 | 
            -
                new NestedSubscriptionSubject({
         | 
| 3564 | 
            -
                  getState: () => this._threadBinding.getState().composer,
         | 
| 3565 | 
            -
                  subscribe: (callback) => this._threadBinding.subscribe(callback)
         | 
| 3566 | 
            -
                })
         | 
| 3567 | 
            -
              )}
         | 
| 3680 | 
            +
              
         | 
| 3568 3681 | 
             
              getState() {
         | 
| 3569 3682 | 
             
                return this._threadBinding.getStateState();
         | 
| 3570 3683 | 
             
              }
         | 
| @@ -3642,37 +3755,67 @@ var ThreadRuntimeImpl = (_class11 = class { | |
| 3642 3755 | 
             
              }
         | 
| 3643 3756 | 
             
              getMesssageByIndex(idx) {
         | 
| 3644 3757 | 
             
                if (idx < 0) throw new Error("Message index must be >= 0");
         | 
| 3758 | 
            +
                return this._getMessageRuntime(
         | 
| 3759 | 
            +
                  {
         | 
| 3760 | 
            +
                    ...this.path,
         | 
| 3761 | 
            +
                    ref: this.path.ref + `${this.path.ref}.messages[${idx}]`,
         | 
| 3762 | 
            +
                    messageSelector: { type: "index", index: idx }
         | 
| 3763 | 
            +
                  },
         | 
| 3764 | 
            +
                  () => {
         | 
| 3765 | 
            +
                    const messages2 = this._threadBinding.getState().messages;
         | 
| 3766 | 
            +
                    const message = messages2[idx];
         | 
| 3767 | 
            +
                    if (!message) return void 0;
         | 
| 3768 | 
            +
                    return {
         | 
| 3769 | 
            +
                      message,
         | 
| 3770 | 
            +
                      parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _194 => _194[idx - 1], 'optionalAccess', _195 => _195.id]), () => ( null))
         | 
| 3771 | 
            +
                    };
         | 
| 3772 | 
            +
                  }
         | 
| 3773 | 
            +
                );
         | 
| 3774 | 
            +
              }
         | 
| 3775 | 
            +
              getMesssageById(messageId) {
         | 
| 3776 | 
            +
                return this._getMessageRuntime(
         | 
| 3777 | 
            +
                  {
         | 
| 3778 | 
            +
                    ...this.path,
         | 
| 3779 | 
            +
                    ref: this.path.ref + `${this.path.ref}.messages[messageId=${JSON.stringify(messageId)}]`,
         | 
| 3780 | 
            +
                    messageSelector: { type: "messageId", messageId }
         | 
| 3781 | 
            +
                  },
         | 
| 3782 | 
            +
                  () => this._threadBinding.getState().getMessageById(messageId)
         | 
| 3783 | 
            +
                );
         | 
| 3784 | 
            +
              }
         | 
| 3785 | 
            +
              _getMessageRuntime(path, callback) {
         | 
| 3645 3786 | 
             
                return new MessageRuntimeImpl(
         | 
| 3646 3787 | 
             
                  new ShallowMemoizeSubject({
         | 
| 3788 | 
            +
                    path,
         | 
| 3647 3789 | 
             
                    getState: () => {
         | 
| 3648 | 
            -
                      const {  | 
| 3649 | 
            -
                      const  | 
| 3650 | 
            -
                      if (!message) return SKIP_UPDATE;
         | 
| 3790 | 
            +
                      const { message, parentId } = _nullishCoalesce(callback(), () => ( {}));
         | 
| 3791 | 
            +
                      const { messages: messages2, speech: speechState } = this._threadBinding.getState();
         | 
| 3792 | 
            +
                      if (!message || parentId === void 0) return SKIP_UPDATE;
         | 
| 3651 3793 | 
             
                      const thread = this._threadBinding.getState();
         | 
| 3652 3794 | 
             
                      const branches = thread.getBranches(message.id);
         | 
| 3653 3795 | 
             
                      const submittedFeedback = thread.getSubmittedFeedback(message.id);
         | 
| 3654 3796 | 
             
                      return {
         | 
| 3655 3797 | 
             
                        ...message,
         | 
| 3656 3798 | 
             
                        message,
         | 
| 3657 | 
            -
                        isLast:  | 
| 3658 | 
            -
                        parentId | 
| 3799 | 
            +
                        isLast: _optionalChain([messages2, 'access', _196 => _196.at, 'call', _197 => _197(-1), 'optionalAccess', _198 => _198.id]) === message.id,
         | 
| 3800 | 
            +
                        parentId,
         | 
| 3659 3801 | 
             
                        branches,
         | 
| 3660 3802 | 
             
                        branchNumber: branches.indexOf(message.id) + 1,
         | 
| 3661 3803 | 
             
                        branchCount: branches.length,
         | 
| 3662 | 
            -
                        speech: _optionalChain([speechState, 'optionalAccess',  | 
| 3804 | 
            +
                        speech: _optionalChain([speechState, 'optionalAccess', _199 => _199.messageId]) === message.id ? speechState : void 0,
         | 
| 3663 3805 | 
             
                        submittedFeedback
         | 
| 3664 3806 | 
             
                      };
         | 
| 3665 3807 | 
             
                    },
         | 
| 3666 | 
            -
                    subscribe: ( | 
| 3808 | 
            +
                    subscribe: (callback2) => this._threadBinding.subscribe(callback2)
         | 
| 3667 3809 | 
             
                  }),
         | 
| 3668 3810 | 
             
                  this._threadBinding
         | 
| 3669 3811 | 
             
                );
         | 
| 3670 3812 | 
             
              }
         | 
| 3671 | 
            -
               | 
| 3813 | 
            +
              __init21() {this._eventListenerNestedSubscriptions = /* @__PURE__ */ new Map()}
         | 
| 3672 3814 | 
             
              unstable_on(event, callback) {
         | 
| 3673 3815 | 
             
                let subject = this._eventListenerNestedSubscriptions.get(event);
         | 
| 3674 3816 | 
             
                if (!subject) {
         | 
| 3675 3817 | 
             
                  subject = new NestedSubscriptionSubject({
         | 
| 3818 | 
            +
                    path: this.path,
         | 
| 3676 3819 | 
             
                    getState: () => ({
         | 
| 3677 3820 | 
             
                      subscribe: (callback2) => this._threadBinding.getState().unstable_on(event, callback2)
         | 
| 3678 3821 | 
             
                    }),
         | 
| @@ -3682,7 +3825,7 @@ var ThreadRuntimeImpl = (_class11 = class { | |
| 3682 3825 | 
             
                }
         | 
| 3683 3826 | 
             
                return subject.subscribe(callback);
         | 
| 3684 3827 | 
             
              }
         | 
| 3685 | 
            -
            },  | 
| 3828 | 
            +
            }, _class10);
         | 
| 3686 3829 |  | 
| 3687 3830 | 
             
            // src/api/AssistantRuntime.ts
         | 
| 3688 3831 | 
             
            var AssistantRuntimeImpl = class _AssistantRuntimeImpl {
         | 
| @@ -3702,16 +3845,19 @@ var AssistantRuntimeImpl = class _AssistantRuntimeImpl { | |
| 3702 3845 | 
             
              registerModelConfigProvider(provider) {
         | 
| 3703 3846 | 
             
                return this._core.registerModelConfigProvider(provider);
         | 
| 3704 3847 | 
             
              }
         | 
| 3705 | 
            -
              // TODO events for thread switching
         | 
| 3706 3848 | 
             
              /**
         | 
| 3707 3849 | 
             
               * @deprecated Thread is now static and never gets updated. This will be removed in 0.6.0.
         | 
| 3708 3850 | 
             
               */
         | 
| 3709 3851 | 
             
              subscribe(callback) {
         | 
| 3710 3852 | 
             
                return this._core.subscribe(callback);
         | 
| 3711 3853 | 
             
              }
         | 
| 3712 | 
            -
              static  | 
| 3854 | 
            +
              static createMainThreadRuntime(_core, CustomThreadRuntime = ThreadRuntimeImpl) {
         | 
| 3713 3855 | 
             
                return new CustomThreadRuntime(
         | 
| 3714 3856 | 
             
                  new NestedSubscriptionSubject({
         | 
| 3857 | 
            +
                    path: {
         | 
| 3858 | 
            +
                      ref: "threads.main",
         | 
| 3859 | 
            +
                      threadSelector: { type: "main" }
         | 
| 3860 | 
            +
                    },
         | 
| 3715 3861 | 
             
                    getState: () => _core.thread,
         | 
| 3716 3862 | 
             
                    subscribe: (callback) => _core.subscribe(callback)
         | 
| 3717 3863 | 
             
                  })
         | 
| @@ -3720,7 +3866,7 @@ var AssistantRuntimeImpl = class _AssistantRuntimeImpl { | |
| 3720 3866 | 
             
              static create(_core, CustomThreadRuntime = ThreadRuntimeImpl) {
         | 
| 3721 3867 | 
             
                return new _AssistantRuntimeImpl(
         | 
| 3722 3868 | 
             
                  _core,
         | 
| 3723 | 
            -
                  _AssistantRuntimeImpl. | 
| 3869 | 
            +
                  _AssistantRuntimeImpl.createMainThreadRuntime(_core, CustomThreadRuntime)
         | 
| 3724 3870 | 
             
                );
         | 
| 3725 3871 | 
             
              }
         | 
| 3726 3872 | 
             
            };
         | 
| @@ -3791,7 +3937,7 @@ var fromLanguageModelMessages = (lm, { mergeSteps }) => { | |
| 3791 3937 | 
             
                    });
         | 
| 3792 3938 | 
             
                    if (mergeSteps) {
         | 
| 3793 3939 | 
             
                      const previousMessage = messages2[messages2.length - 1];
         | 
| 3794 | 
            -
                      if (_optionalChain([previousMessage, 'optionalAccess',  | 
| 3940 | 
            +
                      if (_optionalChain([previousMessage, 'optionalAccess', _200 => _200.role]) === "assistant") {
         | 
| 3795 3941 | 
             
                        previousMessage.content.push(...newContent);
         | 
| 3796 3942 | 
             
                        break;
         | 
| 3797 3943 | 
             
                      }
         | 
| @@ -3804,7 +3950,7 @@ var fromLanguageModelMessages = (lm, { mergeSteps }) => { | |
| 3804 3950 | 
             
                  }
         | 
| 3805 3951 | 
             
                  case "tool": {
         | 
| 3806 3952 | 
             
                    const previousMessage = messages2[messages2.length - 1];
         | 
| 3807 | 
            -
                    if (_optionalChain([previousMessage, 'optionalAccess',  | 
| 3953 | 
            +
                    if (_optionalChain([previousMessage, 'optionalAccess', _201 => _201.role]) !== "assistant")
         | 
| 3808 3954 | 
             
                      throw new Error(
         | 
| 3809 3955 | 
             
                        "A tool message must be preceded by an assistant message."
         | 
| 3810 3956 | 
             
                      );
         | 
| @@ -3880,14 +4026,14 @@ function streamPartDecoderStream() { | |
| 3880 4026 | 
             
                  controller.enqueue(decodeStreamPart(chunk));
         | 
| 3881 4027 | 
             
                }
         | 
| 3882 4028 | 
             
              });
         | 
| 3883 | 
            -
              return new (0,  | 
| 4029 | 
            +
              return new (0, _chunkC6UZOY5Ajs.PipeableTransformStream)((readable) => {
         | 
| 3884 4030 | 
             
                return readable.pipeThrough(new TextDecoderStream()).pipeThrough(chunkByLineStream()).pipeThrough(decodeStream);
         | 
| 3885 4031 | 
             
              });
         | 
| 3886 4032 | 
             
            }
         | 
| 3887 4033 |  | 
| 3888 4034 | 
             
            // src/runtimes/edge/streams/utils/index.ts
         | 
| 3889 4035 | 
             
            var streamUtils = {
         | 
| 3890 | 
            -
              streamPartEncoderStream:  | 
| 4036 | 
            +
              streamPartEncoderStream: _chunkC6UZOY5Ajs.streamPartEncoderStream,
         | 
| 3891 4037 | 
             
              streamPartDecoderStream
         | 
| 3892 4038 | 
             
            };
         | 
| 3893 4039 |  | 
| @@ -3934,7 +4080,7 @@ function assistantDecoderStream() { | |
| 3934 4080 | 
             
                    case "c" /* ToolCallDelta */: {
         | 
| 3935 4081 | 
             
                      const { toolCallId, argsTextDelta } = value;
         | 
| 3936 4082 | 
             
                      const toolName = toolCallNames.get(toolCallId);
         | 
| 3937 | 
            -
                      if (_optionalChain([currentToolCall, 'optionalAccess',  | 
| 4083 | 
            +
                      if (_optionalChain([currentToolCall, 'optionalAccess', _202 => _202.id]) === toolCallId) {
         | 
| 3938 4084 | 
             
                        currentToolCall.argsText += argsTextDelta;
         | 
| 3939 4085 | 
             
                      }
         | 
| 3940 4086 | 
             
                      controller.enqueue({
         | 
| @@ -4035,8 +4181,8 @@ var EdgeChatAdapter = class { | |
| 4035 4181 | 
             
                  credentials: _nullishCoalesce(this.options.credentials, () => ( "same-origin")),
         | 
| 4036 4182 | 
             
                  body: JSON.stringify({
         | 
| 4037 4183 | 
             
                    system: config.system,
         | 
| 4038 | 
            -
                    messages:  | 
| 4039 | 
            -
                    tools: config.tools ?  | 
| 4184 | 
            +
                    messages: _chunkC6UZOY5Ajs.toCoreMessages.call(void 0, messages2),
         | 
| 4185 | 
            +
                    tools: config.tools ? _chunkC6UZOY5Ajs.toLanguageModelTools.call(void 0, config.tools) : [],
         | 
| 4040 4186 | 
             
                    ...config.callSettings,
         | 
| 4041 4187 | 
             
                    ...config.config,
         | 
| 4042 4188 | 
             
                    ...this.options.body
         | 
| @@ -4046,7 +4192,7 @@ var EdgeChatAdapter = class { | |
| 4046 4192 | 
             
                if (!result.ok) {
         | 
| 4047 4193 | 
             
                  throw new Error(`Status ${result.status}: ${await result.text()}`);
         | 
| 4048 4194 | 
             
                }
         | 
| 4049 | 
            -
                const stream = result.body.pipeThrough(streamPartDecoderStream()).pipeThrough(assistantDecoderStream()).pipeThrough( | 
| 4195 | 
            +
                const stream = result.body.pipeThrough(streamPartDecoderStream()).pipeThrough(assistantDecoderStream()).pipeThrough(_chunkC6UZOY5Ajs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunkC6UZOY5Ajs.runResultStream.call(void 0, ));
         | 
| 4050 4196 | 
             
                let update;
         | 
| 4051 4197 | 
             
                for await (update of asAsyncIterable(stream)) {
         | 
| 4052 4198 | 
             
                  yield update;
         | 
| @@ -4078,7 +4224,7 @@ var useEdgeRuntime = (options) => { | |
| 4078 4224 | 
             
            };
         | 
| 4079 4225 |  | 
| 4080 4226 | 
             
            // src/runtimes/local/shouldContinue.tsx
         | 
| 4081 | 
            -
            var shouldContinue = (result) => _optionalChain([result, 'access',  | 
| 4227 | 
            +
            var shouldContinue = (result) => _optionalChain([result, 'access', _203 => _203.status, 'optionalAccess', _204 => _204.type]) === "requires-action" && result.status.reason === "tool-calls" && result.content.every((c) => c.type !== "tool-call" || !!c.result);
         | 
| 4082 4228 |  | 
| 4083 4229 | 
             
            // src/runtimes/composer/DefaultEditComposerRuntimeCore.tsx
         | 
| 4084 4230 | 
             
            var DefaultEditComposerRuntimeCore = class extends BaseComposerRuntimeCore {
         | 
| @@ -4098,7 +4244,7 @@ var DefaultEditComposerRuntimeCore = class extends BaseComposerRuntimeCore { | |
| 4098 4244 | 
             
                return true;
         | 
| 4099 4245 | 
             
              }
         | 
| 4100 4246 | 
             
              getAttachmentAdapter() {
         | 
| 4101 | 
            -
                return _optionalChain([this, 'access',  | 
| 4247 | 
            +
                return _optionalChain([this, 'access', _205 => _205.runtime, 'access', _206 => _206.adapters, 'optionalAccess', _207 => _207.attachments]);
         | 
| 4102 4248 | 
             
              }
         | 
| 4103 4249 |  | 
| 4104 4250 |  | 
| @@ -4122,20 +4268,23 @@ var DefaultEditComposerRuntimeCore = class extends BaseComposerRuntimeCore { | |
| 4122 4268 | 
             
            };
         | 
| 4123 4269 |  | 
| 4124 4270 | 
             
            // src/runtimes/core/BaseThreadRuntimeCore.tsx
         | 
| 4125 | 
            -
            var BaseThreadRuntimeCore = ( | 
| 4126 | 
            -
              constructor(configProvider) {; | 
| 4271 | 
            +
            var BaseThreadRuntimeCore = (_class11 = class {
         | 
| 4272 | 
            +
              constructor(configProvider) {;_class11.prototype.__init22.call(this);_class11.prototype.__init23.call(this);_class11.prototype.__init24.call(this);_class11.prototype.__init25.call(this);_class11.prototype.__init26.call(this);_class11.prototype.__init27.call(this);
         | 
| 4127 4273 | 
             
                this.configProvider = configProvider;
         | 
| 4274 | 
            +
                _optionalChain([this, 'access', _208 => _208.configProvider, 'access', _209 => _209.subscribe, 'optionalCall', _210 => _210(() => {
         | 
| 4275 | 
            +
                  this._notifyEventSubscribers("model-config-update");
         | 
| 4276 | 
            +
                })]);
         | 
| 4128 4277 | 
             
              }
         | 
| 4129 | 
            -
               | 
| 4130 | 
            -
               | 
| 4278 | 
            +
              __init22() {this._subscriptions = /* @__PURE__ */ new Set()}
         | 
| 4279 | 
            +
              __init23() {this.repository = new MessageRepository()}
         | 
| 4131 4280 | 
             
              get messages() {
         | 
| 4132 4281 | 
             
                return this.repository.getMessages();
         | 
| 4133 4282 | 
             
              }
         | 
| 4134 | 
            -
               | 
| 4283 | 
            +
              __init24() {this.composer = new DefaultThreadComposerRuntimeCore(this)}
         | 
| 4135 4284 | 
             
              getModelConfig() {
         | 
| 4136 4285 | 
             
                return this.configProvider.getModelConfig();
         | 
| 4137 4286 | 
             
              }
         | 
| 4138 | 
            -
               | 
| 4287 | 
            +
              __init25() {this._editComposers = /* @__PURE__ */ new Map()}
         | 
| 4139 4288 | 
             
              getEditComposer(messageId) {
         | 
| 4140 4289 | 
             
                return this._editComposers.get(messageId);
         | 
| 4141 4290 | 
             
              }
         | 
| @@ -4152,6 +4301,9 @@ var BaseThreadRuntimeCore = (_class12 = class { | |
| 4152 4301 | 
             
                );
         | 
| 4153 4302 | 
             
                this._notifySubscribers();
         | 
| 4154 4303 | 
             
              }
         | 
| 4304 | 
            +
              getMessageById(messageId) {
         | 
| 4305 | 
            +
                return this.repository.getMessage(messageId);
         | 
| 4306 | 
            +
              }
         | 
| 4155 4307 | 
             
              getBranches(messageId) {
         | 
| 4156 4308 | 
             
                return this.repository.getBranches(messageId);
         | 
| 4157 4309 | 
             
              }
         | 
| @@ -4171,12 +4323,12 @@ var BaseThreadRuntimeCore = (_class12 = class { | |
| 4171 4323 | 
             
                this._subscriptions.add(callback);
         | 
| 4172 4324 | 
             
                return () => this._subscriptions.delete(callback);
         | 
| 4173 4325 | 
             
              }
         | 
| 4174 | 
            -
               | 
| 4326 | 
            +
              __init26() {this._submittedFeedback = {}}
         | 
| 4175 4327 | 
             
              getSubmittedFeedback(messageId) {
         | 
| 4176 4328 | 
             
                return this._submittedFeedback[messageId];
         | 
| 4177 4329 | 
             
              }
         | 
| 4178 4330 | 
             
              submitFeedback({ messageId, type }) {
         | 
| 4179 | 
            -
                const adapter = _optionalChain([this, 'access',  | 
| 4331 | 
            +
                const adapter = _optionalChain([this, 'access', _211 => _211.adapters, 'optionalAccess', _212 => _212.feedback]);
         | 
| 4180 4332 | 
             
                if (!adapter) throw new Error("Feedback adapter not configured");
         | 
| 4181 4333 | 
             
                const { message } = this.repository.getMessage(messageId);
         | 
| 4182 4334 | 
             
                adapter.submit({ message, type });
         | 
| @@ -4186,11 +4338,11 @@ var BaseThreadRuntimeCore = (_class12 = class { | |
| 4186 4338 |  | 
| 4187 4339 |  | 
| 4188 4340 | 
             
              speak(messageId) {
         | 
| 4189 | 
            -
                const adapter = _optionalChain([this, 'access',  | 
| 4341 | 
            +
                const adapter = _optionalChain([this, 'access', _213 => _213.adapters, 'optionalAccess', _214 => _214.speech]);
         | 
| 4190 4342 | 
             
                if (!adapter) throw new Error("Speech adapter not configured");
         | 
| 4191 4343 | 
             
                const { message } = this.repository.getMessage(messageId);
         | 
| 4192 | 
            -
                _optionalChain([this, 'access',  | 
| 4193 | 
            -
                const utterance = adapter.speak(message);
         | 
| 4344 | 
            +
                _optionalChain([this, 'access', _215 => _215._stopSpeaking, 'optionalCall', _216 => _216()]);
         | 
| 4345 | 
            +
                const utterance = adapter.speak(getThreadMessageText(message));
         | 
| 4194 4346 | 
             
                const unsub = utterance.subscribe(() => {
         | 
| 4195 4347 | 
             
                  if (utterance.status.type === "ended") {
         | 
| 4196 4348 | 
             
                    this._stopSpeaking = void 0;
         | 
| @@ -4221,7 +4373,7 @@ var BaseThreadRuntimeCore = (_class12 = class { | |
| 4221 4373 | 
             
                this.repository.import(data);
         | 
| 4222 4374 | 
             
                this._notifySubscribers();
         | 
| 4223 4375 | 
             
              }
         | 
| 4224 | 
            -
               | 
| 4376 | 
            +
              __init27() {this._eventSubscribers = /* @__PURE__ */ new Map()}
         | 
| 4225 4377 | 
             
              unstable_on(event, callback) {
         | 
| 4226 4378 | 
             
                const subscribers = this._eventSubscribers.get(event);
         | 
| 4227 4379 | 
             
                if (!subscribers) {
         | 
| @@ -4234,12 +4386,12 @@ var BaseThreadRuntimeCore = (_class12 = class { | |
| 4234 4386 | 
             
                  subscribers2.delete(callback);
         | 
| 4235 4387 | 
             
                };
         | 
| 4236 4388 | 
             
              }
         | 
| 4237 | 
            -
            },  | 
| 4389 | 
            +
            }, _class11);
         | 
| 4238 4390 |  | 
| 4239 4391 | 
             
            // src/runtimes/local/LocalThreadRuntimeCore.tsx
         | 
| 4240 | 
            -
            var LocalThreadRuntimeCore = ( | 
| 4392 | 
            +
            var LocalThreadRuntimeCore = (_class12 = class extends BaseThreadRuntimeCore {
         | 
| 4241 4393 | 
             
              constructor(configProvider, adapter, { initialMessages, ...options }) {
         | 
| 4242 | 
            -
                super(configProvider); | 
| 4394 | 
            +
                super(configProvider);_class12.prototype.__init28.call(this);_class12.prototype.__init29.call(this);_class12.prototype.__init30.call(this);_class12.prototype.__init31.call(this);;
         | 
| 4243 4395 | 
             
                this.adapter = adapter;
         | 
| 4244 4396 | 
             
                this.threadId = generateId();
         | 
| 4245 4397 | 
             
                this.options = options;
         | 
| @@ -4252,7 +4404,7 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore { | |
| 4252 4404 | 
             
                  }
         | 
| 4253 4405 | 
             
                }
         | 
| 4254 4406 | 
             
              }
         | 
| 4255 | 
            -
               | 
| 4407 | 
            +
              __init28() {this.capabilities = {
         | 
| 4256 4408 | 
             
                switchToBranch: true,
         | 
| 4257 4409 | 
             
                edit: true,
         | 
| 4258 4410 | 
             
                reload: true,
         | 
| @@ -4262,10 +4414,10 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore { | |
| 4262 4414 | 
             
                attachments: false,
         | 
| 4263 4415 | 
             
                feedback: false
         | 
| 4264 4416 | 
             
              }}
         | 
| 4265 | 
            -
               | 
| 4417 | 
            +
              __init29() {this.abortController = null}
         | 
| 4266 4418 |  | 
| 4267 | 
            -
               | 
| 4268 | 
            -
               | 
| 4419 | 
            +
              __init30() {this.isDisabled = false}
         | 
| 4420 | 
            +
              __init31() {this.suggestions = []}
         | 
| 4269 4421 | 
             
              get adapters() {
         | 
| 4270 4422 | 
             
                return this.options.adapters;
         | 
| 4271 4423 | 
             
              }
         | 
| @@ -4279,17 +4431,17 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore { | |
| 4279 4431 | 
             
              set options({ initialMessages, ...options }) {
         | 
| 4280 4432 | 
             
                this._options = options;
         | 
| 4281 4433 | 
             
                let hasUpdates = false;
         | 
| 4282 | 
            -
                const canSpeak = _optionalChain([options, 'access',  | 
| 4434 | 
            +
                const canSpeak = _optionalChain([options, 'access', _217 => _217.adapters, 'optionalAccess', _218 => _218.speech]) !== void 0;
         | 
| 4283 4435 | 
             
                if (this.capabilities.speech !== canSpeak) {
         | 
| 4284 4436 | 
             
                  this.capabilities.speech = canSpeak;
         | 
| 4285 4437 | 
             
                  hasUpdates = true;
         | 
| 4286 4438 | 
             
                }
         | 
| 4287 | 
            -
                const canAttach = _optionalChain([options, 'access',  | 
| 4439 | 
            +
                const canAttach = _optionalChain([options, 'access', _219 => _219.adapters, 'optionalAccess', _220 => _220.attachments]) !== void 0;
         | 
| 4288 4440 | 
             
                if (this.capabilities.attachments !== canAttach) {
         | 
| 4289 4441 | 
             
                  this.capabilities.attachments = canAttach;
         | 
| 4290 4442 | 
             
                  hasUpdates = true;
         | 
| 4291 4443 | 
             
                }
         | 
| 4292 | 
            -
                const canFeedback = _optionalChain([options, 'access',  | 
| 4444 | 
            +
                const canFeedback = _optionalChain([options, 'access', _221 => _221.adapters, 'optionalAccess', _222 => _222.feedback]) !== void 0;
         | 
| 4293 4445 | 
             
                if (this.capabilities.feedback !== canFeedback) {
         | 
| 4294 4446 | 
             
                  this.capabilities.feedback = canFeedback;
         | 
| 4295 4447 | 
             
                  hasUpdates = true;
         | 
| @@ -4325,13 +4477,13 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore { | |
| 4325 4477 | 
             
              }
         | 
| 4326 4478 | 
             
              async performRoundtrip(parentId, message) {
         | 
| 4327 4479 | 
             
                const messages2 = this.repository.getMessages();
         | 
| 4328 | 
            -
                _optionalChain([this, 'access',  | 
| 4480 | 
            +
                _optionalChain([this, 'access', _223 => _223.abortController, 'optionalAccess', _224 => _224.abort, 'call', _225 => _225()]);
         | 
| 4329 4481 | 
             
                this.abortController = new AbortController();
         | 
| 4330 4482 | 
             
                const initialContent = message.content;
         | 
| 4331 | 
            -
                const initialSteps = _optionalChain([message, 'access',  | 
| 4332 | 
            -
                const initalCustom = _optionalChain([message, 'access',  | 
| 4483 | 
            +
                const initialSteps = _optionalChain([message, 'access', _226 => _226.metadata, 'optionalAccess', _227 => _227.steps]);
         | 
| 4484 | 
            +
                const initalCustom = _optionalChain([message, 'access', _228 => _228.metadata, 'optionalAccess', _229 => _229.custom]);
         | 
| 4333 4485 | 
             
                const updateMessage = (m) => {
         | 
| 4334 | 
            -
                  const newSteps = _optionalChain([m, 'access',  | 
| 4486 | 
            +
                  const newSteps = _optionalChain([m, 'access', _230 => _230.metadata, 'optionalAccess', _231 => _231.steps]) || _optionalChain([m, 'access', _232 => _232.metadata, 'optionalAccess', _233 => _233.roundtrips]);
         | 
| 4335 4487 | 
             
                  const steps2 = newSteps ? [..._nullishCoalesce(initialSteps, () => ( [])), ...newSteps] : void 0;
         | 
| 4336 4488 | 
             
                  message = {
         | 
| 4337 4489 | 
             
                    ...message,
         | 
| @@ -4343,7 +4495,7 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore { | |
| 4343 4495 | 
             
                      metadata: {
         | 
| 4344 4496 | 
             
                        ...message.metadata,
         | 
| 4345 4497 | 
             
                        ...steps2 ? { roundtrips: steps2, steps: steps2 } : void 0,
         | 
| 4346 | 
            -
                        ..._optionalChain([m, 'access',  | 
| 4498 | 
            +
                        ..._optionalChain([m, 'access', _234 => _234.metadata, 'optionalAccess', _235 => _235.custom]) ? {
         | 
| 4347 4499 | 
             
                          custom: { ..._nullishCoalesce(initalCustom, () => ( {})), ...m.metadata.custom }
         | 
| 4348 4500 | 
             
                        } : void 0
         | 
| 4349 4501 | 
             
                      }
         | 
| @@ -4353,7 +4505,7 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore { | |
| 4353 4505 | 
             
                  this._notifySubscribers();
         | 
| 4354 4506 | 
             
                };
         | 
| 4355 4507 | 
             
                const maxSteps = this.options.maxSteps ? this.options.maxSteps : (_nullishCoalesce(this.options.maxToolRoundtrips, () => ( 1))) + 1;
         | 
| 4356 | 
            -
                const steps = _nullishCoalesce(_optionalChain([message, 'access',  | 
| 4508 | 
            +
                const steps = _nullishCoalesce(_optionalChain([message, 'access', _236 => _236.metadata, 'optionalAccess', _237 => _237.steps, 'optionalAccess', _238 => _238.length]), () => ( 0));
         | 
| 4357 4509 | 
             
                if (steps >= maxSteps) {
         | 
| 4358 4510 | 
             
                  updateMessage({
         | 
| 4359 4511 | 
             
                    status: {
         | 
| @@ -4405,7 +4557,7 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore { | |
| 4405 4557 | 
             
                return message;
         | 
| 4406 4558 | 
             
              }
         | 
| 4407 4559 | 
             
              cancelRun() {
         | 
| 4408 | 
            -
                _optionalChain([this, 'access',  | 
| 4560 | 
            +
                _optionalChain([this, 'access', _239 => _239.abortController, 'optionalAccess', _240 => _240.abort, 'call', _241 => _241()]);
         | 
| 4409 4561 | 
             
                this.abortController = null;
         | 
| 4410 4562 | 
             
              }
         | 
| 4411 4563 | 
             
              addToolResult({
         | 
| @@ -4441,7 +4593,7 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore { | |
| 4441 4593 | 
             
                  this.performRoundtrip(parentId, message);
         | 
| 4442 4594 | 
             
                }
         | 
| 4443 4595 | 
             
              }
         | 
| 4444 | 
            -
            },  | 
| 4596 | 
            +
            }, _class12);
         | 
| 4445 4597 |  | 
| 4446 4598 | 
             
            // src/runtimes/local/LocalRuntimeCore.tsx
         | 
| 4447 4599 | 
             
            var LocalRuntimeCore = class extends BaseAssistantRuntimeCore {
         | 
| @@ -4477,7 +4629,7 @@ var LocalRuntimeCore = class extends BaseAssistantRuntimeCore { | |
| 4477 4629 | 
             
                const messages2 = fromCoreMessages(initialMessages);
         | 
| 4478 4630 | 
             
                this.thread.import({
         | 
| 4479 4631 | 
             
                  messages: messages2.map((m, idx) => ({
         | 
| 4480 | 
            -
                    parentId: _nullishCoalesce(_optionalChain([messages2, 'access',  | 
| 4632 | 
            +
                    parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _242 => _242[idx - 1], 'optionalAccess', _243 => _243.id]), () => ( null)),
         | 
| 4481 4633 | 
             
                    message: m
         | 
| 4482 4634 | 
             
                  }))
         | 
| 4483 4635 | 
             
                });
         | 
| @@ -4496,7 +4648,7 @@ var LocalRuntimeImpl = class _LocalRuntimeImpl extends AssistantRuntimeImpl { | |
| 4496 4648 | 
             
              static create(_core) {
         | 
| 4497 4649 | 
             
                return new _LocalRuntimeImpl(
         | 
| 4498 4650 | 
             
                  _core,
         | 
| 4499 | 
            -
                  AssistantRuntimeImpl. | 
| 4651 | 
            +
                  AssistantRuntimeImpl.createMainThreadRuntime(_core, ThreadRuntimeImpl)
         | 
| 4500 4652 | 
             
                );
         | 
| 4501 4653 | 
             
              }
         | 
| 4502 4654 | 
             
            };
         | 
| @@ -4519,8 +4671,8 @@ var getExternalStoreMessage = (message) => { | |
| 4519 4671 | 
             
            };
         | 
| 4520 4672 |  | 
| 4521 4673 | 
             
            // src/runtimes/external-store/ThreadMessageConverter.ts
         | 
| 4522 | 
            -
            var ThreadMessageConverter = ( | 
| 4523 | 
            -
               | 
| 4674 | 
            +
            var ThreadMessageConverter = (_class13 = class {constructor() { _class13.prototype.__init32.call(this); }
         | 
| 4675 | 
            +
              __init32() {this.cache = /* @__PURE__ */ new WeakMap()}
         | 
| 4524 4676 | 
             
              convertMessages(messages2, converter) {
         | 
| 4525 4677 | 
             
                return messages2.map((m, idx) => {
         | 
| 4526 4678 | 
             
                  const cached = this.cache.get(m);
         | 
| @@ -4529,7 +4681,7 @@ var ThreadMessageConverter = (_class14 = class {constructor() { _class14.prototy | |
| 4529 4681 | 
             
                  return newMessage;
         | 
| 4530 4682 | 
             
                });
         | 
| 4531 4683 | 
             
              }
         | 
| 4532 | 
            -
            },  | 
| 4684 | 
            +
            }, _class13);
         | 
| 4533 4685 |  | 
| 4534 4686 | 
             
            // src/runtimes/external-store/auto-status.tsx
         | 
| 4535 4687 | 
             
            var AUTO_STATUS_RUNNING = Object.freeze({ type: "running" });
         | 
| @@ -4617,11 +4769,11 @@ var fromThreadMessageLike = (like, fallbackId, fallbackStatus) => { | |
| 4617 4769 | 
             
            // src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx
         | 
| 4618 4770 | 
             
            var EMPTY_ARRAY2 = Object.freeze([]);
         | 
| 4619 4771 | 
             
            var hasUpcomingMessage = (isRunning, messages2) => {
         | 
| 4620 | 
            -
              return isRunning && _optionalChain([messages2, 'access',  | 
| 4772 | 
            +
              return isRunning && _optionalChain([messages2, 'access', _244 => _244[messages2.length - 1], 'optionalAccess', _245 => _245.role]) !== "assistant";
         | 
| 4621 4773 | 
             
            };
         | 
| 4622 | 
            -
            var ExternalStoreThreadRuntimeCore = ( | 
| 4623 | 
            -
               | 
| 4624 | 
            -
               | 
| 4774 | 
            +
            var ExternalStoreThreadRuntimeCore = (_class14 = class extends BaseThreadRuntimeCore {
         | 
| 4775 | 
            +
              __init33() {this.assistantOptimisticId = null}
         | 
| 4776 | 
            +
              __init34() {this._capabilities = {
         | 
| 4625 4777 | 
             
                switchToBranch: false,
         | 
| 4626 4778 | 
             
                edit: false,
         | 
| 4627 4779 | 
             
                reload: false,
         | 
| @@ -4643,9 +4795,9 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime | |
| 4643 4795 | 
             
              get adapters() {
         | 
| 4644 4796 | 
             
                return this._store.adapters;
         | 
| 4645 4797 | 
             
              }
         | 
| 4646 | 
            -
               | 
| 4647 | 
            -
               | 
| 4648 | 
            -
               | 
| 4798 | 
            +
              __init35() {this.suggestions = []}
         | 
| 4799 | 
            +
              __init36() {this.extras = void 0}
         | 
| 4800 | 
            +
              __init37() {this._converter = new ThreadMessageConverter()}
         | 
| 4649 4801 |  | 
| 4650 4802 | 
             
              beginEdit(messageId) {
         | 
| 4651 4803 | 
             
                if (!this.store.onEdit)
         | 
| @@ -4653,7 +4805,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime | |
| 4653 4805 | 
             
                super.beginEdit(messageId);
         | 
| 4654 4806 | 
             
              }
         | 
| 4655 4807 | 
             
              constructor(configProvider, store) {
         | 
| 4656 | 
            -
                super(configProvider); | 
| 4808 | 
            +
                super(configProvider);_class14.prototype.__init33.call(this);_class14.prototype.__init34.call(this);_class14.prototype.__init35.call(this);_class14.prototype.__init36.call(this);_class14.prototype.__init37.call(this);_class14.prototype.__init38.call(this);;
         | 
| 4657 4809 | 
             
                this.store = store;
         | 
| 4658 4810 | 
             
              }
         | 
| 4659 4811 | 
             
              get store() {
         | 
| @@ -4673,11 +4825,11 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime | |
| 4673 4825 | 
             
                  edit: this._store.onEdit !== void 0,
         | 
| 4674 4826 | 
             
                  reload: this._store.onReload !== void 0,
         | 
| 4675 4827 | 
             
                  cancel: this._store.onCancel !== void 0,
         | 
| 4676 | 
            -
                  speech: _optionalChain([this, 'access',  | 
| 4677 | 
            -
                  unstable_copy: _optionalChain([this, 'access',  | 
| 4828 | 
            +
                  speech: _optionalChain([this, 'access', _249 => _249._store, 'access', _250 => _250.adapters, 'optionalAccess', _251 => _251.speech]) !== void 0,
         | 
| 4829 | 
            +
                  unstable_copy: _optionalChain([this, 'access', _252 => _252._store, 'access', _253 => _253.unstable_capabilities, 'optionalAccess', _254 => _254.copy]) !== false,
         | 
| 4678 4830 | 
             
                  // default true
         | 
| 4679 | 
            -
                  attachments: !!_optionalChain([this, 'access',  | 
| 4680 | 
            -
                  feedback: !!_optionalChain([this, 'access',  | 
| 4831 | 
            +
                  attachments: !!_optionalChain([this, 'access', _255 => _255.store, 'access', _256 => _256.adapters, 'optionalAccess', _257 => _257.attachments]),
         | 
| 4832 | 
            +
                  feedback: !!_optionalChain([this, 'access', _258 => _258.store, 'access', _259 => _259.adapters, 'optionalAccess', _260 => _260.feedback])
         | 
| 4681 4833 | 
             
                };
         | 
| 4682 4834 | 
             
                if (oldStore) {
         | 
| 4683 4835 | 
             
                  if (oldStore.convertMessage !== store.convertMessage) {
         | 
| @@ -4704,7 +4856,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime | |
| 4704 4856 | 
             
                for (let i = 0; i < messages2.length; i++) {
         | 
| 4705 4857 | 
             
                  const message = messages2[i];
         | 
| 4706 4858 | 
             
                  const parent = messages2[i - 1];
         | 
| 4707 | 
            -
                  this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess',  | 
| 4859 | 
            +
                  this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _261 => _261.id]), () => ( null)), message);
         | 
| 4708 4860 | 
             
                }
         | 
| 4709 4861 | 
             
                if (this.assistantOptimisticId) {
         | 
| 4710 4862 | 
             
                  this.repository.deleteMessage(this.assistantOptimisticId);
         | 
| @@ -4712,7 +4864,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime | |
| 4712 4864 | 
             
                }
         | 
| 4713 4865 | 
             
                if (hasUpcomingMessage(isRunning, messages2)) {
         | 
| 4714 4866 | 
             
                  this.assistantOptimisticId = this.repository.appendOptimisticMessage(
         | 
| 4715 | 
            -
                    _nullishCoalesce(_optionalChain([messages2, 'access',  | 
| 4867 | 
            +
                    _nullishCoalesce(_optionalChain([messages2, 'access', _262 => _262.at, 'call', _263 => _263(-1), 'optionalAccess', _264 => _264.id]), () => ( null)),
         | 
| 4716 4868 | 
             
                    {
         | 
| 4717 4869 | 
             
                      role: "assistant",
         | 
| 4718 4870 | 
             
                      content: []
         | 
| @@ -4720,7 +4872,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime | |
| 4720 4872 | 
             
                  );
         | 
| 4721 4873 | 
             
                }
         | 
| 4722 4874 | 
             
                this.repository.resetHead(
         | 
| 4723 | 
            -
                  _nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([messages2, 'access',  | 
| 4875 | 
            +
                  _nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([messages2, 'access', _265 => _265.at, 'call', _266 => _266(-1), 'optionalAccess', _267 => _267.id]))), () => ( null))
         | 
| 4724 4876 | 
             
                );
         | 
| 4725 4877 | 
             
                this._messages = this.repository.getMessages();
         | 
| 4726 4878 | 
             
                this._notifySubscribers();
         | 
| @@ -4732,7 +4884,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime | |
| 4732 4884 | 
             
                this.updateMessages(this.repository.getMessages());
         | 
| 4733 4885 | 
             
              }
         | 
| 4734 4886 | 
             
              async append(message) {
         | 
| 4735 | 
            -
                if (message.parentId !== (_nullishCoalesce(_optionalChain([this, 'access',  | 
| 4887 | 
            +
                if (message.parentId !== (_nullishCoalesce(_optionalChain([this, 'access', _268 => _268.messages, 'access', _269 => _269.at, 'call', _270 => _270(-1), 'optionalAccess', _271 => _271.id]), () => ( null)))) {
         | 
| 4736 4888 | 
             
                  if (!this._store.onEdit)
         | 
| 4737 4889 | 
             
                    throw new Error("Runtime does not support editing messages.");
         | 
| 4738 4890 | 
             
                  await this._store.onEdit(message);
         | 
| @@ -4755,7 +4907,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime | |
| 4755 4907 | 
             
                }
         | 
| 4756 4908 | 
             
                let messages2 = this.repository.getMessages();
         | 
| 4757 4909 | 
             
                const previousMessage = messages2[messages2.length - 1];
         | 
| 4758 | 
            -
                if (_optionalChain([previousMessage, 'optionalAccess',  | 
| 4910 | 
            +
                if (_optionalChain([previousMessage, 'optionalAccess', _272 => _272.role]) === "user" && previousMessage.id === _optionalChain([messages2, 'access', _273 => _273.at, 'call', _274 => _274(-1), 'optionalAccess', _275 => _275.id])) {
         | 
| 4759 4911 | 
             
                  this.repository.deleteMessage(previousMessage.id);
         | 
| 4760 4912 | 
             
                  if (!this.composer.text.trim()) {
         | 
| 4761 4913 | 
             
                    this.composer.setText(getThreadMessageText(previousMessage));
         | 
| @@ -4773,12 +4925,12 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime | |
| 4773 4925 | 
             
                  throw new Error("Runtime does not support tool results.");
         | 
| 4774 4926 | 
             
                this._store.onAddToolResult(options);
         | 
| 4775 4927 | 
             
              }
         | 
| 4776 | 
            -
               | 
| 4777 | 
            -
                _optionalChain([this, 'access',  | 
| 4928 | 
            +
              __init38() {this.updateMessages = (messages2) => {
         | 
| 4929 | 
            +
                _optionalChain([this, 'access', _276 => _276._store, 'access', _277 => _277.setMessages, 'optionalCall', _278 => _278(
         | 
| 4778 4930 | 
             
                  messages2.flatMap(getExternalStoreMessage).filter((m) => m != null)
         | 
| 4779 4931 | 
             
                )]);
         | 
| 4780 4932 | 
             
              }}
         | 
| 4781 | 
            -
            },  | 
| 4933 | 
            +
            }, _class14);
         | 
| 4782 4934 |  | 
| 4783 4935 | 
             
            // src/runtimes/external-store/ExternalStoreRuntimeCore.tsx
         | 
| 4784 4936 | 
             
            var ExternalStoreRuntimeCore = class extends BaseAssistantRuntimeCore {
         | 
| @@ -4994,18 +5146,18 @@ var DangerousInBrowserAdapter = class { | |
| 4994 5146 | 
             
                this.options = options;
         | 
| 4995 5147 | 
             
              }
         | 
| 4996 5148 | 
             
              async *run({ messages: messages2, abortSignal, config }) {
         | 
| 4997 | 
            -
                const res = await  | 
| 5149 | 
            +
                const res = await _chunkC6UZOY5Ajs.getEdgeRuntimeStream.call(void 0, {
         | 
| 4998 5150 | 
             
                  options: this.options,
         | 
| 4999 5151 | 
             
                  abortSignal,
         | 
| 5000 5152 | 
             
                  requestData: {
         | 
| 5001 5153 | 
             
                    system: config.system,
         | 
| 5002 | 
            -
                    messages:  | 
| 5003 | 
            -
                    tools: config.tools ?  | 
| 5154 | 
            +
                    messages: _chunkC6UZOY5Ajs.toCoreMessages.call(void 0, messages2),
         | 
| 5155 | 
            +
                    tools: config.tools ? _chunkC6UZOY5Ajs.toLanguageModelTools.call(void 0, config.tools) : [],
         | 
| 5004 5156 | 
             
                    ...config.callSettings,
         | 
| 5005 5157 | 
             
                    ...config.config
         | 
| 5006 5158 | 
             
                  }
         | 
| 5007 5159 | 
             
                });
         | 
| 5008 | 
            -
                const stream = res.pipeThrough( | 
| 5160 | 
            +
                const stream = res.pipeThrough(_chunkC6UZOY5Ajs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunkC6UZOY5Ajs.runResultStream.call(void 0, ));
         | 
| 5009 5161 | 
             
                for await (const update of asAsyncIterable(stream)) {
         | 
| 5010 5162 | 
             
                  yield update;
         | 
| 5011 5163 | 
             
                }
         | 
| @@ -5021,8 +5173,7 @@ var useDangerousInBrowserRuntime = (options) => { | |
| 5021 5173 |  | 
| 5022 5174 | 
             
            // src/runtimes/speech/WebSpeechSynthesisAdapter.ts
         | 
| 5023 5175 | 
             
            var WebSpeechSynthesisAdapter = class {
         | 
| 5024 | 
            -
              speak( | 
| 5025 | 
            -
                const text = getThreadMessageText(message);
         | 
| 5176 | 
            +
              speak(text) {
         | 
| 5026 5177 | 
             
                const utterance = new SpeechSynthesisUtterance(text);
         | 
| 5027 5178 | 
             
                const subscribers = /* @__PURE__ */ new Set();
         | 
| 5028 5179 | 
             
                const handleEnd = (reason, error) => {
         | 
| @@ -5061,8 +5212,8 @@ var WebSpeechSynthesisAdapter = class { | |
| 5061 5212 | 
             
            };
         | 
| 5062 5213 |  | 
| 5063 5214 | 
             
            // src/runtimes/attachment/SimpleImageAttachmentAdapter.ts
         | 
| 5064 | 
            -
            var SimpleImageAttachmentAdapter = ( | 
| 5065 | 
            -
               | 
| 5215 | 
            +
            var SimpleImageAttachmentAdapter = (_class15 = class {constructor() { _class15.prototype.__init39.call(this); }
         | 
| 5216 | 
            +
              __init39() {this.accept = "image/*"}
         | 
| 5066 5217 | 
             
              async add(state) {
         | 
| 5067 5218 | 
             
                return {
         | 
| 5068 5219 | 
             
                  id: state.file.name,
         | 
| @@ -5087,7 +5238,7 @@ var SimpleImageAttachmentAdapter = (_class16 = class {constructor() { _class16.p | |
| 5087 5238 | 
             
              }
         | 
| 5088 5239 | 
             
              async remove() {
         | 
| 5089 5240 | 
             
              }
         | 
| 5090 | 
            -
            },  | 
| 5241 | 
            +
            }, _class15);
         | 
| 5091 5242 | 
             
            var getFileDataURL = (file) => new Promise((resolve, reject) => {
         | 
| 5092 5243 | 
             
              const reader = new FileReader();
         | 
| 5093 5244 | 
             
              reader.onload = () => resolve(reader.result);
         | 
| @@ -5096,8 +5247,8 @@ var getFileDataURL = (file) => new Promise((resolve, reject) => { | |
| 5096 5247 | 
             
            });
         | 
| 5097 5248 |  | 
| 5098 5249 | 
             
            // src/runtimes/attachment/SimpleTextAttachmentAdapter.ts
         | 
| 5099 | 
            -
            var SimpleTextAttachmentAdapter = ( | 
| 5100 | 
            -
               | 
| 5250 | 
            +
            var SimpleTextAttachmentAdapter = (_class16 = class {constructor() { _class16.prototype.__init40.call(this); }
         | 
| 5251 | 
            +
              __init40() {this.accept = "text/plain,text/html,text/markdown,text/csv,text/xml,text/json,text/css"}
         | 
| 5101 5252 | 
             
              async add(state) {
         | 
| 5102 5253 | 
             
                return {
         | 
| 5103 5254 | 
             
                  id: state.file.name,
         | 
| @@ -5124,7 +5275,7 @@ ${await getFileText(attachment.file)} | |
| 5124 5275 | 
             
              }
         | 
| 5125 5276 | 
             
              async remove() {
         | 
| 5126 5277 | 
             
              }
         | 
| 5127 | 
            -
            },  | 
| 5278 | 
            +
            }, _class16);
         | 
| 5128 5279 | 
             
            var getFileText = (file) => new Promise((resolve, reject) => {
         | 
| 5129 5280 | 
             
              const reader = new FileReader();
         | 
| 5130 5281 | 
             
              reader.onload = () => resolve(reader.result);
         | 
| @@ -5225,7 +5376,7 @@ var ThreadConfigProvider = ({ | |
| 5225 5376 | 
             
            }) => {
         | 
| 5226 5377 | 
             
              const hasAssistant = !!useAssistantRuntime({ optional: true });
         | 
| 5227 5378 | 
             
              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 });
         | 
| 5228 | 
            -
              if (!_optionalChain([config, 'optionalAccess',  | 
| 5379 | 
            +
              if (!_optionalChain([config, 'optionalAccess', _279 => _279.runtime])) return configProvider;
         | 
| 5229 5380 | 
             
              if (hasAssistant) {
         | 
| 5230 5381 | 
             
                throw new Error(
         | 
| 5231 5382 | 
             
                  "You provided a runtime to <Thread> while simulataneously using <AssistantRuntimeProvider>. This is not allowed."
         | 
| @@ -5553,7 +5704,7 @@ var AssistantMessageContent = _react.forwardRef.call(void 0, ({ components: comp | |
| 5553 5704 | 
             
                {
         | 
| 5554 5705 | 
             
                  components: {
         | 
| 5555 5706 | 
             
                    ...componentsProp,
         | 
| 5556 | 
            -
                    Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess',  | 
| 5707 | 
            +
                    Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess', _280 => _280.Text]), () => ( components.Text)), () => ( content_part_default.Text)),
         | 
| 5557 5708 | 
             
                    tools: toolsComponents
         | 
| 5558 5709 | 
             
                  }
         | 
| 5559 5710 | 
             
                }
         | 
| @@ -5664,7 +5815,7 @@ var useAttachmentSrc = () => { | |
| 5664 5815 | 
             
              const { file, src } = useAttachment((a) => {
         | 
| 5665 5816 | 
             
                if (a.type !== "image") return {};
         | 
| 5666 5817 | 
             
                if (a.file) return { file: a.file };
         | 
| 5667 | 
            -
                const src2 = _optionalChain([a, 'access',  | 
| 5818 | 
            +
                const src2 = _optionalChain([a, 'access', _281 => _281.content, 'optionalAccess', _282 => _282.filter, 'call', _283 => _283((c) => c.type === "image"), 'access', _284 => _284[0], 'optionalAccess', _285 => _285.image]);
         | 
| 5668 5819 | 
             
                if (!src2) return {};
         | 
| 5669 5820 | 
             
                return { src: src2 };
         | 
| 5670 5821 | 
             
              });
         | 
| @@ -5808,7 +5959,7 @@ var ComposerAttachments = ({ components }) => { | |
| 5808 5959 | 
             
                {
         | 
| 5809 5960 | 
             
                  components: {
         | 
| 5810 5961 | 
             
                    ...components,
         | 
| 5811 | 
            -
                    Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 5962 | 
            +
                    Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _286 => _286.Attachment]), () => ( attachment_default))
         | 
| 5812 5963 | 
             
                  }
         | 
| 5813 5964 | 
             
                }
         | 
| 5814 5965 | 
             
              ) });
         | 
| @@ -5936,7 +6087,7 @@ var ThreadWelcomeSuggestions = () => { | |
| 5936 6087 | 
             
              const suggestions2 = useThread((t) => t.suggestions);
         | 
| 5937 6088 | 
             
              const { welcome: { suggestions } = {} } = useThreadConfig();
         | 
| 5938 6089 | 
             
              const finalSuggestions = suggestions2.length ? suggestions2 : suggestions;
         | 
| 5939 | 
            -
              return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestionContainer, { children: _optionalChain([finalSuggestions, 'optionalAccess',  | 
| 6090 | 
            +
              return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestionContainer, { children: _optionalChain([finalSuggestions, 'optionalAccess', _287 => _287.map, 'call', _288 => _288((suggestion, idx) => {
         | 
| 5940 6091 | 
             
                const key = `${suggestion.prompt}-${idx}`;
         | 
| 5941 6092 | 
             
                return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestion, { suggestion }, key);
         | 
| 5942 6093 | 
             
              })]) });
         | 
| @@ -6014,7 +6165,7 @@ var UserMessageContent = _react.forwardRef.call(void 0, ({ components, ...props | |
| 6014 6165 | 
             
                {
         | 
| 6015 6166 | 
             
                  components: {
         | 
| 6016 6167 | 
             
                    ...components,
         | 
| 6017 | 
            -
                    Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 6168 | 
            +
                    Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _289 => _289.Text]), () => ( content_part_default.Text))
         | 
| 6018 6169 | 
             
                  }
         | 
| 6019 6170 | 
             
                }
         | 
| 6020 6171 | 
             
              ) });
         | 
| @@ -6031,7 +6182,7 @@ var UserMessageAttachments = ({ | |
| 6031 6182 | 
             
                {
         | 
| 6032 6183 | 
             
                  components: {
         | 
| 6033 6184 | 
             
                    ...components,
         | 
| 6034 | 
            -
                    Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 6185 | 
            +
                    Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _290 => _290.Attachment]), () => ( attachment_default))
         | 
| 6035 6186 | 
             
                  }
         | 
| 6036 6187 | 
             
                }
         | 
| 6037 6188 | 
             
              ) }) });
         | 
| @@ -6134,10 +6285,10 @@ var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, .. | |
| 6134 6285 | 
             
                  thread_exports.Messages,
         | 
| 6135 6286 | 
             
                  {
         | 
| 6136 6287 | 
             
                    components: {
         | 
| 6137 | 
            -
                      UserMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 6138 | 
            -
                      EditComposer: _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 6139 | 
            -
                      AssistantMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 6140 | 
            -
                      SystemMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',  | 
| 6288 | 
            +
                      UserMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _291 => _291.UserMessage]), () => ( user_message_default)),
         | 
| 6289 | 
            +
                      EditComposer: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _292 => _292.EditComposer]), () => ( edit_composer_default)),
         | 
| 6290 | 
            +
                      AssistantMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _293 => _293.AssistantMessage]), () => ( assistant_message_default)),
         | 
| 6291 | 
            +
                      SystemMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _294 => _294.SystemMessage]), () => ( SystemMessage))
         | 
| 6141 6292 | 
             
                    },
         | 
| 6142 6293 | 
             
                    ...rest
         | 
| 6143 6294 | 
             
                  }
         | 
| @@ -6148,7 +6299,7 @@ var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, .. | |
| 6148 6299 | 
             
            ThreadMessages.displayName = "ThreadMessages";
         | 
| 6149 6300 | 
             
            var ThreadFollowupSuggestions = () => {
         | 
| 6150 6301 | 
             
              const suggestions = useThread((t) => t.suggestions);
         | 
| 6151 | 
            -
              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',  | 
| 6302 | 
            +
              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', _295 => _295.map, 'call', _296 => _296((suggestion, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
         | 
| 6152 6303 | 
             
                thread_exports.Suggestion,
         | 
| 6153 6304 | 
             
                {
         | 
| 6154 6305 | 
             
                  className: "aui-thread-followup-suggestion",
         | 
| @@ -6381,5 +6532,6 @@ var assistant_modal_default = Object.assign(AssistantModal, exports12); | |
| 6381 6532 |  | 
| 6382 6533 |  | 
| 6383 6534 |  | 
| 6384 | 
            -
             | 
| 6535 | 
            +
             | 
| 6536 | 
            +
            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.AttachmentUI = attachment_default; exports.BranchPicker = branch_picker_default; exports.BranchPickerPrimitive = branchPicker_exports; exports.Composer = composer_default; exports.ComposerAttachment = 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 = 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 = _chunkC6UZOY5Ajs.toCoreMessage; exports.toCoreMessages = _chunkC6UZOY5Ajs.toCoreMessages; exports.toLanguageModelMessages = _chunkC6UZOY5Ajs.toLanguageModelMessages; exports.toLanguageModelTools = _chunkC6UZOY5Ajs.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.useThreadModelConfig = useThreadModelConfig; 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;
         | 
| 6385 6537 | 
             
            //# sourceMappingURL=index.js.map
         |