@assistant-ui/react 0.12.1 → 0.12.5

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 (143) 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/Suggestions.d.ts +11 -0
  10. package/dist/client/Suggestions.d.ts.map +1 -0
  11. package/dist/client/Suggestions.js +43 -0
  12. package/dist/client/Suggestions.js.map +1 -0
  13. package/dist/client/Tools.d.ts.map +1 -1
  14. package/dist/client/Tools.js +5 -1
  15. package/dist/client/Tools.js.map +1 -1
  16. package/dist/client/index.d.ts +6 -0
  17. package/dist/client/index.d.ts.map +1 -0
  18. package/dist/client/index.js +6 -0
  19. package/dist/client/index.js.map +1 -0
  20. package/dist/context/providers/SuggestionByIndexProvider.d.ts +6 -0
  21. package/dist/context/providers/SuggestionByIndexProvider.d.ts.map +1 -0
  22. package/dist/context/providers/SuggestionByIndexProvider.js +14 -0
  23. package/dist/context/providers/SuggestionByIndexProvider.js.map +1 -0
  24. package/dist/context/providers/index.d.ts +1 -0
  25. package/dist/context/providers/index.d.ts.map +1 -1
  26. package/dist/context/providers/index.js +1 -0
  27. package/dist/context/providers/index.js.map +1 -1
  28. package/dist/devtools/index.d.ts +1 -1
  29. package/dist/devtools/index.d.ts.map +1 -1
  30. package/dist/devtools/index.js +1 -1
  31. package/dist/devtools/index.js.map +1 -1
  32. package/dist/index.d.ts +1 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts +5 -0
  37. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -1
  38. package/dist/legacy-runtime/AssistantRuntimeProvider.js +9 -5
  39. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
  40. package/dist/legacy-runtime/RuntimeAdapter.js +2 -1
  41. package/dist/legacy-runtime/RuntimeAdapter.js.map +1 -1
  42. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  43. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +3 -5
  44. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  45. package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.d.ts +10 -12
  46. package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.d.ts.map +1 -1
  47. package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.js +14 -19
  48. package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.js.map +1 -1
  49. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts.map +1 -1
  50. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js +32 -4
  51. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js.map +1 -1
  52. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.d.ts.map +1 -1
  53. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.js +3 -0
  54. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.js.map +1 -1
  55. package/dist/model-context/index.d.ts +1 -0
  56. package/dist/model-context/index.d.ts.map +1 -1
  57. package/dist/model-context/index.js +1 -0
  58. package/dist/model-context/index.js.map +1 -1
  59. package/dist/primitives/assistantModal/AssistantModalRoot.js +1 -1
  60. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  61. package/dist/primitives/index.d.ts +1 -0
  62. package/dist/primitives/index.d.ts.map +1 -1
  63. package/dist/primitives/index.js +1 -0
  64. package/dist/primitives/index.js.map +1 -1
  65. package/dist/primitives/message/MessageParts.d.ts +11 -0
  66. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  67. package/dist/primitives/message/MessageParts.js +18 -2
  68. package/dist/primitives/message/MessageParts.js.map +1 -1
  69. package/dist/primitives/message/MessagePartsGrouped.js +1 -1
  70. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  71. package/dist/primitives/suggestion/SuggestionDescription.d.ts +18 -0
  72. package/dist/primitives/suggestion/SuggestionDescription.d.ts.map +1 -0
  73. package/dist/primitives/suggestion/SuggestionDescription.js +19 -0
  74. package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -0
  75. package/dist/primitives/suggestion/SuggestionTitle.d.ts +18 -0
  76. package/dist/primitives/suggestion/SuggestionTitle.d.ts.map +1 -0
  77. package/dist/primitives/suggestion/SuggestionTitle.js +19 -0
  78. package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -0
  79. package/dist/primitives/suggestion/SuggestionTrigger.d.ts +49 -0
  80. package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -0
  81. package/dist/primitives/suggestion/SuggestionTrigger.js +45 -0
  82. package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -0
  83. package/dist/primitives/suggestion/index.d.ts +4 -0
  84. package/dist/primitives/suggestion/index.d.ts.map +1 -0
  85. package/dist/primitives/suggestion/index.js +4 -0
  86. package/dist/primitives/suggestion/index.js.map +1 -0
  87. package/dist/primitives/thread/ThreadSuggestions.d.ts +53 -0
  88. package/dist/primitives/thread/ThreadSuggestions.d.ts.map +1 -0
  89. package/dist/primitives/thread/ThreadSuggestions.js +58 -0
  90. package/dist/primitives/thread/ThreadSuggestions.js.map +1 -0
  91. package/dist/primitives/thread/index.d.ts +1 -0
  92. package/dist/primitives/thread/index.d.ts.map +1 -1
  93. package/dist/primitives/thread/index.js +1 -0
  94. package/dist/primitives/thread/index.js.map +1 -1
  95. package/dist/types/scopes/index.d.ts +2 -0
  96. package/dist/types/scopes/index.d.ts.map +1 -1
  97. package/dist/types/scopes/suggestion.d.ts +20 -0
  98. package/dist/types/scopes/suggestion.d.ts.map +1 -0
  99. package/dist/types/scopes/suggestion.js +2 -0
  100. package/dist/types/scopes/suggestion.js.map +1 -0
  101. package/dist/types/scopes/suggestions.d.ts +20 -0
  102. package/dist/types/scopes/suggestions.d.ts.map +1 -0
  103. package/dist/types/scopes/suggestions.js +2 -0
  104. package/dist/types/scopes/suggestions.js.map +1 -0
  105. package/dist/types/store-augmentation.d.ts +4 -0
  106. package/dist/types/store-augmentation.d.ts.map +1 -1
  107. package/dist/utils/idUtils.d.ts +2 -0
  108. package/dist/utils/idUtils.d.ts.map +1 -1
  109. package/dist/utils/idUtils.js +3 -0
  110. package/dist/utils/idUtils.js.map +1 -1
  111. package/package.json +12 -12
  112. package/src/client/ExternalThread.ts +491 -0
  113. package/src/client/InMemoryThreadList.ts +197 -0
  114. package/src/client/Suggestions.ts +74 -0
  115. package/src/client/Tools.ts +10 -1
  116. package/src/client/index.ts +12 -0
  117. package/src/context/providers/SuggestionByIndexProvider.tsx +23 -0
  118. package/src/context/providers/index.ts +1 -0
  119. package/src/devtools/index.ts +1 -1
  120. package/src/index.ts +1 -0
  121. package/src/legacy-runtime/AssistantRuntimeProvider.tsx +15 -6
  122. package/src/legacy-runtime/RuntimeAdapter.ts +2 -1
  123. package/src/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.tsx +3 -4
  124. package/src/legacy-runtime/runtime-cores/assistant-transport/utils.ts +19 -24
  125. package/src/legacy-runtime/runtime-cores/external-store/external-message-converter.tsx +42 -7
  126. package/src/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.tsx +3 -0
  127. package/src/model-context/index.ts +2 -0
  128. package/src/primitives/assistantModal/AssistantModalRoot.tsx +1 -1
  129. package/src/primitives/index.ts +1 -0
  130. package/src/primitives/message/MessageParts.tsx +45 -1
  131. package/src/primitives/message/MessagePartsGrouped.tsx +1 -1
  132. package/src/primitives/suggestion/SuggestionDescription.tsx +33 -0
  133. package/src/primitives/suggestion/SuggestionTitle.tsx +33 -0
  134. package/src/primitives/suggestion/SuggestionTrigger.tsx +79 -0
  135. package/src/primitives/suggestion/index.ts +3 -0
  136. package/src/primitives/thread/ThreadSuggestions.tsx +109 -0
  137. package/src/primitives/thread/index.ts +4 -0
  138. package/src/tests/external-message-converter.test.ts +105 -16
  139. package/src/types/scopes/index.ts +12 -0
  140. package/src/types/scopes/suggestion.ts +20 -0
  141. package/src/types/scopes/suggestions.ts +21 -0
  142. package/src/types/store-augmentation.ts +4 -0
  143. package/src/utils/idUtils.tsx +4 -0
@@ -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":"AAAA,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,GACR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,gCAA6B;AACpD,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,WAAW,EAAE,yBAAsB;AA4B5C,0CAA0C;AAC1C,MAAM,aAAa,GAAG,QAAQ,CAC5B,CAAC,EACC,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,GACW,EAA2B,EAAE;IAChD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,eAAe,CACjC,GAAG,EAAE,CACH,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAChC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CACrC,EACH,CAAC,OAAO,CAAC,OAAO,CAAC,CAClB,CAAC;IAEF,MAAM,iBAAiB,GAAG,eAAe,CACvC,GAAG,EAAE,CACH,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC7C,OAAO,CACL,UAAU,CAAC,EAAE,EACb,kBAAkB,CAAC;QACjB,UAAU;QACV,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;KACnB,CAAC,CACH,CACF,EACH,CAAC,OAAO,CAAC,WAAW,CAAC,CACtB,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,GAAQ,EAAE,EAAE;QAClC,MAAM,EAAE,CAAC;YACP,GAAG,GAAG;YACN,QAAQ,EAAE,OAAO,CAAC,EAAE;YACpB,QAAQ,EAAE,OAAO,CAAC,EAAE;SACrB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,iBAAiB,CACtC,sBAAsB,CAAC;QACrB,IAAI,EAAE,MAAM;QACZ,SAAS;QACT,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,eAAe;QAC5B,MAAM,EAAE,cAAc;QACtB,OAAO;KACR,CAAC,CACH,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,OAAO;YACL,GAAG,OAAO;YACV,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;YACtC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,KAAK,EAAE,wBAAwB;YACvC,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,SAAS;YACjB,iBAAiB,EAAE,SAAS;YAC5B,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,QAAQ;YACR,UAAU;YACV,KAAK;YACL,QAAQ,EAAE,cAAc,CAAC,KAAK;SAC/B,CAAC;IACJ,CAAC,EAAE;QACD,OAAO;QACP,QAAQ;QACR,UAAU;QACV,KAAK;QACL,cAAc,CAAC,KAAK;QACpB,WAAW,CAAC,KAAK;KAClB,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,OAAO,EAAE;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;YACrB,QAAQ,EAAE,cAAc,CAAC,OAAO;YAChC,MAAM,EAAE,GAAG,EAAE;gBACX,QAAQ,EAAE,EAAE,CAAC;YACf,CAAC;YACD,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;YACf,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;YACtB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;YACxB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;YACxB,WAAW,EAAE,GAAG,EAAE,CAChB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAClE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACjB,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;oBACxB,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnC,CAAC;gBACD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CACrC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CACjE,CAAC;gBACF,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACvB,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;oBACrB,OAAO,iBAAiB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrD,CAAC;gBACD,OAAO,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YACD,WAAW;YACX,aAAa;SACd;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAMF,uCAAuC;AACvC,MAAM,YAAY,GAAG,QAAQ,CAC3B,CAAC,EAAE,IAAI,EAAqB,EAAwB,EAAE;IACpD,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,IAAI;QACP,MAAM,EAAE,EAAE,IAAI,EAAE,UAAmB,EAAE;KACtC,CAAC,EACF,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,OAAO;QACL,KAAK;QACL,OAAO,EAAE;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;YACrB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;YACvB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;SACzB;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAOF,6CAA6C;AAC7C,MAAM,kBAAkB,GAAG,QAAQ,CACjC,CAAC,EACC,UAAU,EACV,QAAQ,GACgB,EAA8B,EAAE;IACxD,OAAO;QACL,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU;YAC1B,MAAM,EAAE,KAAK,IAAI,EAAE;gBACjB,QAAQ,EAAE,EAAE,CAAC;YACf,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAYF,2CAA2C;AAC3C,MAAM,sBAAsB,GAAG,QAAQ,CACrC,CAAC,EACC,IAAI,EACJ,SAAS,EACT,SAAS,EACT,QAAQ,EACR,WAAW,EACX,MAAM,EACN,OAAO,GACqB,EAA4B,EAAE;IAC1D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAkC,MAAM,CAAC,CAAC;IAC1E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA0B,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAwB,EAAE,CAAC,CAAC;IAE1E,6CAA6C;IAC7C,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,EAAE;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,sDAAsD;YACtD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CACtC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAC/B,CAAC;YACF,MAAM,WAAW,GAAG,SAAS;iBAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBAChD,IAAI,CAAC,MAAM,CAAC,CAAC;YAEhB,OAAO,CAAC,WAAW,CAAC,CAAC;YACrB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,cAAc,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,EAAE,CAAC;YACd,iBAAiB,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,iBAAiB,GAAG,eAAe,CACvC,GAAG,EAAE,CACH,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,CAClC,OAAO,CACL,UAAU,CAAC,EAAE,EACb,kBAAkB,CAAC;QACjB,UAAU;QACV,QAAQ,EAAE,GAAG,EAAE;YACb,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;KACF,CAAC,CACH,CACF,EACH,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,IAAI;QACJ,IAAI;QACJ,WAAW,EAAE,iBAAiB,CAAC,KAAK;QACpC,SAAS;QACT,SAAS;QACT,SAAS;QACT,gBAAgB,EAAE,GAAG;QACrB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;QAC5C,IAAI;QACJ,SAAS,EAAE,SAAS;KACrB,CAAC,EACF;QACE,IAAI;QACJ,IAAI;QACJ,iBAAiB,CAAC,KAAK;QACvB,SAAS;QACT,SAAS;QACT,SAAS;QACT,IAAI;QACJ,WAAW,CAAC,MAAM;KACnB,CACF,CAAC;IAEF,OAAO;QACL,KAAK;QACL,OAAO,EAAE;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;YACrB,OAAO;YACP,OAAO;YACP,YAAY;YACZ,aAAa,EAAE,KAAK,EAAE,IAAU,EAAE,EAAE;gBAClC,MAAM,aAAa,GAAe;oBAChC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC3C,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,IAAI;oBACtB,IAAI;oBACJ,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;oBAC5B,OAAO,EAAE,EAAE;iBACZ,CAAC;gBACF,cAAc,CAAC,CAAC,GAAG,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;YAClD,CAAC;YACD,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBAC3B,cAAc,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;YACD,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACvB,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;oBACrB,OAAO,iBAAiB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrD,CAAC;gBACD,OAAO,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YACD,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,OAAO,CAAC,EAAE,CAAC,CAAC;gBACZ,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChB,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjB,cAAc,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,EAAE,GAAG,EAAE;gBACT,MAAM,OAAO,GAAG;oBACd,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;oBACtD,WAAW,EAAE,WAAkB;oBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE;oBACrB,SAAS;iBACV,CAAC;gBACF,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;gBAClB,OAAO,CAAC,EAAE,CAAC,CAAC;gBACZ,cAAc,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;YACD,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,GAAG,EAAE;gBACd,WAAW,EAAE,EAAE,CAAC;YAClB,CAAC;YACD,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;YACxB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;SACxB;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,yBAAyB;AACzB,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CACpC,CAAC,EACC,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,QAAQ,GACY,EAA0B,EAAE;IAChD,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE;QACzC,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACnE,IAAI,YAAY,KAAK,CAAC,CAAC;YAAE,OAAO;QAEhC,MAAM,QAAQ,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,eAAe,CACpC,GAAG,EAAE,CACH,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC1B,MAAM,KAAK,GAAuB;YAChC,OAAO,EAAE,GAAG;YACZ,KAAK;YACL,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;SACrC,CAAC;QACF,IAAI,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,EACJ,CAAC,QAAQ,EAAE,MAAM,CAAC,CACnB,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,QAAQ,EAAE,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,OAAY,EAAE,EAAE;QACrC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,iBAAiB,CACtC,sBAAsB,CAAC;QACrB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,aAAa;KACtB,CAAC,CACH,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/D,GAAG,CAAC;YACJ,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC;SAC/B,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC9B,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,KAAK;YAChB,SAAS;YACT,YAAY,EAAE;gBACZ,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,KAAK;gBACrB,qBAAqB,EAAE,KAAK;gBAC5B,aAAa,EAAE,KAAK;gBACpB,SAAS,EAAE,KAAK;aACjB;YACD,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,cAAc,CAAC,KAAK;SAC/B,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtE,OAAO;QACL,KAAK;QACL,OAAO,EAAE;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;YACrB,QAAQ,EAAE,cAAc,CAAC,OAAO;YAChC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;gBAClB,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,UAAU,EAAE,EAAE,CAAC;YACjB,CAAC;YACD,kBAAkB,EAAE,GAAG,EAAE,GAAE,CAAC;YAC5B,SAAS,EAAE,eAAe;YAC1B,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAClD,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;YAChB,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;YACf,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACpB,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;oBACrB,OAAO,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;YACD,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;YACtB,UAAU,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YAC1B,SAAS,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;SAC1B;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,kBAAkB,CAAC,cAAc,EAAE;IACjC,YAAY,EAAE,YAAY,EAAE;IAC5B,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;IAChB,WAAW,EAAE,WAAW,EAAE;IAC1B,QAAQ,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,EAAE;QACT,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ;KACpC,CAAC;CACH,CAAC,CAAC"}
@@ -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,11 @@
1
+ import { type ClientOutput } from "@assistant-ui/store";
2
+ export type SuggestionConfig = string | {
3
+ title: string;
4
+ label: string;
5
+ prompt: string;
6
+ };
7
+ export declare const Suggestions: {
8
+ (): import("@assistant-ui/tap").ResourceElement<ClientOutput<"suggestions">, undefined>;
9
+ (suggestions: SuggestionConfig[]): import("@assistant-ui/tap").ResourceElement<ClientOutput<"suggestions">, SuggestionConfig[]>;
10
+ };
11
+ //# sourceMappingURL=Suggestions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Suggestions.d.ts","sourceRoot":"","sources":["../../src/client/Suggestions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AAGzE,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAwDrD,eAAO,MAAM,WAAW,EAAE;IACxB,IAAI,OAAO,mBAAmB,EAAE,eAAe,CAC7C,YAAY,CAAC,aAAa,CAAC,EAC3B,SAAS,CACV,CAAC;IACF,CACE,WAAW,EAAE,gBAAgB,EAAE,GAC9B,OAAO,mBAAmB,EAAE,eAAe,CAC5C,YAAY,CAAC,aAAa,CAAC,EAC3B,gBAAgB,EAAE,CACnB,CAAC;CAC0B,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { resource, tapState, withKey } from "@assistant-ui/tap";
2
+ import { tapClientLookup } from "@assistant-ui/store";
3
+ const SuggestionClient = resource((state) => {
4
+ return {
5
+ state,
6
+ methods: {
7
+ getState: () => state,
8
+ },
9
+ };
10
+ });
11
+ const SuggestionsResource = resource((suggestions) => {
12
+ const [state] = tapState(() => {
13
+ const normalizedSuggestions = (suggestions ?? []).map((s) => {
14
+ if (typeof s === "string") {
15
+ return {
16
+ title: s,
17
+ label: "",
18
+ prompt: s,
19
+ };
20
+ }
21
+ return {
22
+ title: s.title,
23
+ label: s.label,
24
+ prompt: s.prompt,
25
+ };
26
+ });
27
+ return {
28
+ suggestions: normalizedSuggestions,
29
+ };
30
+ });
31
+ const suggestionClients = tapClientLookup(() => state.suggestions.map((suggestion, index) => withKey(index, SuggestionClient(suggestion))), [state.suggestions]);
32
+ return {
33
+ state,
34
+ methods: {
35
+ getState: () => state,
36
+ suggestion: ({ index }) => {
37
+ return suggestionClients.get({ index });
38
+ },
39
+ },
40
+ };
41
+ });
42
+ export const Suggestions = SuggestionsResource;
43
+ //# sourceMappingURL=Suggestions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Suggestions.js","sourceRoot":"","sources":["../../src/client/Suggestions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAqB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAOzE,MAAM,gBAAgB,GAAG,QAAQ,CAC/B,CAAC,KAAsB,EAA8B,EAAE;IACrD,OAAO;QACL,KAAK;QACL,OAAO,EAAE;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;SACtB;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,mBAAmB,GAAG,QAAQ,CAClC,CAAC,WAAgC,EAA+B,EAAE;IAChE,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAmB,GAAG,EAAE;QAC9C,MAAM,qBAAqB,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1D,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO;oBACL,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,CAAC;iBACV,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,WAAW,EAAE,qBAAqB;SACnC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,eAAe,CACvC,GAAG,EAAE,CACH,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAC1C,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAC7C,EACH,CAAC,KAAK,CAAC,WAAW,CAAC,CACpB,CAAC;IAEF,OAAO;QACL,KAAK;QACL,OAAO,EAAE;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;YACrB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAqB,EAAE,EAAE;gBAC3C,OAAO,iBAAiB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1C,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAWpB,mBAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.d.ts","sourceRoot":"","sources":["../../src/client/Tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAG/E,OAAO,EAAE,KAAK,OAAO,EAAE,oCAAiC;AAGxD,eAAO,MAAM,KAAK;cACU,OAAO;;cAAP,OAAO;EA+ElC,CAAC"}
1
+ {"version":3,"file":"Tools.d.ts","sourceRoot":"","sources":["../../src/client/Tools.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,KAAK,OAAO,EAAE,oCAAiC;AAIxD,eAAO,MAAM,KAAK;cACU,OAAO;;cAAP,OAAO;EA+ElC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { resource, tapState, tapEffect, tapCallback } from "@assistant-ui/tap";
2
- import { tapAssistantClientRef } from "@assistant-ui/store";
2
+ import { tapAssistantClientRef, attachDefaultPeers, } from "@assistant-ui/store";
3
+ import { ModelContext } from "./ModelContextClient.js";
3
4
  export const Tools = resource(({ toolkit }) => {
4
5
  const [state, setState] = tapState(() => ({
5
6
  tools: {},
@@ -61,4 +62,7 @@ export const Tools = resource(({ toolkit }) => {
61
62
  },
62
63
  };
63
64
  });
65
+ attachDefaultPeers(Tools, {
66
+ modelContext: ModelContext(),
67
+ });
64
68
  //# sourceMappingURL=Tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.js","sourceRoot":"","sources":["../../src/client/Tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tools.js","sourceRoot":"","sources":["../../src/client/Tools.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"}
@@ -0,0 +1,6 @@
1
+ import { type FC, type PropsWithChildren } from "react";
2
+ export type SuggestionByIndexProviderProps = PropsWithChildren<{
3
+ index: number;
4
+ }>;
5
+ export declare const SuggestionByIndexProvider: FC<SuggestionByIndexProviderProps>;
6
+ //# sourceMappingURL=SuggestionByIndexProvider.d.ts.map