@assistant-ui/react-ai-sdk 0.4.1 → 0.5.2
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 +3 -40
- package/dist/index.d.ts +3 -40
- package/dist/index.js +78 -203
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +78 -201
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _assistant_ui_react from '@assistant-ui/react';
|
|
2
|
-
import { AppendMessage,
|
|
2
|
+
import { AppendMessage, ThreadMessage, ReactThreadRuntime, Unsubscribe, AddToolResultOptions, ModelConfigProvider, INTERNAL } from '@assistant-ui/react';
|
|
3
3
|
import { ReactNode } from 'react';
|
|
4
4
|
import { useChat, useAssistant } from 'ai/react';
|
|
5
5
|
import { Message } from 'ai';
|
|
@@ -23,46 +23,9 @@ type VercelRSCAdapterBase<T> = {
|
|
|
23
23
|
};
|
|
24
24
|
type VercelRSCAdapter<T = VercelRSCMessage> = VercelRSCAdapterBase<T> & (T extends VercelRSCMessage ? object : RSCMessageConverter<T>);
|
|
25
25
|
|
|
26
|
-
declare
|
|
27
|
-
adapter: VercelRSCAdapter<T>;
|
|
28
|
-
private useAdapter;
|
|
29
|
-
readonly capabilities: Readonly<{
|
|
30
|
-
edit: false;
|
|
31
|
-
reload: false;
|
|
32
|
-
cancel: false;
|
|
33
|
-
copy: false;
|
|
34
|
-
}>;
|
|
35
|
-
private _subscriptions;
|
|
36
|
-
isRunning: boolean;
|
|
37
|
-
messages: ThreadMessage[];
|
|
38
|
-
constructor(adapter: VercelRSCAdapter<T>);
|
|
39
|
-
private withRunning;
|
|
40
|
-
getBranches(): readonly string[];
|
|
41
|
-
switchToBranch(): void;
|
|
42
|
-
append(message: AppendMessage): Promise<void>;
|
|
43
|
-
startRun(parentId: string | null): Promise<void>;
|
|
44
|
-
cancelRun(): void;
|
|
45
|
-
subscribe(callback: () => void): Unsubscribe;
|
|
46
|
-
onAdapterUpdated(): void;
|
|
47
|
-
private updateData;
|
|
48
|
-
unstable_synchronizer: () => null;
|
|
49
|
-
addToolResult(): void;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
declare const BaseAssistantRuntime$2: typeof INTERNAL.BaseAssistantRuntime;
|
|
53
|
-
declare class VercelRSCRuntime<T extends WeakKey = VercelRSCMessage> extends BaseAssistantRuntime$2<VercelRSCThreadRuntime<T>> {
|
|
54
|
-
private readonly _proxyConfigProvider;
|
|
55
|
-
constructor(adapter: VercelRSCAdapter<T>);
|
|
56
|
-
set adapter(adapter: VercelRSCAdapter<T>);
|
|
57
|
-
onAdapterUpdated(): void;
|
|
58
|
-
getModelConfig(): _assistant_ui_react.ModelConfig;
|
|
59
|
-
registerModelConfigProvider(provider: ModelConfigProvider): () => void;
|
|
60
|
-
switchToThread(): void;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
declare const useVercelRSCRuntime: <T extends WeakKey>(adapter: VercelRSCAdapter<T>) => VercelRSCRuntime<T>;
|
|
26
|
+
declare const useVercelRSCRuntime: <T extends WeakKey>(adapter: VercelRSCAdapter<T>) => _assistant_ui_react.ExternalStoreRuntime;
|
|
64
27
|
|
|
65
|
-
declare const getVercelRSCMessage:
|
|
28
|
+
declare const getVercelRSCMessage: (message: ThreadMessage) => unknown;
|
|
66
29
|
|
|
67
30
|
declare class VercelUseChatThreadRuntime implements ReactThreadRuntime {
|
|
68
31
|
vercel: ReturnType<typeof useChat>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _assistant_ui_react from '@assistant-ui/react';
|
|
2
|
-
import { AppendMessage,
|
|
2
|
+
import { AppendMessage, ThreadMessage, ReactThreadRuntime, Unsubscribe, AddToolResultOptions, ModelConfigProvider, INTERNAL } from '@assistant-ui/react';
|
|
3
3
|
import { ReactNode } from 'react';
|
|
4
4
|
import { useChat, useAssistant } from 'ai/react';
|
|
5
5
|
import { Message } from 'ai';
|
|
@@ -23,46 +23,9 @@ type VercelRSCAdapterBase<T> = {
|
|
|
23
23
|
};
|
|
24
24
|
type VercelRSCAdapter<T = VercelRSCMessage> = VercelRSCAdapterBase<T> & (T extends VercelRSCMessage ? object : RSCMessageConverter<T>);
|
|
25
25
|
|
|
26
|
-
declare
|
|
27
|
-
adapter: VercelRSCAdapter<T>;
|
|
28
|
-
private useAdapter;
|
|
29
|
-
readonly capabilities: Readonly<{
|
|
30
|
-
edit: false;
|
|
31
|
-
reload: false;
|
|
32
|
-
cancel: false;
|
|
33
|
-
copy: false;
|
|
34
|
-
}>;
|
|
35
|
-
private _subscriptions;
|
|
36
|
-
isRunning: boolean;
|
|
37
|
-
messages: ThreadMessage[];
|
|
38
|
-
constructor(adapter: VercelRSCAdapter<T>);
|
|
39
|
-
private withRunning;
|
|
40
|
-
getBranches(): readonly string[];
|
|
41
|
-
switchToBranch(): void;
|
|
42
|
-
append(message: AppendMessage): Promise<void>;
|
|
43
|
-
startRun(parentId: string | null): Promise<void>;
|
|
44
|
-
cancelRun(): void;
|
|
45
|
-
subscribe(callback: () => void): Unsubscribe;
|
|
46
|
-
onAdapterUpdated(): void;
|
|
47
|
-
private updateData;
|
|
48
|
-
unstable_synchronizer: () => null;
|
|
49
|
-
addToolResult(): void;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
declare const BaseAssistantRuntime$2: typeof INTERNAL.BaseAssistantRuntime;
|
|
53
|
-
declare class VercelRSCRuntime<T extends WeakKey = VercelRSCMessage> extends BaseAssistantRuntime$2<VercelRSCThreadRuntime<T>> {
|
|
54
|
-
private readonly _proxyConfigProvider;
|
|
55
|
-
constructor(adapter: VercelRSCAdapter<T>);
|
|
56
|
-
set adapter(adapter: VercelRSCAdapter<T>);
|
|
57
|
-
onAdapterUpdated(): void;
|
|
58
|
-
getModelConfig(): _assistant_ui_react.ModelConfig;
|
|
59
|
-
registerModelConfigProvider(provider: ModelConfigProvider): () => void;
|
|
60
|
-
switchToThread(): void;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
declare const useVercelRSCRuntime: <T extends WeakKey>(adapter: VercelRSCAdapter<T>) => VercelRSCRuntime<T>;
|
|
26
|
+
declare const useVercelRSCRuntime: <T extends WeakKey>(adapter: VercelRSCAdapter<T>) => _assistant_ui_react.ExternalStoreRuntime;
|
|
64
27
|
|
|
65
|
-
declare const getVercelRSCMessage:
|
|
28
|
+
declare const getVercelRSCMessage: (message: ThreadMessage) => unknown;
|
|
66
29
|
|
|
67
30
|
declare class VercelUseChatThreadRuntime implements ReactThreadRuntime {
|
|
68
31
|
vercel: ReturnType<typeof useChat>;
|
package/dist/index.js
CHANGED
|
@@ -29,39 +29,7 @@ __export(src_exports, {
|
|
|
29
29
|
module.exports = __toCommonJS(src_exports);
|
|
30
30
|
|
|
31
31
|
// src/rsc/useVercelRSCRuntime.tsx
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
// src/rsc/VercelRSCRuntime.tsx
|
|
35
|
-
var import_react3 = require("@assistant-ui/react");
|
|
36
|
-
|
|
37
|
-
// src/rsc/VercelRSCThreadRuntime.tsx
|
|
38
|
-
var import_react2 = require("@assistant-ui/react");
|
|
39
|
-
var import_zustand = require("zustand");
|
|
40
|
-
|
|
41
|
-
// src/rsc/useVercelRSCSync.tsx
|
|
42
|
-
var import_react = require("react");
|
|
43
|
-
|
|
44
|
-
// src/utils/ThreadMessageConverter.ts
|
|
45
|
-
var ThreadMessageConverter = class {
|
|
46
|
-
cache = /* @__PURE__ */ new WeakMap();
|
|
47
|
-
convertMessages(messages, converter, keyMapper = (key) => key) {
|
|
48
|
-
return messages.map((m) => {
|
|
49
|
-
const key = keyMapper(m);
|
|
50
|
-
const cached = this.cache.get(key);
|
|
51
|
-
const newMessage = converter(m, cached);
|
|
52
|
-
this.cache.set(key, newMessage);
|
|
53
|
-
return newMessage;
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
// src/rsc/getVercelRSCMessage.tsx
|
|
59
|
-
var symbolInnerRSCMessage = Symbol("innerVercelRSCMessage");
|
|
60
|
-
var getVercelRSCMessage = (message) => {
|
|
61
|
-
return message[symbolInnerRSCMessage];
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// src/rsc/useVercelRSCSync.tsx
|
|
32
|
+
var import_react = require("@assistant-ui/react");
|
|
65
33
|
var vercelToThreadMessage = (converter, rawMessage) => {
|
|
66
34
|
const message = converter(rawMessage);
|
|
67
35
|
return {
|
|
@@ -69,152 +37,40 @@ var vercelToThreadMessage = (converter, rawMessage) => {
|
|
|
69
37
|
role: message.role,
|
|
70
38
|
content: [{ type: "ui", display: message.display }],
|
|
71
39
|
createdAt: message.createdAt ?? /* @__PURE__ */ new Date(),
|
|
72
|
-
...{ status: { type: "
|
|
73
|
-
[symbolInnerRSCMessage]: rawMessage
|
|
40
|
+
...{ status: { type: "complete", reason: "unknown" } }
|
|
74
41
|
};
|
|
75
42
|
};
|
|
76
|
-
var
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
updateData(converter.convertMessages(adapter.messages, convertCallback));
|
|
87
|
-
}, [updateData, converter, convertCallback, adapter.messages]);
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
// src/rsc/VercelRSCThreadRuntime.tsx
|
|
91
|
-
var { ProxyConfigProvider } = import_react2.INTERNAL;
|
|
92
|
-
var EMPTY_BRANCHES = Object.freeze([]);
|
|
93
|
-
var CAPABILITIES = Object.freeze({
|
|
94
|
-
edit: false,
|
|
95
|
-
reload: false,
|
|
96
|
-
cancel: false,
|
|
97
|
-
copy: false
|
|
98
|
-
});
|
|
99
|
-
var VercelRSCThreadRuntime = class {
|
|
100
|
-
constructor(adapter) {
|
|
101
|
-
this.adapter = adapter;
|
|
102
|
-
this.useAdapter = (0, import_zustand.create)(() => ({
|
|
103
|
-
adapter
|
|
104
|
-
}));
|
|
105
|
-
}
|
|
106
|
-
useAdapter;
|
|
107
|
-
capabilities = CAPABILITIES;
|
|
108
|
-
_subscriptions = /* @__PURE__ */ new Set();
|
|
109
|
-
isRunning = false;
|
|
110
|
-
messages = [];
|
|
111
|
-
withRunning = (callback) => {
|
|
112
|
-
this.isRunning = true;
|
|
113
|
-
return callback.finally(() => {
|
|
114
|
-
this.isRunning = false;
|
|
115
|
-
});
|
|
116
|
-
};
|
|
117
|
-
getBranches() {
|
|
118
|
-
return EMPTY_BRANCHES;
|
|
119
|
-
}
|
|
120
|
-
switchToBranch() {
|
|
121
|
-
throw new Error(
|
|
122
|
-
"Branch switching is not supported by VercelRSCAssistantProvider."
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
async append(message) {
|
|
126
|
-
if (message.role !== "user")
|
|
127
|
-
throw new Error(
|
|
128
|
-
"Only appending user messages are supported in VercelRSCRuntime. This is likely an internal bug in assistant-ui."
|
|
129
|
-
);
|
|
130
|
-
if (message.parentId !== (this.messages.at(-1)?.id ?? null)) {
|
|
131
|
-
if (!this.adapter.edit)
|
|
132
|
-
throw new Error(
|
|
133
|
-
"Message editing is not enabled, please provide an edit callback to VercelRSCAssistantProvider."
|
|
134
|
-
);
|
|
135
|
-
await this.withRunning(this.adapter.edit(message));
|
|
136
|
-
} else {
|
|
137
|
-
await this.withRunning(this.adapter.append(message));
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
async startRun(parentId) {
|
|
141
|
-
if (!this.adapter.reload)
|
|
142
|
-
throw new Error(
|
|
143
|
-
"Message reloading is not enabled, please provide a reload callback to VercelRSCAssistantProvider."
|
|
144
|
-
);
|
|
145
|
-
await this.withRunning(this.adapter.reload(parentId));
|
|
146
|
-
}
|
|
147
|
-
cancelRun() {
|
|
148
|
-
throw new Error("VercelRSCRuntime does not support cancelling runs.");
|
|
149
|
-
}
|
|
150
|
-
subscribe(callback) {
|
|
151
|
-
this._subscriptions.add(callback);
|
|
152
|
-
return () => this._subscriptions.delete(callback);
|
|
153
|
-
}
|
|
154
|
-
onAdapterUpdated() {
|
|
155
|
-
if (this.useAdapter.getState().adapter !== this.adapter) {
|
|
156
|
-
this.useAdapter.setState({ adapter: this.adapter });
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
updateData = (messages) => {
|
|
160
|
-
this.messages = messages;
|
|
161
|
-
for (const callback of this._subscriptions) callback();
|
|
162
|
-
};
|
|
163
|
-
unstable_synchronizer = () => {
|
|
164
|
-
const { adapter } = this.useAdapter();
|
|
165
|
-
useVercelRSCSync(adapter, this.updateData);
|
|
166
|
-
return null;
|
|
43
|
+
var useVercelRSCRuntime = (adapter) => {
|
|
44
|
+
const eAdapter = {
|
|
45
|
+
messages: adapter.messages,
|
|
46
|
+
onNew: adapter.append,
|
|
47
|
+
onEdit: adapter.edit,
|
|
48
|
+
onReload: adapter.reload,
|
|
49
|
+
convertMessage: (m) => vercelToThreadMessage(
|
|
50
|
+
adapter.convertMessage ?? ((m2) => m2),
|
|
51
|
+
m
|
|
52
|
+
)
|
|
167
53
|
};
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
// src/rsc/VercelRSCRuntime.tsx
|
|
174
|
-
var { BaseAssistantRuntime } = import_react3.INTERNAL;
|
|
175
|
-
var VercelRSCRuntime = class extends BaseAssistantRuntime {
|
|
176
|
-
_proxyConfigProvider = new ProxyConfigProvider();
|
|
177
|
-
constructor(adapter) {
|
|
178
|
-
super(new VercelRSCThreadRuntime(adapter));
|
|
179
|
-
}
|
|
180
|
-
set adapter(adapter) {
|
|
181
|
-
this.thread.adapter = adapter;
|
|
182
|
-
}
|
|
183
|
-
onAdapterUpdated() {
|
|
184
|
-
return this.thread.onAdapterUpdated();
|
|
185
|
-
}
|
|
186
|
-
getModelConfig() {
|
|
187
|
-
return this._proxyConfigProvider.getModelConfig();
|
|
188
|
-
}
|
|
189
|
-
registerModelConfigProvider(provider) {
|
|
190
|
-
return this._proxyConfigProvider.registerModelConfigProvider(provider);
|
|
191
|
-
}
|
|
192
|
-
switchToThread() {
|
|
193
|
-
throw new Error("VercelRSCRuntime does not support switching threads");
|
|
194
|
-
}
|
|
54
|
+
const runtime = (0, import_react.useExternalStoreRuntime)(eAdapter);
|
|
55
|
+
return runtime;
|
|
195
56
|
};
|
|
196
57
|
|
|
197
|
-
// src/rsc/
|
|
198
|
-
var
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
});
|
|
203
|
-
(0, import_react4.useEffect)(() => {
|
|
204
|
-
runtime.onAdapterUpdated();
|
|
205
|
-
});
|
|
206
|
-
return runtime;
|
|
58
|
+
// src/rsc/getVercelRSCMessage.tsx
|
|
59
|
+
var import_react2 = require("@assistant-ui/react");
|
|
60
|
+
var symbolInnerRSCMessage = Symbol("innerVercelRSCMessage");
|
|
61
|
+
var getVercelRSCMessage = (message) => {
|
|
62
|
+
return (0, import_react2.getExternalStoreMessage)(message);
|
|
207
63
|
};
|
|
208
64
|
|
|
209
65
|
// src/ui/use-chat/useVercelUseChatRuntime.tsx
|
|
210
|
-
var
|
|
66
|
+
var import_react8 = require("react");
|
|
211
67
|
|
|
212
68
|
// src/ui/use-chat/VercelUseChatRuntime.tsx
|
|
213
|
-
var
|
|
69
|
+
var import_react7 = require("@assistant-ui/react");
|
|
214
70
|
|
|
215
71
|
// src/ui/use-chat/VercelUseChatThreadRuntime.tsx
|
|
216
|
-
var
|
|
217
|
-
var
|
|
72
|
+
var import_react6 = require("@assistant-ui/react");
|
|
73
|
+
var import_zustand = require("zustand");
|
|
218
74
|
|
|
219
75
|
// src/ui/getVercelAIMessage.tsx
|
|
220
76
|
var symbolInnerAIMessage = Symbol("innerVercelAIUIMessage");
|
|
@@ -237,11 +93,11 @@ var sliceMessagesUntil = (messages, messageId) => {
|
|
|
237
93
|
};
|
|
238
94
|
|
|
239
95
|
// src/ui/utils/useVercelAIComposerSync.tsx
|
|
240
|
-
var
|
|
241
|
-
var
|
|
96
|
+
var import_react3 = require("@assistant-ui/react");
|
|
97
|
+
var import_react4 = require("react");
|
|
242
98
|
var useVercelAIComposerSync = (vercel) => {
|
|
243
|
-
const { useComposer } = (0,
|
|
244
|
-
(0,
|
|
99
|
+
const { useComposer } = (0, import_react3.useThreadContext)();
|
|
100
|
+
(0, import_react4.useEffect)(() => {
|
|
245
101
|
useComposer.setState({
|
|
246
102
|
value: vercel.input,
|
|
247
103
|
setValue: vercel.setInput
|
|
@@ -250,7 +106,23 @@ var useVercelAIComposerSync = (vercel) => {
|
|
|
250
106
|
};
|
|
251
107
|
|
|
252
108
|
// src/ui/utils/useVercelAIThreadSync.tsx
|
|
253
|
-
var
|
|
109
|
+
var import_react5 = require("react");
|
|
110
|
+
|
|
111
|
+
// src/utils/ThreadMessageConverter.ts
|
|
112
|
+
var ThreadMessageConverter = class {
|
|
113
|
+
cache = /* @__PURE__ */ new WeakMap();
|
|
114
|
+
convertMessages(messages, converter, keyMapper = (key) => key) {
|
|
115
|
+
return messages.map((m) => {
|
|
116
|
+
const key = keyMapper(m);
|
|
117
|
+
const cached = this.cache.get(key);
|
|
118
|
+
const newMessage = converter(m, cached);
|
|
119
|
+
this.cache.set(key, newMessage);
|
|
120
|
+
return newMessage;
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
// src/ui/utils/useVercelAIThreadSync.tsx
|
|
254
126
|
var getIsRunning = (vercel) => {
|
|
255
127
|
if ("isLoading" in vercel) return vercel.isLoading;
|
|
256
128
|
return vercel.status === "in_progress";
|
|
@@ -352,12 +224,15 @@ var shallowArrayEqual = (a, b) => {
|
|
|
352
224
|
};
|
|
353
225
|
var useVercelAIThreadSync = (vercel, updateData) => {
|
|
354
226
|
const isRunning = getIsRunning(vercel);
|
|
355
|
-
const converter = (0,
|
|
356
|
-
(0,
|
|
227
|
+
const converter = (0, import_react5.useMemo)(() => new ThreadMessageConverter(), []);
|
|
228
|
+
(0, import_react5.useEffect)(() => {
|
|
357
229
|
const lastMessageId = vercel.messages.at(-1)?.id;
|
|
358
230
|
const convertCallback = (messages2, cache) => {
|
|
359
|
-
const status = {
|
|
360
|
-
type:
|
|
231
|
+
const status = lastMessageId === messages2[0].id && isRunning ? {
|
|
232
|
+
type: "running"
|
|
233
|
+
} : {
|
|
234
|
+
type: "complete",
|
|
235
|
+
reason: "unknown"
|
|
361
236
|
};
|
|
362
237
|
if (cache && shallowArrayEqual(cache.content, messages2) && (cache.role !== "assistant" || cache.status.type === status.type))
|
|
363
238
|
return cache;
|
|
@@ -373,11 +248,11 @@ var useVercelAIThreadSync = (vercel, updateData) => {
|
|
|
373
248
|
};
|
|
374
249
|
|
|
375
250
|
// src/ui/use-chat/VercelUseChatThreadRuntime.tsx
|
|
376
|
-
var { MessageRepository } =
|
|
251
|
+
var { MessageRepository } = import_react6.INTERNAL;
|
|
377
252
|
var hasUpcomingMessage = (isRunning, messages) => {
|
|
378
253
|
return isRunning && messages[messages.length - 1]?.role !== "assistant";
|
|
379
254
|
};
|
|
380
|
-
var
|
|
255
|
+
var CAPABILITIES = Object.freeze({
|
|
381
256
|
edit: true,
|
|
382
257
|
reload: true,
|
|
383
258
|
cancel: true,
|
|
@@ -386,7 +261,7 @@ var CAPABILITIES2 = Object.freeze({
|
|
|
386
261
|
var VercelUseChatThreadRuntime = class {
|
|
387
262
|
constructor(vercel) {
|
|
388
263
|
this.vercel = vercel;
|
|
389
|
-
this.useVercel = (0,
|
|
264
|
+
this.useVercel = (0, import_zustand.create)(() => ({
|
|
390
265
|
vercel
|
|
391
266
|
}));
|
|
392
267
|
}
|
|
@@ -394,7 +269,7 @@ var VercelUseChatThreadRuntime = class {
|
|
|
394
269
|
repository = new MessageRepository();
|
|
395
270
|
assistantOptimisticId = null;
|
|
396
271
|
useVercel;
|
|
397
|
-
capabilities =
|
|
272
|
+
capabilities = CAPABILITIES;
|
|
398
273
|
messages = [];
|
|
399
274
|
isRunning = false;
|
|
400
275
|
getBranches(messageId) {
|
|
@@ -474,7 +349,7 @@ var VercelUseChatThreadRuntime = class {
|
|
|
474
349
|
vm.at(-1)?.id ?? null,
|
|
475
350
|
{
|
|
476
351
|
role: "assistant",
|
|
477
|
-
content: [
|
|
352
|
+
content: []
|
|
478
353
|
}
|
|
479
354
|
);
|
|
480
355
|
}
|
|
@@ -497,9 +372,9 @@ var VercelUseChatThreadRuntime = class {
|
|
|
497
372
|
};
|
|
498
373
|
|
|
499
374
|
// src/ui/use-chat/VercelUseChatRuntime.tsx
|
|
500
|
-
var { ProxyConfigProvider
|
|
501
|
-
var VercelUseChatRuntime = class extends
|
|
502
|
-
_proxyConfigProvider = new
|
|
375
|
+
var { ProxyConfigProvider, BaseAssistantRuntime } = import_react7.INTERNAL;
|
|
376
|
+
var VercelUseChatRuntime = class extends BaseAssistantRuntime {
|
|
377
|
+
_proxyConfigProvider = new ProxyConfigProvider();
|
|
503
378
|
constructor(vercel) {
|
|
504
379
|
super(new VercelUseChatThreadRuntime(vercel));
|
|
505
380
|
}
|
|
@@ -531,26 +406,26 @@ var VercelUseChatRuntime = class extends BaseAssistantRuntime2 {
|
|
|
531
406
|
|
|
532
407
|
// src/ui/use-chat/useVercelUseChatRuntime.tsx
|
|
533
408
|
var useVercelUseChatRuntime = (chatHelpers) => {
|
|
534
|
-
const [runtime] = (0,
|
|
535
|
-
(0,
|
|
409
|
+
const [runtime] = (0, import_react8.useState)(() => new VercelUseChatRuntime(chatHelpers));
|
|
410
|
+
(0, import_react8.useInsertionEffect)(() => {
|
|
536
411
|
runtime.vercel = chatHelpers;
|
|
537
412
|
});
|
|
538
|
-
(0,
|
|
413
|
+
(0, import_react8.useEffect)(() => {
|
|
539
414
|
runtime.onVercelUpdated();
|
|
540
415
|
});
|
|
541
416
|
return runtime;
|
|
542
417
|
};
|
|
543
418
|
|
|
544
419
|
// src/ui/use-assistant/useVercelUseAssistantRuntime.tsx
|
|
545
|
-
var
|
|
420
|
+
var import_react10 = require("react");
|
|
546
421
|
|
|
547
422
|
// src/ui/use-assistant/VercelUseAssistantRuntime.tsx
|
|
548
|
-
var
|
|
423
|
+
var import_react9 = require("@assistant-ui/react");
|
|
549
424
|
|
|
550
425
|
// src/ui/use-assistant/VercelUseAssistantThreadRuntime.tsx
|
|
551
|
-
var
|
|
552
|
-
var
|
|
553
|
-
var
|
|
426
|
+
var import_zustand2 = require("zustand");
|
|
427
|
+
var EMPTY_BRANCHES = Object.freeze([]);
|
|
428
|
+
var CAPABILITIES2 = Object.freeze({
|
|
554
429
|
edit: false,
|
|
555
430
|
reload: false,
|
|
556
431
|
cancel: false,
|
|
@@ -559,17 +434,17 @@ var CAPABILITIES3 = Object.freeze({
|
|
|
559
434
|
var VercelUseAssistantThreadRuntime = class {
|
|
560
435
|
constructor(vercel) {
|
|
561
436
|
this.vercel = vercel;
|
|
562
|
-
this.useVercel = (0,
|
|
437
|
+
this.useVercel = (0, import_zustand2.create)(() => ({
|
|
563
438
|
vercel
|
|
564
439
|
}));
|
|
565
440
|
}
|
|
566
441
|
_subscriptions = /* @__PURE__ */ new Set();
|
|
567
|
-
capabilities =
|
|
442
|
+
capabilities = CAPABILITIES2;
|
|
568
443
|
useVercel;
|
|
569
444
|
messages = [];
|
|
570
445
|
isRunning = false;
|
|
571
446
|
getBranches() {
|
|
572
|
-
return
|
|
447
|
+
return EMPTY_BRANCHES;
|
|
573
448
|
}
|
|
574
449
|
switchToBranch() {
|
|
575
450
|
throw new Error(
|
|
@@ -616,9 +491,9 @@ var VercelUseAssistantThreadRuntime = class {
|
|
|
616
491
|
vm.push({
|
|
617
492
|
id: "__optimistic__result",
|
|
618
493
|
createdAt: /* @__PURE__ */ new Date(),
|
|
619
|
-
status: { type: "
|
|
494
|
+
status: { type: "running" },
|
|
620
495
|
role: "assistant",
|
|
621
|
-
content: [
|
|
496
|
+
content: []
|
|
622
497
|
});
|
|
623
498
|
}
|
|
624
499
|
this.messages = vm;
|
|
@@ -639,12 +514,12 @@ var VercelUseAssistantThreadRuntime = class {
|
|
|
639
514
|
};
|
|
640
515
|
|
|
641
516
|
// src/ui/use-assistant/VercelUseAssistantRuntime.tsx
|
|
642
|
-
var { ProxyConfigProvider:
|
|
517
|
+
var { ProxyConfigProvider: ProxyConfigProvider2, BaseAssistantRuntime: BaseAssistantRuntime2 } = import_react9.INTERNAL;
|
|
643
518
|
var hasUpcomingMessage2 = (isRunning, messages) => {
|
|
644
519
|
return isRunning && messages[messages.length - 1]?.role !== "assistant";
|
|
645
520
|
};
|
|
646
|
-
var VercelUseAssistantRuntime = class extends
|
|
647
|
-
_proxyConfigProvider = new
|
|
521
|
+
var VercelUseAssistantRuntime = class extends BaseAssistantRuntime2 {
|
|
522
|
+
_proxyConfigProvider = new ProxyConfigProvider2();
|
|
648
523
|
constructor(vercel) {
|
|
649
524
|
super(new VercelUseAssistantThreadRuntime(vercel));
|
|
650
525
|
}
|
|
@@ -674,13 +549,13 @@ var VercelUseAssistantRuntime = class extends BaseAssistantRuntime3 {
|
|
|
674
549
|
|
|
675
550
|
// src/ui/use-assistant/useVercelUseAssistantRuntime.tsx
|
|
676
551
|
var useVercelUseAssistantRuntime = (assistantHelpers) => {
|
|
677
|
-
const [runtime] = (0,
|
|
552
|
+
const [runtime] = (0, import_react10.useState)(
|
|
678
553
|
() => new VercelUseAssistantRuntime(assistantHelpers)
|
|
679
554
|
);
|
|
680
|
-
(0,
|
|
555
|
+
(0, import_react10.useInsertionEffect)(() => {
|
|
681
556
|
runtime.vercel = assistantHelpers;
|
|
682
557
|
});
|
|
683
|
-
(0,
|
|
558
|
+
(0, import_react10.useEffect)(() => {
|
|
684
559
|
runtime.onVercelUpdated();
|
|
685
560
|
});
|
|
686
561
|
return runtime;
|