@assistant-ui/react 0.5.22 → 0.5.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +29 -18
- package/dist/index.d.ts +29 -18
- package/dist/index.js +48 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +26 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
@@ -77,6 +77,33 @@ type ToolCallContentPartProps<TArgs extends Record<string, unknown> = any, TResu
|
|
77
77
|
};
|
78
78
|
type ToolCallContentPartComponent<TArgs extends Record<string, unknown> = any, TResult = any> = ComponentType<ToolCallContentPartProps<TArgs, TResult>>;
|
79
79
|
|
80
|
+
interface ExportedMessageRepository {
|
81
|
+
headId?: string | null;
|
82
|
+
messages: Array<{
|
83
|
+
message: ThreadMessage;
|
84
|
+
parentId: string | null;
|
85
|
+
}>;
|
86
|
+
}
|
87
|
+
declare class MessageRepository {
|
88
|
+
private messages;
|
89
|
+
private head;
|
90
|
+
private root;
|
91
|
+
private performOp;
|
92
|
+
getMessages(): ThreadMessage[];
|
93
|
+
addOrUpdateMessage(parentId: string | null, message: ThreadMessage): void;
|
94
|
+
getMessage(messageId: string): {
|
95
|
+
parentId: string | null;
|
96
|
+
message: ThreadMessage;
|
97
|
+
};
|
98
|
+
appendOptimisticMessage(parentId: string | null, message: CoreMessage): string;
|
99
|
+
deleteMessage(messageId: string, replacementId?: string | null | undefined): void;
|
100
|
+
getBranches(messageId: string): string[];
|
101
|
+
switchToBranch(messageId: string): void;
|
102
|
+
resetHead(messageId: string | null): void;
|
103
|
+
export(): ExportedMessageRepository;
|
104
|
+
import({ headId, messages }: ExportedMessageRepository): void;
|
105
|
+
}
|
106
|
+
|
80
107
|
type LocalRuntimeOptions = {
|
81
108
|
initialMessages?: readonly CoreMessage[] | undefined;
|
82
109
|
maxToolRoundtrips?: number;
|
@@ -109,6 +136,8 @@ declare class LocalThreadRuntime implements ThreadRuntime {
|
|
109
136
|
private notifySubscribers;
|
110
137
|
subscribe(callback: () => void): Unsubscribe;
|
111
138
|
addToolResult({ messageId, toolCallId, result }: AddToolResultOptions): void;
|
139
|
+
export(): ExportedMessageRepository;
|
140
|
+
import(data: ExportedMessageRepository): void;
|
112
141
|
}
|
113
142
|
|
114
143
|
declare class LocalRuntime extends BaseAssistantRuntime<LocalThreadRuntime> {
|
@@ -439,24 +468,6 @@ declare class ProxyConfigProvider implements ModelConfigProvider {
|
|
439
468
|
registerModelConfigProvider(provider: ModelConfigProvider): () => void;
|
440
469
|
}
|
441
470
|
|
442
|
-
declare class MessageRepository {
|
443
|
-
private messages;
|
444
|
-
private head;
|
445
|
-
private root;
|
446
|
-
private performOp;
|
447
|
-
getMessages(): ThreadMessage[];
|
448
|
-
addOrUpdateMessage(parentId: string | null, message: ThreadMessage): void;
|
449
|
-
getMessage(messageId: string): {
|
450
|
-
parentId: string | null;
|
451
|
-
message: ThreadMessage;
|
452
|
-
};
|
453
|
-
appendOptimisticMessage(parentId: string | null, message: CoreMessage): string;
|
454
|
-
deleteMessage(messageId: string, replacementId?: string | null | undefined): void;
|
455
|
-
getBranches(messageId: string): string[];
|
456
|
-
switchToBranch(messageId: string): void;
|
457
|
-
resetHead(messageId: string | null): void;
|
458
|
-
}
|
459
|
-
|
460
471
|
type TextContentPartState = Readonly<{
|
461
472
|
status: ContentPartStatus;
|
462
473
|
part: TextContentPart;
|
package/dist/index.d.ts
CHANGED
@@ -77,6 +77,33 @@ type ToolCallContentPartProps<TArgs extends Record<string, unknown> = any, TResu
|
|
77
77
|
};
|
78
78
|
type ToolCallContentPartComponent<TArgs extends Record<string, unknown> = any, TResult = any> = ComponentType<ToolCallContentPartProps<TArgs, TResult>>;
|
79
79
|
|
80
|
+
interface ExportedMessageRepository {
|
81
|
+
headId?: string | null;
|
82
|
+
messages: Array<{
|
83
|
+
message: ThreadMessage;
|
84
|
+
parentId: string | null;
|
85
|
+
}>;
|
86
|
+
}
|
87
|
+
declare class MessageRepository {
|
88
|
+
private messages;
|
89
|
+
private head;
|
90
|
+
private root;
|
91
|
+
private performOp;
|
92
|
+
getMessages(): ThreadMessage[];
|
93
|
+
addOrUpdateMessage(parentId: string | null, message: ThreadMessage): void;
|
94
|
+
getMessage(messageId: string): {
|
95
|
+
parentId: string | null;
|
96
|
+
message: ThreadMessage;
|
97
|
+
};
|
98
|
+
appendOptimisticMessage(parentId: string | null, message: CoreMessage): string;
|
99
|
+
deleteMessage(messageId: string, replacementId?: string | null | undefined): void;
|
100
|
+
getBranches(messageId: string): string[];
|
101
|
+
switchToBranch(messageId: string): void;
|
102
|
+
resetHead(messageId: string | null): void;
|
103
|
+
export(): ExportedMessageRepository;
|
104
|
+
import({ headId, messages }: ExportedMessageRepository): void;
|
105
|
+
}
|
106
|
+
|
80
107
|
type LocalRuntimeOptions = {
|
81
108
|
initialMessages?: readonly CoreMessage[] | undefined;
|
82
109
|
maxToolRoundtrips?: number;
|
@@ -109,6 +136,8 @@ declare class LocalThreadRuntime implements ThreadRuntime {
|
|
109
136
|
private notifySubscribers;
|
110
137
|
subscribe(callback: () => void): Unsubscribe;
|
111
138
|
addToolResult({ messageId, toolCallId, result }: AddToolResultOptions): void;
|
139
|
+
export(): ExportedMessageRepository;
|
140
|
+
import(data: ExportedMessageRepository): void;
|
112
141
|
}
|
113
142
|
|
114
143
|
declare class LocalRuntime extends BaseAssistantRuntime<LocalThreadRuntime> {
|
@@ -439,24 +468,6 @@ declare class ProxyConfigProvider implements ModelConfigProvider {
|
|
439
468
|
registerModelConfigProvider(provider: ModelConfigProvider): () => void;
|
440
469
|
}
|
441
470
|
|
442
|
-
declare class MessageRepository {
|
443
|
-
private messages;
|
444
|
-
private head;
|
445
|
-
private root;
|
446
|
-
private performOp;
|
447
|
-
getMessages(): ThreadMessage[];
|
448
|
-
addOrUpdateMessage(parentId: string | null, message: ThreadMessage): void;
|
449
|
-
getMessage(messageId: string): {
|
450
|
-
parentId: string | null;
|
451
|
-
message: ThreadMessage;
|
452
|
-
};
|
453
|
-
appendOptimisticMessage(parentId: string | null, message: CoreMessage): string;
|
454
|
-
deleteMessage(messageId: string, replacementId?: string | null | undefined): void;
|
455
|
-
getBranches(messageId: string): string[];
|
456
|
-
switchToBranch(messageId: string): void;
|
457
|
-
resetHead(messageId: string | null): void;
|
458
|
-
}
|
459
|
-
|
460
471
|
type TextContentPartState = Readonly<{
|
461
472
|
status: ContentPartStatus;
|
462
473
|
part: TextContentPart;
|
package/dist/index.js
CHANGED
@@ -2273,6 +2273,25 @@ var MessageRepository = (_class4 = class {constructor() { _class4.prototype.__in
|
|
2273
2273
|
}
|
2274
2274
|
}
|
2275
2275
|
}
|
2276
|
+
export() {
|
2277
|
+
const exportItems = [];
|
2278
|
+
for (const [, message] of this.messages) {
|
2279
|
+
exportItems.push({
|
2280
|
+
message: message.current,
|
2281
|
+
parentId: _nullishCoalesce(_optionalChain([message, 'access', _84 => _84.prev, 'optionalAccess', _85 => _85.current, 'access', _86 => _86.id]), () => ( null))
|
2282
|
+
});
|
2283
|
+
}
|
2284
|
+
return {
|
2285
|
+
headId: _nullishCoalesce(_optionalChain([this, 'access', _87 => _87.head, 'optionalAccess', _88 => _88.current, 'access', _89 => _89.id]), () => ( null)),
|
2286
|
+
messages: exportItems
|
2287
|
+
};
|
2288
|
+
}
|
2289
|
+
import({ headId, messages }) {
|
2290
|
+
for (const { message, parentId } of messages) {
|
2291
|
+
this.addOrUpdateMessage(parentId, message);
|
2292
|
+
}
|
2293
|
+
this.resetHead(_nullishCoalesce(_nullishCoalesce(headId, () => ( _optionalChain([messages, 'access', _90 => _90.at, 'call', _91 => _91(-1), 'optionalAccess', _92 => _92.message, 'access', _93 => _93.id]))), () => ( null)));
|
2294
|
+
}
|
2276
2295
|
}, _class4);
|
2277
2296
|
|
2278
2297
|
// src/ui/base/tooltip-icon-button.tsx
|
@@ -2434,7 +2453,7 @@ var fromLanguageModelMessages = (lm, { mergeRoundtrips }) => {
|
|
2434
2453
|
});
|
2435
2454
|
if (mergeRoundtrips) {
|
2436
2455
|
const previousMessage = messages[messages.length - 1];
|
2437
|
-
if (_optionalChain([previousMessage, 'optionalAccess',
|
2456
|
+
if (_optionalChain([previousMessage, 'optionalAccess', _94 => _94.role]) === "assistant") {
|
2438
2457
|
previousMessage.content.push(...newContent);
|
2439
2458
|
break;
|
2440
2459
|
}
|
@@ -2447,7 +2466,7 @@ var fromLanguageModelMessages = (lm, { mergeRoundtrips }) => {
|
|
2447
2466
|
}
|
2448
2467
|
case "tool": {
|
2449
2468
|
const previousMessage = messages[messages.length - 1];
|
2450
|
-
if (_optionalChain([previousMessage, 'optionalAccess',
|
2469
|
+
if (_optionalChain([previousMessage, 'optionalAccess', _95 => _95.role]) !== "assistant")
|
2451
2470
|
throw new Error(
|
2452
2471
|
"A tool message must be preceded by an assistant message."
|
2453
2472
|
);
|
@@ -2651,7 +2670,7 @@ var useEdgeRuntime = ({
|
|
2651
2670
|
};
|
2652
2671
|
|
2653
2672
|
// src/runtimes/local/shouldContinue.tsx
|
2654
|
-
var shouldContinue = (result) => _optionalChain([result, 'access',
|
2673
|
+
var shouldContinue = (result) => _optionalChain([result, 'access', _96 => _96.status, 'optionalAccess', _97 => _97.type]) === "requires-action" && result.status.reason === "tool-calls" && result.content.every((c) => c.type !== "tool-call" || !!c.result);
|
2655
2674
|
|
2656
2675
|
// src/runtimes/local/LocalThreadRuntime.tsx
|
2657
2676
|
var CAPABILITIES = Object.freeze({
|
@@ -2666,7 +2685,7 @@ var LocalThreadRuntime = (_class5 = class {
|
|
2666
2685
|
this.configProvider = configProvider;
|
2667
2686
|
this.adapter = adapter;
|
2668
2687
|
this.options = options;
|
2669
|
-
if (_optionalChain([options, 'optionalAccess',
|
2688
|
+
if (_optionalChain([options, 'optionalAccess', _98 => _98.initialMessages])) {
|
2670
2689
|
let parentId = null;
|
2671
2690
|
const messages = fromCoreMessages(options.initialMessages);
|
2672
2691
|
for (const message of messages) {
|
@@ -2724,7 +2743,7 @@ var LocalThreadRuntime = (_class5 = class {
|
|
2724
2743
|
}
|
2725
2744
|
async performRoundtrip(parentId, message) {
|
2726
2745
|
const messages = this.repository.getMessages();
|
2727
|
-
_optionalChain([this, 'access',
|
2746
|
+
_optionalChain([this, 'access', _99 => _99.abortController, 'optionalAccess', _100 => _100.abort, 'call', _101 => _101()]);
|
2728
2747
|
this.abortController = new AbortController();
|
2729
2748
|
const initialContent = message.content;
|
2730
2749
|
const initialRoundtrips = message.roundtrips;
|
@@ -2733,13 +2752,13 @@ var LocalThreadRuntime = (_class5 = class {
|
|
2733
2752
|
...message,
|
2734
2753
|
...m.content ? { content: [...initialContent, ..._nullishCoalesce(m.content, () => ( []))] } : void 0,
|
2735
2754
|
status: _nullishCoalesce(m.status, () => ( message.status)),
|
2736
|
-
..._optionalChain([m, 'access',
|
2755
|
+
..._optionalChain([m, 'access', _102 => _102.roundtrips, 'optionalAccess', _103 => _103.length]) ? { roundtrips: [..._nullishCoalesce(initialRoundtrips, () => ( [])), ...m.roundtrips] } : void 0
|
2737
2756
|
};
|
2738
2757
|
this.repository.addOrUpdateMessage(parentId, message);
|
2739
2758
|
this.notifySubscribers();
|
2740
2759
|
};
|
2741
|
-
const maxToolRoundtrips = _nullishCoalesce(_optionalChain([this, 'access',
|
2742
|
-
const toolRoundtrips = _nullishCoalesce(_optionalChain([message, 'access',
|
2760
|
+
const maxToolRoundtrips = _nullishCoalesce(_optionalChain([this, 'access', _104 => _104.options, 'optionalAccess', _105 => _105.maxToolRoundtrips]), () => ( 1));
|
2761
|
+
const toolRoundtrips = _nullishCoalesce(_optionalChain([message, 'access', _106 => _106.roundtrips, 'optionalAccess', _107 => _107.length]), () => ( 0));
|
2743
2762
|
if (toolRoundtrips > maxToolRoundtrips) {
|
2744
2763
|
updateMessage({
|
2745
2764
|
status: {
|
@@ -2831,6 +2850,13 @@ var LocalThreadRuntime = (_class5 = class {
|
|
2831
2850
|
this.performRoundtrip(parentId, message);
|
2832
2851
|
}
|
2833
2852
|
}
|
2853
|
+
export() {
|
2854
|
+
return this.repository.export();
|
2855
|
+
}
|
2856
|
+
import(data) {
|
2857
|
+
this.repository.import(data);
|
2858
|
+
this.notifySubscribers();
|
2859
|
+
}
|
2834
2860
|
}, _class5);
|
2835
2861
|
|
2836
2862
|
// src/runtimes/local/LocalRuntime.tsx
|
@@ -3012,7 +3038,7 @@ var useExternalStoreSync = (adapter, updateData) => {
|
|
3012
3038
|
|
3013
3039
|
// src/runtimes/external-store/ExternalStoreThreadRuntime.tsx
|
3014
3040
|
var hasUpcomingMessage = (isRunning, messages) => {
|
3015
|
-
return isRunning && _optionalChain([messages, 'access',
|
3041
|
+
return isRunning && _optionalChain([messages, 'access', _108 => _108[messages.length - 1], 'optionalAccess', _109 => _109.role]) !== "assistant";
|
3016
3042
|
};
|
3017
3043
|
var ExternalStoreThreadRuntime = (_class7 = class {
|
3018
3044
|
constructor(store) {;_class7.prototype.__init17.call(this);_class7.prototype.__init18.call(this);_class7.prototype.__init19.call(this);_class7.prototype.__init20.call(this);_class7.prototype.__init21.call(this);_class7.prototype.__init22.call(this);_class7.prototype.__init23.call(this);_class7.prototype.__init24.call(this);_class7.prototype.__init25.call(this);
|
@@ -3052,7 +3078,7 @@ var ExternalStoreThreadRuntime = (_class7 = class {
|
|
3052
3078
|
this.updateMessages(this.repository.getMessages());
|
3053
3079
|
}
|
3054
3080
|
async append(message) {
|
3055
|
-
if (message.parentId !== (_nullishCoalesce(_optionalChain([this, 'access',
|
3081
|
+
if (message.parentId !== (_nullishCoalesce(_optionalChain([this, 'access', _120 => _120.messages, 'access', _121 => _121.at, 'call', _122 => _122(-1), 'optionalAccess', _123 => _123.id]), () => ( null)))) {
|
3056
3082
|
if (!this.store.onEdit)
|
3057
3083
|
throw new Error("Runtime does not support editing messages.");
|
3058
3084
|
await this.store.onEdit(message);
|
@@ -3083,7 +3109,7 @@ var ExternalStoreThreadRuntime = (_class7 = class {
|
|
3083
3109
|
return () => this._subscriptions.delete(callback);
|
3084
3110
|
}
|
3085
3111
|
__init23() {this.updateMessages = (messages) => {
|
3086
|
-
_optionalChain([this, 'access',
|
3112
|
+
_optionalChain([this, 'access', _124 => _124.store, 'access', _125 => _125.setMessages, 'optionalCall', _126 => _126(
|
3087
3113
|
messages.flatMap(getExternalStoreMessage).filter((m) => m != null)
|
3088
3114
|
)]);
|
3089
3115
|
}}
|
@@ -3096,7 +3122,7 @@ var ExternalStoreThreadRuntime = (_class7 = class {
|
|
3096
3122
|
for (let i = 0; i < vm.length; i++) {
|
3097
3123
|
const message = vm[i];
|
3098
3124
|
const parent = vm[i - 1];
|
3099
|
-
this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess',
|
3125
|
+
this.repository.addOrUpdateMessage(_nullishCoalesce(_optionalChain([parent, 'optionalAccess', _127 => _127.id]), () => ( null)), message);
|
3100
3126
|
}
|
3101
3127
|
if (this.assistantOptimisticId) {
|
3102
3128
|
this.repository.deleteMessage(this.assistantOptimisticId);
|
@@ -3104,7 +3130,7 @@ var ExternalStoreThreadRuntime = (_class7 = class {
|
|
3104
3130
|
}
|
3105
3131
|
if (hasUpcomingMessage(isRunning, vm)) {
|
3106
3132
|
this.assistantOptimisticId = this.repository.appendOptimisticMessage(
|
3107
|
-
_nullishCoalesce(_optionalChain([vm, 'access',
|
3133
|
+
_nullishCoalesce(_optionalChain([vm, 'access', _128 => _128.at, 'call', _129 => _129(-1), 'optionalAccess', _130 => _130.id]), () => ( null)),
|
3108
3134
|
{
|
3109
3135
|
role: "assistant",
|
3110
3136
|
content: []
|
@@ -3112,7 +3138,7 @@ var ExternalStoreThreadRuntime = (_class7 = class {
|
|
3112
3138
|
);
|
3113
3139
|
}
|
3114
3140
|
this.repository.resetHead(
|
3115
|
-
_nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([vm, 'access',
|
3141
|
+
_nullishCoalesce(_nullishCoalesce(this.assistantOptimisticId, () => ( _optionalChain([vm, 'access', _131 => _131.at, 'call', _132 => _132(-1), 'optionalAccess', _133 => _133.id]))), () => ( null))
|
3116
3142
|
);
|
3117
3143
|
this.messages = this.repository.getMessages();
|
3118
3144
|
this.isDisabled = isDisabled;
|
@@ -3191,7 +3217,7 @@ var ThreadConfigProvider = ({
|
|
3191
3217
|
}) => {
|
3192
3218
|
const assistant = useAssistantContext({ optional: true });
|
3193
3219
|
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 });
|
3194
|
-
if (!_optionalChain([config, 'optionalAccess',
|
3220
|
+
if (!_optionalChain([config, 'optionalAccess', _134 => _134.runtime])) return configProvider;
|
3195
3221
|
if (assistant) {
|
3196
3222
|
throw new Error(
|
3197
3223
|
"You provided a runtime to <Thread> while simulataneously using <AssistantRuntimeProvider>. This is not allowed."
|
@@ -3407,7 +3433,7 @@ var AssistantMessageContent = _react.forwardRef.call(void 0, ({ components: comp
|
|
3407
3433
|
{
|
3408
3434
|
components: {
|
3409
3435
|
...componentsProp,
|
3410
|
-
Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess',
|
3436
|
+
Text: _nullishCoalesce(_nullishCoalesce(_optionalChain([componentsProp, 'optionalAccess', _135 => _135.Text]), () => ( components.Text)), () => ( content_part_default.Text))
|
3411
3437
|
}
|
3412
3438
|
}
|
3413
3439
|
) });
|
@@ -3582,7 +3608,7 @@ var ThreadWelcomeSuggestion = ({
|
|
3582
3608
|
};
|
3583
3609
|
var ThreadWelcomeSuggestions = () => {
|
3584
3610
|
const { welcome: { suggestions } = {} } = useThreadConfig();
|
3585
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestionContainer, { children: _optionalChain([suggestions, 'optionalAccess',
|
3611
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestionContainer, { children: _optionalChain([suggestions, 'optionalAccess', _136 => _136.map, 'call', _137 => _137((suggestion, idx) => {
|
3586
3612
|
const key = `${suggestion.prompt}-${idx}`;
|
3587
3613
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ThreadWelcomeSuggestion, { suggestion }, key);
|
3588
3614
|
})]) });
|
@@ -3660,7 +3686,7 @@ var UserMessageContent = _react.forwardRef.call(void 0,
|
|
3660
3686
|
{
|
3661
3687
|
components: {
|
3662
3688
|
...components,
|
3663
|
-
Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
3689
|
+
Text: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _138 => _138.Text]), () => ( content_part_default.Text))
|
3664
3690
|
}
|
3665
3691
|
}
|
3666
3692
|
) });
|
@@ -3762,10 +3788,10 @@ var ThreadMessages = ({ components, ...rest }) => {
|
|
3762
3788
|
thread_exports.Messages,
|
3763
3789
|
{
|
3764
3790
|
components: {
|
3765
|
-
UserMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
3766
|
-
EditComposer: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
3767
|
-
AssistantMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
3768
|
-
SystemMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess',
|
3791
|
+
UserMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _139 => _139.UserMessage]), () => ( user_message_default)),
|
3792
|
+
EditComposer: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _140 => _140.EditComposer]), () => ( edit_composer_default)),
|
3793
|
+
AssistantMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _141 => _141.AssistantMessage]), () => ( assistant_message_default)),
|
3794
|
+
SystemMessage: _nullishCoalesce(_optionalChain([components, 'optionalAccess', _142 => _142.SystemMessage]), () => ( SystemMessage))
|
3769
3795
|
},
|
3770
3796
|
...rest
|
3771
3797
|
}
|