@assistant-ui/react 0.15.13 → 0.15.15

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 (160) hide show
  1. package/dist/assistant-transport.d.ts +32 -0
  2. package/dist/assistant-transport.d.ts.map +1 -0
  3. package/dist/assistant-transport.js +27 -0
  4. package/dist/assistant-transport.js.map +1 -0
  5. package/dist/context/providers/MessageProvider.js +1 -1
  6. package/dist/hooks/useMessageQuote.js +1 -1
  7. package/dist/hooks/useToolCallElapsed.js +1 -1
  8. package/dist/index.d.ts +5 -8
  9. package/dist/index.js +7 -9
  10. package/dist/legacy-runtime/AssistantRuntimeProvider.js +1 -1
  11. package/dist/mcp-apps/McpAppsRemoteHost.d.ts.map +1 -1
  12. package/dist/mcp-apps/McpAppsRemoteHost.js +18 -2
  13. package/dist/mcp-apps/McpAppsRemoteHost.js.map +1 -1
  14. package/dist/mcp-apps/bridge.js +39 -24
  15. package/dist/mcp-apps/bridge.js.map +1 -1
  16. package/dist/model-context/makeAssistantVisible.js +1 -1
  17. package/dist/primitives/actionBar/ActionBarCopy.js +1 -1
  18. package/dist/primitives/actionBar/ActionBarExportMarkdown.js +1 -1
  19. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +1 -1
  20. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +1 -1
  21. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
  22. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +24 -37
  23. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
  24. package/dist/primitives/actionBar/useActionBarFloatStatus.js +1 -1
  25. package/dist/primitives/assistantModal/AssistantModalRoot.js +1 -1
  26. package/dist/primitives/attachment/AttachmentName.js +1 -1
  27. package/dist/primitives/attachment/AttachmentRemove.js +1 -1
  28. package/dist/primitives/attachment/AttachmentThumb.js +1 -1
  29. package/dist/primitives/branchPicker/BranchPickerCount.js +1 -1
  30. package/dist/primitives/branchPicker/BranchPickerNumber.js +1 -1
  31. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js +1 -1
  32. package/dist/primitives/composer/ComposerAddAttachment.js +1 -1
  33. package/dist/primitives/composer/ComposerAttachmentDropzone.js +1 -1
  34. package/dist/primitives/composer/ComposerDictationTranscript.js +1 -1
  35. package/dist/primitives/composer/ComposerInput.js +2 -2
  36. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  37. package/dist/primitives/composer/ComposerQuote.js +1 -1
  38. package/dist/primitives/composer/ComposerRoot.js +1 -1
  39. package/dist/primitives/composer/ComposerStopDictation.js +1 -1
  40. package/dist/primitives/composer/trigger/TriggerPopover.js +1 -1
  41. package/dist/primitives/composer/useComposerInputState.js +1 -1
  42. package/dist/primitives/message/MessageIf.js +1 -1
  43. package/dist/primitives/message/MessagePartsGrouped.js +1 -1
  44. package/dist/primitives/message/MessageRoot.js +1 -1
  45. package/dist/primitives/queueItem/QueueItemRemove.js +1 -1
  46. package/dist/primitives/queueItem/QueueItemSteer.js +1 -1
  47. package/dist/primitives/queueItem/QueueItemText.js +1 -1
  48. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js +1 -1
  49. package/dist/primitives/suggestion/SuggestionDescription.js +1 -1
  50. package/dist/primitives/suggestion/SuggestionTitle.js +1 -1
  51. package/dist/primitives/suggestion/SuggestionTrigger.js +1 -1
  52. package/dist/primitives/thread/ThreadIf.js +1 -1
  53. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  54. package/dist/primitives/thread/ThreadRoot.js +41 -9
  55. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  56. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
  57. package/dist/primitives/thread/ThreadViewport.js +2 -13
  58. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  59. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  60. package/dist/primitives/thread/useThreadViewportAutoScroll.js +23 -8
  61. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  62. package/dist/primitives/threadList/ThreadListNew.js +1 -1
  63. package/dist/sandbox-host/SandboxHost.js +2 -0
  64. package/dist/sandbox-host/SandboxHost.js.map +1 -1
  65. package/dist/unstable/useComposerInput.d.ts +2 -2
  66. package/dist/unstable/useComposerInput.js +1 -1
  67. package/dist/unstable/useComposerInput.js.map +1 -1
  68. package/dist/unstable/useComposerInputHistory.js +1 -1
  69. package/dist/unstable/useComposerInputHistory.js.map +1 -1
  70. package/dist/unstable/useLiveCompletionAdapter.d.ts +5 -0
  71. package/dist/unstable/useLiveCompletionAdapter.d.ts.map +1 -1
  72. package/dist/unstable/useLiveCompletionAdapter.js +16 -3
  73. package/dist/unstable/useLiveCompletionAdapter.js.map +1 -1
  74. package/dist/unstable/useMentionAdapter.d.ts +1 -1
  75. package/dist/utils/smooth/SmoothContext.js +1 -1
  76. package/dist/utils/useToolArgsFieldStatus.js +1 -1
  77. package/package.json +9 -9
  78. package/src/assistant-transport.ts +94 -0
  79. package/src/index.ts +9 -4
  80. package/src/mcp-apps/McpAppsRemoteHost.test.ts +29 -3
  81. package/src/mcp-apps/McpAppsRemoteHost.ts +42 -7
  82. package/src/mcp-apps/bridge.test.ts +132 -0
  83. package/src/mcp-apps/bridge.ts +54 -30
  84. package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +0 -9
  85. package/src/primitives/composer/ComposerInput.tsx +1 -1
  86. package/src/primitives/thread/ThreadRoot.test.tsx +251 -0
  87. package/src/primitives/thread/ThreadRoot.tsx +30 -0
  88. package/src/primitives/thread/ThreadViewport.tsx +1 -8
  89. package/src/primitives/thread/useThreadViewportAutoScroll.test.tsx +152 -0
  90. package/src/primitives/thread/useThreadViewportAutoScroll.ts +26 -19
  91. package/src/sandbox-host/SandboxHost.test.tsx +29 -0
  92. package/src/sandbox-host/SandboxHost.tsx +2 -0
  93. package/src/tests/RemoteThreadListRuntime.adapterProvider.test.tsx +24 -3
  94. package/src/tests/RemoteThreadListRuntime.reloadMainThread.test.tsx +1 -2
  95. package/src/tests/augmentations.test.ts +49 -0
  96. package/src/tests/in-memory-thread-list.test.tsx +87 -3
  97. package/src/tests/threadMessageById.test.tsx +61 -1
  98. package/src/unstable/useComposerInput.ts +2 -2
  99. package/src/unstable/useComposerInputHistory.test.tsx +4 -4
  100. package/src/unstable/useComposerInputHistory.ts +1 -1
  101. package/src/unstable/useLiveCompletionAdapter.test.tsx +100 -0
  102. package/src/unstable/useLiveCompletionAdapter.ts +41 -17
  103. package/dist/client/InMemoryThreadList.d.ts +0 -12
  104. package/dist/client/InMemoryThreadList.d.ts.map +0 -1
  105. package/dist/client/InMemoryThreadList.js +0 -365
  106. package/dist/client/InMemoryThreadList.js.map +0 -1
  107. package/dist/legacy-runtime/cloud/auiV0.d.ts +0 -119
  108. package/dist/legacy-runtime/cloud/auiV0.d.ts.map +0 -1
  109. package/dist/legacy-runtime/cloud/auiV0.js +0 -137
  110. package/dist/legacy-runtime/cloud/auiV0.js.map +0 -1
  111. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts +0 -16
  112. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts.map +0 -1
  113. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js +0 -36
  114. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js.map +0 -1
  115. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.d.ts +0 -17
  116. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.d.ts.map +0 -1
  117. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js +0 -55
  118. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js.map +0 -1
  119. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.d.ts +0 -11
  120. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.d.ts.map +0 -1
  121. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.js +0 -141
  122. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.js.map +0 -1
  123. package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.d.ts +0 -15
  124. package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.d.ts.map +0 -1
  125. package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.js +0 -81
  126. package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.js.map +0 -1
  127. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts +0 -126
  128. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts.map +0 -1
  129. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.js +0 -0
  130. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts +0 -14
  131. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts.map +0 -1
  132. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +0 -290
  133. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +0 -1
  134. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.d.ts +0 -7
  135. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.d.ts.map +0 -1
  136. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js +0 -25
  137. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js.map +0 -1
  138. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.d.ts +0 -7
  139. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.d.ts.map +0 -1
  140. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js +0 -27
  141. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js.map +0 -1
  142. package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.d.ts +0 -2
  143. package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.js +0 -2
  144. package/src/client/InMemoryThreadList.ts +0 -241
  145. package/src/legacy-runtime/cloud/auiV0.ts +0 -331
  146. package/src/legacy-runtime/cloud/useCloudThreadListRuntime.ts +0 -31
  147. package/src/legacy-runtime/runtime-cores/assistant-transport/commandQueue.ts +0 -68
  148. package/src/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.test.ts +0 -430
  149. package/src/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.ts +0 -146
  150. package/src/legacy-runtime/runtime-cores/assistant-transport/runManager.ts +0 -113
  151. package/src/legacy-runtime/runtime-cores/assistant-transport/transport-delivery.test.tsx +0 -79
  152. package/src/legacy-runtime/runtime-cores/assistant-transport/transport-parentid.test.tsx +0 -97
  153. package/src/legacy-runtime/runtime-cores/assistant-transport/transport-scheduling.test.ts +0 -307
  154. package/src/legacy-runtime/runtime-cores/assistant-transport/types.ts +0 -170
  155. package/src/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransport.spec.md +0 -141
  156. package/src/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.test.tsx +0 -585
  157. package/src/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.ts +0 -476
  158. package/src/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.ts +0 -20
  159. package/src/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.ts +0 -9
  160. package/src/legacy-runtime/runtime-cores/assistant-transport/utils.ts +0 -1
@@ -1,365 +0,0 @@
1
- import { Derived, attachTransformScopes, useClientLookup, useClientResource } from "@assistant-ui/store";
2
- import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
3
- import { DataRenderers, Tools } from "@assistant-ui/core/react";
4
- import { useState } from "@assistant-ui/tap/react-shim";
5
- import { ModelContext, Suggestions } from "@assistant-ui/core/store";
6
- import { resource, withKey } from "@assistant-ui/tap";
7
- //#region src/client/InMemoryThreadList.ts
8
- const RESOLVED_PROMISE = Promise.resolve();
9
- const useThreadListItemClient = (props) => {
10
- const $ = c(19);
11
- const { data, isRunning, onSwitchTo, onRename, onUpdateCustom, onArchive, onUnarchive, onDelete } = props;
12
- let t0;
13
- if ($[0] !== data.custom || $[1] !== data.id || $[2] !== data.status || $[3] !== data.title || $[4] !== isRunning) {
14
- t0 = {
15
- id: data.id,
16
- remoteId: void 0,
17
- externalId: void 0,
18
- title: data.title,
19
- status: data.status,
20
- custom: data.custom,
21
- isRunning
22
- };
23
- $[0] = data.custom;
24
- $[1] = data.id;
25
- $[2] = data.status;
26
- $[3] = data.title;
27
- $[4] = isRunning;
28
- $[5] = t0;
29
- } else t0 = $[5];
30
- const state = t0;
31
- let t1;
32
- if ($[6] !== state) {
33
- t1 = () => state;
34
- $[6] = state;
35
- $[7] = t1;
36
- } else t1 = $[7];
37
- let t2;
38
- if ($[8] !== data.id) {
39
- t2 = async () => ({
40
- remoteId: data.id,
41
- externalId: void 0
42
- });
43
- $[8] = data.id;
44
- $[9] = t2;
45
- } else t2 = $[9];
46
- let t3;
47
- if ($[10] !== onArchive || $[11] !== onDelete || $[12] !== onRename || $[13] !== onSwitchTo || $[14] !== onUnarchive || $[15] !== onUpdateCustom || $[16] !== t1 || $[17] !== t2) {
48
- t3 = {
49
- getState: t1,
50
- switchTo: onSwitchTo,
51
- rename: onRename,
52
- updateCustom: onUpdateCustom,
53
- archive: onArchive,
54
- unarchive: onUnarchive,
55
- delete: onDelete,
56
- generateTitle: _temp,
57
- initialize: t2,
58
- detach: _temp2
59
- };
60
- $[10] = onArchive;
61
- $[11] = onDelete;
62
- $[12] = onRename;
63
- $[13] = onSwitchTo;
64
- $[14] = onUnarchive;
65
- $[15] = onUpdateCustom;
66
- $[16] = t1;
67
- $[17] = t2;
68
- $[18] = t3;
69
- } else t3 = $[18];
70
- return t3;
71
- };
72
- const ThreadListItemClient = resource(useThreadListItemClient);
73
- const useInMemoryThreadList = (props) => {
74
- const $ = c(57);
75
- const { thread: threadFactory, onSwitchToThread, onSwitchToNewThread } = props;
76
- const [mainThreadId, setMainThreadId] = useState("main");
77
- const [threads, setThreads] = useState(_temp3);
78
- let t0;
79
- if ($[0] !== onSwitchToThread) {
80
- t0 = (threadId) => {
81
- setMainThreadId(threadId);
82
- onSwitchToThread?.(threadId);
83
- };
84
- $[0] = onSwitchToThread;
85
- $[1] = t0;
86
- } else t0 = $[1];
87
- const handleSwitchToThread = t0;
88
- let t1;
89
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
90
- t1 = (threadId_0, title) => {
91
- setThreads((prev) => prev.map((t) => t.id === threadId_0 ? {
92
- ...t,
93
- title
94
- } : t));
95
- };
96
- $[2] = t1;
97
- } else t1 = $[2];
98
- const handleRename = t1;
99
- let t2;
100
- if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
101
- t2 = (threadId_1) => {
102
- setThreads((prev_0) => prev_0.map((t_0) => t_0.id === threadId_1 ? {
103
- ...t_0,
104
- status: "archived"
105
- } : t_0));
106
- };
107
- $[3] = t2;
108
- } else t2 = $[3];
109
- const handleArchive = t2;
110
- let t3;
111
- if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
112
- t3 = (threadId_2) => {
113
- setThreads((prev_1) => prev_1.map((t_1) => t_1.id === threadId_2 ? {
114
- ...t_1,
115
- status: "regular"
116
- } : t_1));
117
- };
118
- $[4] = t3;
119
- } else t3 = $[4];
120
- const handleUnarchive = t3;
121
- let t4;
122
- if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
123
- t4 = (threadId_3, custom) => {
124
- setThreads((prev_2) => prev_2.map((t_2) => t_2.id === threadId_3 ? {
125
- ...t_2,
126
- custom
127
- } : t_2));
128
- };
129
- $[5] = t4;
130
- } else t4 = $[5];
131
- const handleUpdateCustom = t4;
132
- let t5;
133
- if ($[6] !== threads) {
134
- t5 = (threadId_4) => {
135
- setThreads((prev_3) => prev_3.filter((t_3) => t_3.id !== threadId_4));
136
- setMainThreadId((prev_4) => prev_4 === threadId_4 ? threads.find((t_4) => t_4.id !== threadId_4)?.id || "main" : prev_4);
137
- };
138
- $[6] = threads;
139
- $[7] = t5;
140
- } else t5 = $[7];
141
- const handleDelete = t5;
142
- let t6;
143
- if ($[8] !== onSwitchToNewThread) {
144
- t6 = () => {
145
- const newId = `thread-${Date.now()}`;
146
- setThreads((prev_5) => [...prev_5, {
147
- id: newId,
148
- title: "New Thread",
149
- status: "regular"
150
- }]);
151
- setMainThreadId(newId);
152
- onSwitchToNewThread?.();
153
- };
154
- $[8] = onSwitchToNewThread;
155
- $[9] = t6;
156
- } else t6 = $[9];
157
- const handleSwitchToNewThread = t6;
158
- let t7;
159
- if ($[10] !== mainThreadId || $[11] !== threadFactory) {
160
- t7 = threadFactory(mainThreadId);
161
- $[10] = mainThreadId;
162
- $[11] = threadFactory;
163
- $[12] = t7;
164
- } else t7 = $[12];
165
- const mainThreadClient = useClientResource(t7);
166
- let t8;
167
- if ($[13] !== handleDelete || $[14] !== handleSwitchToThread || $[15] !== mainThreadClient.state || $[16] !== mainThreadId || $[17] !== threads) {
168
- let t9;
169
- if ($[19] !== handleDelete || $[20] !== handleSwitchToThread || $[21] !== mainThreadClient.state || $[22] !== mainThreadId) {
170
- t9 = (t_5) => withKey(t_5.id, ThreadListItemClient({
171
- data: t_5,
172
- isRunning: t_5.id === mainThreadId && mainThreadClient.state.isRunning,
173
- onSwitchTo: () => handleSwitchToThread(t_5.id),
174
- onRename: (title_0) => handleRename(t_5.id, title_0),
175
- onUpdateCustom: (custom_0) => handleUpdateCustom(t_5.id, custom_0),
176
- onArchive: () => handleArchive(t_5.id),
177
- onUnarchive: () => handleUnarchive(t_5.id),
178
- onDelete: () => handleDelete(t_5.id)
179
- }));
180
- $[19] = handleDelete;
181
- $[20] = handleSwitchToThread;
182
- $[21] = mainThreadClient.state;
183
- $[22] = mainThreadId;
184
- $[23] = t9;
185
- } else t9 = $[23];
186
- t8 = threads.map(t9);
187
- $[13] = handleDelete;
188
- $[14] = handleSwitchToThread;
189
- $[15] = mainThreadClient.state;
190
- $[16] = mainThreadId;
191
- $[17] = threads;
192
- $[18] = t8;
193
- } else t8 = $[18];
194
- const threadListItems = useClientLookup(t8);
195
- let t10;
196
- let t11;
197
- let t12;
198
- let t13;
199
- let t14;
200
- let t15;
201
- let t9;
202
- if ($[24] !== mainThreadId || $[25] !== threads) {
203
- const regularThreads = threads.filter(_temp4);
204
- const archivedThreads = threads.filter(_temp5);
205
- t9 = mainThreadId;
206
- t10 = null;
207
- t11 = false;
208
- t12 = false;
209
- t13 = false;
210
- t14 = regularThreads.map(_temp6);
211
- t15 = archivedThreads.map(_temp7);
212
- $[24] = mainThreadId;
213
- $[25] = threads;
214
- $[26] = t10;
215
- $[27] = t11;
216
- $[28] = t12;
217
- $[29] = t13;
218
- $[30] = t14;
219
- $[31] = t15;
220
- $[32] = t9;
221
- } else {
222
- t10 = $[26];
223
- t11 = $[27];
224
- t12 = $[28];
225
- t13 = $[29];
226
- t14 = $[30];
227
- t15 = $[31];
228
- t9 = $[32];
229
- }
230
- let t16;
231
- if ($[33] !== mainThreadClient.state || $[34] !== t10 || $[35] !== t11 || $[36] !== t12 || $[37] !== t13 || $[38] !== t14 || $[39] !== t15 || $[40] !== t9 || $[41] !== threadListItems.state) {
232
- t16 = {
233
- mainThreadId: t9,
234
- newThreadId: t10,
235
- isLoading: t11,
236
- isLoadingMore: t12,
237
- hasMore: t13,
238
- threadIds: t14,
239
- archivedThreadIds: t15,
240
- threadItems: threadListItems.state,
241
- main: mainThreadClient.state
242
- };
243
- $[33] = mainThreadClient.state;
244
- $[34] = t10;
245
- $[35] = t11;
246
- $[36] = t12;
247
- $[37] = t13;
248
- $[38] = t14;
249
- $[39] = t15;
250
- $[40] = t9;
251
- $[41] = threadListItems.state;
252
- $[42] = t16;
253
- } else t16 = $[42];
254
- const state = t16;
255
- let t17;
256
- if ($[43] !== state) {
257
- t17 = () => state;
258
- $[43] = state;
259
- $[44] = t17;
260
- } else t17 = $[44];
261
- let t18;
262
- if ($[45] !== mainThreadId || $[46] !== threadListItems || $[47] !== threads) {
263
- t18 = (selector) => {
264
- if (selector === "main") {
265
- const index = threads.findIndex((t_10) => t_10.id === mainThreadId);
266
- return threadListItems.get({ index: index === -1 ? 0 : index });
267
- }
268
- if ("id" in selector) {
269
- const index_0 = threads.findIndex((t_11) => t_11.id === selector.id);
270
- return threadListItems.get({ index: index_0 });
271
- }
272
- return threadListItems.get(selector);
273
- };
274
- $[45] = mainThreadId;
275
- $[46] = threadListItems;
276
- $[47] = threads;
277
- $[48] = t18;
278
- } else t18 = $[48];
279
- let t19;
280
- if ($[49] !== mainThreadClient.methods) {
281
- t19 = () => mainThreadClient.methods;
282
- $[49] = mainThreadClient.methods;
283
- $[50] = t19;
284
- } else t19 = $[50];
285
- let t20;
286
- if ($[51] !== handleSwitchToNewThread || $[52] !== handleSwitchToThread || $[53] !== t17 || $[54] !== t18 || $[55] !== t19) {
287
- t20 = {
288
- getState: t17,
289
- switchToThread: handleSwitchToThread,
290
- switchToNewThread: handleSwitchToNewThread,
291
- getLoadThreadsPromise: _temp8,
292
- reload: _temp9,
293
- reloadMainThread: _temp0,
294
- loadMore: _temp1,
295
- item: t18,
296
- thread: t19
297
- };
298
- $[51] = handleSwitchToNewThread;
299
- $[52] = handleSwitchToThread;
300
- $[53] = t17;
301
- $[54] = t18;
302
- $[55] = t19;
303
- $[56] = t20;
304
- } else t20 = $[56];
305
- return t20;
306
- };
307
- const InMemoryThreadList = resource(useInMemoryThreadList);
308
- attachTransformScopes(useInMemoryThreadList, (scopes, parent) => {
309
- scopes.thread ??= Derived({
310
- source: "threads",
311
- query: { type: "main" },
312
- get: (aui) => aui.threads.thread("main")
313
- });
314
- scopes.threadListItem ??= Derived({
315
- source: "threads",
316
- query: { type: "main" },
317
- get: (aui) => aui.threads.item("main")
318
- });
319
- scopes.composer ??= Derived({
320
- source: "thread",
321
- query: {},
322
- get: (aui) => aui.threads.thread("main").composer()
323
- });
324
- if (!scopes.modelContext && parent.modelContext.source === null) scopes.modelContext = ModelContext();
325
- if (!scopes.tools && parent.tools.source === null) scopes.tools = Tools({});
326
- if (!scopes.dataRenderers && parent.dataRenderers.source === null) scopes.dataRenderers = DataRenderers();
327
- if (!scopes.suggestions && parent.suggestions.source === null) scopes.suggestions = Suggestions();
328
- });
329
- function _temp() {}
330
- function _temp2() {}
331
- function _temp3() {
332
- return [{
333
- id: "main",
334
- title: "Main Thread",
335
- status: "regular"
336
- }];
337
- }
338
- function _temp4(t_6) {
339
- return t_6.status === "regular";
340
- }
341
- function _temp5(t_7) {
342
- return t_7.status === "archived";
343
- }
344
- function _temp6(t_8) {
345
- return t_8.id;
346
- }
347
- function _temp7(t_9) {
348
- return t_9.id;
349
- }
350
- function _temp8() {
351
- return RESOLVED_PROMISE;
352
- }
353
- function _temp9() {
354
- return RESOLVED_PROMISE;
355
- }
356
- function _temp0() {
357
- return RESOLVED_PROMISE;
358
- }
359
- function _temp1() {
360
- return RESOLVED_PROMISE;
361
- }
362
- //#endregion
363
- export { InMemoryThreadList };
364
-
365
- //# sourceMappingURL=InMemoryThreadList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InMemoryThreadList.js","names":["useState","useMemo","resource","withKey","ResourceElement","ClientOutput","useClientLookup","Derived","attachTransformScopes","useClientResource","ModelContext","Suggestions","Tools","DataRenderers","RESOLVED_PROMISE","Promise","resolve","InMemoryThreadListProps","thread","threadId","onSwitchToThread","onSwitchToNewThread","ThreadData","id","title","status","custom","Record","useThreadListItemClient","props","$","_c","data","isRunning","onSwitchTo","onRename","onUpdateCustom","onArchive","onUnarchive","onDelete","t0","remoteId","undefined","externalId","state","t1","t2","t3","getState","switchTo","rename","updateCustom","archive","unarchive","delete","generateTitle","_temp","initialize","detach","_temp2","ThreadListItemClient","useInMemoryThreadList","threadFactory","mainThreadId","setMainThreadId","threads","setThreads","_temp3","handleSwitchToThread","Symbol","for","threadId_0","prev","map","t","handleRename","threadId_1","prev_0","t_0","const","handleArchive","threadId_2","prev_1","t_1","handleUnarchive","t4","threadId_3","prev_2","t_2","handleUpdateCustom","t5","threadId_4","prev_3","filter","t_3","prev_4","find","t_4","handleDelete","t6","newId","Date","now","prev_5","handleSwitchToNewThread","t7","mainThreadClient","t8","t9","t_5","title_0","custom_0","threadListItems","t10","t11","t12","t13","t14","t15","regularThreads","_temp4","archivedThreads","_temp5","_temp6","_temp7","t16","newThreadId","isLoading","isLoadingMore","hasMore","threadIds","archivedThreadIds","threadItems","main","t17","t18","selector","index","findIndex","t_10","get","index_0","t_11","t19","methods","t20","switchToThread","switchToNewThread","getLoadThreadsPromise","_temp8","reload","_temp9","reloadMainThread","_temp0","loadMore","_temp1","item","InMemoryThreadList","scopes","parent","source","query","type","aui","threadListItem","composer","modelContext","tools","dataRenderers","suggestions","t_6","t_7","t_8","t_9"],"sources":["../../src/client/InMemoryThreadList.ts"],"sourcesContent":["import { useState, useMemo } from \"react\";\nimport { resource, withKey, type ResourceElement } from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n useClientLookup,\n Derived,\n attachTransformScopes,\n useClientResource,\n} from \"@assistant-ui/store\";\n\nimport { ModelContext, Suggestions } from \"@assistant-ui/core/store\";\nimport { Tools, DataRenderers } from \"@assistant-ui/core/react\";\n\nconst RESOLVED_PROMISE = Promise.resolve();\n\nexport type InMemoryThreadListProps = {\n thread: (threadId: string) => ResourceElement<ClientOutput<\"thread\">>;\n onSwitchToThread?: (threadId: string) => void;\n onSwitchToNewThread?: () => void;\n};\n\ntype ThreadData = {\n id: string;\n title?: string;\n status: \"regular\" | \"archived\";\n custom?: Record<string, unknown> | undefined;\n};\n\n// ThreadListItem Client\nconst useThreadListItemClient = (props: {\n data: ThreadData;\n isRunning: boolean;\n onSwitchTo: () => void;\n onRename: (title: string) => void;\n onUpdateCustom: (custom: Record<string, unknown> | undefined) => void;\n onArchive: () => void;\n onUnarchive: () => void;\n onDelete: () => void;\n}): ClientOutput<\"threadListItem\"> => {\n const {\n data,\n isRunning,\n onSwitchTo,\n onRename,\n onUpdateCustom,\n onArchive,\n onUnarchive,\n onDelete,\n } = props;\n const state = useMemo(\n () => ({\n id: data.id,\n remoteId: undefined,\n externalId: undefined,\n title: data.title,\n status: data.status,\n custom: data.custom,\n isRunning,\n }),\n [data.id, data.title, data.status, data.custom, isRunning],\n );\n\n return {\n getState: () => state,\n switchTo: onSwitchTo,\n rename: onRename,\n updateCustom: onUpdateCustom,\n archive: onArchive,\n unarchive: onUnarchive,\n delete: onDelete,\n generateTitle: () => {},\n initialize: async () => ({ remoteId: data.id, externalId: undefined }),\n detach: () => {},\n };\n};\n\nconst ThreadListItemClient = resource(useThreadListItemClient);\n\n// InMemoryThreadList Client\nconst useInMemoryThreadList = (\n props: InMemoryThreadListProps,\n): ClientOutput<\"threads\"> => {\n const {\n thread: threadFactory,\n onSwitchToThread,\n onSwitchToNewThread,\n } = props;\n\n const [mainThreadId, setMainThreadId] = useState(\"main\");\n const [threads, setThreads] = useState<readonly ThreadData[]>(() => [\n { id: \"main\", title: \"Main Thread\", status: \"regular\" },\n ]);\n\n const handleSwitchToThread = (threadId: string) => {\n setMainThreadId(threadId);\n onSwitchToThread?.(threadId);\n };\n\n const handleRename = (threadId: string, title: string) => {\n setThreads((prev) =>\n prev.map((t) => (t.id === threadId ? { ...t, title } : t)),\n );\n };\n\n const handleArchive = (threadId: string) => {\n setThreads((prev) =>\n prev.map((t) =>\n t.id === threadId ? { ...t, status: \"archived\" as const } : t,\n ),\n );\n };\n\n const handleUnarchive = (threadId: string) => {\n setThreads((prev) =>\n prev.map((t) =>\n t.id === threadId ? { ...t, status: \"regular\" as const } : t,\n ),\n );\n };\n\n const handleUpdateCustom = (\n threadId: string,\n custom: Record<string, unknown> | undefined,\n ) => {\n setThreads((prev) =>\n prev.map((t) => (t.id === threadId ? { ...t, custom } : t)),\n );\n };\n\n const handleDelete = (threadId: string) => {\n setThreads((prev) => prev.filter((t) => t.id !== threadId));\n setMainThreadId((prev) =>\n prev === threadId\n ? threads.find((t) => t.id !== threadId)?.id || \"main\"\n : prev,\n );\n };\n\n const handleSwitchToNewThread = () => {\n const newId = `thread-${Date.now()}`;\n setThreads((prev) => [\n ...prev,\n { id: newId, title: \"New Thread\", status: \"regular\" },\n ]);\n setMainThreadId(newId);\n onSwitchToNewThread?.();\n };\n\n // Only the main thread is mounted, so it is the only thread that can run.\n const mainThreadClient = useClientResource(threadFactory(mainThreadId));\n\n const threadListItems = useClientLookup(\n threads.map((t) =>\n withKey(\n t.id,\n ThreadListItemClient({\n data: t,\n isRunning: t.id === mainThreadId && mainThreadClient.state.isRunning,\n onSwitchTo: () => handleSwitchToThread(t.id),\n onRename: (title) => handleRename(t.id, title),\n onUpdateCustom: (custom) => handleUpdateCustom(t.id, custom),\n onArchive: () => handleArchive(t.id),\n onUnarchive: () => handleUnarchive(t.id),\n onDelete: () => handleDelete(t.id),\n }),\n ),\n ),\n );\n\n const state = useMemo(() => {\n const regularThreads = threads.filter((t) => t.status === \"regular\");\n const archivedThreads = threads.filter((t) => t.status === \"archived\");\n\n return {\n mainThreadId,\n newThreadId: null,\n isLoading: false,\n isLoadingMore: false,\n hasMore: false,\n threadIds: regularThreads.map((t) => t.id),\n archivedThreadIds: archivedThreads.map((t) => t.id),\n threadItems: threadListItems.state,\n main: mainThreadClient.state,\n };\n }, [mainThreadId, threads, threadListItems.state, mainThreadClient.state]);\n\n return {\n getState: () => state,\n switchToThread: handleSwitchToThread,\n switchToNewThread: handleSwitchToNewThread,\n getLoadThreadsPromise: () => RESOLVED_PROMISE,\n reload: () => RESOLVED_PROMISE,\n reloadMainThread: () => RESOLVED_PROMISE,\n loadMore: () => RESOLVED_PROMISE,\n item: (selector) => {\n if (selector === \"main\") {\n const index = threads.findIndex((t) => t.id === mainThreadId);\n return threadListItems.get({ index: index === -1 ? 0 : index });\n }\n if (\"id\" in selector) {\n const index = threads.findIndex((t) => t.id === selector.id);\n return threadListItems.get({ index });\n }\n return threadListItems.get(selector);\n },\n thread: () => mainThreadClient.methods,\n };\n};\n\nexport const InMemoryThreadList = resource(useInMemoryThreadList);\n\nattachTransformScopes(useInMemoryThreadList, (scopes, parent) => {\n scopes.thread ??= Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads.thread(\"main\"),\n });\n scopes.threadListItem ??= Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads.item(\"main\"),\n });\n scopes.composer ??= Derived({\n source: \"thread\",\n query: {},\n get: (aui) => aui.threads.thread(\"main\").composer(),\n });\n\n if (!scopes.modelContext && parent.modelContext.source === null) {\n scopes.modelContext = ModelContext();\n }\n if (!scopes.tools && parent.tools.source === null) {\n scopes.tools = Tools({});\n }\n if (!scopes.dataRenderers && parent.dataRenderers.source === null) {\n scopes.dataRenderers = DataRenderers();\n }\n if (!scopes.suggestions && parent.suggestions.source === null) {\n scopes.suggestions = Suggestions();\n }\n});\n"],"mappings":"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"}
@@ -1,119 +0,0 @@
1
- import { ExportedMessageRepositoryItem } from "../runtime-cores/utils/MessageRepository.js";
2
- import { CloudMessage } from "assistant-cloud";
3
- import { CompleteAttachment, MessageStatus, SourceProviderMetadata, ThreadMessage, ToolApprovalOption } from "@assistant-ui/core";
4
- import { ReadonlyJSONObject, ReadonlyJSONValue } from "assistant-stream/utils";
5
- //#region src/legacy-runtime/cloud/auiV0.d.ts
6
- type AuiV0ToolApproval = {
7
- readonly id: string;
8
- readonly approved?: boolean;
9
- readonly reason?: string;
10
- readonly isAutomatic?: boolean;
11
- readonly options?: readonly ToolApprovalOption[];
12
- readonly optionId?: string;
13
- readonly resolution?: "cancelled" | "expired";
14
- };
15
- type AuiV0MessagePart = {
16
- readonly type: "text";
17
- readonly text: string;
18
- } | {
19
- readonly type: "reasoning";
20
- readonly text: string;
21
- readonly unstable_summary?: string;
22
- } | {
23
- readonly type: "source";
24
- readonly sourceType: "url";
25
- readonly id: string;
26
- readonly url: string;
27
- readonly title?: string;
28
- readonly providerMetadata?: SourceProviderMetadata;
29
- } | {
30
- readonly type: "source";
31
- readonly sourceType: "document";
32
- readonly id: string;
33
- readonly title: string;
34
- readonly mediaType: string;
35
- readonly filename?: string;
36
- readonly providerMetadata?: SourceProviderMetadata;
37
- } | {
38
- readonly type: "tool-call";
39
- readonly toolCallId: string;
40
- readonly toolName: string;
41
- readonly args: ReadonlyJSONObject;
42
- readonly result?: ReadonlyJSONValue;
43
- readonly isError?: true;
44
- readonly approval?: AuiV0ToolApproval;
45
- } | {
46
- readonly type: "tool-call";
47
- readonly toolCallId: string;
48
- readonly toolName: string;
49
- readonly argsText: string;
50
- readonly result?: ReadonlyJSONValue;
51
- readonly isError?: true;
52
- readonly approval?: AuiV0ToolApproval;
53
- } | {
54
- readonly type: "image";
55
- readonly image: string;
56
- } | {
57
- readonly type: "file";
58
- readonly data: string;
59
- readonly mimeType: string;
60
- readonly filename?: string;
61
- readonly sourceType?: "url" | "id";
62
- };
63
- type AuiV0AttachmentPart = {
64
- readonly type: "text";
65
- readonly text: string;
66
- } | {
67
- readonly type: "image";
68
- readonly image: string;
69
- readonly filename?: string;
70
- } | {
71
- readonly type: "file";
72
- readonly data: string;
73
- readonly mimeType: string;
74
- readonly filename?: string;
75
- readonly sourceType?: "url" | "id";
76
- } | {
77
- readonly type: "audio";
78
- readonly audio: {
79
- readonly data: string;
80
- readonly format: "mp3" | "wav";
81
- };
82
- } | {
83
- readonly type: "data";
84
- readonly name: string;
85
- readonly data: ReadonlyJSONValue;
86
- };
87
- type AuiV0Attachment = {
88
- readonly id: string;
89
- readonly type: CompleteAttachment["type"];
90
- readonly name: string;
91
- readonly contentType?: string;
92
- readonly status: CompleteAttachment["status"];
93
- readonly content: readonly AuiV0AttachmentPart[];
94
- };
95
- type AuiV0Message = {
96
- readonly role: "assistant" | "user" | "system";
97
- readonly status?: MessageStatus;
98
- readonly content: readonly AuiV0MessagePart[];
99
- readonly attachments?: readonly AuiV0Attachment[];
100
- readonly metadata: {
101
- readonly unstable_state?: ReadonlyJSONValue;
102
- readonly unstable_annotations: readonly ReadonlyJSONValue[];
103
- readonly unstable_data: readonly ReadonlyJSONValue[];
104
- readonly steps: readonly {
105
- readonly usage?: {
106
- readonly inputTokens: number;
107
- readonly outputTokens: number;
108
- };
109
- }[];
110
- readonly custom: ReadonlyJSONObject;
111
- };
112
- };
113
- declare function auiV0Encode(message: ThreadMessage): AuiV0Message;
114
- declare function auiV0Decode(cloudMessage: CloudMessage & {
115
- format: "aui/v0";
116
- }): ExportedMessageRepositoryItem;
117
- //#endregion
118
- export { auiV0Decode, auiV0Encode };
119
- //# sourceMappingURL=auiV0.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auiV0.d.ts","names":[],"sources":["../../../src/legacy-runtime/cloud/auiV0.ts"],"mappings":";;;;;KAgBK;WACM;WACA;WACA;WACA;WACA,mBAAmB;WACnB;WACA;;KAGN;WAEU;WACA;;WAGA;WACA;WACA;;WAGA;WACA;WACA;WACA;WACA;WACA,mBAAmB;;WAGnB;WACA;WACA;WACA;WACA;WACA;WACA,mBAAmB;;WAGnB;WACA;WACA;WACA,MAAM;WACN,SAAS;WACT;WACA,WAAW;;WAGX;WACA;WACA;WACA;WACA,SAAS;WACT;WACA,WAAW;;WAGX;WACA;;WAGA;WACA;WACA;WACA;WACA;;KAGV;WAEU;WACA;;WAGA;WACA;WACA;;WAGA;WACA;WACA;WACA;WACA;;WAGA;WACA;aACE;aACA;;;WAIF;WACA;WACA,MAAM;;KAGhB;WACM;WACA,MAAM;WACN;WACA;WACA,QAAQ;WACR,kBAAkB;;KAGxB;WACM;WACA,SAAS;WACT,kBAAkB;WAClB,uBAAuB;WACvB;aACE,iBAAiB;aACjB,+BAA+B;aAC/B,wBAAwB;aACxB;eACE;iBACE;iBACA;;;aAGJ,QAAQ;;;iBA2EL,YAAY,SAAS,gBAAgB;iBAoGrC,YACd,cAAc;EAAiB;IAC9B"}
@@ -1,137 +0,0 @@
1
- import { fromThreadMessageLike } from "../runtime-cores/external-store/ThreadMessageLike.js";
2
- import { isJSONValue } from "@assistant-ui/core/internal";
3
- //#region src/legacy-runtime/cloud/auiV0.ts
4
- const encodeAttachmentPart = (part) => {
5
- const type = part.type;
6
- switch (type) {
7
- case "text": return {
8
- type: "text",
9
- text: part.text
10
- };
11
- case "image": return {
12
- type: "image",
13
- image: part.image,
14
- ...part.filename != null ? { filename: part.filename } : void 0
15
- };
16
- case "file": return {
17
- type: "file",
18
- data: part.data,
19
- mimeType: part.mimeType,
20
- ...part.filename != null ? { filename: part.filename } : void 0,
21
- ...part.sourceType != null ? { sourceType: part.sourceType } : void 0
22
- };
23
- case "audio": return {
24
- type: "audio",
25
- audio: {
26
- data: part.audio.data,
27
- format: part.audio.format
28
- }
29
- };
30
- case "data":
31
- if (!isJSONValue(part.data)) console.warn(`attachment data is not JSON! ${JSON.stringify(part)}`);
32
- return {
33
- type: "data",
34
- name: part.name,
35
- data: part.data
36
- };
37
- default: throw new Error(`Attachment part type not supported by aui/v0: ${type}`);
38
- }
39
- };
40
- const encodeAttachments = (message) => {
41
- if (message.role !== "user" || message.attachments.length === 0) return;
42
- return message.attachments.map(({ id, type, name, contentType, status, content }) => ({
43
- id,
44
- type,
45
- name,
46
- status,
47
- ...contentType != null ? { contentType } : void 0,
48
- content: content.map(encodeAttachmentPart)
49
- }));
50
- };
51
- function auiV0Encode(message) {
52
- const status = message.status?.type === "running" ? {
53
- type: "incomplete",
54
- reason: "cancelled"
55
- } : message.status;
56
- const attachments = encodeAttachments(message);
57
- return {
58
- role: message.role,
59
- content: message.content.map((part) => {
60
- const type = part.type;
61
- switch (type) {
62
- case "text": return {
63
- type: "text",
64
- text: part.text
65
- };
66
- case "reasoning": return {
67
- type: "reasoning",
68
- text: part.text,
69
- ...part.unstable_summary !== void 0 ? { unstable_summary: part.unstable_summary } : void 0
70
- };
71
- case "source":
72
- if (part.sourceType === "url") return {
73
- type: "source",
74
- sourceType: "url",
75
- id: part.id,
76
- url: part.url,
77
- ...part.title != null ? { title: part.title } : void 0,
78
- ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0
79
- };
80
- return {
81
- type: "source",
82
- sourceType: "document",
83
- id: part.id,
84
- title: part.title,
85
- mediaType: part.mediaType,
86
- ...part.filename != null ? { filename: part.filename } : void 0,
87
- ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0
88
- };
89
- case "tool-call":
90
- if (part.result !== void 0 && !isJSONValue(part.result)) console.warn(`tool-call result is not JSON! ${JSON.stringify(part)}`);
91
- return {
92
- type: "tool-call",
93
- toolCallId: part.toolCallId,
94
- toolName: part.toolName,
95
- ...JSON.stringify(part.args) === part.argsText ? { args: part.args } : { argsText: part.argsText },
96
- ...part.result !== void 0 ? { result: part.result } : void 0,
97
- ...part.isError ? { isError: true } : void 0,
98
- ...part.approval ? { approval: part.approval } : void 0
99
- };
100
- case "image": return {
101
- type: "image",
102
- image: part.image
103
- };
104
- case "file": return {
105
- type: "file",
106
- data: part.data,
107
- mimeType: part.mimeType,
108
- ...part.filename ? { filename: part.filename } : void 0,
109
- ...part.sourceType ? { sourceType: part.sourceType } : void 0
110
- };
111
- default: throw new Error(`Message part type not supported by aui/v0: ${type}`);
112
- }
113
- }),
114
- metadata: message.metadata,
115
- ...status ? { status } : void 0,
116
- ...attachments ? { attachments } : void 0
117
- };
118
- }
119
- function auiV0Decode(cloudMessage) {
120
- const payload = cloudMessage.content;
121
- const message = fromThreadMessageLike({
122
- id: cloudMessage.id,
123
- createdAt: cloudMessage.created_at,
124
- ...payload
125
- }, cloudMessage.id, {
126
- type: "complete",
127
- reason: "unknown"
128
- });
129
- return {
130
- parentId: cloudMessage.parent_id,
131
- message
132
- };
133
- }
134
- //#endregion
135
- export { auiV0Decode, auiV0Encode };
136
-
137
- //# sourceMappingURL=auiV0.js.map