@assistant-ui/react-ai-sdk 0.5.1 → 0.5.3
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 +17 -42
- package/dist/index.d.ts +17 -42
- package/dist/index.js +75 -200
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +75 -198
- 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';
|
|
@@ -16,53 +16,28 @@ type RSCMessageConverter<T> = {
|
|
|
16
16
|
};
|
|
17
17
|
type VercelRSCAdapterBase<T> = {
|
|
18
18
|
messages: T[];
|
|
19
|
-
|
|
19
|
+
onNew?: (message: AppendMessage) => Promise<void>;
|
|
20
|
+
onEdit?: ((message: AppendMessage) => Promise<void>) | undefined;
|
|
21
|
+
onReload?: ((parentId: string | null) => Promise<void>) | undefined;
|
|
22
|
+
convertMessage?: ((message: T) => VercelRSCMessage) | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated Use `onNew` instead. This will be removed in 0.6.0.
|
|
25
|
+
*/
|
|
26
|
+
append?: (message: AppendMessage) => Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated Use `onEdit` instead. This will be removed in 0.6.0.
|
|
29
|
+
*/
|
|
20
30
|
edit?: ((message: AppendMessage) => Promise<void>) | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated Use `onReload` instead. This will be removed in 0.6.0.
|
|
33
|
+
*/
|
|
21
34
|
reload?: ((parentId: string | null) => Promise<void>) | undefined;
|
|
22
|
-
convertMessage?: ((message: T) => VercelRSCMessage) | undefined;
|
|
23
35
|
};
|
|
24
36
|
type VercelRSCAdapter<T = VercelRSCMessage> = VercelRSCAdapterBase<T> & (T extends VercelRSCMessage ? object : RSCMessageConverter<T>);
|
|
25
37
|
|
|
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>;
|
|
38
|
+
declare const useVercelRSCRuntime: <T extends WeakKey>(adapter: VercelRSCAdapter<T>) => _assistant_ui_react.ExternalStoreRuntime;
|
|
64
39
|
|
|
65
|
-
declare const getVercelRSCMessage:
|
|
40
|
+
declare const getVercelRSCMessage: (message: ThreadMessage) => unknown;
|
|
66
41
|
|
|
67
42
|
declare class VercelUseChatThreadRuntime implements ReactThreadRuntime {
|
|
68
43
|
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';
|
|
@@ -16,53 +16,28 @@ type RSCMessageConverter<T> = {
|
|
|
16
16
|
};
|
|
17
17
|
type VercelRSCAdapterBase<T> = {
|
|
18
18
|
messages: T[];
|
|
19
|
-
|
|
19
|
+
onNew?: (message: AppendMessage) => Promise<void>;
|
|
20
|
+
onEdit?: ((message: AppendMessage) => Promise<void>) | undefined;
|
|
21
|
+
onReload?: ((parentId: string | null) => Promise<void>) | undefined;
|
|
22
|
+
convertMessage?: ((message: T) => VercelRSCMessage) | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated Use `onNew` instead. This will be removed in 0.6.0.
|
|
25
|
+
*/
|
|
26
|
+
append?: (message: AppendMessage) => Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated Use `onEdit` instead. This will be removed in 0.6.0.
|
|
29
|
+
*/
|
|
20
30
|
edit?: ((message: AppendMessage) => Promise<void>) | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated Use `onReload` instead. This will be removed in 0.6.0.
|
|
33
|
+
*/
|
|
21
34
|
reload?: ((parentId: string | null) => Promise<void>) | undefined;
|
|
22
|
-
convertMessage?: ((message: T) => VercelRSCMessage) | undefined;
|
|
23
35
|
};
|
|
24
36
|
type VercelRSCAdapter<T = VercelRSCMessage> = VercelRSCAdapterBase<T> & (T extends VercelRSCMessage ? object : RSCMessageConverter<T>);
|
|
25
37
|
|
|
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>;
|
|
38
|
+
declare const useVercelRSCRuntime: <T extends WeakKey>(adapter: VercelRSCAdapter<T>) => _assistant_ui_react.ExternalStoreRuntime;
|
|
64
39
|
|
|
65
|
-
declare const getVercelRSCMessage:
|
|
40
|
+
declare const getVercelRSCMessage: (message: ThreadMessage) => unknown;
|
|
66
41
|
|
|
67
42
|
declare class VercelUseChatThreadRuntime implements ReactThreadRuntime {
|
|
68
43
|
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,43 @@ 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: "complete", reason: "unknown" } }
|
|
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
|
-
|
|
87
|
-
|
|
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 onNew = adapter.onNew ?? adapter.append;
|
|
45
|
+
if (!onNew)
|
|
46
|
+
throw new Error("You must pass a onNew function to useVercelRSCRuntime");
|
|
47
|
+
const eAdapter = {
|
|
48
|
+
messages: adapter.messages,
|
|
49
|
+
onNew,
|
|
50
|
+
onEdit: adapter.onEdit ?? adapter.edit,
|
|
51
|
+
onReload: adapter.onReload ?? adapter.reload,
|
|
52
|
+
convertMessage: (m) => vercelToThreadMessage(
|
|
53
|
+
adapter.convertMessage ?? ((m2) => m2),
|
|
54
|
+
m
|
|
55
|
+
)
|
|
167
56
|
};
|
|
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
|
-
}
|
|
57
|
+
const runtime = (0, import_react.useExternalStoreRuntime)(eAdapter);
|
|
58
|
+
return runtime;
|
|
195
59
|
};
|
|
196
60
|
|
|
197
|
-
// src/rsc/
|
|
198
|
-
var
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
});
|
|
203
|
-
(0, import_react4.useEffect)(() => {
|
|
204
|
-
runtime.onAdapterUpdated();
|
|
205
|
-
});
|
|
206
|
-
return runtime;
|
|
61
|
+
// src/rsc/getVercelRSCMessage.tsx
|
|
62
|
+
var import_react2 = require("@assistant-ui/react");
|
|
63
|
+
var symbolInnerRSCMessage = Symbol("innerVercelRSCMessage");
|
|
64
|
+
var getVercelRSCMessage = (message) => {
|
|
65
|
+
return (0, import_react2.getExternalStoreMessage)(message);
|
|
207
66
|
};
|
|
208
67
|
|
|
209
68
|
// src/ui/use-chat/useVercelUseChatRuntime.tsx
|
|
210
|
-
var
|
|
69
|
+
var import_react8 = require("react");
|
|
211
70
|
|
|
212
71
|
// src/ui/use-chat/VercelUseChatRuntime.tsx
|
|
213
|
-
var
|
|
72
|
+
var import_react7 = require("@assistant-ui/react");
|
|
214
73
|
|
|
215
74
|
// src/ui/use-chat/VercelUseChatThreadRuntime.tsx
|
|
216
|
-
var
|
|
217
|
-
var
|
|
75
|
+
var import_react6 = require("@assistant-ui/react");
|
|
76
|
+
var import_zustand = require("zustand");
|
|
218
77
|
|
|
219
78
|
// src/ui/getVercelAIMessage.tsx
|
|
220
79
|
var symbolInnerAIMessage = Symbol("innerVercelAIUIMessage");
|
|
@@ -237,11 +96,11 @@ var sliceMessagesUntil = (messages, messageId) => {
|
|
|
237
96
|
};
|
|
238
97
|
|
|
239
98
|
// src/ui/utils/useVercelAIComposerSync.tsx
|
|
240
|
-
var
|
|
241
|
-
var
|
|
99
|
+
var import_react3 = require("@assistant-ui/react");
|
|
100
|
+
var import_react4 = require("react");
|
|
242
101
|
var useVercelAIComposerSync = (vercel) => {
|
|
243
|
-
const { useComposer } = (0,
|
|
244
|
-
(0,
|
|
102
|
+
const { useComposer } = (0, import_react3.useThreadContext)();
|
|
103
|
+
(0, import_react4.useEffect)(() => {
|
|
245
104
|
useComposer.setState({
|
|
246
105
|
value: vercel.input,
|
|
247
106
|
setValue: vercel.setInput
|
|
@@ -250,7 +109,23 @@ var useVercelAIComposerSync = (vercel) => {
|
|
|
250
109
|
};
|
|
251
110
|
|
|
252
111
|
// src/ui/utils/useVercelAIThreadSync.tsx
|
|
253
|
-
var
|
|
112
|
+
var import_react5 = require("react");
|
|
113
|
+
|
|
114
|
+
// src/utils/ThreadMessageConverter.ts
|
|
115
|
+
var ThreadMessageConverter = class {
|
|
116
|
+
cache = /* @__PURE__ */ new WeakMap();
|
|
117
|
+
convertMessages(messages, converter, keyMapper = (key) => key) {
|
|
118
|
+
return messages.map((m) => {
|
|
119
|
+
const key = keyMapper(m);
|
|
120
|
+
const cached = this.cache.get(key);
|
|
121
|
+
const newMessage = converter(m, cached);
|
|
122
|
+
this.cache.set(key, newMessage);
|
|
123
|
+
return newMessage;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
// src/ui/utils/useVercelAIThreadSync.tsx
|
|
254
129
|
var getIsRunning = (vercel) => {
|
|
255
130
|
if ("isLoading" in vercel) return vercel.isLoading;
|
|
256
131
|
return vercel.status === "in_progress";
|
|
@@ -352,8 +227,8 @@ var shallowArrayEqual = (a, b) => {
|
|
|
352
227
|
};
|
|
353
228
|
var useVercelAIThreadSync = (vercel, updateData) => {
|
|
354
229
|
const isRunning = getIsRunning(vercel);
|
|
355
|
-
const converter = (0,
|
|
356
|
-
(0,
|
|
230
|
+
const converter = (0, import_react5.useMemo)(() => new ThreadMessageConverter(), []);
|
|
231
|
+
(0, import_react5.useEffect)(() => {
|
|
357
232
|
const lastMessageId = vercel.messages.at(-1)?.id;
|
|
358
233
|
const convertCallback = (messages2, cache) => {
|
|
359
234
|
const status = lastMessageId === messages2[0].id && isRunning ? {
|
|
@@ -376,11 +251,11 @@ var useVercelAIThreadSync = (vercel, updateData) => {
|
|
|
376
251
|
};
|
|
377
252
|
|
|
378
253
|
// src/ui/use-chat/VercelUseChatThreadRuntime.tsx
|
|
379
|
-
var { MessageRepository } =
|
|
254
|
+
var { MessageRepository } = import_react6.INTERNAL;
|
|
380
255
|
var hasUpcomingMessage = (isRunning, messages) => {
|
|
381
256
|
return isRunning && messages[messages.length - 1]?.role !== "assistant";
|
|
382
257
|
};
|
|
383
|
-
var
|
|
258
|
+
var CAPABILITIES = Object.freeze({
|
|
384
259
|
edit: true,
|
|
385
260
|
reload: true,
|
|
386
261
|
cancel: true,
|
|
@@ -389,7 +264,7 @@ var CAPABILITIES2 = Object.freeze({
|
|
|
389
264
|
var VercelUseChatThreadRuntime = class {
|
|
390
265
|
constructor(vercel) {
|
|
391
266
|
this.vercel = vercel;
|
|
392
|
-
this.useVercel = (0,
|
|
267
|
+
this.useVercel = (0, import_zustand.create)(() => ({
|
|
393
268
|
vercel
|
|
394
269
|
}));
|
|
395
270
|
}
|
|
@@ -397,7 +272,7 @@ var VercelUseChatThreadRuntime = class {
|
|
|
397
272
|
repository = new MessageRepository();
|
|
398
273
|
assistantOptimisticId = null;
|
|
399
274
|
useVercel;
|
|
400
|
-
capabilities =
|
|
275
|
+
capabilities = CAPABILITIES;
|
|
401
276
|
messages = [];
|
|
402
277
|
isRunning = false;
|
|
403
278
|
getBranches(messageId) {
|
|
@@ -477,7 +352,7 @@ var VercelUseChatThreadRuntime = class {
|
|
|
477
352
|
vm.at(-1)?.id ?? null,
|
|
478
353
|
{
|
|
479
354
|
role: "assistant",
|
|
480
|
-
content: [
|
|
355
|
+
content: []
|
|
481
356
|
}
|
|
482
357
|
);
|
|
483
358
|
}
|
|
@@ -500,9 +375,9 @@ var VercelUseChatThreadRuntime = class {
|
|
|
500
375
|
};
|
|
501
376
|
|
|
502
377
|
// src/ui/use-chat/VercelUseChatRuntime.tsx
|
|
503
|
-
var { ProxyConfigProvider
|
|
504
|
-
var VercelUseChatRuntime = class extends
|
|
505
|
-
_proxyConfigProvider = new
|
|
378
|
+
var { ProxyConfigProvider, BaseAssistantRuntime } = import_react7.INTERNAL;
|
|
379
|
+
var VercelUseChatRuntime = class extends BaseAssistantRuntime {
|
|
380
|
+
_proxyConfigProvider = new ProxyConfigProvider();
|
|
506
381
|
constructor(vercel) {
|
|
507
382
|
super(new VercelUseChatThreadRuntime(vercel));
|
|
508
383
|
}
|
|
@@ -534,26 +409,26 @@ var VercelUseChatRuntime = class extends BaseAssistantRuntime2 {
|
|
|
534
409
|
|
|
535
410
|
// src/ui/use-chat/useVercelUseChatRuntime.tsx
|
|
536
411
|
var useVercelUseChatRuntime = (chatHelpers) => {
|
|
537
|
-
const [runtime] = (0,
|
|
538
|
-
(0,
|
|
412
|
+
const [runtime] = (0, import_react8.useState)(() => new VercelUseChatRuntime(chatHelpers));
|
|
413
|
+
(0, import_react8.useInsertionEffect)(() => {
|
|
539
414
|
runtime.vercel = chatHelpers;
|
|
540
415
|
});
|
|
541
|
-
(0,
|
|
416
|
+
(0, import_react8.useEffect)(() => {
|
|
542
417
|
runtime.onVercelUpdated();
|
|
543
418
|
});
|
|
544
419
|
return runtime;
|
|
545
420
|
};
|
|
546
421
|
|
|
547
422
|
// src/ui/use-assistant/useVercelUseAssistantRuntime.tsx
|
|
548
|
-
var
|
|
423
|
+
var import_react10 = require("react");
|
|
549
424
|
|
|
550
425
|
// src/ui/use-assistant/VercelUseAssistantRuntime.tsx
|
|
551
|
-
var
|
|
426
|
+
var import_react9 = require("@assistant-ui/react");
|
|
552
427
|
|
|
553
428
|
// src/ui/use-assistant/VercelUseAssistantThreadRuntime.tsx
|
|
554
|
-
var
|
|
555
|
-
var
|
|
556
|
-
var
|
|
429
|
+
var import_zustand2 = require("zustand");
|
|
430
|
+
var EMPTY_BRANCHES = Object.freeze([]);
|
|
431
|
+
var CAPABILITIES2 = Object.freeze({
|
|
557
432
|
edit: false,
|
|
558
433
|
reload: false,
|
|
559
434
|
cancel: false,
|
|
@@ -562,17 +437,17 @@ var CAPABILITIES3 = Object.freeze({
|
|
|
562
437
|
var VercelUseAssistantThreadRuntime = class {
|
|
563
438
|
constructor(vercel) {
|
|
564
439
|
this.vercel = vercel;
|
|
565
|
-
this.useVercel = (0,
|
|
440
|
+
this.useVercel = (0, import_zustand2.create)(() => ({
|
|
566
441
|
vercel
|
|
567
442
|
}));
|
|
568
443
|
}
|
|
569
444
|
_subscriptions = /* @__PURE__ */ new Set();
|
|
570
|
-
capabilities =
|
|
445
|
+
capabilities = CAPABILITIES2;
|
|
571
446
|
useVercel;
|
|
572
447
|
messages = [];
|
|
573
448
|
isRunning = false;
|
|
574
449
|
getBranches() {
|
|
575
|
-
return
|
|
450
|
+
return EMPTY_BRANCHES;
|
|
576
451
|
}
|
|
577
452
|
switchToBranch() {
|
|
578
453
|
throw new Error(
|
|
@@ -621,7 +496,7 @@ var VercelUseAssistantThreadRuntime = class {
|
|
|
621
496
|
createdAt: /* @__PURE__ */ new Date(),
|
|
622
497
|
status: { type: "running" },
|
|
623
498
|
role: "assistant",
|
|
624
|
-
content: [
|
|
499
|
+
content: []
|
|
625
500
|
});
|
|
626
501
|
}
|
|
627
502
|
this.messages = vm;
|
|
@@ -642,12 +517,12 @@ var VercelUseAssistantThreadRuntime = class {
|
|
|
642
517
|
};
|
|
643
518
|
|
|
644
519
|
// src/ui/use-assistant/VercelUseAssistantRuntime.tsx
|
|
645
|
-
var { ProxyConfigProvider:
|
|
520
|
+
var { ProxyConfigProvider: ProxyConfigProvider2, BaseAssistantRuntime: BaseAssistantRuntime2 } = import_react9.INTERNAL;
|
|
646
521
|
var hasUpcomingMessage2 = (isRunning, messages) => {
|
|
647
522
|
return isRunning && messages[messages.length - 1]?.role !== "assistant";
|
|
648
523
|
};
|
|
649
|
-
var VercelUseAssistantRuntime = class extends
|
|
650
|
-
_proxyConfigProvider = new
|
|
524
|
+
var VercelUseAssistantRuntime = class extends BaseAssistantRuntime2 {
|
|
525
|
+
_proxyConfigProvider = new ProxyConfigProvider2();
|
|
651
526
|
constructor(vercel) {
|
|
652
527
|
super(new VercelUseAssistantThreadRuntime(vercel));
|
|
653
528
|
}
|
|
@@ -677,13 +552,13 @@ var VercelUseAssistantRuntime = class extends BaseAssistantRuntime3 {
|
|
|
677
552
|
|
|
678
553
|
// src/ui/use-assistant/useVercelUseAssistantRuntime.tsx
|
|
679
554
|
var useVercelUseAssistantRuntime = (assistantHelpers) => {
|
|
680
|
-
const [runtime] = (0,
|
|
555
|
+
const [runtime] = (0, import_react10.useState)(
|
|
681
556
|
() => new VercelUseAssistantRuntime(assistantHelpers)
|
|
682
557
|
);
|
|
683
|
-
(0,
|
|
558
|
+
(0, import_react10.useInsertionEffect)(() => {
|
|
684
559
|
runtime.vercel = assistantHelpers;
|
|
685
560
|
});
|
|
686
|
-
(0,
|
|
561
|
+
(0, import_react10.useEffect)(() => {
|
|
687
562
|
runtime.onVercelUpdated();
|
|
688
563
|
});
|
|
689
564
|
return runtime;
|