@assistant-ui/react 0.15.2 → 0.15.4

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 (50) hide show
  1. package/dist/client/ExternalThread.d.ts.map +1 -1
  2. package/dist/client/ExternalThread.js +1 -0
  3. package/dist/client/ExternalThread.js.map +1 -1
  4. package/dist/client/InMemoryThreadList.d.ts.map +1 -1
  5. package/dist/client/InMemoryThreadList.js +199 -176
  6. package/dist/client/InMemoryThreadList.js.map +1 -1
  7. package/dist/client/SingleThreadList.d.ts.map +1 -1
  8. package/dist/client/SingleThreadList.js +56 -48
  9. package/dist/client/SingleThreadList.js.map +1 -1
  10. package/dist/legacy-runtime/cloud/auiV0.d.ts +2 -0
  11. package/dist/legacy-runtime/cloud/auiV0.d.ts.map +1 -1
  12. package/dist/legacy-runtime/cloud/auiV0.js +6 -4
  13. package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
  14. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts +6 -0
  15. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts.map +1 -1
  16. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  17. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +20 -15
  18. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  19. package/dist/mcp-apps/McpAppRenderer.d.ts.map +1 -1
  20. package/dist/mcp-apps/McpAppRenderer.js +25 -14
  21. package/dist/mcp-apps/McpAppRenderer.js.map +1 -1
  22. package/dist/mcp-apps/McpAppsRemoteHost.d.ts.map +1 -1
  23. package/dist/mcp-apps/McpAppsRemoteHost.js +17 -6
  24. package/dist/mcp-apps/McpAppsRemoteHost.js.map +1 -1
  25. package/dist/primitives/message/MessagePartsGrouped.d.ts +6 -1
  26. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
  27. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  28. package/dist/primitives/suggestion/SuggestionTrigger.d.ts +4 -2
  29. package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -1
  30. package/dist/primitives/suggestion/SuggestionTrigger.js +21 -42
  31. package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -1
  32. package/dist/primitives/thread/ThreadSuggestion.d.ts +4 -2
  33. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  34. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  35. package/package.json +6 -6
  36. package/src/client/ExternalThread.ts +1 -0
  37. package/src/client/InMemoryThreadList.ts +27 -7
  38. package/src/client/SingleThreadList.ts +10 -2
  39. package/src/legacy-runtime/cloud/auiV0.ts +8 -2
  40. package/src/legacy-runtime/runtime-cores/assistant-transport/types.ts +6 -0
  41. package/src/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.test.tsx +31 -0
  42. package/src/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.ts +26 -17
  43. package/src/mcp-apps/McpAppRenderer.test.tsx +262 -3
  44. package/src/mcp-apps/McpAppRenderer.tsx +27 -15
  45. package/src/mcp-apps/McpAppsRemoteHost.ts +18 -9
  46. package/src/primitives/message/MessagePartsGrouped.tsx +6 -1
  47. package/src/primitives/suggestion/SuggestionTrigger.ts +11 -32
  48. package/src/primitives/thread/ThreadSuggestion.ts +2 -1
  49. package/src/tests/RemoteThreadListRuntime.reloadMainThread.test.tsx +115 -0
  50. package/src/tests/threadListItemIsRunning.test.tsx +198 -0
@@ -7,71 +7,74 @@ import { resource, withKey } from "@assistant-ui/tap";
7
7
  //#region src/client/InMemoryThreadList.ts
8
8
  const RESOLVED_PROMISE = Promise.resolve();
9
9
  const useThreadListItemClient = (props) => {
10
- const $ = c(17);
11
- const { data, onSwitchTo, onUpdateCustom, onArchive, onUnarchive, onDelete } = props;
10
+ const $ = c(19);
11
+ const { data, isRunning, onSwitchTo, onRename, onUpdateCustom, onArchive, onUnarchive, onDelete } = props;
12
12
  let t0;
13
- if ($[0] !== data.custom || $[1] !== data.id || $[2] !== data.status || $[3] !== data.title) {
13
+ if ($[0] !== data.custom || $[1] !== data.id || $[2] !== data.status || $[3] !== data.title || $[4] !== isRunning) {
14
14
  t0 = {
15
15
  id: data.id,
16
16
  remoteId: void 0,
17
17
  externalId: void 0,
18
18
  title: data.title,
19
19
  status: data.status,
20
- custom: data.custom
20
+ custom: data.custom,
21
+ isRunning
21
22
  };
22
23
  $[0] = data.custom;
23
24
  $[1] = data.id;
24
25
  $[2] = data.status;
25
26
  $[3] = data.title;
26
- $[4] = t0;
27
- } else t0 = $[4];
27
+ $[4] = isRunning;
28
+ $[5] = t0;
29
+ } else t0 = $[5];
28
30
  const state = t0;
29
31
  let t1;
30
- if ($[5] !== state) {
32
+ if ($[6] !== state) {
31
33
  t1 = () => state;
32
- $[5] = state;
33
- $[6] = t1;
34
- } else t1 = $[6];
34
+ $[6] = state;
35
+ $[7] = t1;
36
+ } else t1 = $[7];
35
37
  let t2;
36
- if ($[7] !== data.id) {
38
+ if ($[8] !== data.id) {
37
39
  t2 = async () => ({
38
40
  remoteId: data.id,
39
41
  externalId: void 0
40
42
  });
41
- $[7] = data.id;
42
- $[8] = t2;
43
- } else t2 = $[8];
43
+ $[8] = data.id;
44
+ $[9] = t2;
45
+ } else t2 = $[9];
44
46
  let t3;
45
- if ($[9] !== onArchive || $[10] !== onDelete || $[11] !== onSwitchTo || $[12] !== onUnarchive || $[13] !== onUpdateCustom || $[14] !== t1 || $[15] !== t2) {
47
+ if ($[10] !== onArchive || $[11] !== onDelete || $[12] !== onRename || $[13] !== onSwitchTo || $[14] !== onUnarchive || $[15] !== onUpdateCustom || $[16] !== t1 || $[17] !== t2) {
46
48
  t3 = {
47
49
  getState: t1,
48
50
  switchTo: onSwitchTo,
49
- rename: _temp,
51
+ rename: onRename,
50
52
  updateCustom: onUpdateCustom,
51
53
  archive: onArchive,
52
54
  unarchive: onUnarchive,
53
55
  delete: onDelete,
54
- generateTitle: _temp2,
56
+ generateTitle: _temp,
55
57
  initialize: t2,
56
- detach: _temp3
58
+ detach: _temp2
57
59
  };
58
- $[9] = onArchive;
59
- $[10] = onDelete;
60
- $[11] = onSwitchTo;
61
- $[12] = onUnarchive;
62
- $[13] = onUpdateCustom;
63
- $[14] = t1;
64
- $[15] = t2;
65
- $[16] = t3;
66
- } else t3 = $[16];
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];
67
70
  return t3;
68
71
  };
69
72
  const ThreadListItemClient = resource(useThreadListItemClient);
70
73
  const useInMemoryThreadList = (props) => {
71
- const $ = c(53);
74
+ const $ = c(58);
72
75
  const { thread: threadFactory, onSwitchToThread, onSwitchToNewThread } = props;
73
76
  const [mainThreadId, setMainThreadId] = useState("main");
74
- const [threads, setThreads] = useState(_temp4);
77
+ const [threads, setThreads] = useState(_temp3);
75
78
  let t0;
76
79
  if ($[0] !== onSwitchToThread) {
77
80
  t0 = (threadId) => {
@@ -84,56 +87,67 @@ const useInMemoryThreadList = (props) => {
84
87
  const handleSwitchToThread = t0;
85
88
  let t1;
86
89
  if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
87
- t1 = (threadId_0) => {
90
+ t1 = (threadId_0, title) => {
88
91
  setThreads((prev) => prev.map((t) => t.id === threadId_0 ? {
89
92
  ...t,
90
- status: "archived"
93
+ title
91
94
  } : t));
92
95
  };
93
96
  $[2] = t1;
94
97
  } else t1 = $[2];
95
- const handleArchive = t1;
98
+ const handleRename = t1;
96
99
  let t2;
97
100
  if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
98
101
  t2 = (threadId_1) => {
99
102
  setThreads((prev_0) => prev_0.map((t_0) => t_0.id === threadId_1 ? {
100
103
  ...t_0,
101
- status: "regular"
104
+ status: "archived"
102
105
  } : t_0));
103
106
  };
104
107
  $[3] = t2;
105
108
  } else t2 = $[3];
106
- const handleUnarchive = t2;
109
+ const handleArchive = t2;
107
110
  let t3;
108
111
  if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
109
- t3 = (threadId_2, custom) => {
112
+ t3 = (threadId_2) => {
110
113
  setThreads((prev_1) => prev_1.map((t_1) => t_1.id === threadId_2 ? {
111
114
  ...t_1,
112
- custom
115
+ status: "regular"
113
116
  } : t_1));
114
117
  };
115
118
  $[4] = t3;
116
119
  } else t3 = $[4];
117
- const handleUpdateCustom = t3;
120
+ const handleUnarchive = t3;
118
121
  let t4;
119
- if ($[5] !== mainThreadId || $[6] !== threads) {
120
- t4 = (threadId_3) => {
121
- setThreads((prev_2) => prev_2.filter((t_2) => t_2.id !== threadId_3));
122
- if (mainThreadId === threadId_3) {
123
- const remaining = threads.filter((t_3) => t_3.id !== threadId_3);
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] !== mainThreadId || $[7] !== threads) {
134
+ t5 = (threadId_4) => {
135
+ setThreads((prev_3) => prev_3.filter((t_3) => t_3.id !== threadId_4));
136
+ if (mainThreadId === threadId_4) {
137
+ const remaining = threads.filter((t_4) => t_4.id !== threadId_4);
124
138
  setMainThreadId(remaining[0]?.id || "main");
125
139
  }
126
140
  };
127
- $[5] = mainThreadId;
128
- $[6] = threads;
129
- $[7] = t4;
130
- } else t4 = $[7];
131
- const handleDelete = t4;
132
- let t5;
133
- if ($[8] !== onSwitchToNewThread) {
134
- t5 = () => {
141
+ $[6] = mainThreadId;
142
+ $[7] = threads;
143
+ $[8] = t5;
144
+ } else t5 = $[8];
145
+ const handleDelete = t5;
146
+ let t6;
147
+ if ($[9] !== onSwitchToNewThread) {
148
+ t6 = () => {
135
149
  const newId = `thread-${Date.now()}`;
136
- setThreads((prev_3) => [...prev_3, {
150
+ setThreads((prev_4) => [...prev_4, {
137
151
  id: newId,
138
152
  title: "New Thread",
139
153
  status: "regular"
@@ -141,151 +155,158 @@ const useInMemoryThreadList = (props) => {
141
155
  setMainThreadId(newId);
142
156
  onSwitchToNewThread?.();
143
157
  };
144
- $[8] = onSwitchToNewThread;
145
- $[9] = t5;
146
- } else t5 = $[9];
147
- const handleSwitchToNewThread = t5;
148
- let t6;
149
- if ($[10] !== handleDelete || $[11] !== handleSwitchToThread || $[12] !== threads) {
150
- let t7;
151
- if ($[14] !== handleDelete || $[15] !== handleSwitchToThread) {
152
- t7 = (t_4) => withKey(t_4.id, ThreadListItemClient({
153
- data: t_4,
154
- onSwitchTo: () => handleSwitchToThread(t_4.id),
155
- onUpdateCustom: (custom_0) => handleUpdateCustom(t_4.id, custom_0),
156
- onArchive: () => handleArchive(t_4.id),
157
- onUnarchive: () => handleUnarchive(t_4.id),
158
- onDelete: () => handleDelete(t_4.id)
159
- }));
160
- $[14] = handleDelete;
161
- $[15] = handleSwitchToThread;
162
- $[16] = t7;
163
- } else t7 = $[16];
164
- t6 = threads.map(t7);
165
- $[10] = handleDelete;
166
- $[11] = handleSwitchToThread;
167
- $[12] = threads;
168
- $[13] = t6;
169
- } else t6 = $[13];
170
- const threadListItems = useClientLookup(t6);
158
+ $[9] = onSwitchToNewThread;
159
+ $[10] = t6;
160
+ } else t6 = $[10];
161
+ const handleSwitchToNewThread = t6;
171
162
  let t7;
172
- if ($[17] !== mainThreadId || $[18] !== threadFactory) {
163
+ if ($[11] !== mainThreadId || $[12] !== threadFactory) {
173
164
  t7 = threadFactory(mainThreadId);
174
- $[17] = mainThreadId;
175
- $[18] = threadFactory;
176
- $[19] = t7;
177
- } else t7 = $[19];
165
+ $[11] = mainThreadId;
166
+ $[12] = threadFactory;
167
+ $[13] = t7;
168
+ } else t7 = $[13];
178
169
  const mainThreadClient = useClientResource(t7);
170
+ let t8;
171
+ if ($[14] !== handleDelete || $[15] !== handleSwitchToThread || $[16] !== mainThreadClient.state || $[17] !== mainThreadId || $[18] !== threads) {
172
+ let t9;
173
+ if ($[20] !== handleDelete || $[21] !== handleSwitchToThread || $[22] !== mainThreadClient.state || $[23] !== mainThreadId) {
174
+ t9 = (t_5) => withKey(t_5.id, ThreadListItemClient({
175
+ data: t_5,
176
+ isRunning: t_5.id === mainThreadId && mainThreadClient.state.isRunning,
177
+ onSwitchTo: () => handleSwitchToThread(t_5.id),
178
+ onRename: (title_0) => handleRename(t_5.id, title_0),
179
+ onUpdateCustom: (custom_0) => handleUpdateCustom(t_5.id, custom_0),
180
+ onArchive: () => handleArchive(t_5.id),
181
+ onUnarchive: () => handleUnarchive(t_5.id),
182
+ onDelete: () => handleDelete(t_5.id)
183
+ }));
184
+ $[20] = handleDelete;
185
+ $[21] = handleSwitchToThread;
186
+ $[22] = mainThreadClient.state;
187
+ $[23] = mainThreadId;
188
+ $[24] = t9;
189
+ } else t9 = $[24];
190
+ t8 = threads.map(t9);
191
+ $[14] = handleDelete;
192
+ $[15] = handleSwitchToThread;
193
+ $[16] = mainThreadClient.state;
194
+ $[17] = mainThreadId;
195
+ $[18] = threads;
196
+ $[19] = t8;
197
+ } else t8 = $[19];
198
+ const threadListItems = useClientLookup(t8);
179
199
  let t10;
180
200
  let t11;
181
201
  let t12;
182
202
  let t13;
183
203
  let t14;
184
- let t8;
204
+ let t15;
185
205
  let t9;
186
- if ($[20] !== mainThreadId || $[21] !== threads) {
187
- const regularThreads = threads.filter(_temp5);
188
- const archivedThreads = threads.filter(_temp6);
189
- t8 = mainThreadId;
190
- t9 = null;
191
- t10 = false;
206
+ if ($[25] !== mainThreadId || $[26] !== threads) {
207
+ const regularThreads = threads.filter(_temp4);
208
+ const archivedThreads = threads.filter(_temp5);
209
+ t9 = mainThreadId;
210
+ t10 = null;
192
211
  t11 = false;
193
212
  t12 = false;
194
- t13 = regularThreads.map(_temp7);
195
- t14 = archivedThreads.map(_temp8);
196
- $[20] = mainThreadId;
197
- $[21] = threads;
198
- $[22] = t10;
199
- $[23] = t11;
200
- $[24] = t12;
201
- $[25] = t13;
202
- $[26] = t14;
203
- $[27] = t8;
204
- $[28] = t9;
213
+ t13 = false;
214
+ t14 = regularThreads.map(_temp6);
215
+ t15 = archivedThreads.map(_temp7);
216
+ $[25] = mainThreadId;
217
+ $[26] = threads;
218
+ $[27] = t10;
219
+ $[28] = t11;
220
+ $[29] = t12;
221
+ $[30] = t13;
222
+ $[31] = t14;
223
+ $[32] = t15;
224
+ $[33] = t9;
205
225
  } else {
206
- t10 = $[22];
207
- t11 = $[23];
208
- t12 = $[24];
209
- t13 = $[25];
210
- t14 = $[26];
211
- t8 = $[27];
212
- t9 = $[28];
226
+ t10 = $[27];
227
+ t11 = $[28];
228
+ t12 = $[29];
229
+ t13 = $[30];
230
+ t14 = $[31];
231
+ t15 = $[32];
232
+ t9 = $[33];
213
233
  }
214
- let t15;
215
- if ($[29] !== mainThreadClient.state || $[30] !== t10 || $[31] !== t11 || $[32] !== t12 || $[33] !== t13 || $[34] !== t14 || $[35] !== t8 || $[36] !== t9 || $[37] !== threadListItems.state) {
216
- t15 = {
217
- mainThreadId: t8,
218
- newThreadId: t9,
219
- isLoading: t10,
220
- isLoadingMore: t11,
221
- hasMore: t12,
222
- threadIds: t13,
223
- archivedThreadIds: t14,
234
+ let t16;
235
+ if ($[34] !== mainThreadClient.state || $[35] !== t10 || $[36] !== t11 || $[37] !== t12 || $[38] !== t13 || $[39] !== t14 || $[40] !== t15 || $[41] !== t9 || $[42] !== threadListItems.state) {
236
+ t16 = {
237
+ mainThreadId: t9,
238
+ newThreadId: t10,
239
+ isLoading: t11,
240
+ isLoadingMore: t12,
241
+ hasMore: t13,
242
+ threadIds: t14,
243
+ archivedThreadIds: t15,
224
244
  threadItems: threadListItems.state,
225
245
  main: mainThreadClient.state
226
246
  };
227
- $[29] = mainThreadClient.state;
228
- $[30] = t10;
229
- $[31] = t11;
230
- $[32] = t12;
231
- $[33] = t13;
232
- $[34] = t14;
233
- $[35] = t8;
234
- $[36] = t9;
235
- $[37] = threadListItems.state;
236
- $[38] = t15;
237
- } else t15 = $[38];
238
- const state = t15;
239
- let t16;
240
- if ($[39] !== state) {
241
- t16 = () => state;
242
- $[39] = state;
243
- $[40] = t16;
244
- } else t16 = $[40];
247
+ $[34] = mainThreadClient.state;
248
+ $[35] = t10;
249
+ $[36] = t11;
250
+ $[37] = t12;
251
+ $[38] = t13;
252
+ $[39] = t14;
253
+ $[40] = t15;
254
+ $[41] = t9;
255
+ $[42] = threadListItems.state;
256
+ $[43] = t16;
257
+ } else t16 = $[43];
258
+ const state = t16;
245
259
  let t17;
246
- if ($[41] !== mainThreadId || $[42] !== threadListItems || $[43] !== threads) {
247
- t17 = (selector) => {
260
+ if ($[44] !== state) {
261
+ t17 = () => state;
262
+ $[44] = state;
263
+ $[45] = t17;
264
+ } else t17 = $[45];
265
+ let t18;
266
+ if ($[46] !== mainThreadId || $[47] !== threadListItems || $[48] !== threads) {
267
+ t18 = (selector) => {
248
268
  if (selector === "main") {
249
- const index = threads.findIndex((t_9) => t_9.id === mainThreadId);
269
+ const index = threads.findIndex((t_10) => t_10.id === mainThreadId);
250
270
  return threadListItems.get({ index: index === -1 ? 0 : index });
251
271
  }
252
272
  if ("id" in selector) {
253
- const index_0 = threads.findIndex((t_10) => t_10.id === selector.id);
273
+ const index_0 = threads.findIndex((t_11) => t_11.id === selector.id);
254
274
  return threadListItems.get({ index: index_0 });
255
275
  }
256
276
  return threadListItems.get(selector);
257
277
  };
258
- $[41] = mainThreadId;
259
- $[42] = threadListItems;
260
- $[43] = threads;
261
- $[44] = t17;
262
- } else t17 = $[44];
263
- let t18;
264
- if ($[45] !== mainThreadClient.methods) {
265
- t18 = () => mainThreadClient.methods;
266
- $[45] = mainThreadClient.methods;
267
- $[46] = t18;
268
- } else t18 = $[46];
278
+ $[46] = mainThreadId;
279
+ $[47] = threadListItems;
280
+ $[48] = threads;
281
+ $[49] = t18;
282
+ } else t18 = $[49];
269
283
  let t19;
270
- if ($[47] !== handleSwitchToNewThread || $[48] !== handleSwitchToThread || $[49] !== t16 || $[50] !== t17 || $[51] !== t18) {
271
- t19 = {
272
- getState: t16,
284
+ if ($[50] !== mainThreadClient.methods) {
285
+ t19 = () => mainThreadClient.methods;
286
+ $[50] = mainThreadClient.methods;
287
+ $[51] = t19;
288
+ } else t19 = $[51];
289
+ let t20;
290
+ if ($[52] !== handleSwitchToNewThread || $[53] !== handleSwitchToThread || $[54] !== t17 || $[55] !== t18 || $[56] !== t19) {
291
+ t20 = {
292
+ getState: t17,
273
293
  switchToThread: handleSwitchToThread,
274
294
  switchToNewThread: handleSwitchToNewThread,
275
- getLoadThreadsPromise: _temp9,
276
- reload: _temp0,
295
+ getLoadThreadsPromise: _temp8,
296
+ reload: _temp9,
297
+ reloadMainThread: _temp0,
277
298
  loadMore: _temp1,
278
- item: t17,
279
- thread: t18
299
+ item: t18,
300
+ thread: t19
280
301
  };
281
- $[47] = handleSwitchToNewThread;
282
- $[48] = handleSwitchToThread;
283
- $[49] = t16;
284
- $[50] = t17;
285
- $[51] = t18;
286
- $[52] = t19;
287
- } else t19 = $[52];
288
- return t19;
302
+ $[52] = handleSwitchToNewThread;
303
+ $[53] = handleSwitchToThread;
304
+ $[54] = t17;
305
+ $[55] = t18;
306
+ $[56] = t19;
307
+ $[57] = t20;
308
+ } else t20 = $[57];
309
+ return t20;
289
310
  };
290
311
  const InMemoryThreadList = resource(useInMemoryThreadList);
291
312
  attachTransformScopes(useInMemoryThreadList, (scopes, parent) => {
@@ -311,26 +332,28 @@ attachTransformScopes(useInMemoryThreadList, (scopes, parent) => {
311
332
  });
312
333
  function _temp() {}
313
334
  function _temp2() {}
314
- function _temp3() {}
315
- function _temp4() {
335
+ function _temp3() {
316
336
  return [{
317
337
  id: "main",
318
338
  title: "Main Thread",
319
339
  status: "regular"
320
340
  }];
321
341
  }
322
- function _temp5(t_5) {
323
- return t_5.status === "regular";
324
- }
325
- function _temp6(t_6) {
326
- return t_6.status === "archived";
342
+ function _temp4(t_6) {
343
+ return t_6.status === "regular";
327
344
  }
328
- function _temp7(t_7) {
329
- return t_7.id;
345
+ function _temp5(t_7) {
346
+ return t_7.status === "archived";
330
347
  }
331
- function _temp8(t_8) {
348
+ function _temp6(t_8) {
332
349
  return t_8.id;
333
350
  }
351
+ function _temp7(t_9) {
352
+ return t_9.id;
353
+ }
354
+ function _temp8() {
355
+ return RESOLVED_PROMISE;
356
+ }
334
357
  function _temp9() {
335
358
  return RESOLVED_PROMISE;
336
359
  }
@@ -1 +1 @@
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","onSwitchTo","onUpdateCustom","onArchive","onUnarchive","onDelete","t0","remoteId","undefined","externalId","state","t1","t2","t3","getState","switchTo","rename","_temp","updateCustom","archive","unarchive","delete","generateTitle","_temp2","initialize","detach","_temp3","ThreadListItemClient","useInMemoryThreadList","threadFactory","mainThreadId","setMainThreadId","threads","setThreads","_temp4","handleSwitchToThread","Symbol","for","threadId_0","prev","map","t","const","handleArchive","threadId_1","prev_0","t_0","handleUnarchive","threadId_2","prev_1","t_1","handleUpdateCustom","t4","threadId_3","prev_2","filter","t_2","remaining","t_3","handleDelete","t5","newId","Date","now","prev_3","handleSwitchToNewThread","t6","t7","t_4","custom_0","threadListItems","mainThreadClient","t10","t11","t12","t13","t14","t8","t9","regularThreads","_temp5","archivedThreads","_temp6","_temp7","_temp8","t15","newThreadId","isLoading","isLoadingMore","hasMore","threadIds","archivedThreadIds","threadItems","main","t16","t17","selector","index","findIndex","t_9","get","index_0","t_10","t18","methods","t19","switchToThread","switchToNewThread","getLoadThreadsPromise","_temp9","reload","_temp0","loadMore","_temp1","item","InMemoryThreadList","scopes","parent","source","query","type","aui","threadListItem","composer","modelContext","tools","dataRenderers","suggestions","t_5","t_6","t_7","t_8"],"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 onSwitchTo: () => void;\n onUpdateCustom: (custom: Record<string, unknown> | undefined) => void;\n onArchive: () => void;\n onUnarchive: () => void;\n onDelete: () => void;\n}): ClientOutput<\"threadListItem\"> => {\n const { data, onSwitchTo, onUpdateCustom, onArchive, onUnarchive, 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 }),\n [data.id, data.title, data.status, data.custom],\n );\n\n return {\n getState: () => state,\n switchTo: onSwitchTo,\n rename: () => {},\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 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 if (mainThreadId === threadId) {\n const remaining = threads.filter((t) => t.id !== threadId);\n setMainThreadId(remaining[0]?.id || \"main\");\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 const threadListItems = useClientLookup(\n threads.map((t) =>\n withKey(\n t.id,\n ThreadListItemClient({\n data: t,\n onSwitchTo: () => handleSwitchToThread(t.id),\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 // Create the main thread\n const mainThreadClient = useClientResource(threadFactory(mainThreadId));\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 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
+ {"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","remaining","t_4","handleDelete","t6","newId","Date","now","prev_4","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 if (mainThreadId === threadId) {\n const remaining = threads.filter((t) => t.id !== threadId);\n setMainThreadId(remaining[0]?.id || \"main\");\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 +1 @@
1
- {"version":3,"file":"SingleThreadList.d.ts","names":[],"sources":["../../src/client/SingleThreadList.ts"],"mappings":";;KAqCK;EACH,QAAQ;;cAuEG,8CAAgB,SAAA,0BAAA"}
1
+ {"version":3,"file":"SingleThreadList.d.ts","names":[],"sources":["../../src/client/SingleThreadList.ts"],"mappings":";;KA0CK;EACH,QAAQ;;cA0EG,8CAAgB,SAAA,0BAAA"}