@assistant-ui/react 0.12.3 → 0.12.6

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.
Files changed (66) hide show
  1. package/dist/client/ExternalThread.d.ts +16 -0
  2. package/dist/client/ExternalThread.d.ts.map +1 -0
  3. package/dist/client/ExternalThread.js +329 -0
  4. package/dist/client/ExternalThread.js.map +1 -0
  5. package/dist/client/InMemoryThreadList.d.ts +9 -0
  6. package/dist/client/InMemoryThreadList.d.ts.map +1 -0
  7. package/dist/client/InMemoryThreadList.js +129 -0
  8. package/dist/client/InMemoryThreadList.js.map +1 -0
  9. package/dist/client/index.d.ts +6 -0
  10. package/dist/client/index.d.ts.map +1 -0
  11. package/dist/client/index.js +6 -0
  12. package/dist/client/index.js.map +1 -0
  13. package/dist/devtools/index.d.ts +1 -1
  14. package/dist/devtools/index.d.ts.map +1 -1
  15. package/dist/devtools/index.js +1 -1
  16. package/dist/devtools/index.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -1
  22. package/dist/legacy-runtime/AssistantRuntimeProvider.js +8 -1
  23. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
  24. package/dist/legacy-runtime/runtime/ThreadRuntime.d.ts +19 -0
  25. package/dist/legacy-runtime/runtime/ThreadRuntime.d.ts.map +1 -1
  26. package/dist/legacy-runtime/runtime/ThreadRuntime.js +8 -0
  27. package/dist/legacy-runtime/runtime/ThreadRuntime.js.map +1 -1
  28. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts +2 -0
  29. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts.map +1 -1
  30. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.js.map +1 -1
  31. package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts +17 -0
  32. package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts.map +1 -1
  33. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts +1 -0
  34. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts.map +1 -1
  35. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts +2 -0
  36. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
  37. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js +10 -2
  38. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  39. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts +2 -0
  40. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  41. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js +6 -0
  42. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js.map +1 -1
  43. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -1
  44. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.js +6 -0
  45. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -1
  46. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts +4 -0
  47. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  48. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +4 -0
  49. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  50. package/dist/primitives/message/MessagePartsGrouped.js +1 -1
  51. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  52. package/package.json +8 -8
  53. package/src/client/ExternalThread.ts +491 -0
  54. package/src/client/InMemoryThreadList.ts +197 -0
  55. package/src/client/index.ts +12 -0
  56. package/src/devtools/index.ts +1 -1
  57. package/src/index.ts +1 -0
  58. package/src/legacy-runtime/AssistantRuntimeProvider.tsx +11 -1
  59. package/src/legacy-runtime/runtime/ThreadRuntime.ts +27 -0
  60. package/src/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.tsx +2 -0
  61. package/src/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.tsx +20 -0
  62. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.tsx +1 -0
  63. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.tsx +13 -2
  64. package/src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.tsx +8 -0
  65. package/src/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.tsx +8 -0
  66. package/src/primitives/message/MessagePartsGrouped.tsx +1 -1
@@ -0,0 +1,16 @@
1
+ import { type ClientOutput } from "@assistant-ui/store";
2
+ import type { ThreadMessage } from "../types/index.js";
3
+ export type ExternalThreadMessage = ThreadMessage & {
4
+ id: string;
5
+ };
6
+ export type ExternalThreadProps = {
7
+ messages: readonly ExternalThreadMessage[];
8
+ isRunning?: boolean;
9
+ onNew?: (message: any) => void;
10
+ onEdit?: (message: any) => void;
11
+ onReload?: (parentId: string | null) => void;
12
+ onStartRun?: () => void;
13
+ onCancel?: () => void;
14
+ };
15
+ export declare const ExternalThread: (props: ExternalThreadProps) => import("@assistant-ui/tap").ResourceElement<ClientOutput<"thread">, ExternalThreadProps>;
16
+ //# sourceMappingURL=ExternalThread.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalThread.d.ts","sourceRoot":"","sources":["../../src/client/ExternalThread.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,YAAY,EAKlB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,KAAK,EAAE,aAAa,EAAE,0BAAiB;AAE9C,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG;IAClD,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AA2UF,eAAO,MAAM,cAAc,0HA+G1B,CAAC"}
@@ -0,0 +1,329 @@
1
+ import { resource, tapState, tapMemo, tapEffect, tapEffectEvent, } from "@assistant-ui/tap";
2
+ import { tapClientLookup, attachDefaultPeers, tapClientResource, Derived, } from "@assistant-ui/store";
3
+ import { withKey } from "@assistant-ui/tap";
4
+ import { ModelContext } from "./ModelContextClient.js";
5
+ import { Tools } from "./Tools.js";
6
+ import { Suggestions } from "./Suggestions.js";
7
+ // Message Client - minimal implementation
8
+ const MessageClient = resource(({ message, index, onEdit, onReload, }) => {
9
+ const [isCopied, setIsCopied] = tapState(false);
10
+ const [isHovering, setIsHovering] = tapState(false);
11
+ const [isEditing, setIsEditing] = tapState(false);
12
+ const partClients = tapClientLookup(() => message.content.map((part, idx) => withKey(idx, PartResource({ part }))), [message.content]);
13
+ const attachmentClients = tapClientLookup(() => (message.attachments ?? []).map((attachment) => withKey(attachment.id, AttachmentResource({
14
+ attachment,
15
+ onRemove: () => { },
16
+ }))), [message.attachments]);
17
+ const handleBeginEdit = () => {
18
+ setIsEditing(true);
19
+ };
20
+ const handleCancelEdit = () => {
21
+ setIsEditing(false);
22
+ };
23
+ const handleSendEdit = (msg) => {
24
+ onEdit?.({
25
+ ...msg,
26
+ parentId: message.id,
27
+ sourceId: message.id,
28
+ });
29
+ setIsEditing(false);
30
+ };
31
+ const composerClient = tapClientResource(ComposerClientResource({
32
+ type: "edit",
33
+ isEditing,
34
+ canCancel: true,
35
+ onCancel: handleCancelEdit,
36
+ onBeginEdit: handleBeginEdit,
37
+ onSend: handleSendEdit,
38
+ message,
39
+ }));
40
+ const state = tapMemo(() => {
41
+ return {
42
+ ...message,
43
+ attachments: message.attachments ?? [],
44
+ parentId: null,
45
+ isLast: false, // Will be set by thread
46
+ branchNumber: 1,
47
+ branchCount: 1,
48
+ speech: undefined,
49
+ submittedFeedback: undefined,
50
+ parts: partClients.state,
51
+ isCopied,
52
+ isHovering,
53
+ index,
54
+ composer: composerClient.state,
55
+ };
56
+ }, [
57
+ message,
58
+ isCopied,
59
+ isHovering,
60
+ index,
61
+ composerClient.state,
62
+ partClients.state,
63
+ ]);
64
+ return {
65
+ state,
66
+ methods: {
67
+ getState: () => state,
68
+ composer: composerClient.methods,
69
+ reload: () => {
70
+ onReload?.();
71
+ },
72
+ speak: () => { },
73
+ stopSpeaking: () => { },
74
+ submitFeedback: () => { },
75
+ switchToBranch: () => { },
76
+ getCopyText: () => message.content.map((c) => ("text" in c ? c.text : "")).join(""),
77
+ part: (selector) => {
78
+ if ("index" in selector) {
79
+ return partClients.get(selector);
80
+ }
81
+ const partIndex = state.parts.findIndex((p) => p.type === "tool-call" && p.toolCallId === selector.toolCallId);
82
+ return partClients.get({ index: partIndex });
83
+ },
84
+ attachment: (selector) => {
85
+ if ("id" in selector) {
86
+ return attachmentClients.get({ key: selector.id });
87
+ }
88
+ return attachmentClients.get(selector);
89
+ },
90
+ setIsCopied,
91
+ setIsHovering,
92
+ },
93
+ };
94
+ });
95
+ // Part Client - minimal implementation
96
+ const PartResource = resource(({ part }) => {
97
+ const state = tapMemo(() => ({
98
+ ...part,
99
+ status: { type: "complete" },
100
+ }), [part]);
101
+ return {
102
+ state,
103
+ methods: {
104
+ getState: () => state,
105
+ addToolResult: () => { },
106
+ resumeToolCall: () => { },
107
+ },
108
+ };
109
+ });
110
+ // Attachment Client - minimal implementation
111
+ const AttachmentResource = resource(({ attachment, onRemove, }) => {
112
+ return {
113
+ state: attachment,
114
+ methods: {
115
+ getState: () => attachment,
116
+ remove: async () => {
117
+ onRemove?.();
118
+ },
119
+ },
120
+ };
121
+ });
122
+ // Composer Client - minimal implementation
123
+ const ComposerClientResource = resource(({ type, isEditing, canCancel, onCancel, onBeginEdit, onSend, message, }) => {
124
+ const [text, setText] = tapState("");
125
+ const [role, setRole] = tapState("user");
126
+ const [runConfig, setRunConfig] = tapState({});
127
+ const [attachments, setAttachments] = tapState([]);
128
+ // Update composer values when editing begins
129
+ const updateFromMessage = tapEffectEvent(() => {
130
+ if (message) {
131
+ // Extract text from message content (text parts only)
132
+ const textParts = message.content.filter((part) => part.type === "text");
133
+ const messageText = textParts
134
+ .map((part) => ("text" in part ? part.text : ""))
135
+ .join("\n\n");
136
+ setText(messageText);
137
+ setRole(message.role);
138
+ setAttachments(message.attachments ?? []);
139
+ }
140
+ });
141
+ tapEffect(() => {
142
+ if (isEditing) {
143
+ updateFromMessage();
144
+ }
145
+ }, [isEditing]);
146
+ const attachmentClients = tapClientLookup(() => attachments.map((attachment, idx) => withKey(attachment.id, AttachmentResource({
147
+ attachment,
148
+ onRemove: () => {
149
+ setAttachments(attachments.filter((_, i) => i !== idx));
150
+ },
151
+ }))), [attachments]);
152
+ const state = tapMemo(() => ({
153
+ text,
154
+ role,
155
+ attachments: attachmentClients.state,
156
+ runConfig,
157
+ isEditing,
158
+ canCancel,
159
+ attachmentAccept: "*",
160
+ isEmpty: !text.trim() && !attachments.length,
161
+ type,
162
+ dictation: undefined,
163
+ }), [
164
+ text,
165
+ role,
166
+ attachmentClients.state,
167
+ runConfig,
168
+ isEditing,
169
+ canCancel,
170
+ type,
171
+ attachments.length,
172
+ ]);
173
+ return {
174
+ state,
175
+ methods: {
176
+ getState: () => state,
177
+ setText,
178
+ setRole,
179
+ setRunConfig,
180
+ addAttachment: async (file) => {
181
+ const newAttachment = {
182
+ id: Math.random().toString(36).substring(7),
183
+ type: "file",
184
+ name: file.name,
185
+ contentType: file.type,
186
+ file,
187
+ status: { type: "complete" },
188
+ content: [],
189
+ };
190
+ setAttachments([...attachments, newAttachment]);
191
+ },
192
+ clearAttachments: async () => {
193
+ setAttachments([]);
194
+ },
195
+ attachment: (selector) => {
196
+ if ("id" in selector) {
197
+ return attachmentClients.get({ key: selector.id });
198
+ }
199
+ return attachmentClients.get(selector);
200
+ },
201
+ reset: async () => {
202
+ setText("");
203
+ setRole("user");
204
+ setRunConfig({});
205
+ setAttachments([]);
206
+ },
207
+ send: () => {
208
+ const message = {
209
+ role,
210
+ content: text ? [{ type: "text", text }] : [],
211
+ attachments: attachments,
212
+ createdAt: new Date(),
213
+ runConfig,
214
+ };
215
+ onSend?.(message);
216
+ setText("");
217
+ setAttachments([]);
218
+ },
219
+ cancel: onCancel,
220
+ beginEdit: () => {
221
+ onBeginEdit?.();
222
+ },
223
+ startDictation: () => { },
224
+ stopDictation: () => { },
225
+ },
226
+ };
227
+ });
228
+ // External Thread Client
229
+ export const ExternalThread = resource(({ messages, isRunning = false, onNew, onEdit, onReload, onStartRun, onCancel, }) => {
230
+ const handleReload = (messageId) => {
231
+ const messageIndex = messages.findIndex((m) => m.id === messageId);
232
+ if (messageIndex === -1)
233
+ return;
234
+ const parentId = messageIndex > 0 ? messages[messageIndex - 1].id : null;
235
+ onReload?.(parentId);
236
+ };
237
+ const messageClients = tapClientLookup(() => messages.map((msg, index) => {
238
+ const props = {
239
+ message: msg,
240
+ index,
241
+ onReload: () => handleReload(msg.id),
242
+ };
243
+ if (onEdit)
244
+ props.onEdit = onEdit;
245
+ return withKey(msg.id, MessageClient(props));
246
+ }), [messages, onEdit]);
247
+ const handleCancelRun = () => {
248
+ onCancel?.();
249
+ };
250
+ const handleSendNew = (message) => {
251
+ onNew?.(message);
252
+ };
253
+ const composerClient = tapClientResource(ComposerClientResource({
254
+ type: "thread",
255
+ isEditing: true,
256
+ canCancel: isRunning,
257
+ onCancel: handleCancelRun,
258
+ onSend: handleSendNew,
259
+ }));
260
+ const state = tapMemo(() => {
261
+ const messageStates = messageClients.state.map((s, idx, arr) => ({
262
+ ...s,
263
+ isLast: idx === arr.length - 1,
264
+ }));
265
+ return {
266
+ isEmpty: messages.length === 0,
267
+ isDisabled: false,
268
+ isLoading: false,
269
+ isRunning,
270
+ capabilities: {
271
+ edit: false,
272
+ reload: false,
273
+ cancel: isRunning,
274
+ speech: false,
275
+ attachments: false,
276
+ feedback: false,
277
+ switchToBranch: false,
278
+ switchBranchDuringRun: false,
279
+ unstable_copy: false,
280
+ dictation: false,
281
+ },
282
+ messages: messageStates,
283
+ state: {},
284
+ suggestions: [],
285
+ extras: undefined,
286
+ speech: undefined,
287
+ composer: composerClient.state,
288
+ };
289
+ }, [messages, isRunning, messageClients.state, composerClient.state]);
290
+ return {
291
+ state,
292
+ methods: {
293
+ getState: () => state,
294
+ composer: composerClient.methods,
295
+ append: (message) => {
296
+ onNew?.(message);
297
+ },
298
+ startRun: () => {
299
+ onStartRun?.();
300
+ },
301
+ unstable_resumeRun: () => { },
302
+ cancelRun: handleCancelRun,
303
+ getModelContext: () => ({ tools: {}, config: {} }),
304
+ export: () => ({ messages: [] }),
305
+ import: () => { },
306
+ reset: () => { },
307
+ message: (selector) => {
308
+ if ("id" in selector) {
309
+ return messageClients.get({ key: selector.id });
310
+ }
311
+ return messageClients.get(selector);
312
+ },
313
+ stopSpeaking: () => { },
314
+ startVoice: async () => { },
315
+ stopVoice: async () => { },
316
+ },
317
+ };
318
+ });
319
+ attachDefaultPeers(ExternalThread, {
320
+ modelContext: ModelContext(),
321
+ tools: Tools({}),
322
+ suggestions: Suggestions(),
323
+ composer: Derived({
324
+ source: "thread",
325
+ query: {},
326
+ get: (aui) => aui.thread().composer,
327
+ }),
328
+ });
329
+ //# sourceMappingURL=ExternalThread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalThread.js","sourceRoot":"","sources":["../../src/client/ExternalThread.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type ClientOutput } from "@assistant-ui/store";
2
+ import type { ResourceElement } from "@assistant-ui/tap";
3
+ export type InMemoryThreadListProps = {
4
+ thread: (threadId: string) => ResourceElement<ClientOutput<"thread">>;
5
+ onSwitchToThread?: (threadId: string) => void;
6
+ onSwitchToNewThread?: () => void;
7
+ };
8
+ export declare const InMemoryThreadList: (props: InMemoryThreadListProps) => ResourceElement<ClientOutput<"threads">, InMemoryThreadListProps>;
9
+ //# sourceMappingURL=InMemoryThreadList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InMemoryThreadList.d.ts","sourceRoot":"","sources":["../../src/client/InMemoryThreadList.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EAKlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC,CAAC;AA+CF,eAAO,MAAM,kBAAkB,uGA6G9B,CAAC"}
@@ -0,0 +1,129 @@
1
+ import { resource, tapState, tapMemo } from "@assistant-ui/tap";
2
+ import { tapClientLookup, Derived, attachDefaultPeers, tapClientResource, } from "@assistant-ui/store";
3
+ import { withKey } from "@assistant-ui/tap";
4
+ import { Suggestions } from "./Suggestions.js";
5
+ import { ModelContext } from "./ModelContextClient.js";
6
+ import { Tools } from "./Tools.js";
7
+ // ThreadListItem Client
8
+ const ThreadListItemClient = resource((props) => {
9
+ const { data, onSwitchTo, onArchive, onUnarchive, onDelete } = props;
10
+ const state = tapMemo(() => ({
11
+ id: data.id,
12
+ remoteId: undefined,
13
+ externalId: undefined,
14
+ title: data.title,
15
+ status: data.status,
16
+ }), [data.id, data.title, data.status]);
17
+ return {
18
+ state,
19
+ methods: {
20
+ getState: () => state,
21
+ switchTo: onSwitchTo,
22
+ rename: () => { },
23
+ archive: onArchive,
24
+ unarchive: onUnarchive,
25
+ delete: onDelete,
26
+ generateTitle: () => { },
27
+ initialize: async () => ({ remoteId: data.id, externalId: undefined }),
28
+ detach: () => { },
29
+ },
30
+ };
31
+ });
32
+ // InMemoryThreadList Client
33
+ export const InMemoryThreadList = resource((props) => {
34
+ const { thread: threadFactory, onSwitchToThread, onSwitchToNewThread, } = props;
35
+ const [mainThreadId, setMainThreadId] = tapState("main");
36
+ const [threads, setThreads] = tapState(() => [
37
+ { id: "main", title: "Main Thread", status: "regular" },
38
+ ]);
39
+ const handleSwitchToThread = (threadId) => {
40
+ setMainThreadId(threadId);
41
+ onSwitchToThread?.(threadId);
42
+ };
43
+ const handleArchive = (threadId) => {
44
+ setThreads((prev) => prev.map((t) => t.id === threadId ? { ...t, status: "archived" } : t));
45
+ };
46
+ const handleUnarchive = (threadId) => {
47
+ setThreads((prev) => prev.map((t) => t.id === threadId ? { ...t, status: "regular" } : t));
48
+ };
49
+ const handleDelete = (threadId) => {
50
+ setThreads((prev) => prev.filter((t) => t.id !== threadId));
51
+ if (mainThreadId === threadId) {
52
+ const remaining = threads.filter((t) => t.id !== threadId);
53
+ setMainThreadId(remaining[0]?.id || "main");
54
+ }
55
+ };
56
+ const handleSwitchToNewThread = () => {
57
+ const newId = `thread-${Date.now()}`;
58
+ setThreads((prev) => [
59
+ ...prev,
60
+ { id: newId, title: "New Thread", status: "regular" },
61
+ ]);
62
+ setMainThreadId(newId);
63
+ onSwitchToNewThread?.();
64
+ };
65
+ const threadListItems = tapClientLookup(() => threads.map((t) => withKey(t.id, ThreadListItemClient({
66
+ data: t,
67
+ onSwitchTo: () => handleSwitchToThread(t.id),
68
+ onArchive: () => handleArchive(t.id),
69
+ onUnarchive: () => handleUnarchive(t.id),
70
+ onDelete: () => handleDelete(t.id),
71
+ }))), [threads]);
72
+ // Create the main thread
73
+ const mainThreadClient = tapClientResource(threadFactory(mainThreadId));
74
+ const state = tapMemo(() => {
75
+ const regularThreads = threads.filter((t) => t.status === "regular");
76
+ const archivedThreads = threads.filter((t) => t.status === "archived");
77
+ const mainThreadState = mainThreadClient.state;
78
+ return {
79
+ mainThreadId,
80
+ newThreadId: null,
81
+ isLoading: false,
82
+ threadIds: regularThreads.map((t) => t.id),
83
+ archivedThreadIds: archivedThreads.map((t) => t.id),
84
+ threadItems: threadListItems.state,
85
+ main: mainThreadState,
86
+ };
87
+ }, [mainThreadId, threads, threadListItems.state, mainThreadClient.state]);
88
+ return {
89
+ state,
90
+ methods: {
91
+ getState: () => state,
92
+ switchToThread: handleSwitchToThread,
93
+ switchToNewThread: handleSwitchToNewThread,
94
+ item: (selector) => {
95
+ if (selector === "main") {
96
+ const index = threads.findIndex((t) => t.id === mainThreadId);
97
+ return threadListItems.get({ index: index === -1 ? 0 : index });
98
+ }
99
+ if ("id" in selector) {
100
+ const index = threads.findIndex((t) => t.id === selector.id);
101
+ return threadListItems.get({ index });
102
+ }
103
+ return threadListItems.get(selector);
104
+ },
105
+ thread: () => mainThreadClient.methods,
106
+ },
107
+ };
108
+ });
109
+ attachDefaultPeers(InMemoryThreadList, {
110
+ thread: Derived({
111
+ source: "threads",
112
+ query: { type: "main" },
113
+ get: (aui) => aui.threads().thread("main"),
114
+ }),
115
+ threadListItem: Derived({
116
+ source: "threads",
117
+ query: { type: "main" },
118
+ get: (aui) => aui.threads().item("main"),
119
+ }),
120
+ composer: Derived({
121
+ source: "thread",
122
+ query: {},
123
+ get: (aui) => aui.threads().thread("main").composer,
124
+ }),
125
+ modelContext: ModelContext(),
126
+ tools: Tools({}),
127
+ suggestions: Suggestions(),
128
+ });
129
+ //# sourceMappingURL=InMemoryThreadList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InMemoryThreadList.js","sourceRoot":"","sources":["../../src/client/InMemoryThreadList.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { ModelContext as ModelContextClient } from "./ModelContextClient.js";
2
+ export { Tools } from "./Tools.js";
3
+ export { Suggestions, type SuggestionConfig } from "./Suggestions.js";
4
+ export { ExternalThread, type ExternalThreadProps, type ExternalThreadMessage, } from "./ExternalThread.js";
5
+ export { InMemoryThreadList, type InMemoryThreadListProps, } from "./InMemoryThreadList.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,gCAA6B;AAC1E,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,yBAAsB;AACnE,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,4BAAyB;AAC1B,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,gCAA6B"}
@@ -0,0 +1,6 @@
1
+ export { ModelContext as ModelContextClient } from "./ModelContextClient.js";
2
+ export { Tools } from "./Tools.js";
3
+ export { Suggestions } from "./Suggestions.js";
4
+ export { ExternalThread, } from "./ExternalThread.js";
5
+ export { InMemoryThreadList, } from "./InMemoryThreadList.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,gCAA6B;AAC1E,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,WAAW,EAAyB,yBAAsB;AACnE,OAAO,EACL,cAAc,GAGf,4BAAyB;AAC1B,OAAO,EACL,kBAAkB,GAEnB,gCAA6B"}
@@ -1,2 +1,2 @@
1
- export { DevToolsHooks } from "./DevToolsHooks.js";
1
+ export { DevToolsHooks, DevToolsProviderApi } from "./DevToolsHooks.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,2BAAwB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,2BAAwB"}
@@ -1,2 +1,2 @@
1
- export { DevToolsHooks } from "./DevToolsHooks.js";
1
+ export { DevToolsHooks, DevToolsProviderApi } from "./DevToolsHooks.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,2BAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,2BAAwB"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export * from "./model-context/index.js";
8
8
  export * from "./primitives/index.js";
9
9
  export * from "./types/index.js";
10
10
  export * from "./devtools/index.js";
11
+ export * from "./client/index.js";
11
12
  export * as INTERNAL from "./internal.js";
12
13
  export type { ToolExecutionStatus } from "./internal.js";
13
14
  export type { Assistant } from "./augmentations.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uCAAoC;AAGpC,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,kDAAyC;AACzC,gDAAuC;AACvC,wDAA+C;AAE/C,mCAA0B;AAC1B,yCAAgC;AAChC,sCAA6B;AAC7B,iCAAwB;AACxB,oCAA2B;AAE3B,OAAO,KAAK,QAAQ,sBAAmB;AACvC,YAAY,EAAE,mBAAmB,EAAE,sBAAmB;AAEtD,YAAY,EAAE,SAAS,EAAE,2BAAwB;AAMjD;;GAEG;AACH,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;GAEG;AACH,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEvE;;GAEG;AACH,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEvE;;GAEG;AACH,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uCAAoC;AAGpC,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,kDAAyC;AACzC,gDAAuC;AACvC,wDAA+C;AAE/C,mCAA0B;AAC1B,yCAAgC;AAChC,sCAA6B;AAC7B,iCAAwB;AACxB,oCAA2B;AAC3B,kCAAyB;AAEzB,OAAO,KAAK,QAAQ,sBAAmB;AACvC,YAAY,EAAE,mBAAmB,EAAE,sBAAmB;AAEtD,YAAY,EAAE,SAAS,EAAE,2BAAwB;AAMjD;;GAEG;AACH,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;GAEG;AACH,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEvE;;GAEG;AACH,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEvE;;GAEG;AACH,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ export * from "./model-context/index.js";
9
9
  export * from "./primitives/index.js";
10
10
  export * from "./types/index.js";
11
11
  export * from "./devtools/index.js";
12
+ export * from "./client/index.js";
12
13
  export * as INTERNAL from "./internal.js";
13
14
  // ============================================================================
14
15
  // Backwards compatibility - deprecated exports
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uCAAoC;AAEpC,qCAAqC;AACrC,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,GAQN,MAAM,qBAAqB,CAAC;AAE7B,kDAAyC;AACzC,gDAAuC;AACvC,wDAA+C;AAE/C,mCAA0B;AAC1B,yCAAgC;AAChC,sCAA6B;AAC7B,iCAAwB;AACxB,oCAA2B;AAE3B,OAAO,KAAK,QAAQ,sBAAmB;AAKvC,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAE/E;;GAEG;AACH,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;GAEG;AACH,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEvE;;GAEG;AACH,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEvE;;GAEG;AACH,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uCAAoC;AAEpC,qCAAqC;AACrC,OAAO,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,GAQN,MAAM,qBAAqB,CAAC;AAE7B,kDAAyC;AACzC,gDAAuC;AACvC,wDAA+C;AAE/C,mCAA0B;AAC1B,yCAAgC;AAChC,sCAA6B;AAC7B,iCAAwB;AACxB,oCAA2B;AAC3B,kCAAyB;AAEzB,OAAO,KAAK,QAAQ,sBAAmB;AAKvC,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAE/E;;GAEG;AACH,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;GAEG;AACH,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEvE;;GAEG;AACH,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEvE;;GAEG;AACH,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantRuntimeProvider.d.ts","sourceRoot":"","sources":["../../src/legacy-runtime/AssistantRuntimeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,iBAAiB,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAuB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,sCAAmC;AAK9D,yBAAiB,wBAAwB,CAAC;IACxC,KAAY,KAAK,GAAG,iBAAiB,CAAC;QACpC;;WAEG;QACH,OAAO,EAAE,gBAAgB,CAAC;QAE1B;;WAEG;QACH,GAAG,CAAC,EAAE,eAAe,CAAC;KACvB,CAAC,CAAC;CACJ;AAMD,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAC3C,wBAAwB,CAAC,KAAK,CAiB/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,sEAAqC,CAAC"}
1
+ {"version":3,"file":"AssistantRuntimeProvider.d.ts","sourceRoot":"","sources":["../../src/legacy-runtime/AssistantRuntimeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,iBAAiB,EAAa,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAuB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,sCAAmC;AAM9D,yBAAiB,wBAAwB,CAAC;IACxC,KAAY,KAAK,GAAG,iBAAiB,CAAC;QACpC;;WAEG;QACH,OAAO,EAAE,gBAAgB,CAAC;QAE1B;;WAEG;QACH,GAAG,CAAC,EAAE,eAAe,CAAC;KACvB,CAAC,CAAC;CACJ;AAMD,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAC3C,wBAAwB,CAAC,KAAK,CA0B/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,sEAAqC,CAAC"}
@@ -1,14 +1,21 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { memo } from "react";
3
+ import { memo, useEffect } from "react";
4
4
  import { useAui, AuiProvider } from "@assistant-ui/store";
5
5
  import { RuntimeAdapter } from "./RuntimeAdapter.js";
6
6
  import { ThreadPrimitiveViewportProvider } from "../context/providers/ThreadViewportProvider.js";
7
+ import { DevToolsProviderApi } from "../devtools/index.js";
7
8
  const getRenderComponent = (runtime) => {
8
9
  return runtime._core?.RenderComponent;
9
10
  };
10
11
  export const AssistantRuntimeProviderImpl = ({ children, aui: parent = null, runtime }) => {
11
12
  const aui = useAui({ threads: RuntimeAdapter(runtime) }, { parent: parent });
13
+ useEffect(() => {
14
+ if (typeof process === "undefined" ||
15
+ process.env["NODE_ENV"] === "production")
16
+ return;
17
+ return DevToolsProviderApi.register(aui);
18
+ }, [aui]);
12
19
  const RenderComponent = getRenderComponent(runtime);
13
20
  return (_jsxs(AuiProvider, { value: aui, children: [RenderComponent && _jsx(RenderComponent, {}), _jsx(ThreadPrimitiveViewportProvider, { children: children })] }));
14
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantRuntimeProvider.js","sourceRoot":"","sources":["../../src/legacy-runtime/AssistantRuntimeProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAM,IAAI,EAAqB,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAmB,MAAM,qBAAqB,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAClD,OAAO,EAAE,+BAA+B,EAAE,uDAAoD;AAgB9F,MAAM,kBAAkB,GAAG,CAAC,OAAyB,EAAE,EAAE;IACvD,OAAQ,OAA4C,CAAC,KAAK,EAAE,eAAe,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAErC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7E,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEpD,OAAO,CACL,MAAC,WAAW,IAAC,KAAK,EAAE,GAAG,aACpB,eAAe,IAAI,KAAC,eAAe,KAAG,EAIvC,KAAC,+BAA+B,cAC7B,QAAQ,GACuB,IACtB,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC,4BAA4B,CAAC,CAAC"}
1
+ {"version":3,"file":"AssistantRuntimeProvider.js","sourceRoot":"","sources":["../../src/legacy-runtime/AssistantRuntimeProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAM,IAAI,EAAqB,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAmB,MAAM,qBAAqB,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAClD,OAAO,EAAE,+BAA+B,EAAE,uDAAoD;AAC9F,OAAO,EAAE,mBAAmB,EAAE,6BAAoB;AAgBlD,MAAM,kBAAkB,GAAG,CAAC,OAAyB,EAAE,EAAE;IACvD,OAAQ,OAA4C,CAAC,KAAK,EAAE,eAAe,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAErC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7E,SAAS,CAAC,GAAG,EAAE;QACb,IACE,OAAO,OAAO,KAAK,WAAW;YAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,YAAY;YAExC,OAAO;QACT,OAAO,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEpD,OAAO,CACL,MAAC,WAAW,IAAC,KAAK,EAAE,GAAG,aACpB,eAAe,IAAI,KAAC,eAAe,KAAG,EAIvC,KAAC,+BAA+B,cAC7B,QAAQ,GACuB,IACtB,CACf,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC,4BAA4B,CAAC,CAAC"}