@assistant-ui/react 0.5.81 → 0.5.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-CYIFAX4U.js → chunk-C6UZOY5A.js} +1 -1
- package/dist/chunk-C6UZOY5A.js.map +1 -0
- package/dist/{chunk-RHM73CQE.mjs → chunk-TWIMAOZR.mjs} +1 -1
- package/dist/chunk-TWIMAOZR.mjs.map +1 -0
- package/dist/{edge-rTP-G718.d.mts → edge-B3YIacNl.d.mts} +4 -1
- package/dist/{edge-rTP-G718.d.ts → edge-B3YIacNl.d.ts} +4 -1
- package/dist/edge.js.map +1 -1
- package/dist/edge.mjs.map +1 -1
- package/dist/index.d.mts +1869 -711
- package/dist/index.d.ts +1869 -711
- package/dist/index.js +769 -387
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +680 -298
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-CYIFAX4U.js.map +0 -1
- package/dist/chunk-RHM73CQE.mjs.map +0 -1
package/dist/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8; var _class9; var _class10; var _class11; var _class12; var _class13; var _class14; var _class15; var _class16; 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
|
|
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
|
11
11
|
|
12
|
-
var
|
12
|
+
var _chunkC6UZOY5Ajs = require('./chunk-C6UZOY5A.js');
|
13
13
|
|
14
14
|
|
15
15
|
var _chunkPZ5AY32Cjs = require('./chunk-PZ5AY32C.js');
|
@@ -85,6 +85,10 @@ var { useToolUIs, useToolUIsStore } = createContextStoreHook(
|
|
85
85
|
useAssistantContext,
|
86
86
|
"useToolUIs"
|
87
87
|
);
|
88
|
+
var { useThreadManager } = createContextStoreHook(
|
89
|
+
useAssistantContext,
|
90
|
+
"useThreadManager"
|
91
|
+
);
|
88
92
|
|
89
93
|
// src/context/stores/AssistantToolUIs.ts
|
90
94
|
var _zustand = require('zustand');
|
@@ -155,6 +159,15 @@ var {
|
|
155
159
|
useViewport: useThreadViewport,
|
156
160
|
useViewportStore: useThreadViewportStore
|
157
161
|
} = createContextStoreHook(useThreadContext, "useViewport");
|
162
|
+
function useThreadModelConfig(options) {
|
163
|
+
const [, rerender] = _react.useState.call(void 0, {});
|
164
|
+
const runtime = useThreadRuntime(options);
|
165
|
+
_react.useEffect.call(void 0, () => {
|
166
|
+
return _optionalChain([runtime, 'optionalAccess', _5 => _5.unstable_on, 'call', _6 => _6("model-config-update", () => rerender({}))]);
|
167
|
+
}, [runtime]);
|
168
|
+
if (!runtime) return null;
|
169
|
+
return _optionalChain([runtime, 'optionalAccess', _7 => _7.getModelConfig, 'call', _8 => _8()]);
|
170
|
+
}
|
158
171
|
|
159
172
|
// src/context/stores/ThreadViewport.tsx
|
160
173
|
|
@@ -250,16 +263,29 @@ var useAssistantRuntimeStore2 = (runtime) => {
|
|
250
263
|
var useAssistantToolUIsStore = () => {
|
251
264
|
return _react.useMemo.call(void 0, () => makeAssistantToolUIsStore(), []);
|
252
265
|
};
|
266
|
+
var useThreadManagerStore = (runtime) => {
|
267
|
+
const [store] = _react.useState.call(void 0,
|
268
|
+
() => _zustand.create.call(void 0, () => runtime.threadManager.getState())
|
269
|
+
);
|
270
|
+
_react.useEffect.call(void 0, () => {
|
271
|
+
const updateState = () => writableStore(store).setState(runtime.threadManager.getState(), true);
|
272
|
+
updateState();
|
273
|
+
return runtime.threadManager.subscribe(updateState);
|
274
|
+
}, [runtime, store]);
|
275
|
+
return store;
|
276
|
+
};
|
253
277
|
var AssistantRuntimeProviderImpl = ({ children, runtime }) => {
|
254
278
|
const useAssistantRuntime2 = useAssistantRuntimeStore2(runtime);
|
255
279
|
const useToolUIs2 = useAssistantToolUIsStore();
|
280
|
+
const useThreadManager2 = useThreadManagerStore(runtime);
|
256
281
|
const context = _react.useMemo.call(void 0, () => {
|
257
282
|
return {
|
258
283
|
useToolUIs: useToolUIs2,
|
259
284
|
useAssistantRuntime: useAssistantRuntime2,
|
260
|
-
useAssistantActions: useAssistantRuntime2
|
285
|
+
useAssistantActions: useAssistantRuntime2,
|
286
|
+
useThreadManager: useThreadManager2
|
261
287
|
};
|
262
|
-
}, [useAssistantRuntime2, useToolUIs2]);
|
288
|
+
}, [useAssistantRuntime2, useToolUIs2, useThreadManager2]);
|
263
289
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AssistantContext.Provider, { value: context, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadRuntimeProvider, { runtime: runtime.thread, children }) });
|
264
290
|
};
|
265
291
|
var AssistantRuntimeProvider = _react.memo.call(void 0, AssistantRuntimeProviderImpl);
|
@@ -294,6 +320,9 @@ var ContentPartRuntimeImpl = class {
|
|
294
320
|
this.messageApi = messageApi;
|
295
321
|
this.threadApi = threadApi;
|
296
322
|
}
|
323
|
+
get path() {
|
324
|
+
return this.contentBinding.path;
|
325
|
+
}
|
297
326
|
getState() {
|
298
327
|
return this.contentBinding.getState();
|
299
328
|
}
|
@@ -404,7 +433,7 @@ var { useComposer, useComposerStore } = createContextStoreHook(
|
|
404
433
|
function useComposerRuntime(options) {
|
405
434
|
const messageRuntime = useMessageRuntime({ optional: true });
|
406
435
|
const threadRuntime = useThreadRuntime(options);
|
407
|
-
return messageRuntime ? messageRuntime.composer : _nullishCoalesce(_optionalChain([threadRuntime, 'optionalAccess',
|
436
|
+
return messageRuntime ? messageRuntime.composer : _nullishCoalesce(_optionalChain([threadRuntime, 'optionalAccess', _9 => _9.composer]), () => ( null));
|
408
437
|
}
|
409
438
|
|
410
439
|
// src/hooks/useAppendMessage.tsx
|
@@ -448,7 +477,7 @@ var useAssistantTool = (tool) => {
|
|
448
477
|
const unsub2 = render ? toolUIsStore.getState().setToolUI(toolName, render) : void 0;
|
449
478
|
return () => {
|
450
479
|
unsub1();
|
451
|
-
_optionalChain([unsub2, 'optionalCall',
|
480
|
+
_optionalChain([unsub2, 'optionalCall', _10 => _10()]);
|
452
481
|
};
|
453
482
|
}, [assistantRuntime, toolUIsStore, tool]);
|
454
483
|
};
|
@@ -500,64 +529,23 @@ var useAssistantInstructions = (instruction) => {
|
|
500
529
|
|
501
530
|
// src/primitive-hooks/actionBar/useActionBarCopy.tsx
|
502
531
|
|
503
|
-
|
504
|
-
// src/utils/combined/useCombinedStore.ts
|
505
|
-
|
506
|
-
|
507
|
-
// src/utils/combined/createCombinedStore.ts
|
508
|
-
|
509
|
-
var createCombinedStore = (stores) => {
|
510
|
-
const subscribe = (callback) => {
|
511
|
-
const unsubscribes = stores.map((store) => store.subscribe(callback));
|
512
|
-
return () => {
|
513
|
-
for (const unsub of unsubscribes) {
|
514
|
-
unsub();
|
515
|
-
}
|
516
|
-
};
|
517
|
-
};
|
518
|
-
return (selector) => {
|
519
|
-
const getSnapshot = () => selector(...stores.map((store) => store.getState()));
|
520
|
-
return _react.useSyncExternalStore.call(void 0, subscribe, getSnapshot, getSnapshot);
|
521
|
-
};
|
522
|
-
};
|
523
|
-
|
524
|
-
// src/utils/combined/useCombinedStore.ts
|
525
|
-
var useCombinedStore = (stores, selector) => {
|
526
|
-
const useCombined = _react.useMemo.call(void 0, () => createCombinedStore(stores), stores);
|
527
|
-
return useCombined(selector);
|
528
|
-
};
|
529
|
-
|
530
|
-
// src/utils/getThreadMessageText.tsx
|
531
|
-
var getThreadMessageText = (message) => {
|
532
|
-
const textParts = message.content.filter(
|
533
|
-
(part) => part.type === "text"
|
534
|
-
);
|
535
|
-
return textParts.map((part) => part.text).join("\n\n");
|
536
|
-
};
|
537
|
-
|
538
|
-
// src/primitive-hooks/actionBar/useActionBarCopy.tsx
|
539
532
|
var useActionBarCopy = ({
|
540
533
|
copiedDuration = 3e3
|
541
534
|
} = {}) => {
|
542
535
|
const messageRuntime = useMessageRuntime();
|
543
536
|
const composerRuntime = useComposerRuntime();
|
544
|
-
const
|
545
|
-
const hasCopyableContent =
|
546
|
-
|
547
|
-
|
548
|
-
return !c.isEditing && (message.role !== "assistant" || message.status.type !== "running") && message.content.some((c2) => c2.type === "text" && c2.text.length > 0);
|
549
|
-
}
|
550
|
-
);
|
537
|
+
const setIsCopied = useMessageUtils((s) => s.setIsCopied);
|
538
|
+
const hasCopyableContent = useMessage((message) => {
|
539
|
+
return (message.role !== "assistant" || message.status.type !== "running") && message.content.some((c) => c.type === "text" && c.text.length > 0);
|
540
|
+
});
|
551
541
|
const callback = _react.useCallback.call(void 0, () => {
|
552
|
-
const message = messageRuntime.getState();
|
553
|
-
const { setIsCopied } = messageUtilsStore.getState();
|
554
542
|
const { isEditing, text: composerValue } = composerRuntime.getState();
|
555
|
-
const valueToCopy = isEditing ? composerValue :
|
543
|
+
const valueToCopy = isEditing ? composerValue : messageRuntime.unstable_getCopyText();
|
556
544
|
navigator.clipboard.writeText(valueToCopy).then(() => {
|
557
545
|
setIsCopied(true);
|
558
546
|
setTimeout(() => setIsCopied(false), copiedDuration);
|
559
547
|
});
|
560
|
-
}, [messageRuntime,
|
548
|
+
}, [messageRuntime, setIsCopied, composerRuntime, copiedDuration]);
|
561
549
|
if (!hasCopyableContent) return null;
|
562
550
|
return callback;
|
563
551
|
};
|
@@ -576,6 +564,34 @@ var useActionBarEdit = () => {
|
|
576
564
|
|
577
565
|
// src/primitive-hooks/actionBar/useActionBarReload.tsx
|
578
566
|
|
567
|
+
|
568
|
+
// src/utils/combined/useCombinedStore.ts
|
569
|
+
|
570
|
+
|
571
|
+
// src/utils/combined/createCombinedStore.ts
|
572
|
+
|
573
|
+
var createCombinedStore = (stores) => {
|
574
|
+
const subscribe = (callback) => {
|
575
|
+
const unsubscribes = stores.map((store) => store.subscribe(callback));
|
576
|
+
return () => {
|
577
|
+
for (const unsub of unsubscribes) {
|
578
|
+
unsub();
|
579
|
+
}
|
580
|
+
};
|
581
|
+
};
|
582
|
+
return (selector) => {
|
583
|
+
const getSnapshot = () => selector(...stores.map((store) => store.getState()));
|
584
|
+
return _react.useSyncExternalStore.call(void 0, subscribe, getSnapshot, getSnapshot);
|
585
|
+
};
|
586
|
+
};
|
587
|
+
|
588
|
+
// src/utils/combined/useCombinedStore.ts
|
589
|
+
var useCombinedStore = (stores, selector) => {
|
590
|
+
const useCombined = _react.useMemo.call(void 0, () => createCombinedStore(stores), stores);
|
591
|
+
return useCombined(selector);
|
592
|
+
};
|
593
|
+
|
594
|
+
// src/primitive-hooks/actionBar/useActionBarReload.tsx
|
579
595
|
var useActionBarReload = () => {
|
580
596
|
const messageRuntime = useMessageRuntime();
|
581
597
|
const threadRuntime = useThreadRuntime();
|
@@ -723,7 +739,7 @@ var useComposerAddAttachment = () => {
|
|
723
739
|
input.accept = attachmentAccept;
|
724
740
|
}
|
725
741
|
input.onchange = (e) => {
|
726
|
-
const file = _optionalChain([e, 'access',
|
742
|
+
const file = _optionalChain([e, 'access', _11 => _11.target, 'access', _12 => _12.files, 'optionalAccess', _13 => _13[0]]);
|
727
743
|
if (!file) return;
|
728
744
|
composerRuntime.addAttachment(file);
|
729
745
|
};
|
@@ -799,7 +815,7 @@ var useMessageIf = (props) => {
|
|
799
815
|
return false;
|
800
816
|
if (props.hasContent === true && content.length === 0) return false;
|
801
817
|
if (props.hasContent === false && content.length > 0) return false;
|
802
|
-
if (props.submittedFeedback !== void 0 && (_nullishCoalesce(_optionalChain([submittedFeedback, 'optionalAccess',
|
818
|
+
if (props.submittedFeedback !== void 0 && (_nullishCoalesce(_optionalChain([submittedFeedback, 'optionalAccess', _14 => _14.type]), () => ( null))) !== props.submittedFeedback)
|
803
819
|
return false;
|
804
820
|
return true;
|
805
821
|
}
|
@@ -933,7 +949,7 @@ var ActionBarPrimitiveCopy = _react.forwardRef.call(void 0, ({ copiedDuration, o
|
|
933
949
|
ref: forwardedRef,
|
934
950
|
disabled: disabled || !callback,
|
935
951
|
onClick: _primitive.composeEventHandlers.call(void 0, onClick, () => {
|
936
|
-
_optionalChain([callback, 'optionalCall',
|
952
|
+
_optionalChain([callback, 'optionalCall', _15 => _15()]);
|
937
953
|
})
|
938
954
|
}
|
939
955
|
);
|
@@ -965,7 +981,7 @@ var createActionButton = (displayName, useActionButton, forwardProps = []) => {
|
|
965
981
|
ref: forwardedRef,
|
966
982
|
disabled: primitiveProps.disabled || !callback,
|
967
983
|
onClick: _primitive.composeEventHandlers.call(void 0, primitiveProps.onClick, () => {
|
968
|
-
_optionalChain([callback, 'optionalCall',
|
984
|
+
_optionalChain([callback, 'optionalCall', _16 => _16()]);
|
969
985
|
})
|
970
986
|
}
|
971
987
|
);
|
@@ -1014,7 +1030,7 @@ var ActionBarPrimitiveStopSpeaking = _react.forwardRef.call(void 0, (props, ref)
|
|
1014
1030
|
...props,
|
1015
1031
|
ref,
|
1016
1032
|
onClick: _primitive.composeEventHandlers.call(void 0, props.onClick, () => {
|
1017
|
-
_optionalChain([callback, 'optionalCall',
|
1033
|
+
_optionalChain([callback, 'optionalCall', _17 => _17()]);
|
1018
1034
|
})
|
1019
1035
|
}
|
1020
1036
|
);
|
@@ -1028,7 +1044,7 @@ ActionBarPrimitiveStopSpeaking.displayName = "ActionBarPrimitive.StopSpeaking";
|
|
1028
1044
|
|
1029
1045
|
var ActionBarPrimitiveFeedbackPositive = _react.forwardRef.call(void 0, ({ onClick, disabled, ...props }, forwardedRef) => {
|
1030
1046
|
const isSubmitted = useMessage(
|
1031
|
-
(u) => _optionalChain([u, 'access',
|
1047
|
+
(u) => _optionalChain([u, 'access', _18 => _18.submittedFeedback, 'optionalAccess', _19 => _19.type]) === "positive"
|
1032
1048
|
);
|
1033
1049
|
const callback = useActionBarFeedbackPositive();
|
1034
1050
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
@@ -1040,7 +1056,7 @@ var ActionBarPrimitiveFeedbackPositive = _react.forwardRef.call(void 0, ({ onCli
|
|
1040
1056
|
ref: forwardedRef,
|
1041
1057
|
disabled: disabled || !callback,
|
1042
1058
|
onClick: _primitive.composeEventHandlers.call(void 0, onClick, () => {
|
1043
|
-
_optionalChain([callback, 'optionalCall',
|
1059
|
+
_optionalChain([callback, 'optionalCall', _20 => _20()]);
|
1044
1060
|
})
|
1045
1061
|
}
|
1046
1062
|
);
|
@@ -1054,7 +1070,7 @@ ActionBarPrimitiveFeedbackPositive.displayName = "ActionBarPrimitive.FeedbackPos
|
|
1054
1070
|
|
1055
1071
|
var ActionBarPrimitiveFeedbackNegative = _react.forwardRef.call(void 0, ({ onClick, disabled, ...props }, forwardedRef) => {
|
1056
1072
|
const isSubmitted = useMessage(
|
1057
|
-
(u) => _optionalChain([u, 'access',
|
1073
|
+
(u) => _optionalChain([u, 'access', _21 => _21.submittedFeedback, 'optionalAccess', _22 => _22.type]) === "negative"
|
1058
1074
|
);
|
1059
1075
|
const callback = useActionBarFeedbackNegative();
|
1060
1076
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
@@ -1066,7 +1082,7 @@ var ActionBarPrimitiveFeedbackNegative = _react.forwardRef.call(void 0, ({ onCli
|
|
1066
1082
|
ref: forwardedRef,
|
1067
1083
|
disabled: disabled || !callback,
|
1068
1084
|
onClick: _primitive.composeEventHandlers.call(void 0, onClick, () => {
|
1069
|
-
_optionalChain([callback, 'optionalCall',
|
1085
|
+
_optionalChain([callback, 'optionalCall', _23 => _23()]);
|
1070
1086
|
})
|
1071
1087
|
}
|
1072
1088
|
);
|
@@ -1224,7 +1240,7 @@ var AttachmentContext = _react.createContext.call(void 0,
|
|
1224
1240
|
);
|
1225
1241
|
function useAttachmentContext(options) {
|
1226
1242
|
const context = _react.useContext.call(void 0, AttachmentContext);
|
1227
|
-
if (!_optionalChain([options, 'optionalAccess',
|
1243
|
+
if (!_optionalChain([options, 'optionalAccess', _24 => _24.optional]) && !context)
|
1228
1244
|
throw new Error(
|
1229
1245
|
"This component must be used within a ComposerPrimitive.Attachments or MessagePrimitive.Attachments component."
|
1230
1246
|
);
|
@@ -1505,7 +1521,7 @@ var withSmoothContextProvider = (Component) => {
|
|
1505
1521
|
};
|
1506
1522
|
function useSmoothContext(options) {
|
1507
1523
|
const context = _react.useContext.call(void 0, SmoothContext);
|
1508
|
-
if (!_optionalChain([options, 'optionalAccess',
|
1524
|
+
if (!_optionalChain([options, 'optionalAccess', _25 => _25.optional]) && !context)
|
1509
1525
|
throw new Error(
|
1510
1526
|
"This component must be used within a SmoothContextProvider."
|
1511
1527
|
);
|
@@ -1655,11 +1671,22 @@ var ContentPartPrimitiveInProgress = ({ children }) => {
|
|
1655
1671
|
};
|
1656
1672
|
ContentPartPrimitiveInProgress.displayName = "ContentPartPrimitive.InProgress";
|
1657
1673
|
|
1674
|
+
// src/utils/getThreadMessageText.tsx
|
1675
|
+
var getThreadMessageText = (message) => {
|
1676
|
+
const textParts = message.content.filter(
|
1677
|
+
(part) => part.type === "text"
|
1678
|
+
);
|
1679
|
+
return textParts.map((part) => part.text).join("\n\n");
|
1680
|
+
};
|
1681
|
+
|
1658
1682
|
// src/api/AttachmentRuntime.ts
|
1659
1683
|
var AttachmentRuntimeImpl = class {
|
1660
1684
|
constructor(_core) {
|
1661
1685
|
this._core = _core;
|
1662
1686
|
}
|
1687
|
+
get path() {
|
1688
|
+
return this._core.path;
|
1689
|
+
}
|
1663
1690
|
getState() {
|
1664
1691
|
return this._core.getState();
|
1665
1692
|
}
|
@@ -1715,7 +1742,7 @@ var BaseSubject = (_class2 = class {constructor() { _class2.prototype.__init5.ca
|
|
1715
1742
|
if (this._connection) return;
|
1716
1743
|
this._connection = this._connect();
|
1717
1744
|
} else {
|
1718
|
-
_optionalChain([this, 'access',
|
1745
|
+
_optionalChain([this, 'access', _26 => _26._connection, 'optionalCall', _27 => _27()]);
|
1719
1746
|
this._connection = void 0;
|
1720
1747
|
}
|
1721
1748
|
}
|
@@ -1738,6 +1765,9 @@ var LazyMemoizeSubject = (_class3 = class extends BaseSubject {
|
|
1738
1765
|
super();_class3.prototype.__init6.call(this);_class3.prototype.__init7.call(this);;
|
1739
1766
|
this.binding = binding;
|
1740
1767
|
}
|
1768
|
+
get path() {
|
1769
|
+
return this.binding.path;
|
1770
|
+
}
|
1741
1771
|
__init6() {this._previousStateDirty = true}
|
1742
1772
|
|
1743
1773
|
__init7() {this.getState = () => {
|
@@ -1784,6 +1814,9 @@ var ShallowMemoizeSubject = (_class4 = class extends BaseSubject {
|
|
1784
1814
|
throw new Error("Entry not available in the store");
|
1785
1815
|
this._previousState = state;
|
1786
1816
|
}
|
1817
|
+
get path() {
|
1818
|
+
return this.binding.path;
|
1819
|
+
}
|
1787
1820
|
|
1788
1821
|
__init8() {this.getState = () => {
|
1789
1822
|
if (!this.isConnected) this._syncState();
|
@@ -1814,42 +1847,45 @@ var EMPTY_ARRAY = Object.freeze([]);
|
|
1814
1847
|
var getThreadComposerState = (runtime) => {
|
1815
1848
|
return Object.freeze({
|
1816
1849
|
type: "thread",
|
1817
|
-
isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1818
|
-
canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1819
|
-
isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1820
|
-
text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1821
|
-
attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1822
|
-
value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1823
|
-
setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1824
|
-
setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1850
|
+
isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _28 => _28.isEditing]), () => ( false)),
|
1851
|
+
canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _29 => _29.canCancel]), () => ( false)),
|
1852
|
+
isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _30 => _30.isEmpty]), () => ( true)),
|
1853
|
+
text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _31 => _31.text]), () => ( "")),
|
1854
|
+
attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _32 => _32.attachments]), () => ( EMPTY_ARRAY)),
|
1855
|
+
value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _33 => _33.text]), () => ( "")),
|
1856
|
+
setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _34 => _34.setText, 'access', _35 => _35.bind, 'call', _36 => _36(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1857
|
+
setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _37 => _37.setText, 'access', _38 => _38.bind, 'call', _39 => _39(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1825
1858
|
// edit: beginEdit,
|
1826
|
-
send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1827
|
-
cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1828
|
-
reset: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1829
|
-
addAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1830
|
-
removeAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1859
|
+
send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _40 => _40.send, 'access', _41 => _41.bind, 'call', _42 => _42(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1860
|
+
cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _43 => _43.cancel, 'access', _44 => _44.bind, 'call', _45 => _45(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1861
|
+
reset: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _46 => _46.reset, 'access', _47 => _47.bind, 'call', _48 => _48(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1862
|
+
addAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _49 => _49.addAttachment, 'access', _50 => _50.bind, 'call', _51 => _51(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1863
|
+
removeAttachment: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _52 => _52.removeAttachment, 'access', _53 => _53.bind, 'call', _54 => _54(runtime)]), () => ( METHOD_NOT_SUPPORTED))
|
1831
1864
|
});
|
1832
1865
|
};
|
1833
1866
|
var getEditComposerState = (runtime, beginEdit) => {
|
1834
1867
|
return Object.freeze({
|
1835
1868
|
type: "edit",
|
1836
|
-
isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1837
|
-
canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1838
|
-
isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1839
|
-
text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1840
|
-
attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1841
|
-
value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1842
|
-
setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1843
|
-
setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1869
|
+
isEditing: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _55 => _55.isEditing]), () => ( false)),
|
1870
|
+
canCancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _56 => _56.canCancel]), () => ( false)),
|
1871
|
+
isEmpty: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _57 => _57.isEmpty]), () => ( true)),
|
1872
|
+
text: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _58 => _58.text]), () => ( "")),
|
1873
|
+
attachments: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _59 => _59.attachments]), () => ( EMPTY_ARRAY)),
|
1874
|
+
value: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _60 => _60.text]), () => ( "")),
|
1875
|
+
setValue: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _61 => _61.setText, 'access', _62 => _62.bind, 'call', _63 => _63(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1876
|
+
setText: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _64 => _64.setText, 'access', _65 => _65.bind, 'call', _66 => _66(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1844
1877
|
edit: beginEdit,
|
1845
|
-
send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1846
|
-
cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
1878
|
+
send: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _67 => _67.send, 'access', _68 => _68.bind, 'call', _69 => _69(runtime)]), () => ( METHOD_NOT_SUPPORTED)),
|
1879
|
+
cancel: _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _70 => _70.cancel, 'access', _71 => _71.bind, 'call', _72 => _72(runtime)]), () => ( METHOD_NOT_SUPPORTED))
|
1847
1880
|
});
|
1848
1881
|
};
|
1849
1882
|
var ComposerRuntimeImpl = class {
|
1850
1883
|
constructor(_core) {
|
1851
1884
|
this._core = _core;
|
1852
1885
|
}
|
1886
|
+
get path() {
|
1887
|
+
return this._core.path;
|
1888
|
+
}
|
1853
1889
|
/**
|
1854
1890
|
* @deprecated Use `getState().isEditing` instead. This will be removed in 0.6.0.
|
1855
1891
|
*/
|
@@ -1935,23 +1971,28 @@ var ComposerRuntimeImpl = class {
|
|
1935
1971
|
}
|
1936
1972
|
};
|
1937
1973
|
var ThreadComposerRuntimeImpl = class extends ComposerRuntimeImpl {
|
1974
|
+
get path() {
|
1975
|
+
return this._core.path;
|
1976
|
+
}
|
1938
1977
|
get type() {
|
1939
1978
|
return "thread";
|
1940
1979
|
}
|
1941
1980
|
|
1942
1981
|
constructor(core) {
|
1943
1982
|
const stateBinding = new LazyMemoizeSubject({
|
1983
|
+
path: core.path,
|
1944
1984
|
getState: () => getThreadComposerState(core.getState()),
|
1945
1985
|
subscribe: (callback) => core.subscribe(callback)
|
1946
1986
|
});
|
1947
1987
|
super({
|
1988
|
+
path: core.path,
|
1948
1989
|
getState: () => core.getState(),
|
1949
1990
|
subscribe: (callback) => stateBinding.subscribe(callback)
|
1950
1991
|
});
|
1951
1992
|
this._getState = stateBinding.getState.bind(stateBinding);
|
1952
1993
|
}
|
1953
1994
|
get attachments() {
|
1954
|
-
return _nullishCoalesce(_optionalChain([this, 'access',
|
1995
|
+
return _nullishCoalesce(_optionalChain([this, 'access', _73 => _73.getState, 'call', _74 => _74(), 'optionalAccess', _75 => _75.attachments]), () => ( EMPTY_ARRAY));
|
1955
1996
|
}
|
1956
1997
|
getState() {
|
1957
1998
|
return this._getState();
|
@@ -1959,6 +2000,12 @@ var ThreadComposerRuntimeImpl = class extends ComposerRuntimeImpl {
|
|
1959
2000
|
getAttachmentByIndex(idx) {
|
1960
2001
|
return new ThreadComposerAttachmentRuntimeImpl(
|
1961
2002
|
new ShallowMemoizeSubject({
|
2003
|
+
path: {
|
2004
|
+
...this.path,
|
2005
|
+
attachmentSource: "thread-composer",
|
2006
|
+
attachmentSelector: { type: "index", index: idx },
|
2007
|
+
ref: this.path.ref + `${this.path.ref}.attachments[${idx}]`
|
2008
|
+
},
|
1962
2009
|
getState: () => {
|
1963
2010
|
const attachments = this.getState().attachments;
|
1964
2011
|
const attachment = attachments[idx];
|
@@ -1978,16 +2025,21 @@ var ThreadComposerRuntimeImpl = class extends ComposerRuntimeImpl {
|
|
1978
2025
|
var EditComposerRuntimeImpl = class extends ComposerRuntimeImpl {
|
1979
2026
|
constructor(core, _beginEdit) {
|
1980
2027
|
const stateBinding = new LazyMemoizeSubject({
|
2028
|
+
path: core.path,
|
1981
2029
|
getState: () => getEditComposerState(core.getState(), this._beginEdit),
|
1982
2030
|
subscribe: (callback) => core.subscribe(callback)
|
1983
2031
|
});
|
1984
2032
|
super({
|
2033
|
+
path: core.path,
|
1985
2034
|
getState: () => core.getState(),
|
1986
2035
|
subscribe: (callback) => stateBinding.subscribe(callback)
|
1987
2036
|
});
|
1988
2037
|
this._beginEdit = _beginEdit;
|
1989
2038
|
this._getState = stateBinding.getState.bind(stateBinding);
|
1990
2039
|
}
|
2040
|
+
get path() {
|
2041
|
+
return this._core.path;
|
2042
|
+
}
|
1991
2043
|
get type() {
|
1992
2044
|
return "edit";
|
1993
2045
|
}
|
@@ -2007,6 +2059,12 @@ var EditComposerRuntimeImpl = class extends ComposerRuntimeImpl {
|
|
2007
2059
|
getAttachmentByIndex(idx) {
|
2008
2060
|
return new EditComposerAttachmentRuntimeImpl(
|
2009
2061
|
new ShallowMemoizeSubject({
|
2062
|
+
path: {
|
2063
|
+
...this.path,
|
2064
|
+
attachmentSource: "edit-composer",
|
2065
|
+
attachmentSelector: { type: "index", index: idx },
|
2066
|
+
ref: this.path.ref + `${this.path.ref}.attachments[${idx}]`
|
2067
|
+
},
|
2010
2068
|
getState: () => {
|
2011
2069
|
const attachments = this.getState().attachments;
|
2012
2070
|
const attachment = attachments[idx];
|
@@ -2030,6 +2088,9 @@ var NestedSubscriptionSubject = class extends BaseSubject {
|
|
2030
2088
|
super();
|
2031
2089
|
this.binding = binding;
|
2032
2090
|
}
|
2091
|
+
get path() {
|
2092
|
+
return this.binding.path;
|
2093
|
+
}
|
2033
2094
|
getState() {
|
2034
2095
|
return this.binding.getState();
|
2035
2096
|
}
|
@@ -2041,19 +2102,19 @@ var NestedSubscriptionSubject = class extends BaseSubject {
|
|
2041
2102
|
this.notifySubscribers();
|
2042
2103
|
};
|
2043
2104
|
let lastState = this.binding.getState();
|
2044
|
-
let innerUnsubscribe = _optionalChain([lastState, 'optionalAccess',
|
2105
|
+
let innerUnsubscribe = _optionalChain([lastState, 'optionalAccess', _76 => _76.subscribe, 'call', _77 => _77(callback)]);
|
2045
2106
|
const onRuntimeUpdate = () => {
|
2046
2107
|
const newState = this.binding.getState();
|
2047
2108
|
if (newState === lastState) return;
|
2048
2109
|
lastState = newState;
|
2049
|
-
_optionalChain([innerUnsubscribe, 'optionalCall',
|
2050
|
-
innerUnsubscribe = _optionalChain([this, 'access',
|
2110
|
+
_optionalChain([innerUnsubscribe, 'optionalCall', _78 => _78()]);
|
2111
|
+
innerUnsubscribe = _optionalChain([this, 'access', _79 => _79.binding, 'access', _80 => _80.getState, 'call', _81 => _81(), 'optionalAccess', _82 => _82.subscribe, 'call', _83 => _83(callback)]);
|
2051
2112
|
callback();
|
2052
2113
|
};
|
2053
2114
|
const outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);
|
2054
2115
|
return () => {
|
2055
|
-
_optionalChain([outerUnsubscribe, 'optionalCall',
|
2056
|
-
_optionalChain([innerUnsubscribe, 'optionalCall',
|
2116
|
+
_optionalChain([outerUnsubscribe, 'optionalCall', _84 => _84()]);
|
2117
|
+
_optionalChain([innerUnsubscribe, 'optionalCall', _85 => _85()]);
|
2057
2118
|
};
|
2058
2119
|
}
|
2059
2120
|
};
|
@@ -2092,18 +2153,27 @@ var getContentPartState = (message, partIndex) => {
|
|
2092
2153
|
const status = toContentPartStatus(message, partIndex, part);
|
2093
2154
|
return Object.freeze({ ...part, part, status });
|
2094
2155
|
};
|
2095
|
-
var MessageRuntimeImpl =
|
2096
|
-
constructor(_core, _threadBinding) {
|
2156
|
+
var MessageRuntimeImpl = class {
|
2157
|
+
constructor(_core, _threadBinding) {
|
2097
2158
|
this._core = _core;
|
2098
2159
|
this._threadBinding = _threadBinding;
|
2160
|
+
this.composer = new EditComposerRuntimeImpl(
|
2161
|
+
new NestedSubscriptionSubject({
|
2162
|
+
path: {
|
2163
|
+
...this.path,
|
2164
|
+
ref: this.path.ref + `${this.path.ref}.composer`,
|
2165
|
+
composerSource: "edit"
|
2166
|
+
},
|
2167
|
+
getState: () => this._threadBinding.getState().getEditComposer(this._core.getState().id),
|
2168
|
+
subscribe: (callback) => this._threadBinding.subscribe(callback)
|
2169
|
+
}),
|
2170
|
+
() => this._threadBinding.getState().beginEdit(this._core.getState().id)
|
2171
|
+
);
|
2099
2172
|
}
|
2100
|
-
|
2101
|
-
|
2102
|
-
|
2103
|
-
|
2104
|
-
}),
|
2105
|
-
() => this._threadBinding.getState().beginEdit(this._core.getState().id)
|
2106
|
-
)}
|
2173
|
+
get path() {
|
2174
|
+
return this._core.path;
|
2175
|
+
}
|
2176
|
+
|
2107
2177
|
getState() {
|
2108
2178
|
return this._core.getState();
|
2109
2179
|
}
|
@@ -2123,7 +2193,7 @@ var MessageRuntimeImpl = (_class5 = class {
|
|
2123
2193
|
const state = this._core.getState();
|
2124
2194
|
if (!state) throw new Error("Message is not available");
|
2125
2195
|
const thread = this._threadBinding.getState();
|
2126
|
-
if (_optionalChain([thread, 'access',
|
2196
|
+
if (_optionalChain([thread, 'access', _86 => _86.speech, 'optionalAccess', _87 => _87.messageId]) === state.id) {
|
2127
2197
|
this._threadBinding.getState().stopSpeaking();
|
2128
2198
|
} else {
|
2129
2199
|
throw new Error("Message is not being spoken");
|
@@ -2159,13 +2229,21 @@ var MessageRuntimeImpl = (_class5 = class {
|
|
2159
2229
|
if (!targetBranch) throw new Error("Branch not found");
|
2160
2230
|
this._threadBinding.getState().switchToBranch(targetBranch);
|
2161
2231
|
}
|
2232
|
+
unstable_getCopyText() {
|
2233
|
+
return getThreadMessageText(this.getState());
|
2234
|
+
}
|
2162
2235
|
subscribe(callback) {
|
2163
2236
|
return this._core.subscribe(callback);
|
2164
2237
|
}
|
2165
2238
|
getContentPartByIndex(idx) {
|
2166
|
-
if (idx < 0) throw new Error("
|
2239
|
+
if (idx < 0) throw new Error("Content part index must be >= 0");
|
2167
2240
|
return new ContentPartRuntimeImpl(
|
2168
2241
|
new ShallowMemoizeSubject({
|
2242
|
+
path: {
|
2243
|
+
...this.path,
|
2244
|
+
ref: this.path.ref + `${this.path.ref}.content[${idx}]`,
|
2245
|
+
contentPartSelector: { type: "index", index: idx }
|
2246
|
+
},
|
2169
2247
|
getState: () => {
|
2170
2248
|
return getContentPartState(this.getState(), idx);
|
2171
2249
|
},
|
@@ -2175,12 +2253,40 @@ var MessageRuntimeImpl = (_class5 = class {
|
|
2175
2253
|
this._threadBinding
|
2176
2254
|
);
|
2177
2255
|
}
|
2256
|
+
getContentPartByToolCallId(toolCallId) {
|
2257
|
+
return new ContentPartRuntimeImpl(
|
2258
|
+
new ShallowMemoizeSubject({
|
2259
|
+
path: {
|
2260
|
+
...this.path,
|
2261
|
+
ref: this.path.ref + `${this.path.ref}.content[toolCallId=${JSON.stringify(toolCallId)}]`,
|
2262
|
+
contentPartSelector: { type: "toolCallId", toolCallId }
|
2263
|
+
},
|
2264
|
+
getState: () => {
|
2265
|
+
const state = this._core.getState();
|
2266
|
+
const idx = state.content.findIndex(
|
2267
|
+
(part) => part.type === "tool-call" && part.toolCallId === toolCallId
|
2268
|
+
);
|
2269
|
+
if (idx === -1) return SKIP_UPDATE;
|
2270
|
+
return getContentPartState(state, idx);
|
2271
|
+
},
|
2272
|
+
subscribe: (callback) => this._core.subscribe(callback)
|
2273
|
+
}),
|
2274
|
+
this._core,
|
2275
|
+
this._threadBinding
|
2276
|
+
);
|
2277
|
+
}
|
2178
2278
|
getAttachmentByIndex(idx) {
|
2179
2279
|
return new MessageAttachmentRuntimeImpl(
|
2180
2280
|
new ShallowMemoizeSubject({
|
2281
|
+
path: {
|
2282
|
+
...this.path,
|
2283
|
+
ref: this.path.ref + `${this.path.ref}.attachments[${idx}]`,
|
2284
|
+
attachmentSource: "message",
|
2285
|
+
attachmentSelector: { type: "index", index: idx }
|
2286
|
+
},
|
2181
2287
|
getState: () => {
|
2182
2288
|
const attachments = this.getState().attachments;
|
2183
|
-
const attachment = _optionalChain([attachments, 'optionalAccess',
|
2289
|
+
const attachment = _optionalChain([attachments, 'optionalAccess', _88 => _88[idx]]);
|
2184
2290
|
if (!attachment) return SKIP_UPDATE;
|
2185
2291
|
return {
|
2186
2292
|
...attachment,
|
@@ -2192,7 +2298,7 @@ var MessageRuntimeImpl = (_class5 = class {
|
|
2192
2298
|
})
|
2193
2299
|
);
|
2194
2300
|
}
|
2195
|
-
}
|
2301
|
+
};
|
2196
2302
|
|
2197
2303
|
// src/primitives/message/MessageContent.tsx
|
2198
2304
|
|
@@ -2263,7 +2369,7 @@ var MessageContentPartImpl = ({
|
|
2263
2369
|
};
|
2264
2370
|
var MessageContentPart = _react.memo.call(void 0,
|
2265
2371
|
MessageContentPartImpl,
|
2266
|
-
(prev, next) => prev.partIndex === next.partIndex && _optionalChain([prev, 'access',
|
2372
|
+
(prev, next) => prev.partIndex === next.partIndex && _optionalChain([prev, 'access', _89 => _89.components, 'optionalAccess', _90 => _90.Text]) === _optionalChain([next, 'access', _91 => _91.components, 'optionalAccess', _92 => _92.Text]) && _optionalChain([prev, 'access', _93 => _93.components, 'optionalAccess', _94 => _94.Image]) === _optionalChain([next, 'access', _95 => _95.components, 'optionalAccess', _96 => _96.Image]) && _optionalChain([prev, 'access', _97 => _97.components, 'optionalAccess', _98 => _98.UI]) === _optionalChain([next, 'access', _99 => _99.components, 'optionalAccess', _100 => _100.UI]) && _optionalChain([prev, 'access', _101 => _101.components, 'optionalAccess', _102 => _102.tools]) === _optionalChain([next, 'access', _103 => _103.components, 'optionalAccess', _104 => _104.tools])
|
2267
2373
|
);
|
2268
2374
|
var MessagePrimitiveContent = ({
|
2269
2375
|
components
|
@@ -2329,11 +2435,11 @@ var getComponent = (components, attachment) => {
|
|
2329
2435
|
const type = attachment.type;
|
2330
2436
|
switch (type) {
|
2331
2437
|
case "image":
|
2332
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2438
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _105 => _105.Image]), () => ( _optionalChain([components, 'optionalAccess', _106 => _106.Attachment])));
|
2333
2439
|
case "document":
|
2334
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2440
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _107 => _107.Document]), () => ( _optionalChain([components, 'optionalAccess', _108 => _108.Attachment])));
|
2335
2441
|
case "file":
|
2336
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2442
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _109 => _109.File]), () => ( _optionalChain([components, 'optionalAccess', _110 => _110.Attachment])));
|
2337
2443
|
default:
|
2338
2444
|
const _exhaustiveCheck = type;
|
2339
2445
|
throw new Error(`Unknown attachment type: ${_exhaustiveCheck}`);
|
@@ -2356,7 +2462,7 @@ var MessageAttachmentImpl = ({ components, attachmentIndex }) => {
|
|
2356
2462
|
};
|
2357
2463
|
var MessageAttachment = _react.memo.call(void 0,
|
2358
2464
|
MessageAttachmentImpl,
|
2359
|
-
(prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access',
|
2465
|
+
(prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access', _111 => _111.components, 'optionalAccess', _112 => _112.Image]) === _optionalChain([next, 'access', _113 => _113.components, 'optionalAccess', _114 => _114.Image]) && _optionalChain([prev, 'access', _115 => _115.components, 'optionalAccess', _116 => _116.Document]) === _optionalChain([next, 'access', _117 => _117.components, 'optionalAccess', _118 => _118.Document]) && _optionalChain([prev, 'access', _119 => _119.components, 'optionalAccess', _120 => _120.File]) === _optionalChain([next, 'access', _121 => _121.components, 'optionalAccess', _122 => _122.File]) && _optionalChain([prev, 'access', _123 => _123.components, 'optionalAccess', _124 => _124.Attachment]) === _optionalChain([next, 'access', _125 => _125.components, 'optionalAccess', _126 => _126.Attachment])
|
2360
2466
|
);
|
2361
2467
|
var MessagePrimitiveAttachments = ({ components }) => {
|
2362
2468
|
const attachmentsCount = useMessage(({ message }) => {
|
@@ -2482,7 +2588,7 @@ var ComposerPrimitiveInput = _react.forwardRef.call(void 0,
|
|
2482
2588
|
const { isRunning } = threadRuntime.getState();
|
2483
2589
|
if (!isRunning) {
|
2484
2590
|
e.preventDefault();
|
2485
|
-
_optionalChain([textareaRef, 'access',
|
2591
|
+
_optionalChain([textareaRef, 'access', _127 => _127.current, 'optionalAccess', _128 => _128.closest, 'call', _129 => _129("form"), 'optionalAccess', _130 => _130.requestSubmit, 'call', _131 => _131()]);
|
2486
2592
|
}
|
2487
2593
|
}
|
2488
2594
|
};
|
@@ -2556,11 +2662,11 @@ var getComponent2 = (components, attachment) => {
|
|
2556
2662
|
const type = attachment.type;
|
2557
2663
|
switch (type) {
|
2558
2664
|
case "image":
|
2559
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2665
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _132 => _132.Image]), () => ( _optionalChain([components, 'optionalAccess', _133 => _133.Attachment])));
|
2560
2666
|
case "document":
|
2561
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2667
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _134 => _134.Document]), () => ( _optionalChain([components, 'optionalAccess', _135 => _135.Attachment])));
|
2562
2668
|
case "file":
|
2563
|
-
return _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
2669
|
+
return _nullishCoalesce(_optionalChain([components, 'optionalAccess', _136 => _136.File]), () => ( _optionalChain([components, 'optionalAccess', _137 => _137.Attachment])));
|
2564
2670
|
default:
|
2565
2671
|
const _exhaustiveCheck = type;
|
2566
2672
|
throw new Error(`Unknown attachment type: ${_exhaustiveCheck}`);
|
@@ -2583,7 +2689,7 @@ var ComposerAttachmentImpl = ({ components, attachmentIndex }) => {
|
|
2583
2689
|
};
|
2584
2690
|
var ComposerAttachment = _react.memo.call(void 0,
|
2585
2691
|
ComposerAttachmentImpl,
|
2586
|
-
(prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access',
|
2692
|
+
(prev, next) => prev.attachmentIndex === next.attachmentIndex && _optionalChain([prev, 'access', _138 => _138.components, 'optionalAccess', _139 => _139.Image]) === _optionalChain([next, 'access', _140 => _140.components, 'optionalAccess', _141 => _141.Image]) && _optionalChain([prev, 'access', _142 => _142.components, 'optionalAccess', _143 => _143.Document]) === _optionalChain([next, 'access', _144 => _144.components, 'optionalAccess', _145 => _145.Document]) && _optionalChain([prev, 'access', _146 => _146.components, 'optionalAccess', _147 => _147.File]) === _optionalChain([next, 'access', _148 => _148.components, 'optionalAccess', _149 => _149.File]) && _optionalChain([prev, 'access', _150 => _150.components, 'optionalAccess', _151 => _151.Attachment]) === _optionalChain([next, 'access', _152 => _152.components, 'optionalAccess', _153 => _153.Attachment])
|
2587
2693
|
);
|
2588
2694
|
var ComposerPrimitiveAttachments = ({ components }) => {
|
2589
2695
|
const attachmentsCount = useComposer((s) => s.attachments.length);
|
@@ -2927,45 +3033,60 @@ var subscribeToMainThread = (runtime, callback) => {
|
|
2927
3033
|
let first = true;
|
2928
3034
|
let cleanup;
|
2929
3035
|
const inner = () => {
|
2930
|
-
_optionalChain([cleanup, 'optionalCall',
|
2931
|
-
cleanup = runtime.
|
3036
|
+
_optionalChain([cleanup, 'optionalCall', _154 => _154()]);
|
3037
|
+
cleanup = runtime.threadManager.mainThread.subscribe(callback);
|
2932
3038
|
if (!first) {
|
2933
3039
|
callback();
|
2934
3040
|
}
|
2935
3041
|
first = false;
|
2936
3042
|
};
|
2937
|
-
const unsubscribe = runtime.subscribe(inner);
|
3043
|
+
const unsubscribe = runtime.threadManager.mainThread.subscribe(inner);
|
2938
3044
|
inner();
|
2939
3045
|
return () => {
|
2940
3046
|
unsubscribe();
|
2941
|
-
_optionalChain([cleanup, 'optionalCall',
|
3047
|
+
_optionalChain([cleanup, 'optionalCall', _155 => _155()]);
|
2942
3048
|
};
|
2943
3049
|
};
|
2944
3050
|
|
2945
3051
|
// src/runtimes/local/useLocalRuntime.tsx
|
2946
3052
|
|
2947
3053
|
|
2948
|
-
// src/
|
2949
|
-
var
|
2950
|
-
|
2951
|
-
|
2952
|
-
|
3054
|
+
// src/utils/ProxyConfigProvider.ts
|
3055
|
+
var ProxyConfigProvider = (_class5 = class {constructor() { _class5.prototype.__init9.call(this);_class5.prototype.__init10.call(this); }
|
3056
|
+
__init9() {this._providers = /* @__PURE__ */ new Set()}
|
3057
|
+
getModelConfig() {
|
3058
|
+
return _chunkC6UZOY5Ajs.mergeModelConfigs.call(void 0, this._providers);
|
2953
3059
|
}
|
2954
|
-
|
2955
|
-
|
3060
|
+
registerModelConfigProvider(provider) {
|
3061
|
+
this._providers.add(provider);
|
3062
|
+
const unsubscribe = _optionalChain([provider, 'access', _156 => _156.subscribe, 'optionalCall', _157 => _157(() => {
|
3063
|
+
this.notifySubscribers();
|
3064
|
+
})]);
|
3065
|
+
this.notifySubscribers();
|
3066
|
+
return () => {
|
3067
|
+
this._providers.delete(provider);
|
3068
|
+
_optionalChain([unsubscribe, 'optionalCall', _158 => _158()]);
|
3069
|
+
this.notifySubscribers();
|
3070
|
+
};
|
2956
3071
|
}
|
2957
|
-
|
2958
|
-
|
2959
|
-
this.
|
3072
|
+
__init10() {this._subscribers = /* @__PURE__ */ new Set()}
|
3073
|
+
notifySubscribers() {
|
3074
|
+
for (const callback of this._subscribers) callback();
|
2960
3075
|
}
|
2961
|
-
__init10() {this._subscriptions = /* @__PURE__ */ new Set()}
|
2962
3076
|
subscribe(callback) {
|
2963
|
-
this.
|
2964
|
-
return () => this.
|
3077
|
+
this._subscribers.add(callback);
|
3078
|
+
return () => this._subscribers.delete(callback);
|
3079
|
+
}
|
3080
|
+
}, _class5);
|
3081
|
+
|
3082
|
+
// src/runtimes/core/BaseAssistantRuntimeCore.tsx
|
3083
|
+
var BaseAssistantRuntimeCore = (_class6 = class {
|
3084
|
+
__init11() {this._proxyConfigProvider = new ProxyConfigProvider()}
|
3085
|
+
constructor() {;_class6.prototype.__init11.call(this);
|
3086
|
+
}
|
3087
|
+
registerModelConfigProvider(provider) {
|
3088
|
+
return this._proxyConfigProvider.registerModelConfigProvider(provider);
|
2965
3089
|
}
|
2966
|
-
__init11() {this.subscriptionHandler = () => {
|
2967
|
-
for (const callback of this._subscriptions) callback();
|
2968
|
-
}}
|
2969
3090
|
}, _class6);
|
2970
3091
|
|
2971
3092
|
// src/internal.ts
|
@@ -2989,7 +3110,7 @@ var isAttachmentComplete = (a) => a.status.type === "complete";
|
|
2989
3110
|
var BaseComposerRuntimeCore = (_class7 = class {constructor() { _class7.prototype.__init12.call(this);_class7.prototype.__init13.call(this);_class7.prototype.__init14.call(this);_class7.prototype.__init15.call(this); }
|
2990
3111
|
__init12() {this.isEditing = true}
|
2991
3112
|
getAttachmentAccept() {
|
2992
|
-
return _nullishCoalesce(_optionalChain([this, 'access',
|
3113
|
+
return _nullishCoalesce(_optionalChain([this, 'access', _159 => _159.getAttachmentAdapter, 'call', _160 => _160(), 'optionalAccess', _161 => _161.accept]), () => ( "*"));
|
2993
3114
|
}
|
2994
3115
|
__init13() {this._attachments = []}
|
2995
3116
|
set attachments(value) {
|
@@ -3021,7 +3142,7 @@ var BaseComposerRuntimeCore = (_class7 = class {constructor() { _class7.prototyp
|
|
3021
3142
|
this.attachments.map(async (a) => {
|
3022
3143
|
if (isAttachmentComplete(a)) return a;
|
3023
3144
|
const result = await adapter.send(a);
|
3024
|
-
if (_optionalChain([result, 'access',
|
3145
|
+
if (_optionalChain([result, 'access', _162 => _162.status, 'optionalAccess', _163 => _163.type]) !== "complete") {
|
3025
3146
|
result.status = { type: "complete" };
|
3026
3147
|
}
|
3027
3148
|
return result;
|
@@ -3080,7 +3201,7 @@ var DefaultThreadComposerRuntimeCore = (_class8 = class extends BaseComposerRunt
|
|
3080
3201
|
return super.attachments;
|
3081
3202
|
}
|
3082
3203
|
getAttachmentAdapter() {
|
3083
|
-
return _optionalChain([this, 'access',
|
3204
|
+
return _optionalChain([this, 'access', _164 => _164.runtime, 'access', _165 => _165.adapters, 'optionalAccess', _166 => _166.attachments]);
|
3084
3205
|
}
|
3085
3206
|
connect() {
|
3086
3207
|
return this.runtime.subscribe(() => {
|
@@ -3093,7 +3214,7 @@ var DefaultThreadComposerRuntimeCore = (_class8 = class extends BaseComposerRunt
|
|
3093
3214
|
async handleSend(message) {
|
3094
3215
|
this.runtime.append({
|
3095
3216
|
...message,
|
3096
|
-
parentId: _nullishCoalesce(_optionalChain([this, 'access',
|
3217
|
+
parentId: _nullishCoalesce(_optionalChain([this, 'access', _167 => _167.runtime, 'access', _168 => _168.messages, 'access', _169 => _169.at, 'call', _170 => _170(-1), 'optionalAccess', _171 => _171.id]), () => ( null))
|
3097
3218
|
});
|
3098
3219
|
}
|
3099
3220
|
async cancel() {
|
@@ -3101,20 +3222,6 @@ var DefaultThreadComposerRuntimeCore = (_class8 = class extends BaseComposerRunt
|
|
3101
3222
|
}
|
3102
3223
|
}, _class8);
|
3103
3224
|
|
3104
|
-
// src/utils/ProxyConfigProvider.ts
|
3105
|
-
var ProxyConfigProvider = (_class9 = class {constructor() { _class9.prototype.__init17.call(this); }
|
3106
|
-
__init17() {this._providers = /* @__PURE__ */ new Set()}
|
3107
|
-
getModelConfig() {
|
3108
|
-
return _chunkCYIFAX4Ujs.mergeModelConfigs.call(void 0, this._providers);
|
3109
|
-
}
|
3110
|
-
registerModelConfigProvider(provider) {
|
3111
|
-
this._providers.add(provider);
|
3112
|
-
return () => {
|
3113
|
-
this._providers.delete(provider);
|
3114
|
-
};
|
3115
|
-
}
|
3116
|
-
}, _class9);
|
3117
|
-
|
3118
3225
|
// src/utils/idUtils.tsx
|
3119
3226
|
var _nonsecure = require('nanoid/non-secure');
|
3120
3227
|
var generateId = _nonsecure.customAlphabet.call(void 0,
|
@@ -3180,11 +3287,11 @@ var findHead = (message) => {
|
|
3180
3287
|
if ("current" in message) return message;
|
3181
3288
|
return null;
|
3182
3289
|
};
|
3183
|
-
var MessageRepository = (
|
3184
|
-
|
3290
|
+
var MessageRepository = (_class9 = class {constructor() { _class9.prototype.__init17.call(this);_class9.prototype.__init18.call(this);_class9.prototype.__init19.call(this); }
|
3291
|
+
__init17() {this.messages = /* @__PURE__ */ new Map()}
|
3185
3292
|
// message_id -> item
|
3186
|
-
|
3187
|
-
|
3293
|
+
__init18() {this.head = null}
|
3294
|
+
__init19() {this.root = {
|
3188
3295
|
children: [],
|
3189
3296
|
next: null
|
3190
3297
|
}}
|
@@ -3226,7 +3333,7 @@ var MessageRepository = (_class10 = class {constructor() { _class10.prototype.__
|
|
3226
3333
|
}
|
3227
3334
|
}
|
3228
3335
|
getMessages() {
|
3229
|
-
const messages2 = new Array(_nullishCoalesce(_optionalChain([this, 'access',
|
3336
|
+
const messages2 = new Array(_nullishCoalesce(_optionalChain([this, 'access', _172 => _172.head, 'optionalAccess', _173 => _173.level]), () => ( 0)));
|
3230
3337
|
for (let current = this.head; current; current = current.prev) {
|
3231
3338
|
messages2[current.level] = current.current;
|
3232
3339
|
}
|
@@ -3264,7 +3371,7 @@ var MessageRepository = (_class10 = class {constructor() { _class10.prototype.__
|
|
3264
3371
|
"MessageRepository(updateMessage): Message not found. This is likely an internal bug in assistant-ui."
|
3265
3372
|
);
|
3266
3373
|
return {
|
3267
|
-
parentId: _nullishCoalesce(_optionalChain([message, 'access',
|
3374
|
+
parentId: _nullishCoalesce(_optionalChain([message, 'access', _174 => _174.prev, 'optionalAccess', _175 => _175.current, 'access', _176 => _176.id]), () => ( null)),
|
3268
3375
|
message: message.current
|
3269
3376
|
};
|
3270
3377
|
}
|
@@ -3348,11 +3455,11 @@ var MessageRepository = (_class10 = class {constructor() { _class10.prototype.__
|
|
3348
3455
|
for (const [, message] of this.messages) {
|
3349
3456
|
exportItems.push({
|
3350
3457
|
message: message.current,
|
3351
|
-
parentId: _nullishCoalesce(_optionalChain([message, 'access',
|
3458
|
+
parentId: _nullishCoalesce(_optionalChain([message, 'access', _177 => _177.prev, 'optionalAccess', _178 => _178.current, 'access', _179 => _179.id]), () => ( null))
|
3352
3459
|
});
|
3353
3460
|
}
|
3354
3461
|
return {
|
3355
|
-
headId: _nullishCoalesce(_optionalChain([this, 'access',
|
3462
|
+
headId: _nullishCoalesce(_optionalChain([this, 'access', _180 => _180.head, 'optionalAccess', _181 => _181.current, 'access', _182 => _182.id]), () => ( null)),
|
3356
3463
|
messages: exportItems
|
3357
3464
|
};
|
3358
3465
|
}
|
@@ -3360,9 +3467,9 @@ var MessageRepository = (_class10 = class {constructor() { _class10.prototype.__
|
|
3360
3467
|
for (const { message, parentId } of messages2) {
|
3361
3468
|
this.addOrUpdateMessage(parentId, message);
|
3362
3469
|
}
|
3363
|
-
this.resetHead(_nullishCoalesce(_nullishCoalesce(headId, () => ( _optionalChain([messages2, 'access',
|
3470
|
+
this.resetHead(_nullishCoalesce(_nullishCoalesce(headId, () => ( _optionalChain([messages2, 'access', _183 => _183.at, 'call', _184 => _184(-1), 'optionalAccess', _185 => _185.message, 'access', _186 => _186.id]))), () => ( null)));
|
3364
3471
|
}
|
3365
|
-
},
|
3472
|
+
}, _class9);
|
3366
3473
|
|
3367
3474
|
// src/ui/base/tooltip-icon-button.tsx
|
3368
3475
|
|
@@ -3464,7 +3571,7 @@ TooltipIconButton.displayName = "TooltipIconButton";
|
|
3464
3571
|
var toAppendMessage = (messages2, message) => {
|
3465
3572
|
if (typeof message === "string") {
|
3466
3573
|
return {
|
3467
|
-
parentId: _nullishCoalesce(_optionalChain([messages2, 'access',
|
3574
|
+
parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _187 => _187.at, 'call', _188 => _188(-1), 'optionalAccess', _189 => _189.id]), () => ( null)),
|
3468
3575
|
role: "user",
|
3469
3576
|
content: [{ type: "text", text: message }],
|
3470
3577
|
attachments: []
|
@@ -3474,7 +3581,7 @@ var toAppendMessage = (messages2, message) => {
|
|
3474
3581
|
return message;
|
3475
3582
|
}
|
3476
3583
|
return {
|
3477
|
-
parentId: _nullishCoalesce(_nullishCoalesce(message.parentId, () => ( _optionalChain([messages2, 'access',
|
3584
|
+
parentId: _nullishCoalesce(_nullishCoalesce(message.parentId, () => ( _optionalChain([messages2, 'access', _190 => _190.at, 'call', _191 => _191(-1), 'optionalAccess', _192 => _192.id]))), () => ( null)),
|
3478
3585
|
role: _nullishCoalesce(message.role, () => ( "user")),
|
3479
3586
|
content: message.content,
|
3480
3587
|
attachments: _nullishCoalesce(message.attachments, () => ( []))
|
@@ -3486,15 +3593,17 @@ var getThreadState = (runtime) => {
|
|
3486
3593
|
threadId: runtime.threadId,
|
3487
3594
|
capabilities: runtime.capabilities,
|
3488
3595
|
isDisabled: runtime.isDisabled,
|
3489
|
-
isRunning: _optionalChain([lastMessage, 'optionalAccess',
|
3596
|
+
isRunning: _optionalChain([lastMessage, 'optionalAccess', _193 => _193.role]) !== "assistant" ? false : lastMessage.status.type === "running",
|
3490
3597
|
messages: runtime.messages,
|
3491
3598
|
suggestions: runtime.suggestions,
|
3492
3599
|
extras: runtime.extras,
|
3493
3600
|
speech: runtime.speech
|
3494
3601
|
});
|
3495
3602
|
};
|
3496
|
-
var ThreadRuntimeImpl = (
|
3497
|
-
|
3603
|
+
var ThreadRuntimeImpl = (_class10 = class {
|
3604
|
+
get path() {
|
3605
|
+
return this._threadBinding.path;
|
3606
|
+
}
|
3498
3607
|
/**
|
3499
3608
|
* @deprecated Use `getState().threadId` instead. This will be removed in 0.6.0.
|
3500
3609
|
*/
|
@@ -3547,24 +3656,32 @@ var ThreadRuntimeImpl = (_class11 = class {
|
|
3547
3656
|
return this._threadBinding.getState();
|
3548
3657
|
}
|
3549
3658
|
|
3550
|
-
constructor(threadBinding) {;
|
3659
|
+
constructor(threadBinding) {;_class10.prototype.__init20.call(this);
|
3551
3660
|
const stateBinding = new LazyMemoizeSubject({
|
3661
|
+
path: threadBinding.path,
|
3552
3662
|
getState: () => getThreadState(threadBinding.getState()),
|
3553
3663
|
subscribe: (callback) => threadBinding.subscribe(callback)
|
3554
3664
|
});
|
3555
3665
|
this._threadBinding = {
|
3666
|
+
path: threadBinding.path,
|
3556
3667
|
getState: () => threadBinding.getState(),
|
3557
3668
|
getStateState: () => stateBinding.getState(),
|
3558
3669
|
outerSubscribe: (callback) => threadBinding.outerSubscribe(callback),
|
3559
3670
|
subscribe: (callback) => threadBinding.subscribe(callback)
|
3560
3671
|
};
|
3672
|
+
this.composer = new ThreadComposerRuntimeImpl(
|
3673
|
+
new NestedSubscriptionSubject({
|
3674
|
+
path: {
|
3675
|
+
...this.path,
|
3676
|
+
ref: this.path.ref + `${this.path.ref}.composer`,
|
3677
|
+
composerSource: "thread"
|
3678
|
+
},
|
3679
|
+
getState: () => this._threadBinding.getState().composer,
|
3680
|
+
subscribe: (callback) => this._threadBinding.subscribe(callback)
|
3681
|
+
})
|
3682
|
+
);
|
3561
3683
|
}
|
3562
|
-
|
3563
|
-
new NestedSubscriptionSubject({
|
3564
|
-
getState: () => this._threadBinding.getState().composer,
|
3565
|
-
subscribe: (callback) => this._threadBinding.subscribe(callback)
|
3566
|
-
})
|
3567
|
-
)}
|
3684
|
+
|
3568
3685
|
getState() {
|
3569
3686
|
return this._threadBinding.getStateState();
|
3570
3687
|
}
|
@@ -3642,37 +3759,67 @@ var ThreadRuntimeImpl = (_class11 = class {
|
|
3642
3759
|
}
|
3643
3760
|
getMesssageByIndex(idx) {
|
3644
3761
|
if (idx < 0) throw new Error("Message index must be >= 0");
|
3762
|
+
return this._getMessageRuntime(
|
3763
|
+
{
|
3764
|
+
...this.path,
|
3765
|
+
ref: this.path.ref + `${this.path.ref}.messages[${idx}]`,
|
3766
|
+
messageSelector: { type: "index", index: idx }
|
3767
|
+
},
|
3768
|
+
() => {
|
3769
|
+
const messages2 = this._threadBinding.getState().messages;
|
3770
|
+
const message = messages2[idx];
|
3771
|
+
if (!message) return void 0;
|
3772
|
+
return {
|
3773
|
+
message,
|
3774
|
+
parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _194 => _194[idx - 1], 'optionalAccess', _195 => _195.id]), () => ( null))
|
3775
|
+
};
|
3776
|
+
}
|
3777
|
+
);
|
3778
|
+
}
|
3779
|
+
getMesssageById(messageId) {
|
3780
|
+
return this._getMessageRuntime(
|
3781
|
+
{
|
3782
|
+
...this.path,
|
3783
|
+
ref: this.path.ref + `${this.path.ref}.messages[messageId=${JSON.stringify(messageId)}]`,
|
3784
|
+
messageSelector: { type: "messageId", messageId }
|
3785
|
+
},
|
3786
|
+
() => this._threadBinding.getState().getMessageById(messageId)
|
3787
|
+
);
|
3788
|
+
}
|
3789
|
+
_getMessageRuntime(path, callback) {
|
3645
3790
|
return new MessageRuntimeImpl(
|
3646
3791
|
new ShallowMemoizeSubject({
|
3792
|
+
path,
|
3647
3793
|
getState: () => {
|
3648
|
-
const {
|
3649
|
-
const
|
3650
|
-
if (!message) return SKIP_UPDATE;
|
3794
|
+
const { message, parentId } = _nullishCoalesce(callback(), () => ( {}));
|
3795
|
+
const { messages: messages2, speech: speechState } = this._threadBinding.getState();
|
3796
|
+
if (!message || parentId === void 0) return SKIP_UPDATE;
|
3651
3797
|
const thread = this._threadBinding.getState();
|
3652
3798
|
const branches = thread.getBranches(message.id);
|
3653
3799
|
const submittedFeedback = thread.getSubmittedFeedback(message.id);
|
3654
3800
|
return {
|
3655
3801
|
...message,
|
3656
3802
|
message,
|
3657
|
-
isLast:
|
3658
|
-
parentId
|
3803
|
+
isLast: _optionalChain([messages2, 'access', _196 => _196.at, 'call', _197 => _197(-1), 'optionalAccess', _198 => _198.id]) === message.id,
|
3804
|
+
parentId,
|
3659
3805
|
branches,
|
3660
3806
|
branchNumber: branches.indexOf(message.id) + 1,
|
3661
3807
|
branchCount: branches.length,
|
3662
|
-
speech: _optionalChain([speechState, 'optionalAccess',
|
3808
|
+
speech: _optionalChain([speechState, 'optionalAccess', _199 => _199.messageId]) === message.id ? speechState : void 0,
|
3663
3809
|
submittedFeedback
|
3664
3810
|
};
|
3665
3811
|
},
|
3666
|
-
subscribe: (
|
3812
|
+
subscribe: (callback2) => this._threadBinding.subscribe(callback2)
|
3667
3813
|
}),
|
3668
3814
|
this._threadBinding
|
3669
3815
|
);
|
3670
3816
|
}
|
3671
|
-
|
3817
|
+
__init20() {this._eventListenerNestedSubscriptions = /* @__PURE__ */ new Map()}
|
3672
3818
|
unstable_on(event, callback) {
|
3673
3819
|
let subject = this._eventListenerNestedSubscriptions.get(event);
|
3674
3820
|
if (!subject) {
|
3675
3821
|
subject = new NestedSubscriptionSubject({
|
3822
|
+
path: this.path,
|
3676
3823
|
getState: () => ({
|
3677
3824
|
subscribe: (callback2) => this._threadBinding.getState().unstable_on(event, callback2)
|
3678
3825
|
}),
|
@@ -3682,45 +3829,96 @@ var ThreadRuntimeImpl = (_class11 = class {
|
|
3682
3829
|
}
|
3683
3830
|
return subject.subscribe(callback);
|
3684
3831
|
}
|
3685
|
-
},
|
3832
|
+
}, _class10);
|
3833
|
+
|
3834
|
+
// src/api/ThreadManagerRuntime.ts
|
3835
|
+
var getThreadManagerState = (threadManager) => {
|
3836
|
+
return {
|
3837
|
+
threads: threadManager.threads,
|
3838
|
+
archivedThreads: threadManager.archivedThreads
|
3839
|
+
};
|
3840
|
+
};
|
3841
|
+
var THREAD_MANAGER_PATH = {
|
3842
|
+
ref: "threadManager"
|
3843
|
+
};
|
3844
|
+
var ThreadManagerRuntimeImpl = class {
|
3845
|
+
constructor(_core) {
|
3846
|
+
this._core = _core;
|
3847
|
+
const stateBinding = new LazyMemoizeSubject({
|
3848
|
+
path: THREAD_MANAGER_PATH,
|
3849
|
+
getState: () => getThreadManagerState(_core),
|
3850
|
+
subscribe: (callback) => _core.subscribe(callback)
|
3851
|
+
});
|
3852
|
+
this._getState = stateBinding.getState.bind(stateBinding);
|
3853
|
+
}
|
3854
|
+
get path() {
|
3855
|
+
return THREAD_MANAGER_PATH;
|
3856
|
+
}
|
3857
|
+
|
3858
|
+
getState() {
|
3859
|
+
return this._getState();
|
3860
|
+
}
|
3861
|
+
rename(threadId, newTitle) {
|
3862
|
+
return this._core.rename(threadId, newTitle);
|
3863
|
+
}
|
3864
|
+
archive(threadId) {
|
3865
|
+
return this._core.archive(threadId);
|
3866
|
+
}
|
3867
|
+
unarchive(threadId) {
|
3868
|
+
return this._core.unarchive(threadId);
|
3869
|
+
}
|
3870
|
+
delete(threadId) {
|
3871
|
+
return this._core.delete(threadId);
|
3872
|
+
}
|
3873
|
+
subscribe(callback) {
|
3874
|
+
return this._core.subscribe(callback);
|
3875
|
+
}
|
3876
|
+
};
|
3686
3877
|
|
3687
3878
|
// src/api/AssistantRuntime.ts
|
3688
3879
|
var AssistantRuntimeImpl = class _AssistantRuntimeImpl {
|
3689
3880
|
constructor(_core, _thread) {
|
3690
3881
|
this._core = _core;
|
3691
3882
|
this._thread = _thread;
|
3883
|
+
this.threadManager = new ThreadManagerRuntimeImpl(_core.threadManager);
|
3692
3884
|
}
|
3885
|
+
|
3693
3886
|
get thread() {
|
3694
3887
|
return this._thread;
|
3695
3888
|
}
|
3696
3889
|
switchToNewThread() {
|
3697
|
-
return this._core.switchToNewThread();
|
3890
|
+
return this._core.threadManager.switchToNewThread();
|
3698
3891
|
}
|
3699
3892
|
switchToThread(threadId) {
|
3700
|
-
return this.
|
3893
|
+
if (threadId === null) return this.switchToNewThread();
|
3894
|
+
return this._core.threadManager.switchToThread(threadId);
|
3701
3895
|
}
|
3702
3896
|
registerModelConfigProvider(provider) {
|
3703
3897
|
return this._core.registerModelConfigProvider(provider);
|
3704
3898
|
}
|
3705
|
-
// TODO events for thread switching
|
3706
3899
|
/**
|
3707
3900
|
* @deprecated Thread is now static and never gets updated. This will be removed in 0.6.0.
|
3708
3901
|
*/
|
3709
|
-
subscribe(
|
3710
|
-
return
|
3902
|
+
subscribe() {
|
3903
|
+
return () => {
|
3904
|
+
};
|
3711
3905
|
}
|
3712
|
-
static
|
3906
|
+
static createMainThreadRuntime(_core, CustomThreadRuntime = ThreadRuntimeImpl) {
|
3713
3907
|
return new CustomThreadRuntime(
|
3714
3908
|
new NestedSubscriptionSubject({
|
3715
|
-
|
3716
|
-
|
3909
|
+
path: {
|
3910
|
+
ref: "threads.main",
|
3911
|
+
threadSelector: { type: "main" }
|
3912
|
+
},
|
3913
|
+
getState: () => _core.threadManager.mainThread,
|
3914
|
+
subscribe: (callback) => _core.threadManager.subscribe(callback)
|
3717
3915
|
})
|
3718
3916
|
);
|
3719
3917
|
}
|
3720
3918
|
static create(_core, CustomThreadRuntime = ThreadRuntimeImpl) {
|
3721
3919
|
return new _AssistantRuntimeImpl(
|
3722
3920
|
_core,
|
3723
|
-
_AssistantRuntimeImpl.
|
3921
|
+
_AssistantRuntimeImpl.createMainThreadRuntime(_core, CustomThreadRuntime)
|
3724
3922
|
);
|
3725
3923
|
}
|
3726
3924
|
};
|
@@ -3791,7 +3989,7 @@ var fromLanguageModelMessages = (lm, { mergeSteps }) => {
|
|
3791
3989
|
});
|
3792
3990
|
if (mergeSteps) {
|
3793
3991
|
const previousMessage = messages2[messages2.length - 1];
|
3794
|
-
if (_optionalChain([previousMessage, 'optionalAccess',
|
3992
|
+
if (_optionalChain([previousMessage, 'optionalAccess', _200 => _200.role]) === "assistant") {
|
3795
3993
|
previousMessage.content.push(...newContent);
|
3796
3994
|
break;
|
3797
3995
|
}
|
@@ -3804,7 +4002,7 @@ var fromLanguageModelMessages = (lm, { mergeSteps }) => {
|
|
3804
4002
|
}
|
3805
4003
|
case "tool": {
|
3806
4004
|
const previousMessage = messages2[messages2.length - 1];
|
3807
|
-
if (_optionalChain([previousMessage, 'optionalAccess',
|
4005
|
+
if (_optionalChain([previousMessage, 'optionalAccess', _201 => _201.role]) !== "assistant")
|
3808
4006
|
throw new Error(
|
3809
4007
|
"A tool message must be preceded by an assistant message."
|
3810
4008
|
);
|
@@ -3880,14 +4078,14 @@ function streamPartDecoderStream() {
|
|
3880
4078
|
controller.enqueue(decodeStreamPart(chunk));
|
3881
4079
|
}
|
3882
4080
|
});
|
3883
|
-
return new (0,
|
4081
|
+
return new (0, _chunkC6UZOY5Ajs.PipeableTransformStream)((readable) => {
|
3884
4082
|
return readable.pipeThrough(new TextDecoderStream()).pipeThrough(chunkByLineStream()).pipeThrough(decodeStream);
|
3885
4083
|
});
|
3886
4084
|
}
|
3887
4085
|
|
3888
4086
|
// src/runtimes/edge/streams/utils/index.ts
|
3889
4087
|
var streamUtils = {
|
3890
|
-
streamPartEncoderStream:
|
4088
|
+
streamPartEncoderStream: _chunkC6UZOY5Ajs.streamPartEncoderStream,
|
3891
4089
|
streamPartDecoderStream
|
3892
4090
|
};
|
3893
4091
|
|
@@ -3934,7 +4132,7 @@ function assistantDecoderStream() {
|
|
3934
4132
|
case "c" /* ToolCallDelta */: {
|
3935
4133
|
const { toolCallId, argsTextDelta } = value;
|
3936
4134
|
const toolName = toolCallNames.get(toolCallId);
|
3937
|
-
if (_optionalChain([currentToolCall, 'optionalAccess',
|
4135
|
+
if (_optionalChain([currentToolCall, 'optionalAccess', _202 => _202.id]) === toolCallId) {
|
3938
4136
|
currentToolCall.argsText += argsTextDelta;
|
3939
4137
|
}
|
3940
4138
|
controller.enqueue({
|
@@ -4035,8 +4233,8 @@ var EdgeChatAdapter = class {
|
|
4035
4233
|
credentials: _nullishCoalesce(this.options.credentials, () => ( "same-origin")),
|
4036
4234
|
body: JSON.stringify({
|
4037
4235
|
system: config.system,
|
4038
|
-
messages:
|
4039
|
-
tools: config.tools ?
|
4236
|
+
messages: _chunkC6UZOY5Ajs.toCoreMessages.call(void 0, messages2),
|
4237
|
+
tools: config.tools ? _chunkC6UZOY5Ajs.toLanguageModelTools.call(void 0, config.tools) : [],
|
4040
4238
|
...config.callSettings,
|
4041
4239
|
...config.config,
|
4042
4240
|
...this.options.body
|
@@ -4046,7 +4244,7 @@ var EdgeChatAdapter = class {
|
|
4046
4244
|
if (!result.ok) {
|
4047
4245
|
throw new Error(`Status ${result.status}: ${await result.text()}`);
|
4048
4246
|
}
|
4049
|
-
const stream = result.body.pipeThrough(streamPartDecoderStream()).pipeThrough(assistantDecoderStream()).pipeThrough(
|
4247
|
+
const stream = result.body.pipeThrough(streamPartDecoderStream()).pipeThrough(assistantDecoderStream()).pipeThrough(_chunkC6UZOY5Ajs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunkC6UZOY5Ajs.runResultStream.call(void 0, ));
|
4050
4248
|
let update;
|
4051
4249
|
for await (update of asAsyncIterable(stream)) {
|
4052
4250
|
yield update;
|
@@ -4078,7 +4276,7 @@ var useEdgeRuntime = (options) => {
|
|
4078
4276
|
};
|
4079
4277
|
|
4080
4278
|
// src/runtimes/local/shouldContinue.tsx
|
4081
|
-
var shouldContinue = (result) => _optionalChain([result, 'access',
|
4279
|
+
var shouldContinue = (result) => _optionalChain([result, 'access', _203 => _203.status, 'optionalAccess', _204 => _204.type]) === "requires-action" && result.status.reason === "tool-calls" && result.content.every((c) => c.type !== "tool-call" || !!c.result);
|
4082
4280
|
|
4083
4281
|
// src/runtimes/composer/DefaultEditComposerRuntimeCore.tsx
|
4084
4282
|
var DefaultEditComposerRuntimeCore = class extends BaseComposerRuntimeCore {
|
@@ -4098,7 +4296,7 @@ var DefaultEditComposerRuntimeCore = class extends BaseComposerRuntimeCore {
|
|
4098
4296
|
return true;
|
4099
4297
|
}
|
4100
4298
|
getAttachmentAdapter() {
|
4101
|
-
return _optionalChain([this, 'access',
|
4299
|
+
return _optionalChain([this, 'access', _205 => _205.runtime, 'access', _206 => _206.adapters, 'optionalAccess', _207 => _207.attachments]);
|
4102
4300
|
}
|
4103
4301
|
|
4104
4302
|
|
@@ -4122,20 +4320,20 @@ var DefaultEditComposerRuntimeCore = class extends BaseComposerRuntimeCore {
|
|
4122
4320
|
};
|
4123
4321
|
|
4124
4322
|
// src/runtimes/core/BaseThreadRuntimeCore.tsx
|
4125
|
-
var BaseThreadRuntimeCore = (
|
4126
|
-
constructor(configProvider) {;
|
4323
|
+
var BaseThreadRuntimeCore = (_class11 = class {
|
4324
|
+
constructor(configProvider) {;_class11.prototype.__init21.call(this);_class11.prototype.__init22.call(this);_class11.prototype.__init23.call(this);_class11.prototype.__init24.call(this);_class11.prototype.__init25.call(this);_class11.prototype.__init26.call(this);
|
4127
4325
|
this.configProvider = configProvider;
|
4128
4326
|
}
|
4129
|
-
|
4130
|
-
|
4327
|
+
__init21() {this._subscriptions = /* @__PURE__ */ new Set()}
|
4328
|
+
__init22() {this.repository = new MessageRepository()}
|
4131
4329
|
get messages() {
|
4132
4330
|
return this.repository.getMessages();
|
4133
4331
|
}
|
4134
|
-
|
4332
|
+
__init23() {this.composer = new DefaultThreadComposerRuntimeCore(this)}
|
4135
4333
|
getModelConfig() {
|
4136
4334
|
return this.configProvider.getModelConfig();
|
4137
4335
|
}
|
4138
|
-
|
4336
|
+
__init24() {this._editComposers = /* @__PURE__ */ new Map()}
|
4139
4337
|
getEditComposer(messageId) {
|
4140
4338
|
return this._editComposers.get(messageId);
|
4141
4339
|
}
|
@@ -4152,6 +4350,9 @@ var BaseThreadRuntimeCore = (_class12 = class {
|
|
4152
4350
|
);
|
4153
4351
|
this._notifySubscribers();
|
4154
4352
|
}
|
4353
|
+
getMessageById(messageId) {
|
4354
|
+
return this.repository.getMessage(messageId);
|
4355
|
+
}
|
4155
4356
|
getBranches(messageId) {
|
4156
4357
|
return this.repository.getBranches(messageId);
|
4157
4358
|
}
|
@@ -4171,12 +4372,12 @@ var BaseThreadRuntimeCore = (_class12 = class {
|
|
4171
4372
|
this._subscriptions.add(callback);
|
4172
4373
|
return () => this._subscriptions.delete(callback);
|
4173
4374
|
}
|
4174
|
-
|
4375
|
+
__init25() {this._submittedFeedback = {}}
|
4175
4376
|
getSubmittedFeedback(messageId) {
|
4176
4377
|
return this._submittedFeedback[messageId];
|
4177
4378
|
}
|
4178
4379
|
submitFeedback({ messageId, type }) {
|
4179
|
-
const adapter = _optionalChain([this, 'access',
|
4380
|
+
const adapter = _optionalChain([this, 'access', _208 => _208.adapters, 'optionalAccess', _209 => _209.feedback]);
|
4180
4381
|
if (!adapter) throw new Error("Feedback adapter not configured");
|
4181
4382
|
const { message } = this.repository.getMessage(messageId);
|
4182
4383
|
adapter.submit({ message, type });
|
@@ -4186,11 +4387,11 @@ var BaseThreadRuntimeCore = (_class12 = class {
|
|
4186
4387
|
|
4187
4388
|
|
4188
4389
|
speak(messageId) {
|
4189
|
-
const adapter = _optionalChain([this, 'access',
|
4390
|
+
const adapter = _optionalChain([this, 'access', _210 => _210.adapters, 'optionalAccess', _211 => _211.speech]);
|
4190
4391
|
if (!adapter) throw new Error("Speech adapter not configured");
|
4191
4392
|
const { message } = this.repository.getMessage(messageId);
|
4192
|
-
_optionalChain([this, 'access',
|
4193
|
-
const utterance = adapter.speak(message);
|
4393
|
+
_optionalChain([this, 'access', _212 => _212._stopSpeaking, 'optionalCall', _213 => _213()]);
|
4394
|
+
const utterance = adapter.speak(getThreadMessageText(message));
|
4194
4395
|
const unsub = utterance.subscribe(() => {
|
4195
4396
|
if (utterance.status.type === "ended") {
|
4196
4397
|
this._stopSpeaking = void 0;
|
@@ -4221,8 +4422,12 @@ var BaseThreadRuntimeCore = (_class12 = class {
|
|
4221
4422
|
this.repository.import(data);
|
4222
4423
|
this._notifySubscribers();
|
4223
4424
|
}
|
4224
|
-
|
4425
|
+
__init26() {this._eventSubscribers = /* @__PURE__ */ new Map()}
|
4225
4426
|
unstable_on(event, callback) {
|
4427
|
+
if (event === "model-config-update") {
|
4428
|
+
return _nullishCoalesce(_optionalChain([this, 'access', _214 => _214.configProvider, 'access', _215 => _215.subscribe, 'optionalCall', _216 => _216(callback)]), () => ( (() => {
|
4429
|
+
})));
|
4430
|
+
}
|
4226
4431
|
const subscribers = this._eventSubscribers.get(event);
|
4227
4432
|
if (!subscribers) {
|
4228
4433
|
this._eventSubscribers.set(event, /* @__PURE__ */ new Set([callback]));
|
@@ -4234,25 +4439,16 @@ var BaseThreadRuntimeCore = (_class12 = class {
|
|
4234
4439
|
subscribers2.delete(callback);
|
4235
4440
|
};
|
4236
4441
|
}
|
4237
|
-
},
|
4442
|
+
}, _class11);
|
4238
4443
|
|
4239
4444
|
// src/runtimes/local/LocalThreadRuntimeCore.tsx
|
4240
|
-
var LocalThreadRuntimeCore = (
|
4241
|
-
constructor(configProvider,
|
4242
|
-
super(configProvider);
|
4243
|
-
this.
|
4244
|
-
this.
|
4245
|
-
this.options = options;
|
4246
|
-
if (initialMessages) {
|
4247
|
-
let parentId = null;
|
4248
|
-
const messages2 = fromCoreMessages(initialMessages);
|
4249
|
-
for (const message of messages2) {
|
4250
|
-
this.repository.addOrUpdateMessage(parentId, message);
|
4251
|
-
parentId = message.id;
|
4252
|
-
}
|
4253
|
-
}
|
4445
|
+
var LocalThreadRuntimeCore = (_class12 = class extends BaseThreadRuntimeCore {
|
4446
|
+
constructor(configProvider, threadId, options) {
|
4447
|
+
super(configProvider);_class12.prototype.__init27.call(this);_class12.prototype.__init28.call(this);_class12.prototype.__init29.call(this);_class12.prototype.__init30.call(this);;
|
4448
|
+
this.threadId = threadId;
|
4449
|
+
this._options = options;
|
4254
4450
|
}
|
4255
|
-
|
4451
|
+
__init27() {this.capabilities = {
|
4256
4452
|
switchToBranch: true,
|
4257
4453
|
edit: true,
|
4258
4454
|
reload: true,
|
@@ -4262,34 +4458,31 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore {
|
|
4262
4458
|
attachments: false,
|
4263
4459
|
feedback: false
|
4264
4460
|
}}
|
4265
|
-
|
4266
|
-
|
4267
|
-
|
4268
|
-
__init32() {this.suggestions = []}
|
4461
|
+
__init28() {this.abortController = null}
|
4462
|
+
__init29() {this.isDisabled = false}
|
4463
|
+
__init30() {this.suggestions = []}
|
4269
4464
|
get adapters() {
|
4270
|
-
return this.
|
4465
|
+
return this._options.adapters;
|
4271
4466
|
}
|
4272
4467
|
|
4273
|
-
get options() {
|
4274
|
-
return this._options;
|
4275
|
-
}
|
4276
4468
|
get extras() {
|
4277
4469
|
return void 0;
|
4278
4470
|
}
|
4279
|
-
|
4471
|
+
setOptions(options) {
|
4472
|
+
if (this._options === options) return;
|
4280
4473
|
this._options = options;
|
4281
4474
|
let hasUpdates = false;
|
4282
|
-
const canSpeak = _optionalChain([options, 'access',
|
4475
|
+
const canSpeak = _optionalChain([options, 'access', _217 => _217.adapters, 'optionalAccess', _218 => _218.speech]) !== void 0;
|
4283
4476
|
if (this.capabilities.speech !== canSpeak) {
|
4284
4477
|
this.capabilities.speech = canSpeak;
|
4285
4478
|
hasUpdates = true;
|
4286
4479
|
}
|
4287
|
-
const canAttach = _optionalChain([options, 'access',
|
4480
|
+
const canAttach = _optionalChain([options, 'access', _219 => _219.adapters, 'optionalAccess', _220 => _220.attachments]) !== void 0;
|
4288
4481
|
if (this.capabilities.attachments !== canAttach) {
|
4289
4482
|
this.capabilities.attachments = canAttach;
|
4290
4483
|
hasUpdates = true;
|
4291
4484
|
}
|
4292
|
-
const canFeedback = _optionalChain([options, 'access',
|
4485
|
+
const canFeedback = _optionalChain([options, 'access', _221 => _221.adapters, 'optionalAccess', _222 => _222.feedback]) !== void 0;
|
4293
4486
|
if (this.capabilities.feedback !== canFeedback) {
|
4294
4487
|
this.capabilities.feedback = canFeedback;
|
4295
4488
|
hasUpdates = true;
|
@@ -4325,13 +4518,13 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore {
|
|
4325
4518
|
}
|
4326
4519
|
async performRoundtrip(parentId, message) {
|
4327
4520
|
const messages2 = this.repository.getMessages();
|
4328
|
-
_optionalChain([this, 'access',
|
4521
|
+
_optionalChain([this, 'access', _223 => _223.abortController, 'optionalAccess', _224 => _224.abort, 'call', _225 => _225()]);
|
4329
4522
|
this.abortController = new AbortController();
|
4330
4523
|
const initialContent = message.content;
|
4331
|
-
const initialSteps = _optionalChain([message, 'access',
|
4332
|
-
const initalCustom = _optionalChain([message, 'access',
|
4524
|
+
const initialSteps = _optionalChain([message, 'access', _226 => _226.metadata, 'optionalAccess', _227 => _227.steps]);
|
4525
|
+
const initalCustom = _optionalChain([message, 'access', _228 => _228.metadata, 'optionalAccess', _229 => _229.custom]);
|
4333
4526
|
const updateMessage = (m) => {
|
4334
|
-
const newSteps = _optionalChain([m, 'access',
|
4527
|
+
const newSteps = _optionalChain([m, 'access', _230 => _230.metadata, 'optionalAccess', _231 => _231.steps]) || _optionalChain([m, 'access', _232 => _232.metadata, 'optionalAccess', _233 => _233.roundtrips]);
|
4335
4528
|
const steps2 = newSteps ? [..._nullishCoalesce(initialSteps, () => ( [])), ...newSteps] : void 0;
|
4336
4529
|
message = {
|
4337
4530
|
...message,
|
@@ -4343,7 +4536,7 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore {
|
|
4343
4536
|
metadata: {
|
4344
4537
|
...message.metadata,
|
4345
4538
|
...steps2 ? { roundtrips: steps2, steps: steps2 } : void 0,
|
4346
|
-
..._optionalChain([m, 'access',
|
4539
|
+
..._optionalChain([m, 'access', _234 => _234.metadata, 'optionalAccess', _235 => _235.custom]) ? {
|
4347
4540
|
custom: { ..._nullishCoalesce(initalCustom, () => ( {})), ...m.metadata.custom }
|
4348
4541
|
} : void 0
|
4349
4542
|
}
|
@@ -4352,8 +4545,8 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore {
|
|
4352
4545
|
this.repository.addOrUpdateMessage(parentId, message);
|
4353
4546
|
this._notifySubscribers();
|
4354
4547
|
};
|
4355
|
-
const maxSteps = this.
|
4356
|
-
const steps = _nullishCoalesce(_optionalChain([message, 'access',
|
4548
|
+
const maxSteps = this._options.maxSteps ? this._options.maxSteps : (_nullishCoalesce(this._options.maxToolRoundtrips, () => ( 1))) + 1;
|
4549
|
+
const steps = _nullishCoalesce(_optionalChain([message, 'access', _236 => _236.metadata, 'optionalAccess', _237 => _237.steps, 'optionalAccess', _238 => _238.length]), () => ( 0));
|
4357
4550
|
if (steps >= maxSteps) {
|
4358
4551
|
updateMessage({
|
4359
4552
|
status: {
|
@@ -4370,7 +4563,7 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore {
|
|
4370
4563
|
});
|
4371
4564
|
}
|
4372
4565
|
try {
|
4373
|
-
const promiseOrGenerator = this.
|
4566
|
+
const promiseOrGenerator = this.adapters.chatModel.run({
|
4374
4567
|
messages: messages2,
|
4375
4568
|
abortSignal: this.abortController.signal,
|
4376
4569
|
config: this.getModelConfig(),
|
@@ -4405,7 +4598,7 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore {
|
|
4405
4598
|
return message;
|
4406
4599
|
}
|
4407
4600
|
cancelRun() {
|
4408
|
-
_optionalChain([this, 'access',
|
4601
|
+
_optionalChain([this, 'access', _239 => _239.abortController, 'optionalAccess', _240 => _240.abort, 'call', _241 => _241()]);
|
4409
4602
|
this.abortController = null;
|
4410
4603
|
}
|
4411
4604
|
addToolResult({
|
@@ -4441,46 +4634,156 @@ var LocalThreadRuntimeCore = (_class13 = class extends BaseThreadRuntimeCore {
|
|
4441
4634
|
this.performRoundtrip(parentId, message);
|
4442
4635
|
}
|
4443
4636
|
}
|
4444
|
-
},
|
4637
|
+
}, _class12);
|
4445
4638
|
|
4446
|
-
// src/runtimes/local/
|
4447
|
-
var
|
4639
|
+
// src/runtimes/local/LocalThreadManagerRuntimeCore.tsx
|
4640
|
+
var LocalThreadManagerRuntimeCore = (_class13 = class {
|
4641
|
+
constructor(_threadFactory) {;_class13.prototype.__init31.call(this);_class13.prototype.__init32.call(this);_class13.prototype.__init33.call(this);_class13.prototype.__init34.call(this);
|
4642
|
+
this._threadFactory = _threadFactory;
|
4643
|
+
this._mainThread = this._threadFactory(generateId(), { messages: [] });
|
4644
|
+
}
|
4645
|
+
__init31() {this._threadData = /* @__PURE__ */ new Map()}
|
4646
|
+
__init32() {this._threads = []}
|
4647
|
+
__init33() {this._archivedThreads = []}
|
4648
|
+
get threads() {
|
4649
|
+
return this._threads;
|
4650
|
+
}
|
4651
|
+
get archivedThreads() {
|
4652
|
+
return this._archivedThreads;
|
4653
|
+
}
|
4448
4654
|
|
4449
|
-
|
4450
|
-
|
4451
|
-
super(new LocalThreadRuntimeCore(proxyConfigProvider, adapter, options));
|
4452
|
-
this._proxyConfigProvider = proxyConfigProvider;
|
4655
|
+
get mainThread() {
|
4656
|
+
return this._mainThread;
|
4453
4657
|
}
|
4454
|
-
|
4455
|
-
|
4658
|
+
switchToThread(threadId) {
|
4659
|
+
if (this._mainThread.threadId === threadId) return;
|
4660
|
+
const data = this._threadData.get(threadId);
|
4661
|
+
if (!data) throw new Error("Thread not found");
|
4662
|
+
const thread = this._threadFactory(threadId, data.data);
|
4663
|
+
this._performThreadSwitch(thread);
|
4456
4664
|
}
|
4457
4665
|
switchToNewThread() {
|
4458
|
-
|
4459
|
-
|
4460
|
-
|
4461
|
-
|
4462
|
-
|
4463
|
-
)
|
4464
|
-
|
4666
|
+
if (!this._mainThread) return;
|
4667
|
+
const thread = this._threadFactory(generateId(), { messages: [] });
|
4668
|
+
this._performThreadSwitch(thread);
|
4669
|
+
}
|
4670
|
+
_performThreadSwitch(newThreadCore) {
|
4671
|
+
if (this._mainThread) {
|
4672
|
+
const data = this._threadData.get(this._mainThread.threadId);
|
4673
|
+
if (!data) throw new Error("Thread not found");
|
4674
|
+
const exprt = this._mainThread.export();
|
4675
|
+
data.data = exprt;
|
4676
|
+
}
|
4677
|
+
this._mainThread._notifyEventSubscribers("switched-away");
|
4678
|
+
this._mainThread = newThreadCore;
|
4679
|
+
newThreadCore._notifyEventSubscribers("switched-to");
|
4680
|
+
this._notifySubscribers();
|
4465
4681
|
}
|
4466
|
-
|
4467
|
-
|
4468
|
-
|
4682
|
+
_performMoveOp(threadId, operation) {
|
4683
|
+
const data = this._threadData.get(threadId);
|
4684
|
+
if (!data) throw new Error("Thread not found");
|
4685
|
+
if (operation === "archive" && data.isArchived) return;
|
4686
|
+
if (operation === "unarchive" && !data.isArchived) return;
|
4687
|
+
if (operation === "archive") {
|
4688
|
+
data.isArchived = true;
|
4689
|
+
this._archivedThreads = [...this._archivedThreads, data.metadata];
|
4690
|
+
}
|
4691
|
+
if (operation === "unarchive") {
|
4692
|
+
data.isArchived = false;
|
4693
|
+
this._threads = [...this._threads, data.metadata];
|
4694
|
+
}
|
4695
|
+
if (operation === "delete") {
|
4696
|
+
this._threadData.delete(threadId);
|
4697
|
+
}
|
4698
|
+
if (operation === "archive" || operation === "delete" && data.isArchived) {
|
4699
|
+
this._archivedThreads = this._archivedThreads.filter(
|
4700
|
+
(t) => t.threadId !== threadId
|
4701
|
+
);
|
4702
|
+
}
|
4703
|
+
if (operation === "unarchive" || operation === "delete" && !data.isArchived) {
|
4704
|
+
this._threads = this._threads.filter((t) => t.threadId !== threadId);
|
4469
4705
|
}
|
4470
|
-
this.
|
4706
|
+
this._notifySubscribers();
|
4707
|
+
}
|
4708
|
+
async rename(threadId, newTitle) {
|
4709
|
+
const data = this._threadData.get(threadId);
|
4710
|
+
if (!data) throw new Error("Thread not found");
|
4711
|
+
data.metadata = {
|
4712
|
+
...data.metadata,
|
4713
|
+
title: newTitle
|
4714
|
+
};
|
4715
|
+
const threadList = data.isArchived ? this.archivedThreads : this.threads;
|
4716
|
+
const idx = threadList.findIndex((t) => t.threadId === threadId);
|
4717
|
+
const updatedThreadList = threadList.toSpliced(idx, 1, data.metadata);
|
4718
|
+
if (data.isArchived) {
|
4719
|
+
this._archivedThreads = updatedThreadList;
|
4720
|
+
} else {
|
4721
|
+
this._threads = updatedThreadList;
|
4722
|
+
}
|
4723
|
+
this._notifySubscribers();
|
4724
|
+
}
|
4725
|
+
async archive(threadId) {
|
4726
|
+
this._performMoveOp(threadId, "archive");
|
4727
|
+
}
|
4728
|
+
async unarchive(threadId) {
|
4729
|
+
this._performMoveOp(threadId, "unarchive");
|
4730
|
+
}
|
4731
|
+
async delete(threadId) {
|
4732
|
+
this._performMoveOp(threadId, "delete");
|
4733
|
+
}
|
4734
|
+
__init34() {this._subscriptions = /* @__PURE__ */ new Set()}
|
4735
|
+
subscribe(callback) {
|
4736
|
+
this._subscriptions.add(callback);
|
4737
|
+
return () => this._subscriptions.delete(callback);
|
4738
|
+
}
|
4739
|
+
_notifySubscribers() {
|
4740
|
+
for (const callback of this._subscriptions) callback();
|
4741
|
+
}
|
4742
|
+
}, _class13);
|
4743
|
+
|
4744
|
+
// src/runtimes/local/LocalRuntimeCore.tsx
|
4745
|
+
var getExportFromInitialMessages = (initialMessages) => {
|
4746
|
+
const messages2 = fromCoreMessages(initialMessages);
|
4747
|
+
return {
|
4748
|
+
messages: messages2.map((m, idx) => ({
|
4749
|
+
parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _242 => _242[idx - 1], 'optionalAccess', _243 => _243.id]), () => ( null)),
|
4750
|
+
message: m
|
4751
|
+
}))
|
4752
|
+
};
|
4753
|
+
};
|
4754
|
+
var LocalRuntimeCore = class extends BaseAssistantRuntimeCore {
|
4755
|
+
|
4756
|
+
|
4757
|
+
constructor(options, initialMessages) {
|
4758
|
+
super();
|
4759
|
+
this._options = options;
|
4760
|
+
this.threadManager = new LocalThreadManagerRuntimeCore((threadId, data) => {
|
4761
|
+
const thread = new LocalThreadRuntimeCore(
|
4762
|
+
this._proxyConfigProvider,
|
4763
|
+
threadId,
|
4764
|
+
this._options
|
4765
|
+
);
|
4766
|
+
thread.import(data);
|
4767
|
+
return thread;
|
4768
|
+
});
|
4769
|
+
if (initialMessages) {
|
4770
|
+
this.threadManager.mainThread.import(
|
4771
|
+
getExportFromInitialMessages(initialMessages)
|
4772
|
+
);
|
4773
|
+
}
|
4774
|
+
}
|
4775
|
+
setOptions(options) {
|
4776
|
+
this._options = options;
|
4777
|
+
this.threadManager.mainThread.setOptions(options);
|
4471
4778
|
}
|
4472
4779
|
reset({
|
4473
4780
|
initialMessages
|
4474
4781
|
} = {}) {
|
4475
|
-
this.
|
4782
|
+
this.threadManager.switchToNewThread();
|
4476
4783
|
if (!initialMessages) return;
|
4477
|
-
|
4478
|
-
|
4479
|
-
|
4480
|
-
parentId: _nullishCoalesce(_optionalChain([messages2, 'access', _229 => _229[idx - 1], 'optionalAccess', _230 => _230.id]), () => ( null)),
|
4481
|
-
message: m
|
4482
|
-
}))
|
4483
|
-
});
|
4784
|
+
this.threadManager.mainThread.import(
|
4785
|
+
getExportFromInitialMessages(initialMessages)
|
4786
|
+
);
|
4484
4787
|
}
|
4485
4788
|
};
|
4486
4789
|
|
@@ -4496,15 +4799,21 @@ var LocalRuntimeImpl = class _LocalRuntimeImpl extends AssistantRuntimeImpl {
|
|
4496
4799
|
static create(_core) {
|
4497
4800
|
return new _LocalRuntimeImpl(
|
4498
4801
|
_core,
|
4499
|
-
AssistantRuntimeImpl.
|
4802
|
+
AssistantRuntimeImpl.createMainThreadRuntime(_core, ThreadRuntimeImpl)
|
4500
4803
|
);
|
4501
4804
|
}
|
4502
4805
|
};
|
4503
4806
|
var useLocalRuntime = (adapter, options = {}) => {
|
4504
|
-
const
|
4505
|
-
|
4506
|
-
|
4507
|
-
|
4807
|
+
const opt = {
|
4808
|
+
...options,
|
4809
|
+
adapters: {
|
4810
|
+
...options.adapters,
|
4811
|
+
chatModel: adapter
|
4812
|
+
}
|
4813
|
+
};
|
4814
|
+
const [runtime] = _react.useState.call(void 0, () => new LocalRuntimeCore(opt));
|
4815
|
+
_react.useEffect.call(void 0, () => {
|
4816
|
+
runtime.setOptions(opt);
|
4508
4817
|
});
|
4509
4818
|
return _react.useMemo.call(void 0, () => LocalRuntimeImpl.create(runtime), [runtime]);
|
4510
4819
|
};
|
@@ -4512,6 +4821,92 @@ var useLocalRuntime = (adapter, options = {}) => {
|
|
4512
4821
|
// src/runtimes/external-store/useExternalStoreRuntime.tsx
|
4513
4822
|
|
4514
4823
|
|
4824
|
+
// src/runtimes/external-store/ExternalStoreThreadManagementAdapter.tsx
|
4825
|
+
var EMPTY_ARRAY2 = Object.freeze([]);
|
4826
|
+
var DEFAULT_THREAD_ID = "DEFAULT_THREAD_ID";
|
4827
|
+
var ExternalStoreThreadManagerRuntimeCore = (_class14 = class {
|
4828
|
+
constructor(adapter = {}, threadFactory) {;_class14.prototype.__init35.call(this);
|
4829
|
+
this.adapter = adapter;
|
4830
|
+
this.threadFactory = threadFactory;
|
4831
|
+
this._mainThread = this.threadFactory(DEFAULT_THREAD_ID);
|
4832
|
+
}
|
4833
|
+
get threads() {
|
4834
|
+
return _nullishCoalesce(this.adapter.threads, () => ( EMPTY_ARRAY2));
|
4835
|
+
}
|
4836
|
+
get archivedThreads() {
|
4837
|
+
return _nullishCoalesce(this.adapter.archivedThreads, () => ( EMPTY_ARRAY2));
|
4838
|
+
}
|
4839
|
+
|
4840
|
+
get mainThread() {
|
4841
|
+
return this._mainThread;
|
4842
|
+
}
|
4843
|
+
setAdapter(adapter) {
|
4844
|
+
const previousAdapter = this.adapter;
|
4845
|
+
this.adapter = adapter;
|
4846
|
+
const newThreadId = _nullishCoalesce(adapter.threadId, () => ( DEFAULT_THREAD_ID));
|
4847
|
+
const newThreads = _nullishCoalesce(adapter.threads, () => ( EMPTY_ARRAY2));
|
4848
|
+
const newArchivedThreads = _nullishCoalesce(adapter.archivedThreads, () => ( EMPTY_ARRAY2));
|
4849
|
+
if (previousAdapter.threadId === newThreadId && previousAdapter.threads === newThreads && previousAdapter.archivedThreads === newArchivedThreads) {
|
4850
|
+
return;
|
4851
|
+
}
|
4852
|
+
if (previousAdapter.threadId !== newThreadId) {
|
4853
|
+
this._mainThread._notifyEventSubscribers("switched-away");
|
4854
|
+
this._mainThread = this.threadFactory(newThreadId);
|
4855
|
+
this._mainThread._notifyEventSubscribers("switched-to");
|
4856
|
+
}
|
4857
|
+
this._notifySubscribers();
|
4858
|
+
}
|
4859
|
+
switchToThread(threadId) {
|
4860
|
+
if (_optionalChain([this, 'access', _244 => _244._mainThread, 'optionalAccess', _245 => _245.threadId]) === threadId) return;
|
4861
|
+
const onSwitchToThread = this.adapter.onSwitchToThread;
|
4862
|
+
if (!onSwitchToThread)
|
4863
|
+
throw new Error(
|
4864
|
+
"External store adapter does not support switching to thread"
|
4865
|
+
);
|
4866
|
+
onSwitchToThread(threadId);
|
4867
|
+
}
|
4868
|
+
switchToNewThread() {
|
4869
|
+
const onSwitchToNewThread = this.adapter.onSwitchToNewThread;
|
4870
|
+
if (!onSwitchToNewThread)
|
4871
|
+
throw new Error(
|
4872
|
+
"External store adapter does not support switching to new thread"
|
4873
|
+
);
|
4874
|
+
onSwitchToNewThread();
|
4875
|
+
}
|
4876
|
+
async rename(threadId, newTitle) {
|
4877
|
+
const onRename = this.adapter.onRename;
|
4878
|
+
if (!onRename)
|
4879
|
+
throw new Error("External store adapter does not support renaming");
|
4880
|
+
onRename(threadId, newTitle);
|
4881
|
+
}
|
4882
|
+
async archive(threadId) {
|
4883
|
+
const onArchive = this.adapter.onArchive;
|
4884
|
+
if (!onArchive)
|
4885
|
+
throw new Error("External store adapter does not support archiving");
|
4886
|
+
onArchive(threadId);
|
4887
|
+
}
|
4888
|
+
async unarchive(threadId) {
|
4889
|
+
const onUnarchive = this.adapter.onUnarchive;
|
4890
|
+
if (!onUnarchive)
|
4891
|
+
throw new Error("External store adapter does not support unarchiving");
|
4892
|
+
onUnarchive(threadId);
|
4893
|
+
}
|
4894
|
+
async delete(threadId) {
|
4895
|
+
const onDelete = this.adapter.onDelete;
|
4896
|
+
if (!onDelete)
|
4897
|
+
throw new Error("External store adapter does not support deleting");
|
4898
|
+
onDelete(threadId);
|
4899
|
+
}
|
4900
|
+
__init35() {this._subscriptions = /* @__PURE__ */ new Set()}
|
4901
|
+
subscribe(callback) {
|
4902
|
+
this._subscriptions.add(callback);
|
4903
|
+
return () => this._subscriptions.delete(callback);
|
4904
|
+
}
|
4905
|
+
_notifySubscribers() {
|
4906
|
+
for (const callback of this._subscriptions) callback();
|
4907
|
+
}
|
4908
|
+
}, _class14);
|
4909
|
+
|
4515
4910
|
// src/runtimes/external-store/getExternalStoreMessage.tsx
|
4516
4911
|
var symbolInnerMessage = Symbol("innerMessage");
|
4517
4912
|
var getExternalStoreMessage = (message) => {
|
@@ -4519,8 +4914,8 @@ var getExternalStoreMessage = (message) => {
|
|
4519
4914
|
};
|
4520
4915
|
|
4521
4916
|
// src/runtimes/external-store/ThreadMessageConverter.ts
|
4522
|
-
var ThreadMessageConverter = (
|
4523
|
-
|
4917
|
+
var ThreadMessageConverter = (_class15 = class {constructor() { _class15.prototype.__init36.call(this); }
|
4918
|
+
__init36() {this.cache = /* @__PURE__ */ new WeakMap()}
|
4524
4919
|
convertMessages(messages2, converter) {
|
4525
4920
|
return messages2.map((m, idx) => {
|
4526
4921
|
const cached = this.cache.get(m);
|
@@ -4529,7 +4924,7 @@ var ThreadMessageConverter = (_class14 = class {constructor() { _class14.prototy
|
|
4529
4924
|
return newMessage;
|
4530
4925
|
});
|
4531
4926
|
}
|
4532
|
-
},
|
4927
|
+
}, _class15);
|
4533
4928
|
|
4534
4929
|
// src/runtimes/external-store/auto-status.tsx
|
4535
4930
|
var AUTO_STATUS_RUNNING = Object.freeze({ type: "running" });
|
@@ -4615,13 +5010,13 @@ var fromThreadMessageLike = (like, fallbackId, fallbackStatus) => {
|
|
4615
5010
|
};
|
4616
5011
|
|
4617
5012
|
// src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx
|
4618
|
-
var
|
5013
|
+
var EMPTY_ARRAY3 = Object.freeze([]);
|
4619
5014
|
var hasUpcomingMessage = (isRunning, messages2) => {
|
4620
|
-
return isRunning && _optionalChain([messages2, 'access',
|
5015
|
+
return isRunning && _optionalChain([messages2, 'access', _246 => _246[messages2.length - 1], 'optionalAccess', _247 => _247.role]) !== "assistant";
|
4621
5016
|
};
|
4622
|
-
var ExternalStoreThreadRuntimeCore = (
|
4623
|
-
|
4624
|
-
|
5017
|
+
var ExternalStoreThreadRuntimeCore = (_class16 = class extends BaseThreadRuntimeCore {
|
5018
|
+
__init37() {this.assistantOptimisticId = null}
|
5019
|
+
__init38() {this._capabilities = {
|
4625
5020
|
switchToBranch: false,
|
4626
5021
|
edit: false,
|
4627
5022
|
reload: false,
|
@@ -4643,41 +5038,38 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime
|
|
4643
5038
|
get adapters() {
|
4644
5039
|
return this._store.adapters;
|
4645
5040
|
}
|
4646
|
-
|
4647
|
-
|
4648
|
-
|
5041
|
+
__init39() {this.suggestions = []}
|
5042
|
+
__init40() {this.extras = void 0}
|
5043
|
+
__init41() {this._converter = new ThreadMessageConverter()}
|
4649
5044
|
|
4650
5045
|
beginEdit(messageId) {
|
4651
|
-
if (!this.
|
5046
|
+
if (!this._store.onEdit)
|
4652
5047
|
throw new Error("Runtime does not support editing.");
|
4653
5048
|
super.beginEdit(messageId);
|
4654
5049
|
}
|
4655
|
-
constructor(configProvider, store) {
|
4656
|
-
super(configProvider);
|
4657
|
-
this.
|
4658
|
-
|
4659
|
-
get store() {
|
4660
|
-
return this._store;
|
5050
|
+
constructor(configProvider, threadId, store) {
|
5051
|
+
super(configProvider);_class16.prototype.__init37.call(this);_class16.prototype.__init38.call(this);_class16.prototype.__init39.call(this);_class16.prototype.__init40.call(this);_class16.prototype.__init41.call(this);_class16.prototype.__init42.call(this);;
|
5052
|
+
this.threadId = threadId;
|
5053
|
+
this.setStore(store);
|
4661
5054
|
}
|
4662
|
-
|
5055
|
+
setStore(store) {
|
4663
5056
|
if (this._store === store) return;
|
4664
|
-
this.threadId = _nullishCoalesce(_nullishCoalesce(store.threadId, () => ( this.threadId)), () => ( generateId()));
|
4665
5057
|
const isRunning = _nullishCoalesce(store.isRunning, () => ( false));
|
4666
5058
|
this.isDisabled = _nullishCoalesce(store.isDisabled, () => ( false));
|
4667
5059
|
const oldStore = this._store;
|
4668
5060
|
this._store = store;
|
4669
5061
|
this.extras = store.extras;
|
4670
|
-
this.suggestions = _nullishCoalesce(store.suggestions, () => (
|
5062
|
+
this.suggestions = _nullishCoalesce(store.suggestions, () => ( EMPTY_ARRAY3));
|
4671
5063
|
this._capabilities = {
|
4672
5064
|
switchToBranch: this._store.setMessages !== void 0,
|
4673
5065
|
edit: this._store.onEdit !== void 0,
|
4674
5066
|
reload: this._store.onReload !== void 0,
|
4675
5067
|
cancel: this._store.onCancel !== void 0,
|
4676
|
-
speech: _optionalChain([this, 'access',
|
4677
|
-
unstable_copy: _optionalChain([this, 'access',
|
5068
|
+
speech: _optionalChain([this, 'access', _251 => _251._store, 'access', _252 => _252.adapters, 'optionalAccess', _253 => _253.speech]) !== void 0,
|
5069
|
+
unstable_copy: _optionalChain([this, 'access', _254 => _254._store, 'access', _255 => _255.unstable_capabilities, 'optionalAccess', _256 => _256.copy]) !== false,
|
4678
5070
|
// default true
|
4679
|
-
attachments: !!_optionalChain([this, 'access',
|
4680
|
-
feedback: !!_optionalChain([this, 'access',
|
5071
|
+
attachments: !!_optionalChain([this, 'access', _257 => _257._store, 'access', _258 => _258.adapters, 'optionalAccess', _259 => _259.attachments]),
|
5072
|
+
feedback: !!_optionalChain([this, 'access', _260 => _260._store, 'access', _261 => _261.adapters, 'optionalAccess', _262 => _262.feedback])
|
4681
5073
|
};
|
4682
5074
|
if (oldStore) {
|
4683
5075
|
if (oldStore.convertMessage !== store.convertMessage) {
|
@@ -4704,7 +5096,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime
|
|
4704
5096
|
for (let i = 0; i < messages2.length; i++) {
|
4705
5097
|
const message = messages2[i];
|
4706
5098
|
const parent = messages2[i - 1];
|
4707
|
-
this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess',
|
5099
|
+
this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _263 => _263.id]), () => ( null)), message);
|
4708
5100
|
}
|
4709
5101
|
if (this.assistantOptimisticId) {
|
4710
5102
|
this.repository.deleteMessage(this.assistantOptimisticId);
|
@@ -4712,7 +5104,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime
|
|
4712
5104
|
}
|
4713
5105
|
if (hasUpcomingMessage(isRunning, messages2)) {
|
4714
5106
|
this.assistantOptimisticId = this.repository.appendOptimisticMessage(
|
4715
|
-
_nullishCoalesce(_optionalChain([messages2, 'access',
|
5107
|
+
_nullishCoalesce(_optionalChain([messages2, 'access', _264 => _264.at, 'call', _265 => _265(-1), 'optionalAccess', _266 => _266.id]), () => ( null)),
|
4716
5108
|
{
|
4717
5109
|
role: "assistant",
|
4718
5110
|
content: []
|
@@ -4720,7 +5112,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime
|
|
4720
5112
|
);
|
4721
5113
|
}
|
4722
5114
|
this.repository.resetHead(
|
4723
|
-
_nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([messages2, 'access',
|
5115
|
+
_nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([messages2, 'access', _267 => _267.at, 'call', _268 => _268(-1), 'optionalAccess', _269 => _269.id]))), () => ( null))
|
4724
5116
|
);
|
4725
5117
|
this._messages = this.repository.getMessages();
|
4726
5118
|
this._notifySubscribers();
|
@@ -4732,7 +5124,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime
|
|
4732
5124
|
this.updateMessages(this.repository.getMessages());
|
4733
5125
|
}
|
4734
5126
|
async append(message) {
|
4735
|
-
if (message.parentId !== (_nullishCoalesce(_optionalChain([this, 'access',
|
5127
|
+
if (message.parentId !== (_nullishCoalesce(_optionalChain([this, 'access', _270 => _270.messages, 'access', _271 => _271.at, 'call', _272 => _272(-1), 'optionalAccess', _273 => _273.id]), () => ( null)))) {
|
4736
5128
|
if (!this._store.onEdit)
|
4737
5129
|
throw new Error("Runtime does not support editing messages.");
|
4738
5130
|
await this._store.onEdit(message);
|
@@ -4755,7 +5147,7 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime
|
|
4755
5147
|
}
|
4756
5148
|
let messages2 = this.repository.getMessages();
|
4757
5149
|
const previousMessage = messages2[messages2.length - 1];
|
4758
|
-
if (_optionalChain([previousMessage, 'optionalAccess',
|
5150
|
+
if (_optionalChain([previousMessage, 'optionalAccess', _274 => _274.role]) === "user" && previousMessage.id === _optionalChain([messages2, 'access', _275 => _275.at, 'call', _276 => _276(-1), 'optionalAccess', _277 => _277.id])) {
|
4759
5151
|
this.repository.deleteMessage(previousMessage.id);
|
4760
5152
|
if (!this.composer.text.trim()) {
|
4761
5153
|
this.composer.setText(getThreadMessageText(previousMessage));
|
@@ -4773,57 +5165,41 @@ var ExternalStoreThreadRuntimeCore = (_class15 = class extends BaseThreadRuntime
|
|
4773
5165
|
throw new Error("Runtime does not support tool results.");
|
4774
5166
|
this._store.onAddToolResult(options);
|
4775
5167
|
}
|
4776
|
-
|
4777
|
-
_optionalChain([this, 'access',
|
5168
|
+
__init42() {this.updateMessages = (messages2) => {
|
5169
|
+
_optionalChain([this, 'access', _278 => _278._store, 'access', _279 => _279.setMessages, 'optionalCall', _280 => _280(
|
4778
5170
|
messages2.flatMap(getExternalStoreMessage).filter((m) => m != null)
|
4779
5171
|
)]);
|
4780
5172
|
}}
|
4781
|
-
},
|
5173
|
+
}, _class16);
|
4782
5174
|
|
4783
5175
|
// src/runtimes/external-store/ExternalStoreRuntimeCore.tsx
|
5176
|
+
var getThreadManagerAdapter = (store) => {
|
5177
|
+
return {
|
5178
|
+
threadId: store.threadId,
|
5179
|
+
onSwitchToNewThread: store.onSwitchToNewThread,
|
5180
|
+
onSwitchToThread: store.onSwitchToThread,
|
5181
|
+
..._optionalChain([store, 'access', _281 => _281.adapters, 'optionalAccess', _282 => _282.threadManager])
|
5182
|
+
};
|
5183
|
+
};
|
4784
5184
|
var ExternalStoreRuntimeCore = class extends BaseAssistantRuntimeCore {
|
4785
5185
|
|
5186
|
+
|
4786
5187
|
constructor(store) {
|
4787
|
-
|
4788
|
-
|
4789
|
-
this.
|
4790
|
-
|
4791
|
-
|
4792
|
-
return this._proxyConfigProvider.getModelConfig();
|
4793
|
-
}
|
4794
|
-
registerModelConfigProvider(provider) {
|
4795
|
-
return this._proxyConfigProvider.registerModelConfigProvider(provider);
|
4796
|
-
}
|
4797
|
-
async switchToNewThread() {
|
4798
|
-
if (!this.thread.store.onSwitchToNewThread)
|
4799
|
-
throw new Error("Runtime does not support switching to new threads.");
|
4800
|
-
this.thread = new ExternalStoreThreadRuntimeCore(
|
4801
|
-
this._proxyConfigProvider,
|
4802
|
-
{
|
4803
|
-
...this.thread.store,
|
4804
|
-
messages: []
|
4805
|
-
}
|
4806
|
-
);
|
4807
|
-
await this.thread.store.onSwitchToNewThread();
|
4808
|
-
this.thread._notifyEventSubscribers("switched-to");
|
4809
|
-
}
|
4810
|
-
async switchToThread(threadId) {
|
4811
|
-
if (threadId !== null) {
|
4812
|
-
if (!this.thread.store.onSwitchToThread)
|
4813
|
-
throw new Error("Runtime does not support switching threads.");
|
4814
|
-
this.thread = new ExternalStoreThreadRuntimeCore(
|
5188
|
+
super();
|
5189
|
+
this._store = store;
|
5190
|
+
this.threadManager = new ExternalStoreThreadManagerRuntimeCore(
|
5191
|
+
getThreadManagerAdapter(store),
|
5192
|
+
(threadId) => new ExternalStoreThreadRuntimeCore(
|
4815
5193
|
this._proxyConfigProvider,
|
4816
|
-
|
4817
|
-
|
4818
|
-
|
4819
|
-
|
4820
|
-
|
4821
|
-
|
4822
|
-
|
4823
|
-
|
4824
|
-
|
4825
|
-
this.switchToNewThread();
|
4826
|
-
}
|
5194
|
+
threadId,
|
5195
|
+
this._store
|
5196
|
+
)
|
5197
|
+
);
|
5198
|
+
}
|
5199
|
+
setStore(store) {
|
5200
|
+
this._store = store;
|
5201
|
+
this.threadManager.setAdapter(getThreadManagerAdapter(store));
|
5202
|
+
this.threadManager.mainThread.setStore(store);
|
4827
5203
|
}
|
4828
5204
|
};
|
4829
5205
|
|
@@ -4831,7 +5207,7 @@ var ExternalStoreRuntimeCore = class extends BaseAssistantRuntimeCore {
|
|
4831
5207
|
var useExternalStoreRuntime = (store) => {
|
4832
5208
|
const [runtime] = _react.useState.call(void 0, () => new ExternalStoreRuntimeCore(store));
|
4833
5209
|
_react.useEffect.call(void 0, () => {
|
4834
|
-
runtime.
|
5210
|
+
runtime.setStore(store);
|
4835
5211
|
});
|
4836
5212
|
return _react.useMemo.call(void 0,
|
4837
5213
|
() => AssistantRuntimeImpl.create(runtime, ThreadRuntimeImpl),
|
@@ -4994,18 +5370,18 @@ var DangerousInBrowserAdapter = class {
|
|
4994
5370
|
this.options = options;
|
4995
5371
|
}
|
4996
5372
|
async *run({ messages: messages2, abortSignal, config }) {
|
4997
|
-
const res = await
|
5373
|
+
const res = await _chunkC6UZOY5Ajs.getEdgeRuntimeStream.call(void 0, {
|
4998
5374
|
options: this.options,
|
4999
5375
|
abortSignal,
|
5000
5376
|
requestData: {
|
5001
5377
|
system: config.system,
|
5002
|
-
messages:
|
5003
|
-
tools: config.tools ?
|
5378
|
+
messages: _chunkC6UZOY5Ajs.toCoreMessages.call(void 0, messages2),
|
5379
|
+
tools: config.tools ? _chunkC6UZOY5Ajs.toLanguageModelTools.call(void 0, config.tools) : [],
|
5004
5380
|
...config.callSettings,
|
5005
5381
|
...config.config
|
5006
5382
|
}
|
5007
5383
|
});
|
5008
|
-
const stream = res.pipeThrough(
|
5384
|
+
const stream = res.pipeThrough(_chunkC6UZOY5Ajs.toolResultStream.call(void 0, config.tools, abortSignal)).pipeThrough(_chunkC6UZOY5Ajs.runResultStream.call(void 0, ));
|
5009
5385
|
for await (const update of asAsyncIterable(stream)) {
|
5010
5386
|
yield update;
|
5011
5387
|
}
|
@@ -5021,8 +5397,7 @@ var useDangerousInBrowserRuntime = (options) => {
|
|
5021
5397
|
|
5022
5398
|
// src/runtimes/speech/WebSpeechSynthesisAdapter.ts
|
5023
5399
|
var WebSpeechSynthesisAdapter = class {
|
5024
|
-
speak(
|
5025
|
-
const text = getThreadMessageText(message);
|
5400
|
+
speak(text) {
|
5026
5401
|
const utterance = new SpeechSynthesisUtterance(text);
|
5027
5402
|
const subscribers = /* @__PURE__ */ new Set();
|
5028
5403
|
const handleEnd = (reason, error) => {
|
@@ -5061,8 +5436,8 @@ var WebSpeechSynthesisAdapter = class {
|
|
5061
5436
|
};
|
5062
5437
|
|
5063
5438
|
// src/runtimes/attachment/SimpleImageAttachmentAdapter.ts
|
5064
|
-
var SimpleImageAttachmentAdapter = (
|
5065
|
-
|
5439
|
+
var SimpleImageAttachmentAdapter = (_class17 = class {constructor() { _class17.prototype.__init43.call(this); }
|
5440
|
+
__init43() {this.accept = "image/*"}
|
5066
5441
|
async add(state) {
|
5067
5442
|
return {
|
5068
5443
|
id: state.file.name,
|
@@ -5087,7 +5462,7 @@ var SimpleImageAttachmentAdapter = (_class16 = class {constructor() { _class16.p
|
|
5087
5462
|
}
|
5088
5463
|
async remove() {
|
5089
5464
|
}
|
5090
|
-
},
|
5465
|
+
}, _class17);
|
5091
5466
|
var getFileDataURL = (file) => new Promise((resolve, reject) => {
|
5092
5467
|
const reader = new FileReader();
|
5093
5468
|
reader.onload = () => resolve(reader.result);
|
@@ -5096,8 +5471,8 @@ var getFileDataURL = (file) => new Promise((resolve, reject) => {
|
|
5096
5471
|
});
|
5097
5472
|
|
5098
5473
|
// src/runtimes/attachment/SimpleTextAttachmentAdapter.ts
|
5099
|
-
var SimpleTextAttachmentAdapter = (
|
5100
|
-
|
5474
|
+
var SimpleTextAttachmentAdapter = (_class18 = class {constructor() { _class18.prototype.__init44.call(this); }
|
5475
|
+
__init44() {this.accept = "text/plain,text/html,text/markdown,text/csv,text/xml,text/json,text/css"}
|
5101
5476
|
async add(state) {
|
5102
5477
|
return {
|
5103
5478
|
id: state.file.name,
|
@@ -5124,7 +5499,7 @@ ${await getFileText(attachment.file)}
|
|
5124
5499
|
}
|
5125
5500
|
async remove() {
|
5126
5501
|
}
|
5127
|
-
},
|
5502
|
+
}, _class18);
|
5128
5503
|
var getFileText = (file) => new Promise((resolve, reject) => {
|
5129
5504
|
const reader = new FileReader();
|
5130
5505
|
reader.onload = () => resolve(reader.result);
|
@@ -5225,7 +5600,7 @@ var ThreadConfigProvider = ({
|
|
5225
5600
|
}) => {
|
5226
5601
|
const hasAssistant = !!useAssistantRuntime({ optional: true });
|
5227
5602
|
const configProvider = config && Object.keys(_nullishCoalesce(config, () => ( {}))).length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadConfigContext.Provider, { value: config, children }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children });
|
5228
|
-
if (!_optionalChain([config, 'optionalAccess',
|
5603
|
+
if (!_optionalChain([config, 'optionalAccess', _283 => _283.runtime])) return configProvider;
|
5229
5604
|
if (hasAssistant) {
|
5230
5605
|
throw new Error(
|
5231
5606
|
"You provided a runtime to <Thread> while simulataneously using <AssistantRuntimeProvider>. This is not allowed."
|
@@ -5553,7 +5928,7 @@ var AssistantMessageContent = _react.forwardRef.call(void 0, ({ components: comp
|
|
5553
5928
|
{
|
5554
5929
|
components: {
|
5555
5930
|
...componentsProp,
|
5556
|
-
Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess',
|
5931
|
+
Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess', _284 => _284.Text]), () => ( components.Text)), () => ( content_part_default.Text)),
|
5557
5932
|
tools: toolsComponents
|
5558
5933
|
}
|
5559
5934
|
}
|
@@ -5664,7 +6039,7 @@ var useAttachmentSrc = () => {
|
|
5664
6039
|
const { file, src } = useAttachment((a) => {
|
5665
6040
|
if (a.type !== "image") return {};
|
5666
6041
|
if (a.file) return { file: a.file };
|
5667
|
-
const src2 = _optionalChain([a, 'access',
|
6042
|
+
const src2 = _optionalChain([a, 'access', _285 => _285.content, 'optionalAccess', _286 => _286.filter, 'call', _287 => _287((c) => c.type === "image"), 'access', _288 => _288[0], 'optionalAccess', _289 => _289.image]);
|
5668
6043
|
if (!src2) return {};
|
5669
6044
|
return { src: src2 };
|
5670
6045
|
});
|
@@ -5808,7 +6183,7 @@ var ComposerAttachments = ({ components }) => {
|
|
5808
6183
|
{
|
5809
6184
|
components: {
|
5810
6185
|
...components,
|
5811
|
-
Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
6186
|
+
Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _290 => _290.Attachment]), () => ( attachment_default))
|
5812
6187
|
}
|
5813
6188
|
}
|
5814
6189
|
) });
|
@@ -5917,8 +6292,13 @@ var ThreadWelcomeMessageStyled = withDefaults("p", {
|
|
5917
6292
|
className: "aui-thread-welcome-message"
|
5918
6293
|
});
|
5919
6294
|
var ThreadWelcomeMessage = _react.forwardRef.call(void 0, ({ message: messageProp, ...rest }, ref) => {
|
5920
|
-
const {
|
5921
|
-
|
6295
|
+
const {
|
6296
|
+
welcome: { message } = {},
|
6297
|
+
strings: {
|
6298
|
+
welcome: { message: defaultMessage = "How can I help you today?" } = {}
|
6299
|
+
} = {}
|
6300
|
+
} = useThreadConfig();
|
6301
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeMessageStyled, { ...rest, ref, children: _nullishCoalesce(_nullishCoalesce(messageProp, () => ( message)), () => ( defaultMessage)) });
|
5922
6302
|
});
|
5923
6303
|
ThreadWelcomeMessage.displayName = "ThreadWelcomeMessage";
|
5924
6304
|
var ThreadWelcomeSuggestionContainer = withDefaults("div", {
|
@@ -5936,7 +6316,7 @@ var ThreadWelcomeSuggestions = () => {
|
|
5936
6316
|
const suggestions2 = useThread((t) => t.suggestions);
|
5937
6317
|
const { welcome: { suggestions } = {} } = useThreadConfig();
|
5938
6318
|
const finalSuggestions = suggestions2.length ? suggestions2 : suggestions;
|
5939
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestionContainer, { children: _optionalChain([finalSuggestions, 'optionalAccess',
|
6319
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestionContainer, { children: _optionalChain([finalSuggestions, 'optionalAccess', _291 => _291.map, 'call', _292 => _292((suggestion, idx) => {
|
5940
6320
|
const key = `${suggestion.prompt}-${idx}`;
|
5941
6321
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestion, { suggestion }, key);
|
5942
6322
|
})]) });
|
@@ -6014,7 +6394,7 @@ var UserMessageContent = _react.forwardRef.call(void 0, ({ components, ...props
|
|
6014
6394
|
{
|
6015
6395
|
components: {
|
6016
6396
|
...components,
|
6017
|
-
Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
6397
|
+
Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _293 => _293.Text]), () => ( content_part_default.Text))
|
6018
6398
|
}
|
6019
6399
|
}
|
6020
6400
|
) });
|
@@ -6031,7 +6411,7 @@ var UserMessageAttachments = ({
|
|
6031
6411
|
{
|
6032
6412
|
components: {
|
6033
6413
|
...components,
|
6034
|
-
Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
6414
|
+
Attachment: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _294 => _294.Attachment]), () => ( attachment_default))
|
6035
6415
|
}
|
6036
6416
|
}
|
6037
6417
|
) }) });
|
@@ -6134,10 +6514,10 @@ var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, ..
|
|
6134
6514
|
thread_exports.Messages,
|
6135
6515
|
{
|
6136
6516
|
components: {
|
6137
|
-
UserMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
6138
|
-
EditComposer: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
6139
|
-
AssistantMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
6140
|
-
SystemMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
6517
|
+
UserMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _295 => _295.UserMessage]), () => ( user_message_default)),
|
6518
|
+
EditComposer: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _296 => _296.EditComposer]), () => ( edit_composer_default)),
|
6519
|
+
AssistantMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _297 => _297.AssistantMessage]), () => ( assistant_message_default)),
|
6520
|
+
SystemMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _298 => _298.SystemMessage]), () => ( SystemMessage))
|
6141
6521
|
},
|
6142
6522
|
...rest
|
6143
6523
|
}
|
@@ -6148,7 +6528,7 @@ var ThreadMessages = ({ components, unstable_flexGrowDiv: flexGrowDiv = true, ..
|
|
6148
6528
|
ThreadMessages.displayName = "ThreadMessages";
|
6149
6529
|
var ThreadFollowupSuggestions = () => {
|
6150
6530
|
const suggestions = useThread((t) => t.suggestions);
|
6151
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, thread_exports.If, { empty: false, running: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aui-thread-followup-suggestions", children: _optionalChain([suggestions, 'optionalAccess',
|
6531
|
+
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', _299 => _299.map, 'call', _300 => _300((suggestion, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
6152
6532
|
thread_exports.Suggestion,
|
6153
6533
|
{
|
6154
6534
|
className: "aui-thread-followup-suggestion",
|
@@ -6381,5 +6761,7 @@ var assistant_modal_default = Object.assign(AssistantModal, exports12);
|
|
6381
6761
|
|
6382
6762
|
|
6383
6763
|
|
6384
|
-
|
6764
|
+
|
6765
|
+
|
6766
|
+
exports.ActionBarPrimitive = actionBar_exports; exports.AssistantActionBar = assistant_action_bar_default; exports.AssistantMessage = assistant_message_default; exports.AssistantModal = assistant_modal_default; exports.AssistantModalPrimitive = assistantModal_exports; exports.AssistantRuntimeProvider = AssistantRuntimeProvider; exports.AttachmentPrimitive = attachment_exports; exports.AttachmentUI = attachment_default; exports.BranchPicker = branch_picker_default; exports.BranchPickerPrimitive = branchPicker_exports; exports.Composer = composer_default; exports.ComposerAttachment = attachment_default; exports.ComposerPrimitive = composer_exports; exports.CompositeAttachmentAdapter = CompositeAttachmentAdapter; exports.ContentPart = content_part_default; exports.ContentPartPrimitive = contentPart_exports; exports.EdgeChatAdapter = EdgeChatAdapter; exports.EditComposer = edit_composer_default; exports.INTERNAL = internal_exports; exports.MessagePrimitive = message_exports; exports.SimpleImageAttachmentAdapter = SimpleImageAttachmentAdapter; exports.SimpleTextAttachmentAdapter = SimpleTextAttachmentAdapter; exports.TextContentPartProvider = TextContentPartProvider; exports.Thread = thread_default; exports.ThreadConfigProvider = ThreadConfigProvider; exports.ThreadPrimitive = thread_exports; exports.ThreadWelcome = thread_welcome_default; exports.UserActionBar = user_action_bar_default; exports.UserMessage = user_message_default; exports.UserMessageAttachment = attachment_default; exports.WebSpeechSynthesisAdapter = WebSpeechSynthesisAdapter; exports.fromCoreMessage = fromCoreMessage; exports.fromCoreMessages = fromCoreMessages; exports.fromLanguageModelMessages = fromLanguageModelMessages; exports.fromLanguageModelTools = fromLanguageModelTools; exports.getExternalStoreMessage = getExternalStoreMessage; exports.makeAssistantTool = makeAssistantTool; exports.makeAssistantToolUI = makeAssistantToolUI; exports.streamUtils = streamUtils; exports.subscribeToMainThread = subscribeToMainThread; exports.toCoreMessage = _chunkC6UZOY5Ajs.toCoreMessage; exports.toCoreMessages = _chunkC6UZOY5Ajs.toCoreMessages; exports.toLanguageModelMessages = _chunkC6UZOY5Ajs.toLanguageModelMessages; exports.toLanguageModelTools = _chunkC6UZOY5Ajs.toLanguageModelTools; exports.useActionBarCopy = useActionBarCopy; exports.useActionBarEdit = useActionBarEdit; exports.useActionBarFeedbackNegative = useActionBarFeedbackNegative; exports.useActionBarFeedbackPositive = useActionBarFeedbackPositive; exports.useActionBarReload = useActionBarReload; exports.useActionBarSpeak = useActionBarSpeak; exports.useActionBarStopSpeaking = useActionBarStopSpeaking; exports.useAppendMessage = useAppendMessage; exports.useAssistantActions = useAssistantActions; exports.useAssistantActionsStore = useAssistantActionsStore; exports.useAssistantContext = useAssistantContext; exports.useAssistantInstructions = useAssistantInstructions; exports.useAssistantRuntime = useAssistantRuntime; exports.useAssistantRuntimeStore = useAssistantRuntimeStore; exports.useAssistantTool = useAssistantTool; exports.useAssistantToolUI = useAssistantToolUI; exports.useBranchPickerCount = useBranchPickerCount; exports.useBranchPickerNext = useBranchPickerNext; exports.useBranchPickerNumber = useBranchPickerNumber; exports.useBranchPickerPrevious = useBranchPickerPrevious; exports.useComposer = useComposer; exports.useComposerAddAttachment = useComposerAddAttachment; exports.useComposerCancel = useComposerCancel; exports.useComposerContext = useComposerContext; exports.useComposerIf = useComposerIf; exports.useComposerRuntime = useComposerRuntime; exports.useComposerSend = useComposerSend; exports.useComposerStore = useComposerStore; exports.useContentPart = useContentPart; exports.useContentPartContext = useContentPartContext; exports.useContentPartDisplay = useContentPartDisplay; exports.useContentPartImage = useContentPartImage; exports.useContentPartRuntime = useContentPartRuntime; exports.useContentPartStore = useContentPartStore; exports.useContentPartText = useContentPartText; exports.useDangerousInBrowserRuntime = useDangerousInBrowserRuntime; exports.useEdgeRuntime = useEdgeRuntime; exports.useEditComposer = useEditComposer; exports.useEditComposerStore = useEditComposerStore; exports.useExternalMessageConverter = useExternalMessageConverter; exports.useExternalStoreRuntime = useExternalStoreRuntime; exports.useLocalRuntime = useLocalRuntime; exports.useMessage = useMessage; exports.useMessageContext = useMessageContext; exports.useMessageIf = useMessageIf; exports.useMessageRuntime = useMessageRuntime; exports.useMessageStore = useMessageStore; exports.useMessageUtils = useMessageUtils; exports.useMessageUtilsStore = useMessageUtilsStore; exports.useSwitchToNewThread = useSwitchToNewThread; exports.useThread = useThread; exports.useThreadActions = useThreadActions; exports.useThreadActionsStore = useThreadActionsStore; exports.useThreadComposer = useThreadComposer; exports.useThreadComposerStore = useThreadComposerStore; exports.useThreadConfig = useThreadConfig; exports.useThreadContext = useThreadContext; exports.useThreadEmpty = useThreadEmpty; exports.useThreadIf = useThreadIf; exports.useThreadManager = useThreadManager; exports.useThreadMessages = useThreadMessages; exports.useThreadMessagesStore = useThreadMessagesStore; exports.useThreadModelConfig = useThreadModelConfig; exports.useThreadRuntime = useThreadRuntime; exports.useThreadRuntimeStore = useThreadRuntimeStore; exports.useThreadScrollToBottom = useThreadScrollToBottom; exports.useThreadStore = useThreadStore; exports.useThreadSuggestion = useThreadSuggestion; exports.useThreadViewport = useThreadViewport; exports.useThreadViewportStore = useThreadViewportStore; exports.useToolUIs = useToolUIs; exports.useToolUIsStore = useToolUIsStore;
|
6385
6767
|
//# sourceMappingURL=index.js.map
|