@assistant-ui/react 0.5.74 → 0.5.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +661 -295
- package/dist/index.d.ts +661 -295
- package/dist/index.js +511 -470
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +395 -354
- package/dist/index.mjs.map +1 -1
- package/dist/styles/index.css +47 -18
- package/dist/styles/index.css.map +1 -1
- package/dist/styles/tailwindcss/thread.css +19 -7
- package/package.json +1 -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; var _class17;
|
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; var _class17; var _class18;
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -604,20 +604,13 @@ var useActionBarReload = () => {
|
|
604
604
|
// src/primitive-hooks/actionBar/useActionBarSpeak.tsx
|
605
605
|
|
606
606
|
var useActionBarSpeak = () => {
|
607
|
-
const messageStore = useMessageStore();
|
608
|
-
const editComposerStore = useEditComposerStore();
|
609
607
|
const messageRunime = useMessageRuntime();
|
610
|
-
const messageUtilsStore = useMessageUtilsStore();
|
611
|
-
const hasSpeakableContent = useCombinedStore(
|
612
|
-
[messageStore, editComposerStore],
|
613
|
-
(message, c) => {
|
614
|
-
return !c.isEditing && (message.role !== "assistant" || message.status.type !== "running") && message.content.some((c2) => c2.type === "text" && c2.text.length > 0);
|
615
|
-
}
|
616
|
-
);
|
617
608
|
const callback = _react.useCallback.call(void 0, async () => {
|
618
|
-
|
619
|
-
|
620
|
-
|
609
|
+
messageRunime.speak();
|
610
|
+
}, [messageRunime]);
|
611
|
+
const hasSpeakableContent = useMessage((m) => {
|
612
|
+
return (m.role !== "assistant" || m.status.type !== "running") && m.content.some((c) => c.type === "text" && c.text.length > 0);
|
613
|
+
});
|
621
614
|
if (!hasSpeakableContent) return null;
|
622
615
|
return callback;
|
623
616
|
};
|
@@ -625,11 +618,11 @@ var useActionBarSpeak = () => {
|
|
625
618
|
// src/primitive-hooks/actionBar/useActionBarStopSpeaking.tsx
|
626
619
|
|
627
620
|
var useActionBarStopSpeaking = () => {
|
628
|
-
const
|
629
|
-
const isSpeaking =
|
621
|
+
const messageRuntime = useMessageRuntime();
|
622
|
+
const isSpeaking = useMessage((u) => u.speech != null);
|
630
623
|
const callback = _react.useCallback.call(void 0, async () => {
|
631
|
-
|
632
|
-
}, [
|
624
|
+
messageRuntime.stopSpeaking();
|
625
|
+
}, [messageRuntime]);
|
633
626
|
if (!isSpeaking) return null;
|
634
627
|
return callback;
|
635
628
|
};
|
@@ -638,13 +631,9 @@ var useActionBarStopSpeaking = () => {
|
|
638
631
|
|
639
632
|
var useActionBarFeedbackPositive = () => {
|
640
633
|
const messageRuntime = useMessageRuntime();
|
641
|
-
const messageUtilsStore = useMessageUtilsStore();
|
642
634
|
const callback = _react.useCallback.call(void 0, () => {
|
643
|
-
messageRuntime.submitFeedback({
|
644
|
-
|
645
|
-
});
|
646
|
-
messageUtilsStore.getState().setSubmittedFeedback("positive");
|
647
|
-
}, [messageUtilsStore, messageRuntime]);
|
635
|
+
messageRuntime.submitFeedback({ type: "positive" });
|
636
|
+
}, [messageRuntime]);
|
648
637
|
return callback;
|
649
638
|
};
|
650
639
|
|
@@ -652,13 +641,9 @@ var useActionBarFeedbackPositive = () => {
|
|
652
641
|
|
653
642
|
var useActionBarFeedbackNegative = () => {
|
654
643
|
const messageRuntime = useMessageRuntime();
|
655
|
-
const messageUtilsStore = useMessageUtilsStore();
|
656
644
|
const callback = _react.useCallback.call(void 0, () => {
|
657
|
-
messageRuntime.submitFeedback({
|
658
|
-
|
659
|
-
});
|
660
|
-
messageUtilsStore.getState().setSubmittedFeedback("negative");
|
661
|
-
}, [messageUtilsStore, messageRuntime]);
|
645
|
+
messageRuntime.submitFeedback({ type: "negative" });
|
646
|
+
}, [messageRuntime]);
|
662
647
|
return callback;
|
663
648
|
};
|
664
649
|
|
@@ -746,23 +731,21 @@ var useComposerSend = () => {
|
|
746
731
|
|
747
732
|
var useComposerAddAttachment = () => {
|
748
733
|
const disabled = useComposer((c) => !c.isEditing);
|
749
|
-
const
|
750
|
-
const threadRuntimeStore = useThreadComposerStore();
|
734
|
+
const composerRuntime = useComposerRuntime();
|
751
735
|
const callback = _react.useCallback.call(void 0, () => {
|
752
|
-
const { addAttachment } = threadComposerStore.getState();
|
753
|
-
const { attachmentAccept } = threadRuntimeStore.getState();
|
754
736
|
const input = document.createElement("input");
|
755
737
|
input.type = "file";
|
738
|
+
const attachmentAccept = composerRuntime.getAttachmentAccept();
|
756
739
|
if (attachmentAccept !== "*") {
|
757
740
|
input.accept = attachmentAccept;
|
758
741
|
}
|
759
742
|
input.onchange = (e) => {
|
760
743
|
const file = _optionalChain([e, 'access', _7 => _7.target, 'access', _8 => _8.files, 'optionalAccess', _9 => _9[0]]);
|
761
744
|
if (!file) return;
|
762
|
-
addAttachment(file);
|
745
|
+
composerRuntime.addAttachment(file);
|
763
746
|
};
|
764
747
|
input.click();
|
765
|
-
}, [
|
748
|
+
}, [composerRuntime]);
|
766
749
|
if (disabled) return null;
|
767
750
|
return callback;
|
768
751
|
};
|
@@ -809,7 +792,15 @@ var useMessageIf = (props) => {
|
|
809
792
|
const messageUtilsStore = useMessageUtilsStore();
|
810
793
|
return useCombinedStore(
|
811
794
|
[messageStore, messageUtilsStore],
|
812
|
-
({
|
795
|
+
({
|
796
|
+
role,
|
797
|
+
attachments,
|
798
|
+
content,
|
799
|
+
branchCount,
|
800
|
+
isLast,
|
801
|
+
speech,
|
802
|
+
submittedFeedback
|
803
|
+
}, { isCopied, isHovering }) => {
|
813
804
|
if (props.hasBranches === true && branchCount < 2) return false;
|
814
805
|
if (props.user && role !== "user") return false;
|
815
806
|
if (props.assistant && role !== "assistant") return false;
|
@@ -817,13 +808,15 @@ var useMessageIf = (props) => {
|
|
817
808
|
if (props.lastOrHover === true && !isHovering && !isLast) return false;
|
818
809
|
if (props.copied === true && !isCopied) return false;
|
819
810
|
if (props.copied === false && isCopied) return false;
|
820
|
-
if (props.speaking === true &&
|
821
|
-
if (props.speaking === false &&
|
811
|
+
if (props.speaking === true && speech == null) return false;
|
812
|
+
if (props.speaking === false && speech != null) return false;
|
822
813
|
if (props.hasAttachments === true && (role !== "user" || !attachments.length))
|
823
814
|
return false;
|
824
815
|
if (props.hasAttachments === false && role === "user" && !!attachments.length)
|
825
816
|
return false;
|
826
|
-
if (props.
|
817
|
+
if (props.hasContent === true && content.length === 0) return false;
|
818
|
+
if (props.hasContent === false && content.length > 0) return false;
|
819
|
+
if (props.submittedFeedback !== void 0 && (_nullishCoalesce(_optionalChain([submittedFeedback, 'optionalAccess', _10 => _10.type]), () => ( null))) !== props.submittedFeedback)
|
827
820
|
return false;
|
828
821
|
return true;
|
829
822
|
}
|
@@ -919,7 +912,7 @@ var useActionBarFloatStatus = ({
|
|
919
912
|
const autohideEnabled = autohide === "always" || autohide === "not-last" && !m.isLast;
|
920
913
|
if (!autohideEnabled) return "normal" /* Normal */;
|
921
914
|
if (!mu.isHovering) return "hidden" /* Hidden */;
|
922
|
-
if (autohideFloat === "always" || autohideFloat === "single-branch" && m.
|
915
|
+
if (autohideFloat === "always" || autohideFloat === "single-branch" && m.branchCount <= 1)
|
923
916
|
return "floating" /* Floating */;
|
924
917
|
return "normal" /* Normal */;
|
925
918
|
}
|
@@ -963,7 +956,7 @@ var ActionBarPrimitiveCopy = _react.forwardRef.call(void 0, ({ copiedDuration, o
|
|
963
956
|
ref: forwardedRef,
|
964
957
|
disabled: disabled || !callback,
|
965
958
|
onClick: _primitive.composeEventHandlers.call(void 0, onClick, () => {
|
966
|
-
_optionalChain([callback, 'optionalCall',
|
959
|
+
_optionalChain([callback, 'optionalCall', _11 => _11()]);
|
967
960
|
})
|
968
961
|
}
|
969
962
|
);
|
@@ -995,7 +988,7 @@ var createActionButton = (displayName, useActionButton, forwardProps = []) => {
|
|
995
988
|
ref: forwardedRef,
|
996
989
|
disabled: primitiveProps.disabled || !callback,
|
997
990
|
onClick: _primitive.composeEventHandlers.call(void 0, primitiveProps.onClick, () => {
|
998
|
-
_optionalChain([callback, 'optionalCall',
|
991
|
+
_optionalChain([callback, 'optionalCall', _12 => _12()]);
|
999
992
|
})
|
1000
993
|
}
|
1001
994
|
);
|
@@ -1044,7 +1037,7 @@ var ActionBarPrimitiveStopSpeaking = _react.forwardRef.call(void 0, (props, ref)
|
|
1044
1037
|
...props,
|
1045
1038
|
ref,
|
1046
1039
|
onClick: _primitive.composeEventHandlers.call(void 0, props.onClick, () => {
|
1047
|
-
_optionalChain([callback, 'optionalCall',
|
1040
|
+
_optionalChain([callback, 'optionalCall', _13 => _13()]);
|
1048
1041
|
})
|
1049
1042
|
}
|
1050
1043
|
);
|
@@ -1057,8 +1050,8 @@ ActionBarPrimitiveStopSpeaking.displayName = "ActionBarPrimitive.StopSpeaking";
|
|
1057
1050
|
|
1058
1051
|
|
1059
1052
|
var ActionBarPrimitiveFeedbackPositive = _react.forwardRef.call(void 0, ({ onClick, disabled, ...props }, forwardedRef) => {
|
1060
|
-
const isSubmitted =
|
1061
|
-
(u) => u.submittedFeedback === "positive"
|
1053
|
+
const isSubmitted = useMessage(
|
1054
|
+
(u) => _optionalChain([u, 'access', _14 => _14.submittedFeedback, 'optionalAccess', _15 => _15.type]) === "positive"
|
1062
1055
|
);
|
1063
1056
|
const callback = useActionBarFeedbackPositive();
|
1064
1057
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
@@ -1070,7 +1063,7 @@ var ActionBarPrimitiveFeedbackPositive = _react.forwardRef.call(void 0, ({ onCli
|
|
1070
1063
|
ref: forwardedRef,
|
1071
1064
|
disabled: disabled || !callback,
|
1072
1065
|
onClick: _primitive.composeEventHandlers.call(void 0, onClick, () => {
|
1073
|
-
_optionalChain([callback, 'optionalCall',
|
1066
|
+
_optionalChain([callback, 'optionalCall', _16 => _16()]);
|
1074
1067
|
})
|
1075
1068
|
}
|
1076
1069
|
);
|
@@ -1083,8 +1076,8 @@ ActionBarPrimitiveFeedbackPositive.displayName = "ActionBarPrimitive.FeedbackPos
|
|
1083
1076
|
|
1084
1077
|
|
1085
1078
|
var ActionBarPrimitiveFeedbackNegative = _react.forwardRef.call(void 0, ({ onClick, disabled, ...props }, forwardedRef) => {
|
1086
|
-
const isSubmitted =
|
1087
|
-
(u) => u.submittedFeedback === "negative"
|
1079
|
+
const isSubmitted = useMessage(
|
1080
|
+
(u) => _optionalChain([u, 'access', _17 => _17.submittedFeedback, 'optionalAccess', _18 => _18.type]) === "negative"
|
1088
1081
|
);
|
1089
1082
|
const callback = useActionBarFeedbackNegative();
|
1090
1083
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
@@ -1096,7 +1089,7 @@ var ActionBarPrimitiveFeedbackNegative = _react.forwardRef.call(void 0, ({ onCli
|
|
1096
1089
|
ref: forwardedRef,
|
1097
1090
|
disabled: disabled || !callback,
|
1098
1091
|
onClick: _primitive.composeEventHandlers.call(void 0, onClick, () => {
|
1099
|
-
_optionalChain([callback, 'optionalCall',
|
1092
|
+
_optionalChain([callback, 'optionalCall', _19 => _19()]);
|
1100
1093
|
})
|
1101
1094
|
}
|
1102
1095
|
);
|
@@ -1256,7 +1249,7 @@ var AttachmentContext = _react.createContext.call(void 0,
|
|
1256
1249
|
);
|
1257
1250
|
function useAttachmentContext(options) {
|
1258
1251
|
const context = _react.useContext.call(void 0, AttachmentContext);
|
1259
|
-
if (!_optionalChain([options, 'optionalAccess',
|
1252
|
+
if (!_optionalChain([options, 'optionalAccess', _20 => _20.optional]) && !context)
|
1260
1253
|
throw new Error(
|
1261
1254
|
"This component must be used within a ComposerPrimitive.Attachments or MessagePrimitive.Attachments component."
|
1262
1255
|
);
|
@@ -1308,9 +1301,9 @@ var { useAttachment: useMessageAttachment } = createContextStoreHook(
|
|
1308
1301
|
// src/primitives/attachment/AttachmentThumb.tsx
|
1309
1302
|
|
1310
1303
|
|
1311
|
-
var AttachmentPrimitiveThumb = _react.forwardRef.call(void 0, () => {
|
1304
|
+
var AttachmentPrimitiveThumb = _react.forwardRef.call(void 0, (props, ref) => {
|
1312
1305
|
const ext = useAttachment((a) => a.name.split(".").pop());
|
1313
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _reactprimitive.Primitive.div, { children: [
|
1306
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _reactprimitive.Primitive.div, { ...props, ref, children: [
|
1314
1307
|
".",
|
1315
1308
|
ext
|
1316
1309
|
] });
|
@@ -1347,7 +1340,7 @@ _chunkPZ5AY32Cjs.__export.call(void 0, branchPicker_exports, {
|
|
1347
1340
|
Count: () => BranchPickerPrimitiveCount,
|
1348
1341
|
Next: () => BranchPickerPrimitiveNext,
|
1349
1342
|
Number: () => BranchPickerPrimitiveNumber,
|
1350
|
-
Previous: () =>
|
1343
|
+
Previous: () => BranchPickerPrimitivePrevious,
|
1351
1344
|
Root: () => BranchPickerPrimitiveRoot
|
1352
1345
|
});
|
1353
1346
|
|
@@ -1358,7 +1351,7 @@ var BranchPickerPrimitiveNext = createActionButton(
|
|
1358
1351
|
);
|
1359
1352
|
|
1360
1353
|
// src/primitives/branchPicker/BranchPickerPrevious.tsx
|
1361
|
-
var
|
1354
|
+
var BranchPickerPrimitivePrevious = createActionButton(
|
1362
1355
|
"BranchPickerPrimitive.Previous",
|
1363
1356
|
useBranchPickerPrevious
|
1364
1357
|
);
|
@@ -1537,7 +1530,7 @@ var withSmoothContextProvider = (Component) => {
|
|
1537
1530
|
};
|
1538
1531
|
function useSmoothContext(options) {
|
1539
1532
|
const context = _react.useContext.call(void 0, SmoothContext);
|
1540
|
-
if (!_optionalChain([options, 'optionalAccess',
|
1533
|
+
if (!_optionalChain([options, 'optionalAccess', _21 => _21.optional]) && !context)
|
1541
1534
|
throw new Error(
|
1542
1535
|
"This component must be used within a SmoothContextProvider."
|
1543
1536
|
);
|
@@ -1747,7 +1740,7 @@ var BaseSubject = (_class2 = class {constructor() { _class2.prototype.__init5.ca
|
|
1747
1740
|
if (this._connection) return;
|
1748
1741
|
this._connection = this._connect();
|
1749
1742
|
} else {
|
1750
|
-
_optionalChain([this, 'access',
|
1743
|
+
_optionalChain([this, 'access', _22 => _22._connection, 'optionalCall', _23 => _23()]);
|
1751
1744
|
this._connection = void 0;
|
1752
1745
|
}
|
1753
1746
|
}
|
@@ -1846,40 +1839,38 @@ var EMPTY_ARRAY = Object.freeze([]);
|
|
1846
1839
|
var getThreadComposerState = (runtime, focus, onFocus) => {
|
1847
1840
|
return Object.freeze({
|
1848
1841
|
type: "thread",
|
1849
|
-
isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1850
|
-
canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1851
|
-
isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1852
|
-
text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1853
|
-
attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1854
|
-
|
1855
|
-
|
1856
|
-
|
1857
|
-
setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _29 => _29.setText, 'access', _30 => _30.bind, 'call', _31 => _31(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1842
|
+
isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _24 => _24.isEditing]), () => ( false)),
|
1843
|
+
canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _25 => _25.canCancel]), () => ( false)),
|
1844
|
+
isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _26 => _26.isEmpty]), () => ( true)),
|
1845
|
+
text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _27 => _27.text]), () => ( "")),
|
1846
|
+
attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _28 => _28.attachments]), () => ( EMPTY_ARRAY)),
|
1847
|
+
value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _29 => _29.text]), () => ( "")),
|
1848
|
+
setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _30 => _30.setText, 'access', _31 => _31.bind, 'call', _32 => _32(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1849
|
+
setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _33 => _33.setText, 'access', _34 => _34.bind, 'call', _35 => _35(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1858
1850
|
// edit: beginEdit,
|
1859
|
-
send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1860
|
-
cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1851
|
+
send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _36 => _36.send, 'access', _37 => _37.bind, 'call', _38 => _38(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1852
|
+
cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _39 => _39.cancel, 'access', _40 => _40.bind, 'call', _41 => _41(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1861
1853
|
focus,
|
1862
1854
|
onFocus,
|
1863
|
-
reset: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1864
|
-
addAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1865
|
-
removeAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1855
|
+
reset: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _42 => _42.reset, 'access', _43 => _43.bind, 'call', _44 => _44(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1856
|
+
addAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _45 => _45.addAttachment, 'access', _46 => _46.bind, 'call', _47 => _47(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1857
|
+
removeAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _48 => _48.removeAttachment, 'access', _49 => _49.bind, 'call', _50 => _50(runtime)]), () => ( METHOD_NOT_SUPPORTED))
|
1866
1858
|
});
|
1867
1859
|
};
|
1868
1860
|
var getEditComposerState = (runtime, beginEdit) => {
|
1869
1861
|
return Object.freeze({
|
1870
1862
|
type: "edit",
|
1871
|
-
isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1872
|
-
canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1873
|
-
isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1874
|
-
text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1875
|
-
attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1876
|
-
|
1877
|
-
|
1878
|
-
|
1879
|
-
setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _57 => _57.setText, 'access', _58 => _58.bind, 'call', _59 => _59(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1863
|
+
isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _51 => _51.isEditing]), () => ( false)),
|
1864
|
+
canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _52 => _52.canCancel]), () => ( false)),
|
1865
|
+
isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _53 => _53.isEmpty]), () => ( true)),
|
1866
|
+
text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _54 => _54.text]), () => ( "")),
|
1867
|
+
attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _55 => _55.attachments]), () => ( EMPTY_ARRAY)),
|
1868
|
+
value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _56 => _56.text]), () => ( "")),
|
1869
|
+
setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _57 => _57.setText, 'access', _58 => _58.bind, 'call', _59 => _59(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1870
|
+
setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _60 => _60.setText, 'access', _61 => _61.bind, 'call', _62 => _62(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1880
1871
|
edit: beginEdit,
|
1881
|
-
send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1882
|
-
cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1872
|
+
send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _63 => _63.send, 'access', _64 => _64.bind, 'call', _65 => _65(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1873
|
+
cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _66 => _66.cancel, 'access', _67 => _67.bind, 'call', _68 => _68(runtime)]), () => ( METHOD_NOT_SUPPORTED))
|
1883
1874
|
});
|
1884
1875
|
};
|
1885
1876
|
var ComposerRuntimeImpl = class {
|
@@ -1910,12 +1901,6 @@ var ComposerRuntimeImpl = class {
|
|
1910
1901
|
get text() {
|
1911
1902
|
return this.getState().text;
|
1912
1903
|
}
|
1913
|
-
/**
|
1914
|
-
* @deprecated Use `getState().attachmentAccept` instead. This will be removed in 0.6.0.
|
1915
|
-
*/
|
1916
|
-
get attachmentAccept() {
|
1917
|
-
return this.getState().attachmentAccept;
|
1918
|
-
}
|
1919
1904
|
/**
|
1920
1905
|
* @deprecated Use `getState().attachments` instead. This will be removed in 0.6.0.
|
1921
1906
|
*/
|
@@ -1970,6 +1955,11 @@ var ComposerRuntimeImpl = class {
|
|
1970
1955
|
subscribe(callback) {
|
1971
1956
|
return this._core.subscribe(callback);
|
1972
1957
|
}
|
1958
|
+
getAttachmentAccept() {
|
1959
|
+
const core = this._core.getState();
|
1960
|
+
if (!core) throw new Error("Composer is not available");
|
1961
|
+
return core.getAttachmentAccept();
|
1962
|
+
}
|
1973
1963
|
};
|
1974
1964
|
var ThreadComposerRuntimeImpl = (_class5 = class extends ComposerRuntimeImpl {
|
1975
1965
|
get type() {
|
@@ -1992,7 +1982,7 @@ var ThreadComposerRuntimeImpl = (_class5 = class extends ComposerRuntimeImpl {
|
|
1992
1982
|
this._getState = stateBinding.getState.bind(stateBinding);
|
1993
1983
|
}
|
1994
1984
|
get attachments() {
|
1995
|
-
return _nullishCoalesce(_optionalChain([this, 'access',
|
1985
|
+
return _nullishCoalesce(_optionalChain([this, 'access', _69 => _69.getState, 'call', _70 => _70(), 'optionalAccess', _71 => _71.attachments]), () => ( EMPTY_ARRAY));
|
1996
1986
|
}
|
1997
1987
|
getState() {
|
1998
1988
|
return this._getState();
|
@@ -2094,19 +2084,19 @@ var NestedSubscriptionSubject = class extends BaseSubject {
|
|
2094
2084
|
this.notifySubscribers();
|
2095
2085
|
};
|
2096
2086
|
let lastState = this.binding.getState();
|
2097
|
-
let innerUnsubscribe = _optionalChain([lastState, 'optionalAccess',
|
2087
|
+
let innerUnsubscribe = _optionalChain([lastState, 'optionalAccess', _72 => _72.subscribe, 'call', _73 => _73(callback)]);
|
2098
2088
|
const onRuntimeUpdate = () => {
|
2099
2089
|
const newState = this.binding.getState();
|
2100
2090
|
if (newState === lastState) return;
|
2101
2091
|
lastState = newState;
|
2102
|
-
_optionalChain([innerUnsubscribe, 'optionalCall',
|
2103
|
-
innerUnsubscribe = _optionalChain([this, 'access',
|
2092
|
+
_optionalChain([innerUnsubscribe, 'optionalCall', _74 => _74()]);
|
2093
|
+
innerUnsubscribe = _optionalChain([this, 'access', _75 => _75.binding, 'access', _76 => _76.getState, 'call', _77 => _77(), 'optionalAccess', _78 => _78.subscribe, 'call', _79 => _79(callback)]);
|
2104
2094
|
callback();
|
2105
2095
|
};
|
2106
2096
|
const outerUnsubscribe = this.binding.subscribe(onRuntimeUpdate);
|
2107
2097
|
return () => {
|
2108
|
-
_optionalChain([outerUnsubscribe, 'optionalCall',
|
2109
|
-
_optionalChain([innerUnsubscribe, 'optionalCall',
|
2098
|
+
_optionalChain([outerUnsubscribe, 'optionalCall', _80 => _80()]);
|
2099
|
+
_optionalChain([innerUnsubscribe, 'optionalCall', _81 => _81()]);
|
2110
2100
|
};
|
2111
2101
|
}
|
2112
2102
|
};
|
@@ -2172,6 +2162,16 @@ var MessageRuntimeImpl = (_class6 = class {
|
|
2172
2162
|
if (!state) throw new Error("Message is not available");
|
2173
2163
|
return this._threadBinding.getState().speak(state.id);
|
2174
2164
|
}
|
2165
|
+
stopSpeaking() {
|
2166
|
+
const state = this._core.getState();
|
2167
|
+
if (!state) throw new Error("Message is not available");
|
2168
|
+
const thread = this._threadBinding.getState();
|
2169
|
+
if (_optionalChain([thread, 'access', _82 => _82.speech, 'optionalAccess', _83 => _83.messageId]) === state.id) {
|
2170
|
+
this._threadBinding.getState().stopSpeaking();
|
2171
|
+
} else {
|
2172
|
+
throw new Error("Message is not being spoken");
|
2173
|
+
}
|
2174
|
+
}
|
2175
2175
|
submitFeedback({ type }) {
|
2176
2176
|
const state = this._core.getState();
|
2177
2177
|
if (!state) throw new Error("Message is not available");
|
@@ -2223,7 +2223,7 @@ var MessageRuntimeImpl = (_class6 = class {
|
|
2223
2223
|
new ShallowMemoizeSubject({
|
2224
2224
|
getState: () => {
|
2225
2225
|
const attachments = this.getState().attachments;
|
2226
|
-
const attachment = _optionalChain([attachments, 'optionalAccess',
|
2226
|
+
const attachment = _optionalChain([attachments, 'optionalAccess', _84 => _84[idx]]);
|
2227
2227
|
if (!attachment) return SKIP_UPDATE;
|
2228
2228
|
return {
|
2229
2229
|
...attachment,
|
@@ -2312,7 +2312,7 @@ var MessageContentPartImpl = ({
|
|
2312
2312
|
};
|
2313
2313
|
var MessageContentPart = _react.memo.call(void 0,
|
2314
2314
|
MessageContentPartImpl,
|
2315
|
-
(prev, next) => prev.partIndex === next.partIndex && _optionalChain([prev, 'access',
|
2315
|
+
(prev, next) => prev.partIndex === next.partIndex && _optionalChain([prev, 'access', _85 => _85.components, 'optionalAccess', _86 => _86.Text]) === _optionalChain([next, 'access', _87 => _87.components, 'optionalAccess', _88 => _88.Text]) && _optionalChain([prev, 'access', _89 => _89.components, 'optionalAccess', _90 => _90.Image]) === _optionalChain([next, 'access', _91 => _91.components, 'optionalAccess', _92 => _92.Image]) && _optionalChain([prev, 'access', _93 => _93.components, 'optionalAccess', _94 => _94.UI]) === _optionalChain([next, 'access', _95 => _95.components, 'optionalAccess', _96 => _96.UI]) && _optionalChain([prev, 'access', _97 => _97.components, 'optionalAccess', _98 => _98.tools]) === _optionalChain([next, 'access', _99 => _99.components, 'optionalAccess', _100 => _100.tools])
|
2316
2316
|
);
|
2317
2317
|
var MessagePrimitiveContent = ({
|
2318
2318
|
components
|
@@ -2378,11 +2378,11 @@ var getComponent = (components, attachment) => {
|
|
2378
2378
|
const type = attachment.type;
|
2379
2379
|
switch (type) {
|
2380
2380
|
case "image":
|
2381
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2381
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _101 => _101.Image]), () => ( _optionalChain([components, 'optionalAccess', _102 => _102.Attachment])));
|
2382
2382
|
case "document":
|
2383
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2383
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _103 => _103.Document]), () => ( _optionalChain([components, 'optionalAccess', _104 => _104.Attachment])));
|
2384
2384
|
case "file":
|
2385
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2385
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _105 => _105.File]), () => ( _optionalChain([components, 'optionalAccess', _106 => _106.Attachment])));
|
2386
2386
|
default:
|
2387
2387
|
const _exhaustiveCheck = type;
|
2388
2388
|
throw new Error(`Unknown attachment type: ${_exhaustiveCheck}`);
|
@@ -2405,7 +2405,7 @@ var MessageAttachmentImpl = ({ components, attachmentIndex }) => {
|
|
2405
2405
|
};
|
2406
2406
|
var MessageAttachment = _react.memo.call(void 0,
|
2407
2407
|
MessageAttachmentImpl,
|
2408
|
-
(prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access',
|
2408
|
+
(prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access', _107 => _107.components, 'optionalAccess', _108 => _108.Image]) === _optionalChain([next, 'access', _109 => _109.components, 'optionalAccess', _110 => _110.Image]) && _optionalChain([prev, 'access', _111 => _111.components, 'optionalAccess', _112 => _112.Document]) === _optionalChain([next, 'access', _113 => _113.components, 'optionalAccess', _114 => _114.Document]) && _optionalChain([prev, 'access', _115 => _115.components, 'optionalAccess', _116 => _116.File]) === _optionalChain([next, 'access', _117 => _117.components, 'optionalAccess', _118 => _118.File]) && _optionalChain([prev, 'access', _119 => _119.components, 'optionalAccess', _120 => _120.Attachment]) === _optionalChain([next, 'access', _121 => _121.components, 'optionalAccess', _122 => _122.Attachment])
|
2409
2409
|
);
|
2410
2410
|
var MessagePrimitiveAttachments = ({ components }) => {
|
2411
2411
|
const attachmentsCount = useMessage(({ message }) => {
|
@@ -2516,7 +2516,7 @@ var ComposerPrimitiveInput = _react.forwardRef.call(void 0,
|
|
2516
2516
|
const { isRunning } = threadStore.getState();
|
2517
2517
|
if (!isRunning) {
|
2518
2518
|
e.preventDefault();
|
2519
|
-
_optionalChain([textareaRef, 'access',
|
2519
|
+
_optionalChain([textareaRef, 'access', _123 => _123.current, 'optionalAccess', _124 => _124.closest, 'call', _125 => _125("form"), 'optionalAccess', _126 => _126.requestSubmit, 'call', _127 => _127()]);
|
2520
2520
|
}
|
2521
2521
|
}
|
2522
2522
|
};
|
@@ -2581,11 +2581,11 @@ var getComponent2 = (components, attachment) => {
|
|
2581
2581
|
const type = attachment.type;
|
2582
2582
|
switch (type) {
|
2583
2583
|
case "image":
|
2584
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2584
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _128 => _128.Image]), () => ( _optionalChain([components, 'optionalAccess', _129 => _129.Attachment])));
|
2585
2585
|
case "document":
|
2586
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2586
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _130 => _130.Document]), () => ( _optionalChain([components, 'optionalAccess', _131 => _131.Attachment])));
|
2587
2587
|
case "file":
|
2588
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2588
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _132 => _132.File]), () => ( _optionalChain([components, 'optionalAccess', _133 => _133.Attachment])));
|
2589
2589
|
default:
|
2590
2590
|
const _exhaustiveCheck = type;
|
2591
2591
|
throw new Error(`Unknown attachment type: ${_exhaustiveCheck}`);
|
@@ -2608,7 +2608,7 @@ var ComposerAttachmentImpl = ({ components, attachmentIndex }) => {
|
|
2608
2608
|
};
|
2609
2609
|
var ComposerAttachment = _react.memo.call(void 0,
|
2610
2610
|
ComposerAttachmentImpl,
|
2611
|
-
(prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access',
|
2611
|
+
(prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access', _134 => _134.components, 'optionalAccess', _135 => _135.Image]) === _optionalChain([next, 'access', _136 => _136.components, 'optionalAccess', _137 => _137.Image]) && _optionalChain([prev, 'access', _138 => _138.components, 'optionalAccess', _139 => _139.Document]) === _optionalChain([next, 'access', _140 => _140.components, 'optionalAccess', _141 => _141.Document]) && _optionalChain([prev, 'access', _142 => _142.components, 'optionalAccess', _143 => _143.File]) === _optionalChain([next, 'access', _144 => _144.components, 'optionalAccess', _145 => _145.File]) && _optionalChain([prev, 'access', _146 => _146.components, 'optionalAccess', _147 => _147.Attachment]) === _optionalChain([next, 'access', _148 => _148.components, 'optionalAccess', _149 => _149.Attachment])
|
2612
2612
|
);
|
2613
2613
|
var ComposerPrimitiveAttachments = ({ components }) => {
|
2614
2614
|
const attachmentsCount = useComposer((s) => s.attachments.length);
|
@@ -2816,7 +2816,6 @@ ThreadPrimitiveViewport.displayName = "ThreadPrimitive.Viewport";
|
|
2816
2816
|
// src/context/stores/MessageUtils.ts
|
2817
2817
|
|
2818
2818
|
var makeMessageUtilsStore = () => _zustand.create.call(void 0, (set) => {
|
2819
|
-
let utterance = null;
|
2820
2819
|
return {
|
2821
2820
|
isCopied: false,
|
2822
2821
|
setIsCopied: (value) => {
|
@@ -2825,21 +2824,6 @@ var makeMessageUtilsStore = () => _zustand.create.call(void 0, (set) => {
|
|
2825
2824
|
isHovering: false,
|
2826
2825
|
setIsHovering: (value) => {
|
2827
2826
|
set({ isHovering: value });
|
2828
|
-
},
|
2829
|
-
isSpeaking: false,
|
2830
|
-
stopSpeaking: () => {
|
2831
|
-
_optionalChain([utterance, 'optionalAccess', _145 => _145.cancel, 'call', _146 => _146()]);
|
2832
|
-
},
|
2833
|
-
addUtterance: (utt) => {
|
2834
|
-
utterance = utt;
|
2835
|
-
set({ isSpeaking: true });
|
2836
|
-
utt.onEnd(() => {
|
2837
|
-
set({ isSpeaking: false });
|
2838
|
-
});
|
2839
|
-
},
|
2840
|
-
submittedFeedback: null,
|
2841
|
-
setSubmittedFeedback: (feedback) => {
|
2842
|
-
set({ submittedFeedback: feedback });
|
2843
2827
|
}
|
2844
2828
|
};
|
2845
2829
|
});
|
@@ -2975,7 +2959,7 @@ var subscribeToMainThread = (runtime, callback) => {
|
|
2975
2959
|
let first = true;
|
2976
2960
|
let cleanup;
|
2977
2961
|
const inner = () => {
|
2978
|
-
_optionalChain([cleanup, 'optionalCall',
|
2962
|
+
_optionalChain([cleanup, 'optionalCall', _150 => _150()]);
|
2979
2963
|
cleanup = runtime.thread.subscribe(callback);
|
2980
2964
|
if (!first) {
|
2981
2965
|
callback();
|
@@ -2986,7 +2970,7 @@ var subscribeToMainThread = (runtime, callback) => {
|
|
2986
2970
|
inner();
|
2987
2971
|
return () => {
|
2988
2972
|
unsubscribe();
|
2989
|
-
_optionalChain([cleanup, 'optionalCall',
|
2973
|
+
_optionalChain([cleanup, 'optionalCall', _151 => _151()]);
|
2990
2974
|
};
|
2991
2975
|
};
|
2992
2976
|
|
@@ -3034,10 +3018,12 @@ _chunkPZ5AY32Cjs.__export.call(void 0, internal_exports, {
|
|
3034
3018
|
|
3035
3019
|
// src/runtimes/composer/BaseComposerRuntimeCore.tsx
|
3036
3020
|
var isAttachmentComplete = (a) => a.status.type === "complete";
|
3037
|
-
var BaseComposerRuntimeCore = (_class8 = class {constructor() { _class8.prototype.__init13.call(this);_class8.prototype.__init14.call(this);_class8.prototype.__init15.call(this);_class8.prototype.__init16.call(this);
|
3021
|
+
var BaseComposerRuntimeCore = (_class8 = class {constructor() { _class8.prototype.__init13.call(this);_class8.prototype.__init14.call(this);_class8.prototype.__init15.call(this);_class8.prototype.__init16.call(this); }
|
3038
3022
|
__init13() {this.isEditing = true}
|
3039
|
-
|
3040
|
-
|
3023
|
+
getAttachmentAccept() {
|
3024
|
+
return _nullishCoalesce(_optionalChain([this, 'access', _152 => _152.getAttachmentAdapter, 'call', _153 => _153(), 'optionalAccess', _154 => _154.accept]), () => ( "*"));
|
3025
|
+
}
|
3026
|
+
__init14() {this._attachments = []}
|
3041
3027
|
set attachments(value) {
|
3042
3028
|
this._attachments = value;
|
3043
3029
|
this.notifySubscribers();
|
@@ -3048,7 +3034,7 @@ var BaseComposerRuntimeCore = (_class8 = class {constructor() { _class8.prototyp
|
|
3048
3034
|
get isEmpty() {
|
3049
3035
|
return !this.text.trim() && !this.attachments.length;
|
3050
3036
|
}
|
3051
|
-
|
3037
|
+
__init15() {this._text = ""}
|
3052
3038
|
get text() {
|
3053
3039
|
return this._text;
|
3054
3040
|
}
|
@@ -3062,11 +3048,12 @@ var BaseComposerRuntimeCore = (_class8 = class {constructor() { _class8.prototyp
|
|
3062
3048
|
this.notifySubscribers();
|
3063
3049
|
}
|
3064
3050
|
async send() {
|
3065
|
-
const
|
3051
|
+
const adapter = this.getAttachmentAdapter();
|
3052
|
+
const attachments = adapter && this.attachments.length > 0 ? await Promise.all(
|
3066
3053
|
this.attachments.map(async (a) => {
|
3067
3054
|
if (isAttachmentComplete(a)) return a;
|
3068
|
-
const result = await
|
3069
|
-
if (_optionalChain([result, 'access',
|
3055
|
+
const result = await adapter.send(a);
|
3056
|
+
if (_optionalChain([result, 'access', _155 => _155.status, 'optionalAccess', _156 => _156.type]) !== "complete") {
|
3070
3057
|
result.status = { type: "complete" };
|
3071
3058
|
}
|
3072
3059
|
return result;
|
@@ -3080,19 +3067,10 @@ var BaseComposerRuntimeCore = (_class8 = class {constructor() { _class8.prototyp
|
|
3080
3067
|
this.reset();
|
3081
3068
|
this.handleSend(message);
|
3082
3069
|
}
|
3083
|
-
|
3084
|
-
setAttachmentAdapter(adapter) {
|
3085
|
-
this._attachmentAdapter = adapter;
|
3086
|
-
const accept = _nullishCoalesce(_optionalChain([adapter, 'optionalAccess', _151 => _151.accept]), () => ( "*"));
|
3087
|
-
if (this.attachmentAccept !== accept) {
|
3088
|
-
this.attachmentAccept = accept;
|
3089
|
-
this.notifySubscribers();
|
3090
|
-
}
|
3091
|
-
}
|
3092
3070
|
async addAttachment(file) {
|
3093
|
-
|
3094
|
-
|
3095
|
-
const attachment = await
|
3071
|
+
const adapter = this.getAttachmentAdapter();
|
3072
|
+
if (!adapter) throw new Error("Attachments are not supported");
|
3073
|
+
const attachment = await adapter.add({ file });
|
3096
3074
|
if (attachment.status === void 0) {
|
3097
3075
|
attachment.status = { type: "requires-action", reason: "composer-send" };
|
3098
3076
|
}
|
@@ -3100,16 +3078,16 @@ var BaseComposerRuntimeCore = (_class8 = class {constructor() { _class8.prototyp
|
|
3100
3078
|
this.notifySubscribers();
|
3101
3079
|
}
|
3102
3080
|
async removeAttachment(attachmentId) {
|
3103
|
-
|
3104
|
-
|
3081
|
+
const adapter = this.getAttachmentAdapter();
|
3082
|
+
if (!adapter) throw new Error("Attachments are not supported");
|
3105
3083
|
const index = this._attachments.findIndex((a) => a.id === attachmentId);
|
3106
3084
|
if (index === -1) throw new Error("Attachment not found");
|
3107
3085
|
const attachment = this._attachments[index];
|
3108
|
-
await
|
3086
|
+
await adapter.remove(attachment);
|
3109
3087
|
this._attachments = this._attachments.toSpliced(index, 1);
|
3110
3088
|
this.notifySubscribers();
|
3111
3089
|
}
|
3112
|
-
|
3090
|
+
__init16() {this._subscriptions = /* @__PURE__ */ new Set()}
|
3113
3091
|
notifySubscribers() {
|
3114
3092
|
for (const callback of this._subscriptions) callback();
|
3115
3093
|
}
|
@@ -3122,17 +3100,20 @@ var BaseComposerRuntimeCore = (_class8 = class {constructor() { _class8.prototyp
|
|
3122
3100
|
// src/runtimes/composer/DefaultThreadComposerRuntimeCore.tsx
|
3123
3101
|
var DefaultThreadComposerRuntimeCore = (_class9 = class extends BaseComposerRuntimeCore {
|
3124
3102
|
constructor(runtime) {
|
3125
|
-
super();_class9.prototype.
|
3103
|
+
super();_class9.prototype.__init17.call(this);;
|
3126
3104
|
this.runtime = runtime;
|
3127
3105
|
this.connect();
|
3128
3106
|
}
|
3129
|
-
|
3107
|
+
__init17() {this._canCancel = false}
|
3130
3108
|
get canCancel() {
|
3131
3109
|
return this._canCancel;
|
3132
3110
|
}
|
3133
3111
|
get attachments() {
|
3134
3112
|
return super.attachments;
|
3135
3113
|
}
|
3114
|
+
getAttachmentAdapter() {
|
3115
|
+
return _optionalChain([this, 'access', _157 => _157.runtime, 'access', _158 => _158.adapters, 'optionalAccess', _159 => _159.attachments]);
|
3116
|
+
}
|
3136
3117
|
connect() {
|
3137
3118
|
return this.runtime.subscribe(() => {
|
3138
3119
|
if (this.canCancel !== this.runtime.capabilities.cancel) {
|
@@ -3144,7 +3125,7 @@ var DefaultThreadComposerRuntimeCore = (_class9 = class extends BaseComposerRunt
|
|
3144
3125
|
async handleSend(message) {
|
3145
3126
|
this.runtime.append({
|
3146
3127
|
...message,
|
3147
|
-
parentId: _nullishCoalesce(_optionalChain([this, 'access',
|
3128
|
+
parentId: _nullishCoalesce(_optionalChain([this, 'access', _160 => _160.runtime, 'access', _161 => _161.messages, 'access', _162 => _162.at, 'call', _163 => _163(-1), 'optionalAccess', _164 => _164.id]), () => ( null))
|
3148
3129
|
});
|
3149
3130
|
}
|
3150
3131
|
async cancel() {
|
@@ -3153,8 +3134,8 @@ var DefaultThreadComposerRuntimeCore = (_class9 = class extends BaseComposerRunt
|
|
3153
3134
|
}, _class9);
|
3154
3135
|
|
3155
3136
|
// src/utils/ProxyConfigProvider.ts
|
3156
|
-
var ProxyConfigProvider = (_class10 = class {constructor() { _class10.prototype.
|
3157
|
-
|
3137
|
+
var ProxyConfigProvider = (_class10 = class {constructor() { _class10.prototype.__init18.call(this); }
|
3138
|
+
__init18() {this._providers = /* @__PURE__ */ new Set()}
|
3158
3139
|
getModelConfig() {
|
3159
3140
|
return _chunkKVXP3Q6Kjs.mergeModelConfigs.call(void 0, this._providers);
|
3160
3141
|
}
|
@@ -3231,11 +3212,11 @@ var findHead = (message) => {
|
|
3231
3212
|
if ("current" in message) return message;
|
3232
3213
|
return null;
|
3233
3214
|
};
|
3234
|
-
var MessageRepository = (_class11 = class {constructor() { _class11.prototype.
|
3235
|
-
|
3215
|
+
var MessageRepository = (_class11 = class {constructor() { _class11.prototype.__init19.call(this);_class11.prototype.__init20.call(this);_class11.prototype.__init21.call(this); }
|
3216
|
+
__init19() {this.messages = /* @__PURE__ */ new Map()}
|
3236
3217
|
// message_id -> item
|
3237
|
-
|
3238
|
-
|
3218
|
+
__init20() {this.head = null}
|
3219
|
+
__init21() {this.root = {
|
3239
3220
|
children: [],
|
3240
3221
|
next: null
|
3241
3222
|
}}
|
@@ -3277,7 +3258,7 @@ var MessageRepository = (_class11 = class {constructor() { _class11.prototype.__
|
|
3277
3258
|
}
|
3278
3259
|
}
|
3279
3260
|
getMessages() {
|
3280
|
-
const messages2 = new Array(_nullishCoalesce(_optionalChain([this, 'access',
|
3261
|
+
const messages2 = new Array(_nullishCoalesce(_optionalChain([this, 'access', _165 => _165.head, 'optionalAccess', _166 => _166.level]), () => ( 0)));
|
3281
3262
|
for (let current = this.head; current; current = current.prev) {
|
3282
3263
|
messages2[current.level] = current.current;
|
3283
3264
|
}
|
@@ -3315,7 +3296,7 @@ var MessageRepository = (_class11 = class {constructor() { _class11.prototype.__
|
|
3315
3296
|
"MessageRepository(updateMessage): Message not found. This is likely an internal bug in assistant-ui."
|
3316
3297
|
);
|
3317
3298
|
return {
|
3318
|
-
parentId: _nullishCoalesce(_optionalChain([message, 'access',
|
3299
|
+
parentId: _nullishCoalesce(_optionalChain([message, 'access', _167 => _167.prev, 'optionalAccess', _168 => _168.current, 'access', _169 => _169.id]), () => ( null)),
|
3319
3300
|
message: message.current
|
3320
3301
|
};
|
3321
3302
|
}
|
@@ -3399,11 +3380,11 @@ var MessageRepository = (_class11 = class {constructor() { _class11.prototype.__
|
|
3399
3380
|
for (const [, message] of this.messages) {
|
3400
3381
|
exportItems.push({
|
3401
3382
|
message: message.current,
|
3402
|
-
parentId: _nullishCoalesce(_optionalChain([message, 'access',
|
3383
|
+
parentId: _nullishCoalesce(_optionalChain([message, 'access', _170 => _170.prev, 'optionalAccess', _171 => _171.current, 'access', _172 => _172.id]), () => ( null))
|
3403
3384
|
});
|
3404
3385
|
}
|
3405
3386
|
return {
|
3406
|
-
headId: _nullishCoalesce(_optionalChain([this, 'access',
|
3387
|
+
headId: _nullishCoalesce(_optionalChain([this, 'access', _173 => _173.head, 'optionalAccess', _174 => _174.current, 'access', _175 => _175.id]), () => ( null)),
|
3407
3388
|
messages: exportItems
|
3408
3389
|
};
|
3409
3390
|
}
|
@@ -3411,7 +3392,7 @@ var MessageRepository = (_class11 = class {constructor() { _class11.prototype.__
|
|
3411
3392
|
for (const { message, parentId } of messages2) {
|
3412
3393
|
this.addOrUpdateMessage(parentId, message);
|
3413
3394
|
}
|
3414
|
-
this.resetHead(_nullishCoalesce(_nullishCoalesce(headId, () => ( _optionalChain([messages2, 'access',
|
3395
|
+
this.resetHead(_nullishCoalesce(_nullishCoalesce(headId, () => ( _optionalChain([messages2, 'access', _176 => _176.at, 'call', _177 => _177(-1), 'optionalAccess', _178 => _178.message, 'access', _179 => _179.id]))), () => ( null)));
|
3415
3396
|
}
|
3416
3397
|
}, _class11);
|
3417
3398
|
|
@@ -3511,41 +3492,11 @@ var TooltipIconButton = _react.forwardRef.call(void 0, ({ children, tooltip, sid
|
|
3511
3492
|
});
|
3512
3493
|
TooltipIconButton.displayName = "TooltipIconButton";
|
3513
3494
|
|
3514
|
-
// src/api/AssistantRuntime.ts
|
3515
|
-
var AssistantRuntimeImpl = class {
|
3516
|
-
constructor(_core, CustomThreadRuntime) {
|
3517
|
-
this._core = _core;
|
3518
|
-
this.thread = new CustomThreadRuntime(
|
3519
|
-
new NestedSubscriptionSubject({
|
3520
|
-
getState: () => this._core.thread,
|
3521
|
-
subscribe: (callback) => this._core.subscribe(callback)
|
3522
|
-
})
|
3523
|
-
);
|
3524
|
-
}
|
3525
|
-
|
3526
|
-
switchToNewThread() {
|
3527
|
-
return this._core.switchToNewThread();
|
3528
|
-
}
|
3529
|
-
switchToThread(threadId) {
|
3530
|
-
return this._core.switchToThread(threadId);
|
3531
|
-
}
|
3532
|
-
registerModelConfigProvider(provider) {
|
3533
|
-
return this._core.registerModelConfigProvider(provider);
|
3534
|
-
}
|
3535
|
-
// TODO events for thread switching
|
3536
|
-
/**
|
3537
|
-
* @deprecated Thread is now static and never gets updated. This will be removed in 0.6.0.
|
3538
|
-
*/
|
3539
|
-
subscribe(callback) {
|
3540
|
-
return this._core.subscribe(callback);
|
3541
|
-
}
|
3542
|
-
};
|
3543
|
-
|
3544
3495
|
// src/api/ThreadRuntime.ts
|
3545
3496
|
var toAppendMessage = (messages2, message) => {
|
3546
3497
|
if (typeof message === "string") {
|
3547
3498
|
return {
|
3548
|
-
parentId: _nullishCoalesce(_optionalChain([messages2, 'access',
|
3499
|
+
parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _180 => _180.at, 'call', _181 => _181(-1), 'optionalAccess', _182 => _182.id]), () => ( null)),
|
3549
3500
|
role: "user",
|
3550
3501
|
content: [{ type: "text", text: message }],
|
3551
3502
|
attachments: []
|
@@ -3555,7 +3506,7 @@ var toAppendMessage = (messages2, message) => {
|
|
3555
3506
|
return message;
|
3556
3507
|
}
|
3557
3508
|
return {
|
3558
|
-
parentId: _nullishCoalesce(_nullishCoalesce(message.parentId, () => ( _optionalChain([messages2, 'access',
|
3509
|
+
parentId: _nullishCoalesce(_nullishCoalesce(message.parentId, () => ( _optionalChain([messages2, 'access', _183 => _183.at, 'call', _184 => _184(-1), 'optionalAccess', _185 => _185.id]))), () => ( null)),
|
3559
3510
|
role: _nullishCoalesce(message.role, () => ( "user")),
|
3560
3511
|
content: message.content,
|
3561
3512
|
attachments: _nullishCoalesce(message.attachments, () => ( []))
|
@@ -3567,10 +3518,11 @@ var getThreadState = (runtime) => {
|
|
3567
3518
|
threadId: runtime.threadId,
|
3568
3519
|
capabilities: runtime.capabilities,
|
3569
3520
|
isDisabled: runtime.isDisabled,
|
3570
|
-
isRunning: _optionalChain([lastMessage, 'optionalAccess',
|
3521
|
+
isRunning: _optionalChain([lastMessage, 'optionalAccess', _186 => _186.role]) !== "assistant" ? false : lastMessage.status.type === "running",
|
3571
3522
|
messages: runtime.messages,
|
3572
3523
|
suggestions: runtime.suggestions,
|
3573
|
-
extras: runtime.extras
|
3524
|
+
extras: runtime.extras,
|
3525
|
+
speech: runtime.speech
|
3574
3526
|
});
|
3575
3527
|
};
|
3576
3528
|
var ThreadRuntimeImpl = (_class12 = class {
|
@@ -3617,11 +3569,17 @@ var ThreadRuntimeImpl = (_class12 = class {
|
|
3617
3569
|
get messages() {
|
3618
3570
|
return this._threadBinding.getState().messages;
|
3619
3571
|
}
|
3572
|
+
/**
|
3573
|
+
* @deprecated Use `getState().speechState` instead. This will be removed in 0.6.0.
|
3574
|
+
*/
|
3575
|
+
get speech() {
|
3576
|
+
return this._threadBinding.getState().speech;
|
3577
|
+
}
|
3620
3578
|
unstable_getCore() {
|
3621
3579
|
return this._threadBinding.getState();
|
3622
3580
|
}
|
3623
3581
|
|
3624
|
-
constructor(threadBinding) {;_class12.prototype.
|
3582
|
+
constructor(threadBinding) {;_class12.prototype.__init22.call(this);
|
3625
3583
|
const stateBinding = new LazyMemoizeSubject({
|
3626
3584
|
getState: () => getThreadState(threadBinding.getState()),
|
3627
3585
|
subscribe: (callback) => threadBinding.subscribe(callback)
|
@@ -3632,7 +3590,7 @@ var ThreadRuntimeImpl = (_class12 = class {
|
|
3632
3590
|
subscribe: (callback) => threadBinding.subscribe(callback)
|
3633
3591
|
};
|
3634
3592
|
}
|
3635
|
-
|
3593
|
+
__init22() {this.composer = new ThreadComposerRuntimeImpl(
|
3636
3594
|
new NestedSubscriptionSubject({
|
3637
3595
|
getState: () => this._threadBinding.getState().composer,
|
3638
3596
|
subscribe: (callback) => this._threadBinding.subscribe(callback)
|
@@ -3677,15 +3635,21 @@ var ThreadRuntimeImpl = (_class12 = class {
|
|
3677
3635
|
switchToBranch(branchId) {
|
3678
3636
|
return this._threadBinding.getState().switchToBranch(branchId);
|
3679
3637
|
}
|
3680
|
-
|
3681
|
-
|
3682
|
-
|
3638
|
+
/**
|
3639
|
+
* @deprecated Use `getMesssageById(id).speak()` instead. This will be removed in 0.6.0.
|
3640
|
+
*/
|
3683
3641
|
speak(messageId) {
|
3684
3642
|
return this._threadBinding.getState().speak(messageId);
|
3685
3643
|
}
|
3686
|
-
|
3687
|
-
|
3688
|
-
|
3644
|
+
stopSpeaking() {
|
3645
|
+
return this._threadBinding.getState().stopSpeaking();
|
3646
|
+
}
|
3647
|
+
getSubmittedFeedback(messageId) {
|
3648
|
+
return this._threadBinding.getState().getSubmittedFeedback(messageId);
|
3649
|
+
}
|
3650
|
+
/**
|
3651
|
+
* @deprecated Use `getMesssageById(id).submitFeedback({ type })` instead. This will be removed in 0.6.0.
|
3652
|
+
*/
|
3689
3653
|
submitFeedback(options) {
|
3690
3654
|
return this._threadBinding.getState().submitFeedback(options);
|
3691
3655
|
}
|
@@ -3712,18 +3676,22 @@ var ThreadRuntimeImpl = (_class12 = class {
|
|
3712
3676
|
return new MessageRuntimeImpl(
|
3713
3677
|
new ShallowMemoizeSubject({
|
3714
3678
|
getState: () => {
|
3715
|
-
const messages2 = this.getState()
|
3679
|
+
const { messages: messages2, speech: speechState } = this.getState();
|
3716
3680
|
const message = messages2[idx];
|
3717
3681
|
if (!message) return SKIP_UPDATE;
|
3718
|
-
const
|
3682
|
+
const thread = this._threadBinding.getState();
|
3683
|
+
const branches = thread.getBranches(message.id);
|
3684
|
+
const submittedFeedback = thread.getSubmittedFeedback(message.id);
|
3719
3685
|
return {
|
3720
3686
|
...message,
|
3721
3687
|
message,
|
3722
3688
|
isLast: idx === messages2.length - 1,
|
3723
|
-
parentId: _nullishCoalesce(_optionalChain([messages2, 'access',
|
3689
|
+
parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _187 => _187[idx - 1], 'optionalAccess', _188 => _188.id]), () => ( null)),
|
3724
3690
|
branches,
|
3725
3691
|
branchNumber: branches.indexOf(message.id) + 1,
|
3726
|
-
branchCount: branches.length
|
3692
|
+
branchCount: branches.length,
|
3693
|
+
speech: _optionalChain([speechState, 'optionalAccess', _189 => _189.messageId]) === message.id ? speechState : void 0,
|
3694
|
+
submittedFeedback
|
3727
3695
|
};
|
3728
3696
|
},
|
3729
3697
|
subscribe: (callback) => this._threadBinding.subscribe(callback)
|
@@ -3733,6 +3701,47 @@ var ThreadRuntimeImpl = (_class12 = class {
|
|
3733
3701
|
}
|
3734
3702
|
}, _class12);
|
3735
3703
|
|
3704
|
+
// src/api/AssistantRuntime.ts
|
3705
|
+
var AssistantRuntimeImpl = class _AssistantRuntimeImpl {
|
3706
|
+
constructor(_core, _thread) {
|
3707
|
+
this._core = _core;
|
3708
|
+
this._thread = _thread;
|
3709
|
+
}
|
3710
|
+
get thread() {
|
3711
|
+
return this._thread;
|
3712
|
+
}
|
3713
|
+
switchToNewThread() {
|
3714
|
+
return this._core.switchToNewThread();
|
3715
|
+
}
|
3716
|
+
switchToThread(threadId) {
|
3717
|
+
return this._core.switchToThread(threadId);
|
3718
|
+
}
|
3719
|
+
registerModelConfigProvider(provider) {
|
3720
|
+
return this._core.registerModelConfigProvider(provider);
|
3721
|
+
}
|
3722
|
+
// TODO events for thread switching
|
3723
|
+
/**
|
3724
|
+
* @deprecated Thread is now static and never gets updated. This will be removed in 0.6.0.
|
3725
|
+
*/
|
3726
|
+
subscribe(callback) {
|
3727
|
+
return this._core.subscribe(callback);
|
3728
|
+
}
|
3729
|
+
static createThreadRuntime(_core, CustomThreadRuntime = ThreadRuntimeImpl) {
|
3730
|
+
return new CustomThreadRuntime(
|
3731
|
+
new NestedSubscriptionSubject({
|
3732
|
+
getState: () => _core.thread,
|
3733
|
+
subscribe: (callback) => _core.subscribe(callback)
|
3734
|
+
})
|
3735
|
+
);
|
3736
|
+
}
|
3737
|
+
static create(_core, CustomThreadRuntime = ThreadRuntimeImpl) {
|
3738
|
+
return new _AssistantRuntimeImpl(
|
3739
|
+
_core,
|
3740
|
+
_AssistantRuntimeImpl.createThreadRuntime(_core, CustomThreadRuntime)
|
3741
|
+
);
|
3742
|
+
}
|
3743
|
+
};
|
3744
|
+
|
3736
3745
|
// src/runtimes/edge/converters/fromLanguageModelMessages.ts
|
3737
3746
|
var fromLanguageModelMessages = (lm, { mergeSteps }) => {
|
3738
3747
|
const messages2 = [];
|
@@ -3799,7 +3808,7 @@ var fromLanguageModelMessages = (lm, { mergeSteps }) => {
|
|
3799
3808
|
});
|
3800
3809
|
if (mergeSteps) {
|
3801
3810
|
const previousMessage = messages2[messages2.length - 1];
|
3802
|
-
if (_optionalChain([previousMessage, 'optionalAccess',
|
3811
|
+
if (_optionalChain([previousMessage, 'optionalAccess', _190 => _190.role]) === "assistant") {
|
3803
3812
|
previousMessage.content.push(...newContent);
|
3804
3813
|
break;
|
3805
3814
|
}
|
@@ -3812,7 +3821,7 @@ var fromLanguageModelMessages = (lm, { mergeSteps }) => {
|
|
3812
3821
|
}
|
3813
3822
|
case "tool": {
|
3814
3823
|
const previousMessage = messages2[messages2.length - 1];
|
3815
|
-
if (_optionalChain([previousMessage, 'optionalAccess',
|
3824
|
+
if (_optionalChain([previousMessage, 'optionalAccess', _191 => _191.role]) !== "assistant")
|
3816
3825
|
throw new Error(
|
3817
3826
|
"A tool message must be preceded by an assistant message."
|
3818
3827
|
);
|
@@ -3934,7 +3943,7 @@ function assistantDecoderStream() {
|
|
3934
3943
|
}
|
3935
3944
|
case "c" /* ToolCallDelta */: {
|
3936
3945
|
const { toolCallId, argsTextDelta } = value;
|
3937
|
-
if (_optionalChain([currentToolCall, 'optionalAccess',
|
3946
|
+
if (_optionalChain([currentToolCall, 'optionalAccess', _192 => _192.id]) !== toolCallId) {
|
3938
3947
|
throw new Error(
|
3939
3948
|
`Received tool call delta for unknown tool call "${toolCallId}".`
|
3940
3949
|
);
|
@@ -4081,7 +4090,7 @@ var useEdgeRuntime = (options) => {
|
|
4081
4090
|
};
|
4082
4091
|
|
4083
4092
|
// src/runtimes/local/shouldContinue.tsx
|
4084
|
-
var shouldContinue = (result) => _optionalChain([result, 'access',
|
4093
|
+
var shouldContinue = (result) => _optionalChain([result, 'access', _193 => _193.status, 'optionalAccess', _194 => _194.type]) === "requires-action" && result.status.reason === "tool-calls" && result.content.every((c) => c.type !== "tool-call" || !!c.result);
|
4085
4094
|
|
4086
4095
|
// src/runtimes/composer/DefaultEditComposerRuntimeCore.tsx
|
4087
4096
|
var DefaultEditComposerRuntimeCore = class extends BaseComposerRuntimeCore {
|
@@ -4095,10 +4104,14 @@ var DefaultEditComposerRuntimeCore = class extends BaseComposerRuntimeCore {
|
|
4095
4104
|
this._nonTextParts = message.content.filter(
|
4096
4105
|
(part) => part.type !== "text" && part.type !== "ui"
|
4097
4106
|
);
|
4107
|
+
this.attachments = _nullishCoalesce(message.attachments, () => ( []));
|
4098
4108
|
}
|
4099
4109
|
get canCancel() {
|
4100
4110
|
return true;
|
4101
4111
|
}
|
4112
|
+
getAttachmentAdapter() {
|
4113
|
+
return _optionalChain([this, 'access', _195 => _195.runtime, 'access', _196 => _196.adapters, 'optionalAccess', _197 => _197.attachments]);
|
4114
|
+
}
|
4102
4115
|
|
4103
4116
|
|
4104
4117
|
|
@@ -4120,10 +4133,107 @@ var DefaultEditComposerRuntimeCore = class extends BaseComposerRuntimeCore {
|
|
4120
4133
|
}
|
4121
4134
|
};
|
4122
4135
|
|
4123
|
-
// src/runtimes/
|
4124
|
-
var
|
4125
|
-
constructor(configProvider
|
4136
|
+
// src/runtimes/core/BaseThreadRuntimeCore.tsx
|
4137
|
+
var BaseThreadRuntimeCore = (_class13 = class {
|
4138
|
+
constructor(configProvider) {;_class13.prototype.__init23.call(this);_class13.prototype.__init24.call(this);_class13.prototype.__init25.call(this);_class13.prototype.__init26.call(this);_class13.prototype.__init27.call(this);
|
4126
4139
|
this.configProvider = configProvider;
|
4140
|
+
}
|
4141
|
+
__init23() {this._subscriptions = /* @__PURE__ */ new Set()}
|
4142
|
+
__init24() {this.repository = new MessageRepository()}
|
4143
|
+
get messages() {
|
4144
|
+
return this.repository.getMessages();
|
4145
|
+
}
|
4146
|
+
__init25() {this.composer = new DefaultThreadComposerRuntimeCore(this)}
|
4147
|
+
getModelConfig() {
|
4148
|
+
return this.configProvider.getModelConfig();
|
4149
|
+
}
|
4150
|
+
__init26() {this._editComposers = /* @__PURE__ */ new Map()}
|
4151
|
+
getEditComposer(messageId) {
|
4152
|
+
return this._editComposers.get(messageId);
|
4153
|
+
}
|
4154
|
+
beginEdit(messageId) {
|
4155
|
+
if (this._editComposers.has(messageId))
|
4156
|
+
throw new Error("Edit already in progress");
|
4157
|
+
this._editComposers.set(
|
4158
|
+
messageId,
|
4159
|
+
new DefaultEditComposerRuntimeCore(
|
4160
|
+
this,
|
4161
|
+
() => this._editComposers.delete(messageId),
|
4162
|
+
this.repository.getMessage(messageId)
|
4163
|
+
)
|
4164
|
+
);
|
4165
|
+
this.notifySubscribers();
|
4166
|
+
}
|
4167
|
+
getBranches(messageId) {
|
4168
|
+
return this.repository.getBranches(messageId);
|
4169
|
+
}
|
4170
|
+
switchToBranch(branchId) {
|
4171
|
+
this.repository.switchToBranch(branchId);
|
4172
|
+
this.notifySubscribers();
|
4173
|
+
}
|
4174
|
+
notifySubscribers() {
|
4175
|
+
for (const callback of this._subscriptions) callback();
|
4176
|
+
}
|
4177
|
+
subscribe(callback) {
|
4178
|
+
this._subscriptions.add(callback);
|
4179
|
+
return () => this._subscriptions.delete(callback);
|
4180
|
+
}
|
4181
|
+
__init27() {this._submittedFeedback = {}}
|
4182
|
+
getSubmittedFeedback(messageId) {
|
4183
|
+
return this._submittedFeedback[messageId];
|
4184
|
+
}
|
4185
|
+
submitFeedback({ messageId, type }) {
|
4186
|
+
const adapter = _optionalChain([this, 'access', _198 => _198.adapters, 'optionalAccess', _199 => _199.feedback]);
|
4187
|
+
if (!adapter) throw new Error("Feedback adapter not configured");
|
4188
|
+
const { message } = this.repository.getMessage(messageId);
|
4189
|
+
adapter.submit({ message, type });
|
4190
|
+
this._submittedFeedback[messageId] = { type };
|
4191
|
+
this.notifySubscribers();
|
4192
|
+
}
|
4193
|
+
|
4194
|
+
|
4195
|
+
speak(messageId) {
|
4196
|
+
const adapter = _optionalChain([this, 'access', _200 => _200.adapters, 'optionalAccess', _201 => _201.speech]);
|
4197
|
+
if (!adapter) throw new Error("Speech adapter not configured");
|
4198
|
+
const { message } = this.repository.getMessage(messageId);
|
4199
|
+
_optionalChain([this, 'access', _202 => _202._stopSpeaking, 'optionalCall', _203 => _203()]);
|
4200
|
+
const utterance = adapter.speak(message);
|
4201
|
+
const unsub = utterance.subscribe(() => {
|
4202
|
+
if (utterance.status.type === "ended") {
|
4203
|
+
this._stopSpeaking = void 0;
|
4204
|
+
this.speech = void 0;
|
4205
|
+
} else {
|
4206
|
+
this.speech = { messageId, status: utterance.status };
|
4207
|
+
}
|
4208
|
+
this.notifySubscribers();
|
4209
|
+
});
|
4210
|
+
this.speech = { messageId, status: utterance.status };
|
4211
|
+
this.notifySubscribers();
|
4212
|
+
this._stopSpeaking = () => {
|
4213
|
+
utterance.cancel();
|
4214
|
+
unsub();
|
4215
|
+
this.speech = void 0;
|
4216
|
+
this._stopSpeaking = void 0;
|
4217
|
+
};
|
4218
|
+
}
|
4219
|
+
stopSpeaking() {
|
4220
|
+
if (!this._stopSpeaking) throw new Error("No message is being spoken");
|
4221
|
+
this._stopSpeaking();
|
4222
|
+
this.notifySubscribers();
|
4223
|
+
}
|
4224
|
+
export() {
|
4225
|
+
return this.repository.export();
|
4226
|
+
}
|
4227
|
+
import(data) {
|
4228
|
+
this.repository.import(data);
|
4229
|
+
this.notifySubscribers();
|
4230
|
+
}
|
4231
|
+
}, _class13);
|
4232
|
+
|
4233
|
+
// src/runtimes/local/LocalThreadRuntimeCore.tsx
|
4234
|
+
var LocalThreadRuntimeCore = (_class14 = class extends BaseThreadRuntimeCore {
|
4235
|
+
constructor(configProvider, adapter, { initialMessages, ...options }) {
|
4236
|
+
super(configProvider);_class14.prototype.__init28.call(this);_class14.prototype.__init29.call(this);_class14.prototype.__init30.call(this);_class14.prototype.__init31.call(this);;
|
4127
4237
|
this.adapter = adapter;
|
4128
4238
|
this.threadId = generateId();
|
4129
4239
|
this.options = options;
|
@@ -4136,28 +4246,22 @@ var LocalThreadRuntimeCore = (_class13 = class {
|
|
4136
4246
|
}
|
4137
4247
|
}
|
4138
4248
|
}
|
4139
|
-
|
4140
|
-
__init25() {this.abortController = null}
|
4141
|
-
__init26() {this.repository = new MessageRepository()}
|
4142
|
-
__init27() {this.capabilities = {
|
4249
|
+
__init28() {this.capabilities = {
|
4143
4250
|
switchToBranch: true,
|
4144
4251
|
edit: true,
|
4145
4252
|
reload: true,
|
4146
4253
|
cancel: true,
|
4147
4254
|
unstable_copy: true,
|
4148
|
-
|
4255
|
+
speech: false,
|
4149
4256
|
attachments: false,
|
4150
4257
|
feedback: false
|
4151
4258
|
}}
|
4259
|
+
__init29() {this.abortController = null}
|
4152
4260
|
|
4153
|
-
|
4154
|
-
|
4155
|
-
get
|
4156
|
-
return this.
|
4157
|
-
}
|
4158
|
-
__init30() {this.composer = new DefaultThreadComposerRuntimeCore(this)}
|
4159
|
-
getModelConfig() {
|
4160
|
-
return this.configProvider.getModelConfig();
|
4261
|
+
__init30() {this.isDisabled = false}
|
4262
|
+
__init31() {this.suggestions = []}
|
4263
|
+
get adapters() {
|
4264
|
+
return this.options.adapters;
|
4161
4265
|
}
|
4162
4266
|
|
4163
4267
|
get options() {
|
@@ -4169,48 +4273,23 @@ var LocalThreadRuntimeCore = (_class13 = class {
|
|
4169
4273
|
set options({ initialMessages, ...options }) {
|
4170
4274
|
this._options = options;
|
4171
4275
|
let hasUpdates = false;
|
4172
|
-
const canSpeak = _optionalChain([options, 'access',
|
4173
|
-
if (this.capabilities.
|
4174
|
-
this.capabilities.
|
4276
|
+
const canSpeak = _optionalChain([options, 'access', _204 => _204.adapters, 'optionalAccess', _205 => _205.speech]) !== void 0;
|
4277
|
+
if (this.capabilities.speech !== canSpeak) {
|
4278
|
+
this.capabilities.speech = canSpeak;
|
4175
4279
|
hasUpdates = true;
|
4176
4280
|
}
|
4177
|
-
|
4178
|
-
const canAttach = _optionalChain([options, 'access', _190 => _190.adapters, 'optionalAccess', _191 => _191.attachments]) !== void 0;
|
4281
|
+
const canAttach = _optionalChain([options, 'access', _206 => _206.adapters, 'optionalAccess', _207 => _207.attachments]) !== void 0;
|
4179
4282
|
if (this.capabilities.attachments !== canAttach) {
|
4180
4283
|
this.capabilities.attachments = canAttach;
|
4181
4284
|
hasUpdates = true;
|
4182
4285
|
}
|
4183
|
-
const canFeedback = _optionalChain([options, 'access',
|
4286
|
+
const canFeedback = _optionalChain([options, 'access', _208 => _208.adapters, 'optionalAccess', _209 => _209.feedback]) !== void 0;
|
4184
4287
|
if (this.capabilities.feedback !== canFeedback) {
|
4185
4288
|
this.capabilities.feedback = canFeedback;
|
4186
4289
|
hasUpdates = true;
|
4187
4290
|
}
|
4188
4291
|
if (hasUpdates) this.notifySubscribers();
|
4189
4292
|
}
|
4190
|
-
__init31() {this._editComposers = /* @__PURE__ */ new Map()}
|
4191
|
-
getEditComposer(messageId) {
|
4192
|
-
return this._editComposers.get(messageId);
|
4193
|
-
}
|
4194
|
-
beginEdit(messageId) {
|
4195
|
-
if (this._editComposers.has(messageId))
|
4196
|
-
throw new Error("Edit already in progress");
|
4197
|
-
this._editComposers.set(
|
4198
|
-
messageId,
|
4199
|
-
new DefaultEditComposerRuntimeCore(
|
4200
|
-
this,
|
4201
|
-
() => this._editComposers.delete(messageId),
|
4202
|
-
this.repository.getMessage(messageId)
|
4203
|
-
)
|
4204
|
-
);
|
4205
|
-
this.notifySubscribers();
|
4206
|
-
}
|
4207
|
-
getBranches(messageId) {
|
4208
|
-
return this.repository.getBranches(messageId);
|
4209
|
-
}
|
4210
|
-
switchToBranch(branchId) {
|
4211
|
-
this.repository.switchToBranch(branchId);
|
4212
|
-
this.notifySubscribers();
|
4213
|
-
}
|
4214
4293
|
async append(message) {
|
4215
4294
|
const newMessage = fromCoreMessage(message, {
|
4216
4295
|
attachments: message.attachments
|
@@ -4239,13 +4318,13 @@ var LocalThreadRuntimeCore = (_class13 = class {
|
|
4239
4318
|
}
|
4240
4319
|
async performRoundtrip(parentId, message) {
|
4241
4320
|
const messages2 = this.repository.getMessages();
|
4242
|
-
_optionalChain([this, 'access',
|
4321
|
+
_optionalChain([this, 'access', _210 => _210.abortController, 'optionalAccess', _211 => _211.abort, 'call', _212 => _212()]);
|
4243
4322
|
this.abortController = new AbortController();
|
4244
4323
|
const initialContent = message.content;
|
4245
|
-
const initialSteps = _optionalChain([message, 'access',
|
4246
|
-
const initalCustom = _optionalChain([message, 'access',
|
4324
|
+
const initialSteps = _optionalChain([message, 'access', _213 => _213.metadata, 'optionalAccess', _214 => _214.steps]);
|
4325
|
+
const initalCustom = _optionalChain([message, 'access', _215 => _215.metadata, 'optionalAccess', _216 => _216.custom]);
|
4247
4326
|
const updateMessage = (m) => {
|
4248
|
-
const newSteps = _optionalChain([m, 'access',
|
4327
|
+
const newSteps = _optionalChain([m, 'access', _217 => _217.metadata, 'optionalAccess', _218 => _218.steps]) || _optionalChain([m, 'access', _219 => _219.metadata, 'optionalAccess', _220 => _220.roundtrips]);
|
4249
4328
|
const steps2 = newSteps ? [..._nullishCoalesce(initialSteps, () => ( [])), ...newSteps] : void 0;
|
4250
4329
|
message = {
|
4251
4330
|
...message,
|
@@ -4257,7 +4336,7 @@ var LocalThreadRuntimeCore = (_class13 = class {
|
|
4257
4336
|
metadata: {
|
4258
4337
|
...message.metadata,
|
4259
4338
|
...steps2 ? { roundtrips: steps2, steps: steps2 } : void 0,
|
4260
|
-
..._optionalChain([m, 'access',
|
4339
|
+
..._optionalChain([m, 'access', _221 => _221.metadata, 'optionalAccess', _222 => _222.custom]) ? {
|
4261
4340
|
custom: { ..._nullishCoalesce(initalCustom, () => ( {})), ...m.metadata.custom }
|
4262
4341
|
} : void 0
|
4263
4342
|
}
|
@@ -4267,7 +4346,7 @@ var LocalThreadRuntimeCore = (_class13 = class {
|
|
4267
4346
|
this.notifySubscribers();
|
4268
4347
|
};
|
4269
4348
|
const maxSteps = this.options.maxSteps ? this.options.maxSteps : (_nullishCoalesce(this.options.maxToolRoundtrips, () => ( 1))) + 1;
|
4270
|
-
const steps = _nullishCoalesce(_optionalChain([message, 'access',
|
4349
|
+
const steps = _nullishCoalesce(_optionalChain([message, 'access', _223 => _223.metadata, 'optionalAccess', _224 => _224.steps, 'optionalAccess', _225 => _225.length]), () => ( 0));
|
4271
4350
|
if (steps >= maxSteps) {
|
4272
4351
|
updateMessage({
|
4273
4352
|
status: {
|
@@ -4287,7 +4366,7 @@ var LocalThreadRuntimeCore = (_class13 = class {
|
|
4287
4366
|
const promiseOrGenerator = this.adapter.run({
|
4288
4367
|
messages: messages2,
|
4289
4368
|
abortSignal: this.abortController.signal,
|
4290
|
-
config: this.
|
4369
|
+
config: this.getModelConfig(),
|
4291
4370
|
onUpdate: updateMessage
|
4292
4371
|
});
|
4293
4372
|
if (Symbol.asyncIterator in promiseOrGenerator) {
|
@@ -4319,17 +4398,9 @@ var LocalThreadRuntimeCore = (_class13 = class {
|
|
4319
4398
|
return message;
|
4320
4399
|
}
|
4321
4400
|
cancelRun() {
|
4322
|
-
|
4323
|
-
this.abortController.abort();
|
4401
|
+
_optionalChain([this, 'access', _226 => _226.abortController, 'optionalAccess', _227 => _227.abort, 'call', _228 => _228()]);
|
4324
4402
|
this.abortController = null;
|
4325
4403
|
}
|
4326
|
-
notifySubscribers() {
|
4327
|
-
for (const callback of this._subscriptions) callback();
|
4328
|
-
}
|
4329
|
-
subscribe(callback) {
|
4330
|
-
this._subscriptions.add(callback);
|
4331
|
-
return () => this._subscriptions.delete(callback);
|
4332
|
-
}
|
4333
4404
|
addToolResult({
|
4334
4405
|
messageId,
|
4335
4406
|
toolCallId,
|
@@ -4363,39 +4434,7 @@ var LocalThreadRuntimeCore = (_class13 = class {
|
|
4363
4434
|
this.performRoundtrip(parentId, message);
|
4364
4435
|
}
|
4365
4436
|
}
|
4366
|
-
|
4367
|
-
|
4368
|
-
speak(messageId) {
|
4369
|
-
const adapter = _optionalChain([this, 'access', _210 => _210.options, 'access', _211 => _211.adapters, 'optionalAccess', _212 => _212.speech]);
|
4370
|
-
if (!adapter) throw new Error("Speech adapter not configured");
|
4371
|
-
const { message } = this.repository.getMessage(messageId);
|
4372
|
-
if (this._utterance) {
|
4373
|
-
this._utterance.cancel();
|
4374
|
-
this._utterance = void 0;
|
4375
|
-
}
|
4376
|
-
const utterance = adapter.speak(message);
|
4377
|
-
utterance.onEnd(() => {
|
4378
|
-
if (this._utterance === utterance) {
|
4379
|
-
this._utterance = void 0;
|
4380
|
-
}
|
4381
|
-
});
|
4382
|
-
this._utterance = utterance;
|
4383
|
-
return this._utterance;
|
4384
|
-
}
|
4385
|
-
submitFeedback({ messageId, type }) {
|
4386
|
-
const adapter = _optionalChain([this, 'access', _213 => _213.options, 'access', _214 => _214.adapters, 'optionalAccess', _215 => _215.feedback]);
|
4387
|
-
if (!adapter) throw new Error("Feedback adapter not configured");
|
4388
|
-
const { message } = this.repository.getMessage(messageId);
|
4389
|
-
adapter.submit({ message, type });
|
4390
|
-
}
|
4391
|
-
export() {
|
4392
|
-
return this.repository.export();
|
4393
|
-
}
|
4394
|
-
import(data) {
|
4395
|
-
this.repository.import(data);
|
4396
|
-
this.notifySubscribers();
|
4397
|
-
}
|
4398
|
-
}, _class13);
|
4437
|
+
}, _class14);
|
4399
4438
|
|
4400
4439
|
// src/runtimes/local/LocalRuntimeCore.tsx
|
4401
4440
|
var LocalRuntimeCore = class extends BaseAssistantRuntimeCore {
|
@@ -4430,7 +4469,7 @@ var LocalRuntimeCore = class extends BaseAssistantRuntimeCore {
|
|
4430
4469
|
const messages2 = fromCoreMessages(initialMessages);
|
4431
4470
|
this.thread.import({
|
4432
4471
|
messages: messages2.map((m, idx) => ({
|
4433
|
-
parentId: _nullishCoalesce(_optionalChain([messages2, 'access',
|
4472
|
+
parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _229 => _229[idx - 1], 'optionalAccess', _230 => _230.id]), () => ( null)),
|
4434
4473
|
message: m
|
4435
4474
|
}))
|
4436
4475
|
});
|
@@ -4438,14 +4477,20 @@ var LocalRuntimeCore = class extends BaseAssistantRuntimeCore {
|
|
4438
4477
|
};
|
4439
4478
|
|
4440
4479
|
// src/runtimes/local/useLocalRuntime.tsx
|
4441
|
-
var
|
4442
|
-
constructor(core) {
|
4443
|
-
super(core,
|
4480
|
+
var LocalRuntimeImpl = class _LocalRuntimeImpl extends AssistantRuntimeImpl {
|
4481
|
+
constructor(core, thread) {
|
4482
|
+
super(core, thread);
|
4444
4483
|
this.core = core;
|
4445
4484
|
}
|
4446
4485
|
reset(options) {
|
4447
4486
|
this.core.reset(options);
|
4448
4487
|
}
|
4488
|
+
static create(_core) {
|
4489
|
+
return new _LocalRuntimeImpl(
|
4490
|
+
_core,
|
4491
|
+
AssistantRuntimeImpl.createThreadRuntime(_core, ThreadRuntimeImpl)
|
4492
|
+
);
|
4493
|
+
}
|
4449
4494
|
};
|
4450
4495
|
var useLocalRuntime = (adapter, options = {}) => {
|
4451
4496
|
const [runtime] = _react.useState.call(void 0, () => new LocalRuntimeCore(adapter, options));
|
@@ -4453,7 +4498,7 @@ var useLocalRuntime = (adapter, options = {}) => {
|
|
4453
4498
|
runtime.thread.adapter = adapter;
|
4454
4499
|
runtime.thread.options = options;
|
4455
4500
|
});
|
4456
|
-
return _react.useMemo.call(void 0, () =>
|
4501
|
+
return _react.useMemo.call(void 0, () => LocalRuntimeImpl.create(runtime), [runtime]);
|
4457
4502
|
};
|
4458
4503
|
|
4459
4504
|
// src/runtimes/external-store/useExternalStoreRuntime.tsx
|
@@ -4466,7 +4511,7 @@ var getExternalStoreMessage = (message) => {
|
|
4466
4511
|
};
|
4467
4512
|
|
4468
4513
|
// src/runtimes/external-store/ThreadMessageConverter.ts
|
4469
|
-
var ThreadMessageConverter = (
|
4514
|
+
var ThreadMessageConverter = (_class15 = class {constructor() { _class15.prototype.__init32.call(this); }
|
4470
4515
|
__init32() {this.cache = /* @__PURE__ */ new WeakMap()}
|
4471
4516
|
convertMessages(messages2, converter) {
|
4472
4517
|
return messages2.map((m, idx) => {
|
@@ -4476,7 +4521,7 @@ var ThreadMessageConverter = (_class14 = class {constructor() { _class14.prototy
|
|
4476
4521
|
return newMessage;
|
4477
4522
|
});
|
4478
4523
|
}
|
4479
|
-
},
|
4524
|
+
}, _class15);
|
4480
4525
|
|
4481
4526
|
// src/runtimes/external-store/auto-status.tsx
|
4482
4527
|
var AUTO_STATUS_RUNNING = Object.freeze({ type: "running" });
|
@@ -4564,23 +4609,17 @@ var fromThreadMessageLike = (like, fallbackId, fallbackStatus) => {
|
|
4564
4609
|
// src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx
|
4565
4610
|
var EMPTY_ARRAY2 = Object.freeze([]);
|
4566
4611
|
var hasUpcomingMessage = (isRunning, messages2) => {
|
4567
|
-
return isRunning && _optionalChain([messages2, 'access',
|
4612
|
+
return isRunning && _optionalChain([messages2, 'access', _231 => _231[messages2.length - 1], 'optionalAccess', _232 => _232.role]) !== "assistant";
|
4568
4613
|
};
|
4569
|
-
var ExternalStoreThreadRuntimeCore = (
|
4570
|
-
|
4571
|
-
|
4572
|
-
this.store = store;
|
4573
|
-
}
|
4574
|
-
__init33() {this._subscriptions = /* @__PURE__ */ new Set()}
|
4575
|
-
__init34() {this.repository = new MessageRepository()}
|
4576
|
-
__init35() {this.assistantOptimisticId = null}
|
4577
|
-
__init36() {this._capabilities = {
|
4614
|
+
var ExternalStoreThreadRuntimeCore = (_class16 = class extends BaseThreadRuntimeCore {
|
4615
|
+
__init33() {this.assistantOptimisticId = null}
|
4616
|
+
__init34() {this._capabilities = {
|
4578
4617
|
switchToBranch: false,
|
4579
4618
|
edit: false,
|
4580
4619
|
reload: false,
|
4581
4620
|
cancel: false,
|
4582
4621
|
unstable_copy: false,
|
4583
|
-
|
4622
|
+
speech: false,
|
4584
4623
|
attachments: false,
|
4585
4624
|
feedback: false
|
4586
4625
|
}}
|
@@ -4590,27 +4629,24 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
|
|
4590
4629
|
|
4591
4630
|
|
4592
4631
|
|
4593
|
-
|
4594
|
-
|
4595
|
-
|
4596
|
-
|
4597
|
-
|
4598
|
-
__init41() {this._editComposers = /* @__PURE__ */ new Map()}
|
4599
|
-
getEditComposer(messageId) {
|
4600
|
-
return this._editComposers.get(messageId);
|
4632
|
+
get messages() {
|
4633
|
+
return this._messages;
|
4634
|
+
}
|
4635
|
+
get adapters() {
|
4636
|
+
return this._store.adapters;
|
4601
4637
|
}
|
4638
|
+
__init35() {this.suggestions = []}
|
4639
|
+
__init36() {this.extras = void 0}
|
4640
|
+
__init37() {this._converter = new ThreadMessageConverter()}
|
4641
|
+
|
4602
4642
|
beginEdit(messageId) {
|
4603
|
-
if (this.
|
4604
|
-
throw new Error("
|
4605
|
-
|
4606
|
-
|
4607
|
-
|
4608
|
-
|
4609
|
-
|
4610
|
-
this.repository.getMessage(messageId)
|
4611
|
-
)
|
4612
|
-
);
|
4613
|
-
this.notifySubscribers();
|
4643
|
+
if (!this.store.onEdit)
|
4644
|
+
throw new Error("Runtime does not support editing.");
|
4645
|
+
super.beginEdit(messageId);
|
4646
|
+
}
|
4647
|
+
constructor(configProvider, store) {
|
4648
|
+
super(configProvider);_class16.prototype.__init33.call(this);_class16.prototype.__init34.call(this);_class16.prototype.__init35.call(this);_class16.prototype.__init36.call(this);_class16.prototype.__init37.call(this);_class16.prototype.__init38.call(this);;
|
4649
|
+
this.store = store;
|
4614
4650
|
}
|
4615
4651
|
get store() {
|
4616
4652
|
return this._store;
|
@@ -4629,13 +4665,12 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
|
|
4629
4665
|
edit: this._store.onEdit !== void 0,
|
4630
4666
|
reload: this._store.onReload !== void 0,
|
4631
4667
|
cancel: this._store.onCancel !== void 0,
|
4632
|
-
|
4633
|
-
unstable_copy: _optionalChain([this, 'access',
|
4668
|
+
speech: _optionalChain([this, 'access', _236 => _236._store, 'access', _237 => _237.adapters, 'optionalAccess', _238 => _238.speech]) !== void 0,
|
4669
|
+
unstable_copy: _optionalChain([this, 'access', _239 => _239._store, 'access', _240 => _240.unstable_capabilities, 'optionalAccess', _241 => _241.copy]) !== false,
|
4634
4670
|
// default true
|
4635
|
-
attachments: !!_optionalChain([this, 'access',
|
4636
|
-
feedback: !!_optionalChain([this, 'access',
|
4671
|
+
attachments: !!_optionalChain([this, 'access', _242 => _242.store, 'access', _243 => _243.adapters, 'optionalAccess', _244 => _244.attachments]),
|
4672
|
+
feedback: !!_optionalChain([this, 'access', _245 => _245.store, 'access', _246 => _246.adapters, 'optionalAccess', _247 => _247.feedback])
|
4637
4673
|
};
|
4638
|
-
this.composer.setAttachmentAdapter(_optionalChain([this, 'access', _232 => _232._store, 'access', _233 => _233.adapters, 'optionalAccess', _234 => _234.attachments]));
|
4639
4674
|
if (oldStore) {
|
4640
4675
|
if (oldStore.convertMessage !== store.convertMessage) {
|
4641
4676
|
this._converter = new ThreadMessageConverter();
|
@@ -4661,7 +4696,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
|
|
4661
4696
|
for (let i = 0; i < messages2.length; i++) {
|
4662
4697
|
const message = messages2[i];
|
4663
4698
|
const parent = messages2[i - 1];
|
4664
|
-
this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess',
|
4699
|
+
this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _248 => _248.id]), () => ( null)), message);
|
4665
4700
|
}
|
4666
4701
|
if (this.assistantOptimisticId) {
|
4667
4702
|
this.repository.deleteMessage(this.assistantOptimisticId);
|
@@ -4669,7 +4704,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
|
|
4669
4704
|
}
|
4670
4705
|
if (hasUpcomingMessage(isRunning, messages2)) {
|
4671
4706
|
this.assistantOptimisticId = this.repository.appendOptimisticMessage(
|
4672
|
-
_nullishCoalesce(_optionalChain([messages2, 'access',
|
4707
|
+
_nullishCoalesce(_optionalChain([messages2, 'access', _249 => _249.at, 'call', _250 => _250(-1), 'optionalAccess', _251 => _251.id]), () => ( null)),
|
4673
4708
|
{
|
4674
4709
|
role: "assistant",
|
4675
4710
|
content: []
|
@@ -4677,20 +4712,11 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
|
|
4677
4712
|
);
|
4678
4713
|
}
|
4679
4714
|
this.repository.resetHead(
|
4680
|
-
_nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([messages2, 'access',
|
4715
|
+
_nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([messages2, 'access', _252 => _252.at, 'call', _253 => _253(-1), 'optionalAccess', _254 => _254.id]))), () => ( null))
|
4681
4716
|
);
|
4682
|
-
this.
|
4717
|
+
this._messages = this.repository.getMessages();
|
4683
4718
|
this.notifySubscribers();
|
4684
4719
|
}
|
4685
|
-
getModelConfig() {
|
4686
|
-
return this.configProvider.getModelConfig();
|
4687
|
-
}
|
4688
|
-
notifySubscribers() {
|
4689
|
-
for (const callback of this._subscriptions) callback();
|
4690
|
-
}
|
4691
|
-
getBranches(messageId) {
|
4692
|
-
return this.repository.getBranches(messageId);
|
4693
|
-
}
|
4694
4720
|
switchToBranch(branchId) {
|
4695
4721
|
if (!this._store.setMessages)
|
4696
4722
|
throw new Error("Runtime does not support switching branches.");
|
@@ -4698,7 +4724,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
|
|
4698
4724
|
this.updateMessages(this.repository.getMessages());
|
4699
4725
|
}
|
4700
4726
|
async append(message) {
|
4701
|
-
if (message.parentId !== (_nullishCoalesce(_optionalChain([this, 'access',
|
4727
|
+
if (message.parentId !== (_nullishCoalesce(_optionalChain([this, 'access', _255 => _255.messages, 'access', _256 => _256.at, 'call', _257 => _257(-1), 'optionalAccess', _258 => _258.id]), () => ( null)))) {
|
4702
4728
|
if (!this._store.onEdit)
|
4703
4729
|
throw new Error("Runtime does not support editing messages.");
|
4704
4730
|
await this._store.onEdit(message);
|
@@ -4721,7 +4747,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
|
|
4721
4747
|
}
|
4722
4748
|
let messages2 = this.repository.getMessages();
|
4723
4749
|
const previousMessage = messages2[messages2.length - 1];
|
4724
|
-
if (_optionalChain([previousMessage, 'optionalAccess',
|
4750
|
+
if (_optionalChain([previousMessage, 'optionalAccess', _259 => _259.role]) === "user" && previousMessage.id === _optionalChain([messages2, 'access', _260 => _260.at, 'call', _261 => _261(-1), 'optionalAccess', _262 => _262.id])) {
|
4725
4751
|
this.repository.deleteMessage(previousMessage.id);
|
4726
4752
|
if (!this.composer.text.trim()) {
|
4727
4753
|
this.composer.setText(getThreadMessageText(previousMessage));
|
@@ -4739,34 +4765,12 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class {
|
|
4739
4765
|
throw new Error("Runtime does not support tool results.");
|
4740
4766
|
this._store.onAddToolResult(options);
|
4741
4767
|
}
|
4742
|
-
|
4743
|
-
|
4744
|
-
throw new Error("Runtime does not support speaking.");
|
4745
|
-
const { message } = this.repository.getMessage(messageId);
|
4746
|
-
return this._store.onSpeak(message);
|
4747
|
-
}
|
4748
|
-
submitFeedback({ messageId, type }) {
|
4749
|
-
const adapter = _optionalChain([this, 'access', _250 => _250._store, 'access', _251 => _251.adapters, 'optionalAccess', _252 => _252.feedback]);
|
4750
|
-
if (!adapter) throw new Error("Feedback adapter not configured");
|
4751
|
-
const { message } = this.repository.getMessage(messageId);
|
4752
|
-
adapter.submit({ message, type });
|
4753
|
-
}
|
4754
|
-
subscribe(callback) {
|
4755
|
-
this._subscriptions.add(callback);
|
4756
|
-
return () => this._subscriptions.delete(callback);
|
4757
|
-
}
|
4758
|
-
__init42() {this.updateMessages = (messages2) => {
|
4759
|
-
_optionalChain([this, 'access', _253 => _253._store, 'access', _254 => _254.setMessages, 'optionalCall', _255 => _255(
|
4768
|
+
__init38() {this.updateMessages = (messages2) => {
|
4769
|
+
_optionalChain([this, 'access', _263 => _263._store, 'access', _264 => _264.setMessages, 'optionalCall', _265 => _265(
|
4760
4770
|
messages2.flatMap(getExternalStoreMessage).filter((m) => m != null)
|
4761
4771
|
)]);
|
4762
4772
|
}}
|
4763
|
-
|
4764
|
-
this.repository.import(repository);
|
4765
|
-
}
|
4766
|
-
export() {
|
4767
|
-
return this.repository.export();
|
4768
|
-
}
|
4769
|
-
}, _class15);
|
4773
|
+
}, _class16);
|
4770
4774
|
|
4771
4775
|
// src/runtimes/external-store/ExternalStoreRuntimeCore.tsx
|
4772
4776
|
var ExternalStoreRuntimeCore = class extends BaseAssistantRuntimeCore {
|
@@ -4820,7 +4824,7 @@ var useExternalStoreRuntime = (store) => {
|
|
4820
4824
|
runtime.thread.store = store;
|
4821
4825
|
});
|
4822
4826
|
return _react.useMemo.call(void 0,
|
4823
|
-
() =>
|
4827
|
+
() => AssistantRuntimeImpl.create(runtime, ThreadRuntimeImpl),
|
4824
4828
|
[runtime]
|
4825
4829
|
);
|
4826
4830
|
};
|
@@ -5010,11 +5014,11 @@ var WebSpeechSynthesisAdapter = class {
|
|
5010
5014
|
speak(message) {
|
5011
5015
|
const text = getThreadMessageText(message);
|
5012
5016
|
const utterance = new SpeechSynthesisUtterance(text);
|
5013
|
-
const
|
5017
|
+
const subscribers = /* @__PURE__ */ new Set();
|
5014
5018
|
const handleEnd = (reason, error) => {
|
5015
5019
|
if (res.status.type === "ended") return;
|
5016
5020
|
res.status = { type: "ended", reason, error };
|
5017
|
-
|
5021
|
+
subscribers.forEach((handler) => handler());
|
5018
5022
|
};
|
5019
5023
|
utterance.addEventListener("end", () => handleEnd("finished"));
|
5020
5024
|
utterance.addEventListener("error", (e) => handleEnd("error", e.error));
|
@@ -5025,7 +5029,7 @@ var WebSpeechSynthesisAdapter = class {
|
|
5025
5029
|
window.speechSynthesis.cancel();
|
5026
5030
|
handleEnd("cancelled");
|
5027
5031
|
},
|
5028
|
-
|
5032
|
+
subscribe: (callback) => {
|
5029
5033
|
if (res.status.type === "ended") {
|
5030
5034
|
let cancelled = false;
|
5031
5035
|
queueMicrotask(() => {
|
@@ -5035,9 +5039,9 @@ var WebSpeechSynthesisAdapter = class {
|
|
5035
5039
|
cancelled = true;
|
5036
5040
|
};
|
5037
5041
|
} else {
|
5038
|
-
|
5042
|
+
subscribers.add(callback);
|
5039
5043
|
return () => {
|
5040
|
-
|
5044
|
+
subscribers.delete(callback);
|
5041
5045
|
};
|
5042
5046
|
}
|
5043
5047
|
}
|
@@ -5047,8 +5051,8 @@ var WebSpeechSynthesisAdapter = class {
|
|
5047
5051
|
};
|
5048
5052
|
|
5049
5053
|
// src/runtimes/attachment/SimpleImageAttachmentAdapter.ts
|
5050
|
-
var SimpleImageAttachmentAdapter = (
|
5051
|
-
|
5054
|
+
var SimpleImageAttachmentAdapter = (_class17 = class {constructor() { _class17.prototype.__init39.call(this); }
|
5055
|
+
__init39() {this.accept = "image/*"}
|
5052
5056
|
async add(state) {
|
5053
5057
|
return {
|
5054
5058
|
id: state.file.name,
|
@@ -5073,7 +5077,7 @@ var SimpleImageAttachmentAdapter = (_class16 = class {constructor() { _class16.p
|
|
5073
5077
|
}
|
5074
5078
|
async remove() {
|
5075
5079
|
}
|
5076
|
-
},
|
5080
|
+
}, _class17);
|
5077
5081
|
var getFileDataURL = (file) => new Promise((resolve, reject) => {
|
5078
5082
|
const reader = new FileReader();
|
5079
5083
|
reader.onload = () => resolve(reader.result);
|
@@ -5082,8 +5086,8 @@ var getFileDataURL = (file) => new Promise((resolve, reject) => {
|
|
5082
5086
|
});
|
5083
5087
|
|
5084
5088
|
// src/runtimes/attachment/SimpleTextAttachmentAdapter.ts
|
5085
|
-
var SimpleTextAttachmentAdapter = (
|
5086
|
-
|
5089
|
+
var SimpleTextAttachmentAdapter = (_class18 = class {constructor() { _class18.prototype.__init40.call(this); }
|
5090
|
+
__init40() {this.accept = "text/plain,text/html,text/markdown,text/csv,text/xml,text/json,text/css"}
|
5087
5091
|
async add(state) {
|
5088
5092
|
return {
|
5089
5093
|
id: state.file.name,
|
@@ -5110,7 +5114,7 @@ ${await getFileText(attachment.file)}
|
|
5110
5114
|
}
|
5111
5115
|
async remove() {
|
5112
5116
|
}
|
5113
|
-
},
|
5117
|
+
}, _class18);
|
5114
5118
|
var getFileText = (file) => new Promise((resolve, reject) => {
|
5115
5119
|
const reader = new FileReader();
|
5116
5120
|
reader.onload = () => resolve(reader.result);
|
@@ -5211,7 +5215,7 @@ var ThreadConfigProvider = ({
|
|
5211
5215
|
}) => {
|
5212
5216
|
const hasAssistant = !!useAssistantRuntime({ optional: true });
|
5213
5217
|
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 });
|
5214
|
-
if (!_optionalChain([config, 'optionalAccess',
|
5218
|
+
if (!_optionalChain([config, 'optionalAccess', _266 => _266.runtime])) return configProvider;
|
5215
5219
|
if (hasAssistant) {
|
5216
5220
|
throw new Error(
|
5217
5221
|
"You provided a runtime to <Thread> while simulataneously using <AssistantRuntimeProvider>. This is not allowed."
|
@@ -5240,8 +5244,8 @@ var useAllowCopy = (ensureCapability = false) => {
|
|
5240
5244
|
};
|
5241
5245
|
var useAllowSpeak = (ensureCapability = false) => {
|
5242
5246
|
const { assistantMessage: { allowSpeak = true } = {} } = useThreadConfig();
|
5243
|
-
const
|
5244
|
-
return allowSpeak && (!ensureCapability ||
|
5247
|
+
const speechSupported = useThread((t) => t.capabilities.speech);
|
5248
|
+
return allowSpeak && (!ensureCapability || speechSupported);
|
5245
5249
|
};
|
5246
5250
|
var useAllowReload = (ensureCapability = false) => {
|
5247
5251
|
const { assistantMessage: { allowReload = true } = {} } = useThreadConfig();
|
@@ -5287,13 +5291,13 @@ var AssistantActionBarRoot = withDefaults(actionBar_exports.Root, {
|
|
5287
5291
|
className: "aui-assistant-action-bar-root"
|
5288
5292
|
});
|
5289
5293
|
AssistantActionBarRoot.displayName = "AssistantActionBarRoot";
|
5290
|
-
var AssistantActionBarCopy = _react.forwardRef.call(void 0, (props, ref) => {
|
5294
|
+
var AssistantActionBarCopy = _react.forwardRef.call(void 0, ({ copiedDuration, ...props }, ref) => {
|
5291
5295
|
const {
|
5292
5296
|
strings: {
|
5293
5297
|
assistantMessage: { copy: { tooltip = "Copy" } = {} } = {}
|
5294
5298
|
} = {}
|
5295
5299
|
} = useThreadConfig();
|
5296
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, actionBar_exports.Copy, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipIconButton, { tooltip, ...props, ref, children: _nullishCoalesce(props.children, () => ( /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
5300
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, actionBar_exports.Copy, { copiedDuration, asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipIconButton, { tooltip, ...props, ref, children: _nullishCoalesce(props.children, () => ( /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
5297
5301
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, message_exports.If, { copied: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CheckIcon, {}) }),
|
5298
5302
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, message_exports.If, { copied: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CopyIcon, {}) })
|
5299
5303
|
] }))) }) });
|
@@ -5408,7 +5412,7 @@ var BranchPicker = () => {
|
|
5408
5412
|
const allowBranchPicker = useAllowBranchPicker(true);
|
5409
5413
|
if (!allowBranchPicker) return null;
|
5410
5414
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, BranchPickerRoot, { hideWhenSingleBranch: true, children: [
|
5411
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
5415
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, BranchPickerPrevious, {}),
|
5412
5416
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, BranchPickerState, {}),
|
5413
5417
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, BranchPickerNext, {})
|
5414
5418
|
] });
|
@@ -5418,7 +5422,7 @@ var BranchPickerRoot = withDefaults(branchPicker_exports.Root, {
|
|
5418
5422
|
className: "aui-branch-picker-root"
|
5419
5423
|
});
|
5420
5424
|
BranchPickerRoot.displayName = "BranchPickerRoot";
|
5421
|
-
var
|
5425
|
+
var BranchPickerPrevious = _react.forwardRef.call(void 0, (props, ref) => {
|
5422
5426
|
const {
|
5423
5427
|
strings: {
|
5424
5428
|
branchPicker: { previous: { tooltip = "Previous" } = {} } = {}
|
@@ -5427,7 +5431,7 @@ var BranchPickerPrevious2 = _react.forwardRef.call(void 0, (props, ref) => {
|
|
5427
5431
|
const allowBranchPicker = useAllowBranchPicker();
|
5428
5432
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, branchPicker_exports.Previous, { disabled: !allowBranchPicker, asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipIconButton, { tooltip, ...props, ref, children: _nullishCoalesce(props.children, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeftIcon, {}))) }) });
|
5429
5433
|
});
|
5430
|
-
|
5434
|
+
BranchPickerPrevious.displayName = "BranchPickerPrevious";
|
5431
5435
|
var BranchPickerStateWrapper = withDefaults("span", {
|
5432
5436
|
className: "aui-branch-picker-state"
|
5433
5437
|
});
|
@@ -5449,7 +5453,7 @@ var BranchPickerNext = _react.forwardRef.call(void 0, (props, ref) => {
|
|
5449
5453
|
BranchPickerNext.displayName = "BranchPickerNext";
|
5450
5454
|
var exports2 = {
|
5451
5455
|
Root: BranchPickerRoot,
|
5452
|
-
Previous:
|
5456
|
+
Previous: BranchPickerPrevious,
|
5453
5457
|
Next: BranchPickerNext
|
5454
5458
|
};
|
5455
5459
|
var branch_picker_default = Object.assign(BranchPicker, exports2);
|
@@ -5539,7 +5543,7 @@ var AssistantMessageContent = _react.forwardRef.call(void 0, ({ components: comp
|
|
5539
5543
|
{
|
5540
5544
|
components: {
|
5541
5545
|
...componentsProp,
|
5542
|
-
Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess',
|
5546
|
+
Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess', _267 => _267.Text]), () => ( components.Text)), () => ( content_part_default.Text)),
|
5543
5547
|
tools: toolsComponents
|
5544
5548
|
}
|
5545
5549
|
}
|
@@ -5590,12 +5594,30 @@ CircleStopIcon.displayName = "CircleStopIcon";
|
|
5590
5594
|
|
5591
5595
|
|
5592
5596
|
var ComposerAttachmentRoot = withDefaults(attachment_exports.Root, {
|
5593
|
-
className: "aui-
|
5597
|
+
className: "aui-attachment-root"
|
5594
5598
|
});
|
5595
5599
|
ComposerAttachmentRoot.displayName = "ComposerAttachmentRoot";
|
5596
5600
|
var ComposerAttachment2 = () => {
|
5601
|
+
const typeLabel = useAttachment((a) => {
|
5602
|
+
const type = a.type;
|
5603
|
+
switch (type) {
|
5604
|
+
case "image":
|
5605
|
+
return "Image";
|
5606
|
+
case "document":
|
5607
|
+
return "Document";
|
5608
|
+
case "file":
|
5609
|
+
return "File";
|
5610
|
+
default:
|
5611
|
+
const _exhaustiveCheck = type;
|
5612
|
+
throw new Error(`Unknown attachment type: ${_exhaustiveCheck}`);
|
5613
|
+
}
|
5614
|
+
});
|
5597
5615
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ComposerAttachmentRoot, { children: [
|
5598
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, attachment_exports.unstable_Thumb, {}),
|
5616
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, attachment_exports.unstable_Thumb, { className: "aui-attachment-thumb" }),
|
5617
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "aui-attachment-text", children: [
|
5618
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "aui-attachment-name", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, attachment_exports.Name, {}) }),
|
5619
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "aui-attachment-type", children: typeLabel })
|
5620
|
+
] }),
|
5599
5621
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ComposerAttachmentRemove, {})
|
5600
5622
|
] });
|
5601
5623
|
};
|
@@ -5674,7 +5696,7 @@ var ComposerAttachments = ({ components }) => {
|
|
5674
5696
|
{
|
5675
5697
|
components: {
|
5676
5698
|
...components,
|
5677
|
-
Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
5699
|
+
Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _268 => _268.Attachment]), () => ( composer_attachment_default))
|
5678
5700
|
}
|
5679
5701
|
}
|
5680
5702
|
) });
|
@@ -5719,23 +5741,27 @@ var ComposerSendButton = withDefaults(TooltipIconButton, {
|
|
5719
5741
|
variant: "default",
|
5720
5742
|
className: "aui-composer-send"
|
5721
5743
|
});
|
5722
|
-
var ComposerSend = _react.forwardRef.call(void 0,
|
5723
|
-
|
5724
|
-
|
5725
|
-
|
5726
|
-
|
5727
|
-
});
|
5744
|
+
var ComposerSend = _react.forwardRef.call(void 0,
|
5745
|
+
(props, ref) => {
|
5746
|
+
const {
|
5747
|
+
strings: { composer: { send: { tooltip = "Send" } = {} } = {} } = {}
|
5748
|
+
} = useThreadConfig();
|
5749
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, composer_exports.Send, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ComposerSendButton, { tooltip, ...props, ref, children: _nullishCoalesce(props.children, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.SendHorizontalIcon, {}))) }) });
|
5750
|
+
}
|
5751
|
+
);
|
5728
5752
|
ComposerSend.displayName = "ComposerSend";
|
5729
5753
|
var ComposerCancelButton = withDefaults(TooltipIconButton, {
|
5730
5754
|
variant: "default",
|
5731
5755
|
className: "aui-composer-cancel"
|
5732
5756
|
});
|
5733
|
-
var ComposerCancel = _react.forwardRef.call(void 0,
|
5734
|
-
|
5735
|
-
|
5736
|
-
|
5737
|
-
|
5738
|
-
});
|
5757
|
+
var ComposerCancel = _react.forwardRef.call(void 0,
|
5758
|
+
(props, ref) => {
|
5759
|
+
const {
|
5760
|
+
strings: { composer: { cancel: { tooltip = "Cancel" } = {} } = {} } = {}
|
5761
|
+
} = useThreadConfig();
|
5762
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, composer_exports.Cancel, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ComposerCancelButton, { tooltip, ...props, ref, children: _nullishCoalesce(props.children, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CircleStopIcon, {}))) }) });
|
5763
|
+
}
|
5764
|
+
);
|
5739
5765
|
ComposerCancel.displayName = "ComposerCancel";
|
5740
5766
|
var exports6 = {
|
5741
5767
|
Root: ComposerRoot,
|
@@ -5767,11 +5793,9 @@ var ThreadWelcomeRootStyled = withDefaults("div", {
|
|
5767
5793
|
var ThreadWelcomeCenter = withDefaults("div", {
|
5768
5794
|
className: "aui-thread-welcome-center"
|
5769
5795
|
});
|
5770
|
-
var ThreadWelcomeRoot = _react.forwardRef.call(void 0,
|
5771
|
-
(props, ref)
|
5772
|
-
|
5773
|
-
}
|
5774
|
-
);
|
5796
|
+
var ThreadWelcomeRoot = _react.forwardRef.call(void 0, (props, ref) => {
|
5797
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, thread_exports.Empty, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeRootStyled, { ...props, ref }) });
|
5798
|
+
});
|
5775
5799
|
ThreadWelcomeRoot.displayName = "ThreadWelcomeRoot";
|
5776
5800
|
var ThreadWelcomeAvatar = () => {
|
5777
5801
|
const { assistantAvatar: avatar = { fallback: "A" } } = useThreadConfig();
|
@@ -5800,7 +5824,7 @@ var ThreadWelcomeSuggestions = () => {
|
|
5800
5824
|
const suggestions2 = useThread((t) => t.suggestions);
|
5801
5825
|
const { welcome: { suggestions } = {} } = useThreadConfig();
|
5802
5826
|
const finalSuggestions = suggestions2.length ? suggestions2 : suggestions;
|
5803
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestionContainer, { children: _optionalChain([finalSuggestions, 'optionalAccess',
|
5827
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestionContainer, { children: _optionalChain([finalSuggestions, 'optionalAccess', _269 => _269.map, 'call', _270 => _270((suggestion, idx) => {
|
5804
5828
|
const key = `${suggestion.prompt}-${idx}`;
|
5805
5829
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestion, { suggestion }, key);
|
5806
5830
|
})]) });
|
@@ -5855,11 +5879,31 @@ var user_action_bar_default = Object.assign(UserActionBar, exports8);
|
|
5855
5879
|
// src/ui/user-message-attachment.tsx
|
5856
5880
|
|
5857
5881
|
var UserMessageAttachmentRoot = withDefaults(attachment_exports.Root, {
|
5858
|
-
className: "aui-
|
5882
|
+
className: "aui-attachment-root"
|
5859
5883
|
});
|
5860
5884
|
UserMessageAttachmentRoot.displayName = "UserMessageAttachmentRoot";
|
5861
5885
|
var UserMessageAttachment = () => {
|
5862
|
-
|
5886
|
+
const typeLabel = useAttachment((a) => {
|
5887
|
+
const type = a.type;
|
5888
|
+
switch (type) {
|
5889
|
+
case "image":
|
5890
|
+
return "Image";
|
5891
|
+
case "document":
|
5892
|
+
return "Document";
|
5893
|
+
case "file":
|
5894
|
+
return "File";
|
5895
|
+
default:
|
5896
|
+
const _exhaustiveCheck = type;
|
5897
|
+
throw new Error(`Unknown attachment type: ${_exhaustiveCheck}`);
|
5898
|
+
}
|
5899
|
+
});
|
5900
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, UserMessageAttachmentRoot, { children: [
|
5901
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, attachment_exports.unstable_Thumb, { className: "aui-attachment-thumb" }),
|
5902
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "aui-attachment-text", children: [
|
5903
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "aui-attachment-name", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, attachment_exports.Name, {}) }),
|
5904
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "aui-attachment-type", children: typeLabel })
|
5905
|
+
] })
|
5906
|
+
] });
|
5863
5907
|
};
|
5864
5908
|
UserMessageAttachment.displayName = "UserMessageAttachment";
|
5865
5909
|
var exports9 = {
|
@@ -5875,8 +5919,10 @@ var user_message_attachment_default = Object.assign(
|
|
5875
5919
|
var UserMessage = () => {
|
5876
5920
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, UserMessageRoot, { children: [
|
5877
5921
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UserMessageAttachments, {}),
|
5878
|
-
/* @__PURE__ */ _jsxruntime.
|
5879
|
-
|
5922
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, message_exports.If, { hasContent: true, children: [
|
5923
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, user_action_bar_default, {}),
|
5924
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UserMessageContent, {})
|
5925
|
+
] }),
|
5880
5926
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, branch_picker_default, {})
|
5881
5927
|
] });
|
5882
5928
|
};
|
@@ -5888,19 +5934,17 @@ UserMessageRoot.displayName = "UserMessageRoot";
|
|
5888
5934
|
var UserMessageContentWrapper = withDefaults("div", {
|
5889
5935
|
className: "aui-user-message-content"
|
5890
5936
|
});
|
5891
|
-
var UserMessageContent = _react.forwardRef.call(void 0,
|
5892
|
-
(
|
5893
|
-
|
5894
|
-
|
5895
|
-
{
|
5896
|
-
components
|
5897
|
-
|
5898
|
-
Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _261 => _261.Text]), () => ( content_part_default.Text))
|
5899
|
-
}
|
5937
|
+
var UserMessageContent = _react.forwardRef.call(void 0, ({ components, ...props }, ref) => {
|
5938
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UserMessageContentWrapper, { ...props, ref, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
5939
|
+
message_exports.Content,
|
5940
|
+
{
|
5941
|
+
components: {
|
5942
|
+
...components,
|
5943
|
+
Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _271 => _271.Text]), () => ( content_part_default.Text))
|
5900
5944
|
}
|
5901
|
-
|
5902
|
-
}
|
5903
|
-
);
|
5945
|
+
}
|
5946
|
+
) });
|
5947
|
+
});
|
5904
5948
|
UserMessageContent.displayName = "UserMessageContent";
|
5905
5949
|
var UserMessageAttachmentsContainer = withDefaults("div", {
|
5906
5950
|
className: "aui-user-message-attachments"
|
@@ -5913,7 +5957,7 @@ var UserMessageAttachments = ({
|
|
5913
5957
|
{
|
5914
5958
|
components: {
|
5915
5959
|
...components,
|
5916
|
-
Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
5960
|
+
Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _272 => _272.Attachment]), () => ( user_message_attachment_default))
|
5917
5961
|
}
|
5918
5962
|
}
|
5919
5963
|
) }) });
|
@@ -5950,25 +5994,19 @@ var EditComposerFooter = withDefaults("div", {
|
|
5950
5994
|
className: "aui-edit-composer-footer"
|
5951
5995
|
});
|
5952
5996
|
EditComposerFooter.displayName = "EditComposerFooter";
|
5953
|
-
var EditComposerCancel = _react.forwardRef.call(void 0,
|
5954
|
-
|
5955
|
-
|
5956
|
-
|
5957
|
-
|
5958
|
-
|
5959
|
-
} = useThreadConfig();
|
5960
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, composer_exports.Cancel, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Button, { variant: "ghost", ...props, ref, children: _nullishCoalesce(props.children, () => ( label)) }) });
|
5961
|
-
}
|
5962
|
-
);
|
5997
|
+
var EditComposerCancel = _react.forwardRef.call(void 0, (props, ref) => {
|
5998
|
+
const {
|
5999
|
+
strings: { editComposer: { cancel: { label = "Cancel" } = {} } = {} } = {}
|
6000
|
+
} = useThreadConfig();
|
6001
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, composer_exports.Cancel, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Button, { variant: "ghost", ...props, ref, children: _nullishCoalesce(props.children, () => ( label)) }) });
|
6002
|
+
});
|
5963
6003
|
EditComposerCancel.displayName = "EditComposerCancel";
|
5964
|
-
var EditComposerSend = _react.forwardRef.call(void 0,
|
5965
|
-
|
5966
|
-
|
5967
|
-
|
5968
|
-
|
5969
|
-
|
5970
|
-
}
|
5971
|
-
);
|
6004
|
+
var EditComposerSend = _react.forwardRef.call(void 0, (props, ref) => {
|
6005
|
+
const {
|
6006
|
+
strings: { editComposer: { send: { label = "Send" } = {} } = {} } = {}
|
6007
|
+
} = useThreadConfig();
|
6008
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, composer_exports.Send, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Button, { ...props, ref, children: _nullishCoalesce(props.children, () => ( label)) }) });
|
6009
|
+
});
|
5972
6010
|
EditComposerSend.displayName = "EditComposerSend";
|
5973
6011
|
var exports11 = {
|
5974
6012
|
Root: EditComposerRoot,
|
@@ -6022,10 +6060,10 @@ var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, ..
|
|
6022
6060
|
thread_exports.Messages,
|
6023
6061
|
{
|
6024
6062
|
components: {
|
6025
|
-
UserMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
6026
|
-
EditComposer: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
6027
|
-
AssistantMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
6028
|
-
SystemMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
6063
|
+
UserMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _273 => _273.UserMessage]), () => ( user_message_default)),
|
6064
|
+
EditComposer: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _274 => _274.EditComposer]), () => ( edit_composer_default)),
|
6065
|
+
AssistantMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _275 => _275.AssistantMessage]), () => ( assistant_message_default)),
|
6066
|
+
SystemMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _276 => _276.SystemMessage]), () => ( SystemMessage))
|
6029
6067
|
},
|
6030
6068
|
...rest
|
6031
6069
|
}
|
@@ -6036,7 +6074,7 @@ var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, ..
|
|
6036
6074
|
ThreadMessages.displayName = "ThreadMessages";
|
6037
6075
|
var ThreadFollowupSuggestions = () => {
|
6038
6076
|
const suggestions = useThread((t) => t.suggestions);
|
6039
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, thread_exports.If, { empty: false, running: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aui-thread-followup-suggestions", children: _optionalChain([suggestions, 'optionalAccess',
|
6077
|
+
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', _277 => _277.map, 'call', _278 => _278((suggestion, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
6040
6078
|
thread_exports.Suggestion,
|
6041
6079
|
{
|
6042
6080
|
className: "aui-thread-followup-suggestion",
|
@@ -6080,7 +6118,10 @@ var AssistantModal = (config) => {
|
|
6080
6118
|
] });
|
6081
6119
|
};
|
6082
6120
|
AssistantModal.displayName = "AssistantModal";
|
6083
|
-
var AssistantModalRoot = ({
|
6121
|
+
var AssistantModalRoot = ({
|
6122
|
+
config,
|
6123
|
+
...props
|
6124
|
+
}) => {
|
6084
6125
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadConfigProvider, { config, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, assistantModal_exports.Root, { ...props }) });
|
6085
6126
|
};
|
6086
6127
|
AssistantModalRoot.displayName = "AssistantModalRoot";
|