@assistant-ui/react 0.10.43 → 0.10.45
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/model-context/frame/AssistantFrameHost.d.ts +37 -0
- package/dist/model-context/frame/AssistantFrameHost.d.ts.map +1 -0
- package/dist/model-context/frame/AssistantFrameHost.js +151 -0
- package/dist/model-context/frame/AssistantFrameHost.js.map +1 -0
- package/dist/model-context/frame/AssistantFrameProvider.d.ts +41 -0
- package/dist/model-context/frame/AssistantFrameProvider.d.ts.map +1 -0
- package/dist/model-context/frame/AssistantFrameProvider.js +142 -0
- package/dist/model-context/frame/AssistantFrameProvider.js.map +1 -0
- package/dist/model-context/frame/AssistantFrameTypes.d.ts +29 -0
- package/dist/model-context/frame/AssistantFrameTypes.d.ts.map +1 -0
- package/dist/model-context/frame/AssistantFrameTypes.js +6 -0
- package/dist/model-context/frame/AssistantFrameTypes.js.map +1 -0
- package/dist/model-context/frame/index.d.ts +5 -0
- package/dist/model-context/frame/index.d.ts.map +1 -0
- package/dist/model-context/frame/index.js +6 -0
- package/dist/model-context/frame/index.js.map +1 -0
- package/dist/model-context/frame/useAssistantFrameHost.d.ts +28 -0
- package/dist/model-context/frame/useAssistantFrameHost.d.ts.map +1 -0
- package/dist/model-context/frame/useAssistantFrameHost.js +25 -0
- package/dist/model-context/frame/useAssistantFrameHost.js.map +1 -0
- package/dist/model-context/index.d.ts +2 -0
- package/dist/model-context/index.d.ts.map +1 -1
- package/dist/model-context/index.js +2 -0
- package/dist/model-context/index.js.map +1 -1
- package/dist/model-context/registry/ModelContextRegistry.d.ts +19 -0
- package/dist/model-context/registry/ModelContextRegistry.d.ts.map +1 -0
- package/dist/model-context/registry/ModelContextRegistry.js +117 -0
- package/dist/model-context/registry/ModelContextRegistry.js.map +1 -0
- package/dist/model-context/registry/ModelContextRegistryHandles.d.ts +14 -0
- package/dist/model-context/registry/ModelContextRegistryHandles.d.ts.map +1 -0
- package/dist/model-context/registry/ModelContextRegistryHandles.js +1 -0
- package/dist/model-context/registry/ModelContextRegistryHandles.js.map +1 -0
- package/dist/model-context/registry/index.d.ts +3 -0
- package/dist/model-context/registry/index.d.ts.map +1 -0
- package/dist/model-context/registry/index.js +4 -0
- package/dist/model-context/registry/index.js.map +1 -0
- package/dist/model-context/useAssistantInstructions.d.ts +1 -2
- package/dist/model-context/useAssistantInstructions.d.ts.map +1 -1
- package/dist/model-context/useAssistantInstructions.js.map +1 -1
- package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/composer/BaseComposerRuntimeCore.js +5 -4
- package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts +4 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +25 -10
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
- package/dist/types/MessagePartTypes.d.ts +2 -0
- package/dist/types/MessagePartTypes.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/model-context/frame/AssistantFrame.test.ts +353 -0
- package/src/model-context/frame/AssistantFrameHost.ts +218 -0
- package/src/model-context/frame/AssistantFrameProvider.ts +225 -0
- package/src/model-context/frame/AssistantFrameTypes.ts +40 -0
- package/src/model-context/frame/SPEC_AssistantFrame.md +104 -0
- package/src/model-context/frame/index.ts +4 -0
- package/src/model-context/frame/useAssistantFrameHost.ts +48 -0
- package/src/model-context/index.ts +3 -0
- package/src/model-context/registry/ModelContextRegistry.ts +165 -0
- package/src/model-context/registry/ModelContextRegistryHandles.ts +19 -0
- package/src/model-context/registry/SPEC_ModelContextRegistry.md +40 -0
- package/src/model-context/registry/index.ts +2 -0
- package/src/model-context/useAssistantInstructions.tsx +1 -1
- package/src/runtimes/composer/BaseComposerRuntimeCore.tsx +5 -4
- package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +29 -11
- package/src/types/MessagePartTypes.ts +2 -0
@@ -12,7 +12,7 @@ import {
|
|
12
12
|
} from "./getExternalStoreMessage";
|
13
13
|
import { ThreadMessageConverter } from "./ThreadMessageConverter";
|
14
14
|
import { getAutoStatus, isAutoStatus } from "./auto-status";
|
15
|
-
import { fromThreadMessageLike } from "./ThreadMessageLike";
|
15
|
+
import { fromThreadMessageLike, ThreadMessageLike } from "./ThreadMessageLike";
|
16
16
|
import { getThreadMessageText } from "../../utils/getThreadMessageText";
|
17
17
|
import {
|
18
18
|
RuntimeCapabilities,
|
@@ -20,6 +20,10 @@ import {
|
|
20
20
|
} from "../core/ThreadRuntimeCore";
|
21
21
|
import { BaseThreadRuntimeCore } from "../core/BaseThreadRuntimeCore";
|
22
22
|
import { ModelContextProvider } from "../../model-context";
|
23
|
+
import {
|
24
|
+
ExportedMessageRepository,
|
25
|
+
MessageRepository,
|
26
|
+
} from "../utils/MessageRepository";
|
23
27
|
|
24
28
|
const EMPTY_ARRAY = Object.freeze([]);
|
25
29
|
|
@@ -34,7 +38,8 @@ export class ExternalStoreThreadRuntimeCore
|
|
34
38
|
extends BaseThreadRuntimeCore
|
35
39
|
implements ThreadRuntimeCore
|
36
40
|
{
|
37
|
-
private
|
41
|
+
private _resetScheduled = false;
|
42
|
+
private _assistantOptimisticId: string | null = null;
|
38
43
|
|
39
44
|
private _capabilities: RuntimeCapabilities = {
|
40
45
|
switchToBranch: false,
|
@@ -123,7 +128,7 @@ export class ExternalStoreThreadRuntimeCore
|
|
123
128
|
|
124
129
|
// Clear and import the message repository
|
125
130
|
this.repository.clear();
|
126
|
-
this.
|
131
|
+
this._assistantOptimisticId = null;
|
127
132
|
this.repository.import(store.messageRepository);
|
128
133
|
|
129
134
|
messages = this.repository.getMessages();
|
@@ -170,6 +175,12 @@ export class ExternalStoreThreadRuntimeCore
|
|
170
175
|
return newMessage;
|
171
176
|
});
|
172
177
|
|
178
|
+
// special case: branches should be reset if an empty array is provided
|
179
|
+
if (this._resetScheduled || messages.length === 0) {
|
180
|
+
this._resetScheduled = false;
|
181
|
+
this.repository.clear();
|
182
|
+
}
|
183
|
+
|
173
184
|
for (let i = 0; i < messages.length; i++) {
|
174
185
|
const message = messages[i]!;
|
175
186
|
const parent = messages[i - 1];
|
@@ -192,13 +203,13 @@ export class ExternalStoreThreadRuntimeCore
|
|
192
203
|
}
|
193
204
|
}
|
194
205
|
|
195
|
-
if (this.
|
196
|
-
this.repository.deleteMessage(this.
|
197
|
-
this.
|
206
|
+
if (this._assistantOptimisticId) {
|
207
|
+
this.repository.deleteMessage(this._assistantOptimisticId);
|
208
|
+
this._assistantOptimisticId = null;
|
198
209
|
}
|
199
210
|
|
200
211
|
if (hasUpcomingMessage(isRunning, messages)) {
|
201
|
-
this.
|
212
|
+
this._assistantOptimisticId = this.repository.appendOptimisticMessage(
|
202
213
|
messages.at(-1)?.id ?? null,
|
203
214
|
{
|
204
215
|
role: "assistant",
|
@@ -208,7 +219,7 @@ export class ExternalStoreThreadRuntimeCore
|
|
208
219
|
}
|
209
220
|
|
210
221
|
this.repository.resetHead(
|
211
|
-
this.
|
222
|
+
this._assistantOptimisticId ?? messages.at(-1)?.id ?? null,
|
212
223
|
);
|
213
224
|
|
214
225
|
this._messages = this.repository.getMessages();
|
@@ -250,9 +261,9 @@ export class ExternalStoreThreadRuntimeCore
|
|
250
261
|
|
251
262
|
this._store.onCancel();
|
252
263
|
|
253
|
-
if (this.
|
254
|
-
this.repository.deleteMessage(this.
|
255
|
-
this.
|
264
|
+
if (this._assistantOptimisticId) {
|
265
|
+
this.repository.deleteMessage(this._assistantOptimisticId);
|
266
|
+
this._assistantOptimisticId = null;
|
256
267
|
}
|
257
268
|
|
258
269
|
let messages = this.repository.getMessages();
|
@@ -283,6 +294,13 @@ export class ExternalStoreThreadRuntimeCore
|
|
283
294
|
this._store.onAddToolResult?.(options);
|
284
295
|
}
|
285
296
|
|
297
|
+
public override reset(initialMessages?: readonly ThreadMessageLike[]) {
|
298
|
+
const repo = new MessageRepository();
|
299
|
+
repo.import(ExportedMessageRepository.fromArray(initialMessages ?? []));
|
300
|
+
this._resetScheduled = true;
|
301
|
+
this.updateMessages(repo.getMessages());
|
302
|
+
}
|
303
|
+
|
286
304
|
private updateMessages = (messages: readonly ThreadMessage[]) => {
|
287
305
|
const hasConverter = this._store.convertMessage !== undefined;
|
288
306
|
if (hasConverter) {
|
@@ -24,10 +24,12 @@ export type SourceMessagePart = {
|
|
24
24
|
export type ImageMessagePart = {
|
25
25
|
readonly type: "image";
|
26
26
|
readonly image: string;
|
27
|
+
readonly filename?: string;
|
27
28
|
};
|
28
29
|
|
29
30
|
export type FileMessagePart = {
|
30
31
|
readonly type: "file";
|
32
|
+
readonly filename?: string;
|
31
33
|
readonly data: string;
|
32
34
|
readonly mimeType: string;
|
33
35
|
};
|