@superinterface/react 1.1.7 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index-CGpJFXMu.d.ts +5 -0
- package/dist/index.cjs +3383 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1220 -0
- package/dist/index.d.ts +852 -211
- package/dist/index.js +3117 -1945
- package/dist/index.js.map +1 -1
- package/dist/mutationFns.cjs +517 -0
- package/dist/mutationFns.cjs.map +1 -0
- package/dist/mutationFns.d.cts +35 -0
- package/dist/mutationFns.d.ts +13 -13
- package/dist/mutationFns.js +434 -159
- package/dist/mutationFns.js.map +1 -1
- package/dist/queryFns.cjs +578 -0
- package/dist/queryFns.cjs.map +1 -0
- package/dist/queryFns.d.cts +18 -0
- package/dist/queryFns.d.ts +5 -5
- package/dist/queryFns.js +495 -200
- package/dist/queryFns.js.map +1 -1
- package/dist/types/index.cjs +45 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.cts +37 -0
- package/dist/types/index.d.ts +10 -6
- package/dist/types/index.js +0 -18
- package/dist/types/index.js.map +1 -1
- package/dist/utils.cjs +312 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.cts +23 -0
- package/dist/utils.d.ts +3 -4
- package/dist/utils.js +246 -73
- package/dist/utils.js.map +1 -1
- package/package.json +29 -21
- /package/dist/{index-LPUEY9WE.d.ts → index-CGpJFXMu.d.cts} +0 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,3383 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
function _array_like_to_array(arr, len) {
|
|
3
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
4
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
5
|
+
return arr2;
|
|
6
|
+
}
|
|
7
|
+
function _array_with_holes(arr) {
|
|
8
|
+
if (Array.isArray(arr)) return arr;
|
|
9
|
+
}
|
|
10
|
+
function _array_without_holes(arr) {
|
|
11
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
12
|
+
}
|
|
13
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
14
|
+
try {
|
|
15
|
+
var info = gen[key](arg);
|
|
16
|
+
var value = info.value;
|
|
17
|
+
} catch (error) {
|
|
18
|
+
reject(error);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (info.done) {
|
|
22
|
+
resolve(value);
|
|
23
|
+
} else {
|
|
24
|
+
Promise.resolve(value).then(_next, _throw);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function _async_to_generator(fn) {
|
|
28
|
+
return function() {
|
|
29
|
+
var self = this, args = arguments;
|
|
30
|
+
return new Promise(function(resolve, reject) {
|
|
31
|
+
var gen = fn.apply(self, args);
|
|
32
|
+
function _next(value) {
|
|
33
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
34
|
+
}
|
|
35
|
+
function _throw(err) {
|
|
36
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
37
|
+
}
|
|
38
|
+
_next(undefined);
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function _define_property(obj, key, value) {
|
|
43
|
+
if (key in obj) {
|
|
44
|
+
Object.defineProperty(obj, key, {
|
|
45
|
+
value: value,
|
|
46
|
+
enumerable: true,
|
|
47
|
+
configurable: true,
|
|
48
|
+
writable: true
|
|
49
|
+
});
|
|
50
|
+
} else {
|
|
51
|
+
obj[key] = value;
|
|
52
|
+
}
|
|
53
|
+
return obj;
|
|
54
|
+
}
|
|
55
|
+
function _iterable_to_array(iter) {
|
|
56
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
57
|
+
}
|
|
58
|
+
function _iterable_to_array_limit(arr, i) {
|
|
59
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
60
|
+
if (_i == null) return;
|
|
61
|
+
var _arr = [];
|
|
62
|
+
var _n = true;
|
|
63
|
+
var _d = false;
|
|
64
|
+
var _s, _e;
|
|
65
|
+
try {
|
|
66
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
67
|
+
_arr.push(_s.value);
|
|
68
|
+
if (i && _arr.length === i) break;
|
|
69
|
+
}
|
|
70
|
+
} catch (err) {
|
|
71
|
+
_d = true;
|
|
72
|
+
_e = err;
|
|
73
|
+
} finally{
|
|
74
|
+
try {
|
|
75
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
76
|
+
} finally{
|
|
77
|
+
if (_d) throw _e;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return _arr;
|
|
81
|
+
}
|
|
82
|
+
function _non_iterable_rest() {
|
|
83
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
84
|
+
}
|
|
85
|
+
function _non_iterable_spread() {
|
|
86
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
87
|
+
}
|
|
88
|
+
function _object_spread(target) {
|
|
89
|
+
for(var i = 1; i < arguments.length; i++){
|
|
90
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
91
|
+
var ownKeys = Object.keys(source);
|
|
92
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
93
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
94
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
ownKeys.forEach(function(key) {
|
|
98
|
+
_define_property(target, key, source[key]);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return target;
|
|
102
|
+
}
|
|
103
|
+
function ownKeys(object, enumerableOnly) {
|
|
104
|
+
var keys = Object.keys(object);
|
|
105
|
+
if (Object.getOwnPropertySymbols) {
|
|
106
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
107
|
+
if (enumerableOnly) {
|
|
108
|
+
symbols = symbols.filter(function(sym) {
|
|
109
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
keys.push.apply(keys, symbols);
|
|
113
|
+
}
|
|
114
|
+
return keys;
|
|
115
|
+
}
|
|
116
|
+
function _object_spread_props(target, source) {
|
|
117
|
+
source = source != null ? source : {};
|
|
118
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
119
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
120
|
+
} else {
|
|
121
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
122
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
return target;
|
|
126
|
+
}
|
|
127
|
+
function _object_without_properties(source, excluded) {
|
|
128
|
+
if (source == null) return {};
|
|
129
|
+
var target = _object_without_properties_loose(source, excluded);
|
|
130
|
+
var key, i;
|
|
131
|
+
if (Object.getOwnPropertySymbols) {
|
|
132
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
133
|
+
for(i = 0; i < sourceSymbolKeys.length; i++){
|
|
134
|
+
key = sourceSymbolKeys[i];
|
|
135
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
136
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
137
|
+
target[key] = source[key];
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return target;
|
|
141
|
+
}
|
|
142
|
+
function _object_without_properties_loose(source, excluded) {
|
|
143
|
+
if (source == null) return {};
|
|
144
|
+
var target = {};
|
|
145
|
+
var sourceKeys = Object.keys(source);
|
|
146
|
+
var key, i;
|
|
147
|
+
for(i = 0; i < sourceKeys.length; i++){
|
|
148
|
+
key = sourceKeys[i];
|
|
149
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
150
|
+
target[key] = source[key];
|
|
151
|
+
}
|
|
152
|
+
return target;
|
|
153
|
+
}
|
|
154
|
+
function _sliced_to_array(arr, i) {
|
|
155
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
156
|
+
}
|
|
157
|
+
function _to_array(arr) {
|
|
158
|
+
return _array_with_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_rest();
|
|
159
|
+
}
|
|
160
|
+
function _to_consumable_array(arr) {
|
|
161
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
162
|
+
}
|
|
163
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
164
|
+
if (!o) return;
|
|
165
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
166
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
167
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
168
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
169
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
170
|
+
}
|
|
171
|
+
function _ts_generator(thisArg, body) {
|
|
172
|
+
var f, y, t, g, _ = {
|
|
173
|
+
label: 0,
|
|
174
|
+
sent: function() {
|
|
175
|
+
if (t[0] & 1) throw t[1];
|
|
176
|
+
return t[1];
|
|
177
|
+
},
|
|
178
|
+
trys: [],
|
|
179
|
+
ops: []
|
|
180
|
+
};
|
|
181
|
+
return g = {
|
|
182
|
+
next: verb(0),
|
|
183
|
+
"throw": verb(1),
|
|
184
|
+
"return": verb(2)
|
|
185
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
186
|
+
return this;
|
|
187
|
+
}), g;
|
|
188
|
+
function verb(n) {
|
|
189
|
+
return function(v) {
|
|
190
|
+
return step([
|
|
191
|
+
n,
|
|
192
|
+
v
|
|
193
|
+
]);
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
function step(op) {
|
|
197
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
198
|
+
while(_)try {
|
|
199
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
200
|
+
if (y = 0, t) op = [
|
|
201
|
+
op[0] & 2,
|
|
202
|
+
t.value
|
|
203
|
+
];
|
|
204
|
+
switch(op[0]){
|
|
205
|
+
case 0:
|
|
206
|
+
case 1:
|
|
207
|
+
t = op;
|
|
208
|
+
break;
|
|
209
|
+
case 4:
|
|
210
|
+
_.label++;
|
|
211
|
+
return {
|
|
212
|
+
value: op[1],
|
|
213
|
+
done: false
|
|
214
|
+
};
|
|
215
|
+
case 5:
|
|
216
|
+
_.label++;
|
|
217
|
+
y = op[1];
|
|
218
|
+
op = [
|
|
219
|
+
0
|
|
220
|
+
];
|
|
221
|
+
continue;
|
|
222
|
+
case 7:
|
|
223
|
+
op = _.ops.pop();
|
|
224
|
+
_.trys.pop();
|
|
225
|
+
continue;
|
|
226
|
+
default:
|
|
227
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
228
|
+
_ = 0;
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
232
|
+
_.label = op[1];
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
236
|
+
_.label = t[1];
|
|
237
|
+
t = op;
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
if (t && _.label < t[2]) {
|
|
241
|
+
_.label = t[2];
|
|
242
|
+
_.ops.push(op);
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
if (t[2]) _.ops.pop();
|
|
246
|
+
_.trys.pop();
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
op = body.call(thisArg, _);
|
|
250
|
+
} catch (e) {
|
|
251
|
+
op = [
|
|
252
|
+
6,
|
|
253
|
+
e
|
|
254
|
+
];
|
|
255
|
+
y = 0;
|
|
256
|
+
} finally{
|
|
257
|
+
f = t = 0;
|
|
258
|
+
}
|
|
259
|
+
if (op[0] & 5) throw op[1];
|
|
260
|
+
return {
|
|
261
|
+
value: op[0] ? op[1] : void 0,
|
|
262
|
+
done: true
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
var _import_lodash2_default;
|
|
267
|
+
var _this;
|
|
268
|
+
var __create = Object.create;
|
|
269
|
+
var __defProp = Object.defineProperty;
|
|
270
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
271
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
272
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
273
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
274
|
+
var __export = function(target, all) {
|
|
275
|
+
for(var name in all)__defProp(target, name, {
|
|
276
|
+
get: all[name],
|
|
277
|
+
enumerable: true
|
|
278
|
+
});
|
|
279
|
+
};
|
|
280
|
+
var __copyProps = function(to, from, except, desc) {
|
|
281
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
282
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
283
|
+
try {
|
|
284
|
+
var _loop = function() {
|
|
285
|
+
var key = _step.value;
|
|
286
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
287
|
+
get: function() {
|
|
288
|
+
return from[key];
|
|
289
|
+
},
|
|
290
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
291
|
+
});
|
|
292
|
+
};
|
|
293
|
+
for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
|
|
294
|
+
} catch (err) {
|
|
295
|
+
_didIteratorError = true;
|
|
296
|
+
_iteratorError = err;
|
|
297
|
+
} finally{
|
|
298
|
+
try {
|
|
299
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
300
|
+
_iterator.return();
|
|
301
|
+
}
|
|
302
|
+
} finally{
|
|
303
|
+
if (_didIteratorError) {
|
|
304
|
+
throw _iteratorError;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return to;
|
|
310
|
+
};
|
|
311
|
+
var __toESM = function(mod, isNodeMode, target) {
|
|
312
|
+
return target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(// If the importer is in node compatibility mode or this is not an ESM
|
|
313
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
314
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
315
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
316
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
317
|
+
value: mod,
|
|
318
|
+
enumerable: true
|
|
319
|
+
}) : target, mod);
|
|
320
|
+
};
|
|
321
|
+
var __toCommonJS = function(mod) {
|
|
322
|
+
return __copyProps(__defProp({}, "__esModule", {
|
|
323
|
+
value: true
|
|
324
|
+
}), mod);
|
|
325
|
+
};
|
|
326
|
+
// src/index.ts
|
|
327
|
+
var src_exports = {};
|
|
328
|
+
__export(src_exports, {
|
|
329
|
+
AssistantAvatarContext: function() {
|
|
330
|
+
return AssistantAvatarContext;
|
|
331
|
+
},
|
|
332
|
+
AssistantNameContext: function() {
|
|
333
|
+
return AssistantNameContext;
|
|
334
|
+
},
|
|
335
|
+
AudioThread: function() {
|
|
336
|
+
return AudioThread;
|
|
337
|
+
},
|
|
338
|
+
AudioThreadDialog: function() {
|
|
339
|
+
return AudioThreadDialog;
|
|
340
|
+
},
|
|
341
|
+
FunctionBase: function() {
|
|
342
|
+
return FunctionBase;
|
|
343
|
+
},
|
|
344
|
+
FunctionComponentsContext: function() {
|
|
345
|
+
return FunctionComponentsContext;
|
|
346
|
+
},
|
|
347
|
+
MarkdownContext: function() {
|
|
348
|
+
return MarkdownContext;
|
|
349
|
+
},
|
|
350
|
+
Suggestion: function() {
|
|
351
|
+
return Suggestion;
|
|
352
|
+
},
|
|
353
|
+
Suggestions: function() {
|
|
354
|
+
return Suggestions;
|
|
355
|
+
},
|
|
356
|
+
SuperinterfaceProvider: function() {
|
|
357
|
+
return SuperinterfaceProvider;
|
|
358
|
+
},
|
|
359
|
+
Thread: function() {
|
|
360
|
+
return Thread;
|
|
361
|
+
},
|
|
362
|
+
ThreadDialog: function() {
|
|
363
|
+
return ThreadDialog;
|
|
364
|
+
},
|
|
365
|
+
ThreadMessageForm: function() {
|
|
366
|
+
return ThreadMessageForm;
|
|
367
|
+
},
|
|
368
|
+
ThreadMessages: function() {
|
|
369
|
+
return ThreadMessages;
|
|
370
|
+
},
|
|
371
|
+
ThreadProvider: function() {
|
|
372
|
+
return SuperinterfaceProvider;
|
|
373
|
+
},
|
|
374
|
+
useCreateRun: function() {
|
|
375
|
+
return useCreateRun;
|
|
376
|
+
},
|
|
377
|
+
useCreateThreadMessage: function() {
|
|
378
|
+
return useCreateThreadMessage;
|
|
379
|
+
},
|
|
380
|
+
useIsRunActive: function() {
|
|
381
|
+
return useIsRunActive;
|
|
382
|
+
},
|
|
383
|
+
useLatestRun: function() {
|
|
384
|
+
return useLatestRun;
|
|
385
|
+
},
|
|
386
|
+
useLatestThreadMessage: function() {
|
|
387
|
+
return useLatestThreadMessage;
|
|
388
|
+
},
|
|
389
|
+
useMarkdownContext: function() {
|
|
390
|
+
return useMarkdownContext;
|
|
391
|
+
},
|
|
392
|
+
useRuns: function() {
|
|
393
|
+
return useRuns;
|
|
394
|
+
},
|
|
395
|
+
useSuperinterfaceContext: function() {
|
|
396
|
+
return useSuperinterfaceContext;
|
|
397
|
+
},
|
|
398
|
+
useThreadContext: function() {
|
|
399
|
+
return useSuperinterfaceContext;
|
|
400
|
+
},
|
|
401
|
+
useThreadLifecycles: function() {
|
|
402
|
+
return useThreadLifecycles;
|
|
403
|
+
},
|
|
404
|
+
useThreadMessages: function() {
|
|
405
|
+
return useThreadMessages;
|
|
406
|
+
}
|
|
407
|
+
});
|
|
408
|
+
module.exports = __toCommonJS(src_exports);
|
|
409
|
+
// src/lib/misc/merge/index.ts
|
|
410
|
+
var import_lodash2 = __toESM(require("lodash"), 1);
|
|
411
|
+
// src/lib/misc/merge/customizer.ts
|
|
412
|
+
var import_lodash = __toESM(require("lodash"), 1);
|
|
413
|
+
var customizer = function(objectValue, srcValue) {
|
|
414
|
+
if (!import_lodash.default.isArray(objectValue)) return;
|
|
415
|
+
return srcValue;
|
|
416
|
+
};
|
|
417
|
+
// src/lib/misc/merge/index.ts
|
|
418
|
+
var merge = function(obj) {
|
|
419
|
+
for(var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
420
|
+
sources[_key - 1] = arguments[_key];
|
|
421
|
+
}
|
|
422
|
+
return (_import_lodash2_default = import_lodash2.default).mergeWith.apply(_import_lodash2_default, [
|
|
423
|
+
import_lodash2.default.cloneDeep(obj)
|
|
424
|
+
].concat(_to_consumable_array(sources), [
|
|
425
|
+
customizer
|
|
426
|
+
]));
|
|
427
|
+
};
|
|
428
|
+
// src/contexts/core/SuperinterfaceContext/index.tsx
|
|
429
|
+
var import_react = require("react");
|
|
430
|
+
var SuperinterfaceContext = (0, import_react.createContext)({
|
|
431
|
+
baseUrl: "http://localhost:3000/api/cloud",
|
|
432
|
+
variables: {},
|
|
433
|
+
defaultOptions: {
|
|
434
|
+
queries: {},
|
|
435
|
+
mutations: {}
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
// src/hooks/core/useSuperinterfaceContext/index.ts
|
|
439
|
+
var import_react2 = require("react");
|
|
440
|
+
var useSuperinterfaceContext = function() {
|
|
441
|
+
return (0, import_react2.useContext)(SuperinterfaceContext);
|
|
442
|
+
};
|
|
443
|
+
// src/components/core/SuperinterfaceProvider/index.tsx
|
|
444
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
445
|
+
var SuperinterfaceProvider = function(param) {
|
|
446
|
+
var children = param.children, baseUrl = param.baseUrl, publicApiKey = param.publicApiKey, variables = param.variables, defaultOptions = param.defaultOptions;
|
|
447
|
+
var superinterfaceContext = useSuperinterfaceContext();
|
|
448
|
+
var value = merge(superinterfaceContext, _object_spread({}, baseUrl ? {
|
|
449
|
+
baseUrl: baseUrl
|
|
450
|
+
} : {}, publicApiKey ? {
|
|
451
|
+
publicApiKey: publicApiKey
|
|
452
|
+
} : {}, variables ? {
|
|
453
|
+
variables: variables
|
|
454
|
+
} : {}, defaultOptions ? {
|
|
455
|
+
defaultOptions: defaultOptions
|
|
456
|
+
} : {}));
|
|
457
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SuperinterfaceContext.Provider, {
|
|
458
|
+
value: value,
|
|
459
|
+
children: children
|
|
460
|
+
});
|
|
461
|
+
};
|
|
462
|
+
// src/components/threads/Thread/index.tsx
|
|
463
|
+
var import_themes31 = require("@radix-ui/themes");
|
|
464
|
+
// src/components/threadMessages/ThreadMessages/index.tsx
|
|
465
|
+
var import_themes28 = require("@radix-ui/themes");
|
|
466
|
+
// src/hooks/misc/useInfiniteScroll/index.tsx
|
|
467
|
+
var import_react4 = require("react");
|
|
468
|
+
var import_react_intersection_observer = require("react-intersection-observer");
|
|
469
|
+
// src/hooks/misc/useThrottledEffect/index.tsx
|
|
470
|
+
var import_lodash3 = __toESM(require("lodash"), 1);
|
|
471
|
+
var import_react3 = require("react");
|
|
472
|
+
var useThrottledEffect = function(cb, delay, additionalDeps) {
|
|
473
|
+
var _cbRef;
|
|
474
|
+
var cbRef = (0, import_react3.useRef)(cb);
|
|
475
|
+
var throttledCb = (0, import_react3.useCallback)(import_lodash3.default.throttle(function() {
|
|
476
|
+
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
477
|
+
args[_key] = arguments[_key];
|
|
478
|
+
}
|
|
479
|
+
return (_cbRef = cbRef).current.apply(_cbRef, _to_consumable_array(args));
|
|
480
|
+
}, delay, {
|
|
481
|
+
leading: true,
|
|
482
|
+
trailing: true
|
|
483
|
+
}), [
|
|
484
|
+
delay
|
|
485
|
+
]);
|
|
486
|
+
(0, import_react3.useEffect)(function() {
|
|
487
|
+
cbRef.current = cb;
|
|
488
|
+
});
|
|
489
|
+
(0, import_react3.useEffect)(throttledCb, [
|
|
490
|
+
throttledCb
|
|
491
|
+
].concat(_to_consumable_array(additionalDeps)));
|
|
492
|
+
};
|
|
493
|
+
// src/hooks/misc/useInfiniteScroll/index.tsx
|
|
494
|
+
var useInfiniteScroll = function(param) {
|
|
495
|
+
var isFetchingNextPage = param.isFetchingNextPage, hasNextPage = param.hasNextPage, fetchNextPage = param.fetchNextPage;
|
|
496
|
+
var containerRef = (0, import_react4.useRef)(null);
|
|
497
|
+
var _ref = (0, import_react_intersection_observer.useInView)({
|
|
498
|
+
root: containerRef.current,
|
|
499
|
+
rootMargin: "0px",
|
|
500
|
+
threshold: 0.1
|
|
501
|
+
}), loaderRef = _ref.ref, inView = _ref.inView;
|
|
502
|
+
useThrottledEffect(function() {
|
|
503
|
+
if (isFetchingNextPage) return;
|
|
504
|
+
if (!inView) return;
|
|
505
|
+
if (!hasNextPage) return;
|
|
506
|
+
console.log("Fetching next page");
|
|
507
|
+
fetchNextPage();
|
|
508
|
+
}, 500, [
|
|
509
|
+
inView,
|
|
510
|
+
isFetchingNextPage,
|
|
511
|
+
hasNextPage,
|
|
512
|
+
fetchNextPage
|
|
513
|
+
]);
|
|
514
|
+
return {
|
|
515
|
+
containerRef: containerRef,
|
|
516
|
+
loaderRef: loaderRef,
|
|
517
|
+
inView: inView
|
|
518
|
+
};
|
|
519
|
+
};
|
|
520
|
+
// src/components/skeletons/ThreadMessagesSkeleton/index.tsx
|
|
521
|
+
var import_react6 = require("react");
|
|
522
|
+
var import_themes4 = require("@radix-ui/themes");
|
|
523
|
+
// src/components/skeletons/Skeleton/index.tsx
|
|
524
|
+
var import_themes = require("@radix-ui/themes");
|
|
525
|
+
var import_jsx_runtime2 = // @ts-ignore-next-line
|
|
526
|
+
require("react/jsx-runtime");
|
|
527
|
+
var Skeleton = function(_param) {
|
|
528
|
+
var height = _param.height, style = _param.style, rest = _object_without_properties(_param, [
|
|
529
|
+
"height",
|
|
530
|
+
"style"
|
|
531
|
+
]);
|
|
532
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_themes.Flex, _object_spread({
|
|
533
|
+
style: _object_spread({
|
|
534
|
+
animation: "pulse 2s cubic-bezier(.4,0,.6,1) infinite",
|
|
535
|
+
borderRadius: "var(--radius-3)",
|
|
536
|
+
backgroundColor: "var(--gray-5)",
|
|
537
|
+
height: "var(--space-".concat(height, ")")
|
|
538
|
+
}, style)
|
|
539
|
+
}, rest));
|
|
540
|
+
};
|
|
541
|
+
// src/components/threadMessageGroups/ThreadMessagesGroupBase/index.tsx
|
|
542
|
+
var import_react5 = require("react");
|
|
543
|
+
var import_themes2 = require("@radix-ui/themes");
|
|
544
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
545
|
+
var ThreadMessagesGroupBase = (0, import_react5.forwardRef)(function ThreadMessagesGroupBase2(param, ref) {
|
|
546
|
+
var children = param.children;
|
|
547
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_themes2.Container, {
|
|
548
|
+
ref: ref,
|
|
549
|
+
size: "2",
|
|
550
|
+
grow: "0",
|
|
551
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_themes2.Flex, {
|
|
552
|
+
shrink: "0",
|
|
553
|
+
gap: "3",
|
|
554
|
+
children: children
|
|
555
|
+
})
|
|
556
|
+
});
|
|
557
|
+
});
|
|
558
|
+
// src/components/threadMessageGroups/ThreadMessagesGroupBase/Name.tsx
|
|
559
|
+
var import_themes3 = require("@radix-ui/themes");
|
|
560
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
561
|
+
var Name = function(param) {
|
|
562
|
+
var children = param.children;
|
|
563
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Flex, {
|
|
564
|
+
align: "center",
|
|
565
|
+
style: {
|
|
566
|
+
height: "var(--space-5)"
|
|
567
|
+
},
|
|
568
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_themes3.Text, {
|
|
569
|
+
size: "2",
|
|
570
|
+
weight: "bold",
|
|
571
|
+
children: children
|
|
572
|
+
})
|
|
573
|
+
});
|
|
574
|
+
};
|
|
575
|
+
// src/components/skeletons/ThreadMessagesSkeleton/index.tsx
|
|
576
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
577
|
+
var ThreadMessagesSkeleton = (0, import_react6.forwardRef)(function ThreadMessagesSkeleton2(_props, ref) {
|
|
578
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(ThreadMessagesGroupBase, {
|
|
579
|
+
ref: ref,
|
|
580
|
+
children: [
|
|
581
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes4.Avatar, {
|
|
582
|
+
fallback: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_themes4.Flex, {}),
|
|
583
|
+
size: "1",
|
|
584
|
+
style: {
|
|
585
|
+
animation: "pulse 2s cubic-bezier(.4,0,.6,1) infinite"
|
|
586
|
+
}
|
|
587
|
+
}),
|
|
588
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_themes4.Box, {
|
|
589
|
+
pb: "3",
|
|
590
|
+
children: [
|
|
591
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Name, {
|
|
592
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
|
|
593
|
+
height: "1",
|
|
594
|
+
style: {
|
|
595
|
+
width: "128px"
|
|
596
|
+
}
|
|
597
|
+
})
|
|
598
|
+
}),
|
|
599
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
|
|
600
|
+
height: "2",
|
|
601
|
+
style: {
|
|
602
|
+
width: "256px"
|
|
603
|
+
}
|
|
604
|
+
}),
|
|
605
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
|
|
606
|
+
height: "2",
|
|
607
|
+
style: {
|
|
608
|
+
width: "256px",
|
|
609
|
+
marginTop: "var(--space-2)"
|
|
610
|
+
}
|
|
611
|
+
}),
|
|
612
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Skeleton, {
|
|
613
|
+
height: "2",
|
|
614
|
+
style: {
|
|
615
|
+
width: "256px",
|
|
616
|
+
marginTop: "var(--space-2)"
|
|
617
|
+
}
|
|
618
|
+
})
|
|
619
|
+
]
|
|
620
|
+
})
|
|
621
|
+
]
|
|
622
|
+
});
|
|
623
|
+
});
|
|
624
|
+
// src/hooks/threadMessages/useThreadMessages/index.tsx
|
|
625
|
+
var import_react7 = require("react");
|
|
626
|
+
var import_react_query2 = require("@tanstack/react-query");
|
|
627
|
+
// src/lib/threads/queryOptions/index.ts
|
|
628
|
+
var import_react_query = require("@tanstack/react-query");
|
|
629
|
+
var queryOptions = function(param) {
|
|
630
|
+
var queryKeyBase = param.queryKeyBase, path = param.path, queryClient = param.queryClient, threadContext = param.threadContext, superinterfaceContext = param.superinterfaceContext;
|
|
631
|
+
var queryKey = _to_consumable_array(queryKeyBase).concat([
|
|
632
|
+
threadContext.variables
|
|
633
|
+
]);
|
|
634
|
+
return (0, import_react_query.infiniteQueryOptions)(_object_spread(_object_spread_props(_object_spread({
|
|
635
|
+
// @ts-ignore-next-line
|
|
636
|
+
queryFn: function() {
|
|
637
|
+
var _ref = _async_to_generator(function(param) {
|
|
638
|
+
var pageParam, queryKey2, _queryKey2, _key, variables, params;
|
|
639
|
+
return _ts_generator(this, function(_state) {
|
|
640
|
+
pageParam = param.pageParam, queryKey2 = param.queryKey;
|
|
641
|
+
_queryKey2 = _sliced_to_array(queryKey2, 2), _key = _queryKey2[0], variables = _queryKey2[1];
|
|
642
|
+
params = new URLSearchParams(_object_spread({}, pageParam ? {
|
|
643
|
+
pageParam: pageParam
|
|
644
|
+
} : {}, variables));
|
|
645
|
+
return [
|
|
646
|
+
2,
|
|
647
|
+
fetch("".concat(superinterfaceContext.baseUrl).concat(path, "?").concat(params), {
|
|
648
|
+
credentials: "include"
|
|
649
|
+
}).then(function() {
|
|
650
|
+
var _ref = _async_to_generator(function(response) {
|
|
651
|
+
var errorResponse, error;
|
|
652
|
+
return _ts_generator(this, function(_state) {
|
|
653
|
+
switch(_state.label){
|
|
654
|
+
case 0:
|
|
655
|
+
if (!(response.status !== 200)) return [
|
|
656
|
+
3,
|
|
657
|
+
4
|
|
658
|
+
];
|
|
659
|
+
_state.label = 1;
|
|
660
|
+
case 1:
|
|
661
|
+
_state.trys.push([
|
|
662
|
+
1,
|
|
663
|
+
3,
|
|
664
|
+
,
|
|
665
|
+
4
|
|
666
|
+
]);
|
|
667
|
+
return [
|
|
668
|
+
4,
|
|
669
|
+
response.json()
|
|
670
|
+
];
|
|
671
|
+
case 2:
|
|
672
|
+
errorResponse = _state.sent();
|
|
673
|
+
throw new Error(errorResponse.error);
|
|
674
|
+
case 3:
|
|
675
|
+
error = _state.sent();
|
|
676
|
+
throw new Error("Failed to fetch");
|
|
677
|
+
case 4:
|
|
678
|
+
return [
|
|
679
|
+
2,
|
|
680
|
+
response.json()
|
|
681
|
+
];
|
|
682
|
+
}
|
|
683
|
+
});
|
|
684
|
+
});
|
|
685
|
+
return function(response) {
|
|
686
|
+
return _ref.apply(this, arguments);
|
|
687
|
+
};
|
|
688
|
+
}())
|
|
689
|
+
];
|
|
690
|
+
});
|
|
691
|
+
});
|
|
692
|
+
return function(_) {
|
|
693
|
+
return _ref.apply(this, arguments);
|
|
694
|
+
};
|
|
695
|
+
}(),
|
|
696
|
+
initialPageParam: void 0,
|
|
697
|
+
getNextPageParam: function(lastPage) {
|
|
698
|
+
if (!lastPage.hasNextPage) return null;
|
|
699
|
+
return lastPage.lastId;
|
|
700
|
+
},
|
|
701
|
+
limit: 10
|
|
702
|
+
}, queryClient.getQueryDefaults(queryKey)), {
|
|
703
|
+
queryKey: queryKey
|
|
704
|
+
}), threadContext.defaultOptions.queries));
|
|
705
|
+
};
|
|
706
|
+
// src/hooks/threadMessages/useThreadMessages/index.tsx
|
|
707
|
+
var threadMessages = function(param) {
|
|
708
|
+
var props = param.props;
|
|
709
|
+
if (!props.data) return [];
|
|
710
|
+
return props.data.pages.reduce(function(acc, page) {
|
|
711
|
+
return acc.concat(page.data);
|
|
712
|
+
}, []);
|
|
713
|
+
};
|
|
714
|
+
var useThreadMessages = function() {
|
|
715
|
+
var queryClient = (0, import_react_query2.useQueryClient)();
|
|
716
|
+
var threadContext = useSuperinterfaceContext();
|
|
717
|
+
var superinterfaceContext = useSuperinterfaceContext();
|
|
718
|
+
var props = (0, import_react_query2.useInfiniteQuery)(queryOptions({
|
|
719
|
+
queryKeyBase: [
|
|
720
|
+
"threadMessages"
|
|
721
|
+
],
|
|
722
|
+
path: "/thread-messages",
|
|
723
|
+
queryClient: queryClient,
|
|
724
|
+
threadContext: threadContext,
|
|
725
|
+
superinterfaceContext: superinterfaceContext
|
|
726
|
+
}));
|
|
727
|
+
return (0, import_react7.useMemo)(function() {
|
|
728
|
+
return _object_spread_props(_object_spread({}, props), {
|
|
729
|
+
// @ts-ignore-next-line
|
|
730
|
+
threadMessages: threadMessages({
|
|
731
|
+
props: props
|
|
732
|
+
})
|
|
733
|
+
});
|
|
734
|
+
}, [
|
|
735
|
+
props
|
|
736
|
+
]);
|
|
737
|
+
};
|
|
738
|
+
// src/hooks/runs/useManageRuns/index.tsx
|
|
739
|
+
var import_react_query5 = require("@tanstack/react-query");
|
|
740
|
+
var import_react11 = require("react");
|
|
741
|
+
// src/hooks/threadMessages/useLatestThreadMessage/index.ts
|
|
742
|
+
var import_react8 = require("react");
|
|
743
|
+
var useLatestThreadMessage = function() {
|
|
744
|
+
var props = useThreadMessages();
|
|
745
|
+
return (0, import_react8.useMemo)(function() {
|
|
746
|
+
return _object_spread_props(_object_spread({}, props), {
|
|
747
|
+
latestThreadMessage: props.threadMessages[0] || null
|
|
748
|
+
});
|
|
749
|
+
}, [
|
|
750
|
+
props
|
|
751
|
+
]);
|
|
752
|
+
};
|
|
753
|
+
// src/hooks/runs/useLatestRun/index.ts
|
|
754
|
+
var import_react10 = require("react");
|
|
755
|
+
// src/hooks/runs/useRuns/index.tsx
|
|
756
|
+
var import_react9 = require("react");
|
|
757
|
+
var import_react_query3 = require("@tanstack/react-query");
|
|
758
|
+
// src/hooks/runs/useRuns/lib/getRuns.ts
|
|
759
|
+
var getRuns = function(param) {
|
|
760
|
+
var data3 = param.data;
|
|
761
|
+
if (!data3) return [];
|
|
762
|
+
return data3.pages.reduce(function(acc, page) {
|
|
763
|
+
return acc.concat(page.data);
|
|
764
|
+
}, []);
|
|
765
|
+
};
|
|
766
|
+
// src/hooks/runs/useRuns/index.tsx
|
|
767
|
+
var useRuns = function() {
|
|
768
|
+
var queryClient = (0, import_react_query3.useQueryClient)();
|
|
769
|
+
var superinterfaceContext = useSuperinterfaceContext();
|
|
770
|
+
var threadContext = useSuperinterfaceContext();
|
|
771
|
+
var props = (0, import_react_query3.useInfiniteQuery)(queryOptions({
|
|
772
|
+
queryKeyBase: [
|
|
773
|
+
"runs"
|
|
774
|
+
],
|
|
775
|
+
path: "/runs",
|
|
776
|
+
queryClient: queryClient,
|
|
777
|
+
threadContext: threadContext,
|
|
778
|
+
superinterfaceContext: superinterfaceContext
|
|
779
|
+
}));
|
|
780
|
+
return (0, import_react9.useMemo)(function() {
|
|
781
|
+
return _object_spread_props(_object_spread({}, props), {
|
|
782
|
+
// @ts-ignore-next-line
|
|
783
|
+
runs: getRuns({
|
|
784
|
+
data: props.data
|
|
785
|
+
})
|
|
786
|
+
});
|
|
787
|
+
}, [
|
|
788
|
+
props
|
|
789
|
+
]);
|
|
790
|
+
};
|
|
791
|
+
// src/hooks/runs/useLatestRun/index.ts
|
|
792
|
+
var useLatestRun = function() {
|
|
793
|
+
var props = useRuns();
|
|
794
|
+
return (0, import_react10.useMemo)(function() {
|
|
795
|
+
return _object_spread_props(_object_spread({}, props), {
|
|
796
|
+
latestRun: props.runs[0]
|
|
797
|
+
});
|
|
798
|
+
}, [
|
|
799
|
+
props
|
|
800
|
+
]);
|
|
801
|
+
};
|
|
802
|
+
// src/hooks/runs/useCreateRun/index.ts
|
|
803
|
+
var import_radash2 = require("radash");
|
|
804
|
+
var import_react_query4 = require("@tanstack/react-query");
|
|
805
|
+
// src/lib/threads/mutationOptions/index.ts
|
|
806
|
+
var mutationOptions = function(param) {
|
|
807
|
+
var mutationKeyBase = param.mutationKeyBase, path = param.path, queryClient = param.queryClient, threadContext = param.threadContext, superinterfaceContext = param.superinterfaceContext;
|
|
808
|
+
var mutationKey = _to_consumable_array(mutationKeyBase).concat([
|
|
809
|
+
threadContext.variables
|
|
810
|
+
]);
|
|
811
|
+
return _object_spread(_object_spread_props(_object_spread({
|
|
812
|
+
mutationFn: function(variables) {
|
|
813
|
+
return fetch("".concat(superinterfaceContext.baseUrl).concat(path), {
|
|
814
|
+
method: "POST",
|
|
815
|
+
body: JSON.stringify(variables),
|
|
816
|
+
credentials: "include"
|
|
817
|
+
}).then(function() {
|
|
818
|
+
var _ref = _async_to_generator(function(response) {
|
|
819
|
+
var errorResponse, error;
|
|
820
|
+
return _ts_generator(this, function(_state) {
|
|
821
|
+
switch(_state.label){
|
|
822
|
+
case 0:
|
|
823
|
+
if (!(response.status !== 200)) return [
|
|
824
|
+
3,
|
|
825
|
+
4
|
|
826
|
+
];
|
|
827
|
+
_state.label = 1;
|
|
828
|
+
case 1:
|
|
829
|
+
_state.trys.push([
|
|
830
|
+
1,
|
|
831
|
+
3,
|
|
832
|
+
,
|
|
833
|
+
4
|
|
834
|
+
]);
|
|
835
|
+
return [
|
|
836
|
+
4,
|
|
837
|
+
response.json()
|
|
838
|
+
];
|
|
839
|
+
case 2:
|
|
840
|
+
errorResponse = _state.sent();
|
|
841
|
+
throw new Error(errorResponse.error);
|
|
842
|
+
case 3:
|
|
843
|
+
error = _state.sent();
|
|
844
|
+
throw new Error("Failed to fetch");
|
|
845
|
+
case 4:
|
|
846
|
+
return [
|
|
847
|
+
2,
|
|
848
|
+
response.json()
|
|
849
|
+
];
|
|
850
|
+
}
|
|
851
|
+
});
|
|
852
|
+
});
|
|
853
|
+
return function(response) {
|
|
854
|
+
return _ref.apply(this, arguments);
|
|
855
|
+
};
|
|
856
|
+
}());
|
|
857
|
+
}
|
|
858
|
+
}, queryClient.getMutationDefaults(mutationKey)), {
|
|
859
|
+
mutationKey: mutationKey
|
|
860
|
+
}), threadContext.defaultOptions.mutations);
|
|
861
|
+
};
|
|
862
|
+
// src/hooks/runs/useCreateRun/lib/onSuccess.ts
|
|
863
|
+
var onSuccess = function(param) {
|
|
864
|
+
var queryClient = param.queryClient;
|
|
865
|
+
return function() {
|
|
866
|
+
var _ref = _async_to_generator(function(data3, variables) {
|
|
867
|
+
return _ts_generator(this, function(_state) {
|
|
868
|
+
return [
|
|
869
|
+
2,
|
|
870
|
+
queryClient.setQueryData([
|
|
871
|
+
"runs",
|
|
872
|
+
variables
|
|
873
|
+
], function(prevData) {
|
|
874
|
+
if (!prevData) {
|
|
875
|
+
return {
|
|
876
|
+
pageParams: [],
|
|
877
|
+
pages: [
|
|
878
|
+
{
|
|
879
|
+
data: [
|
|
880
|
+
data3.run
|
|
881
|
+
],
|
|
882
|
+
hasNextPage: false,
|
|
883
|
+
lastId: data3.run.id
|
|
884
|
+
}
|
|
885
|
+
]
|
|
886
|
+
};
|
|
887
|
+
}
|
|
888
|
+
var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
|
|
889
|
+
return _object_spread_props(_object_spread({}, prevData), {
|
|
890
|
+
pages: [
|
|
891
|
+
_object_spread_props(_object_spread({}, latestPage), {
|
|
892
|
+
data: [
|
|
893
|
+
data3.run
|
|
894
|
+
].concat(_to_consumable_array(latestPage.data))
|
|
895
|
+
})
|
|
896
|
+
].concat(_to_consumable_array(pagesRest))
|
|
897
|
+
});
|
|
898
|
+
})
|
|
899
|
+
];
|
|
900
|
+
});
|
|
901
|
+
});
|
|
902
|
+
return function(data3, variables) {
|
|
903
|
+
return _ref.apply(this, arguments);
|
|
904
|
+
};
|
|
905
|
+
}();
|
|
906
|
+
};
|
|
907
|
+
// src/hooks/runs/useCreateRun/lib/onSettled.ts
|
|
908
|
+
var onSettled = function(param) {
|
|
909
|
+
var queryClient = param.queryClient;
|
|
910
|
+
return function() {
|
|
911
|
+
var _ref = _async_to_generator(function(_data, _error, variables) {
|
|
912
|
+
return _ts_generator(this, function(_state) {
|
|
913
|
+
switch(_state.label){
|
|
914
|
+
case 0:
|
|
915
|
+
return [
|
|
916
|
+
4,
|
|
917
|
+
queryClient.invalidateQueries({
|
|
918
|
+
queryKey: [
|
|
919
|
+
"threadMessages",
|
|
920
|
+
variables
|
|
921
|
+
]
|
|
922
|
+
})
|
|
923
|
+
];
|
|
924
|
+
case 1:
|
|
925
|
+
_state.sent();
|
|
926
|
+
return [
|
|
927
|
+
4,
|
|
928
|
+
queryClient.invalidateQueries({
|
|
929
|
+
queryKey: [
|
|
930
|
+
"runs",
|
|
931
|
+
variables
|
|
932
|
+
]
|
|
933
|
+
})
|
|
934
|
+
];
|
|
935
|
+
case 2:
|
|
936
|
+
_state.sent();
|
|
937
|
+
return [
|
|
938
|
+
2
|
|
939
|
+
];
|
|
940
|
+
}
|
|
941
|
+
});
|
|
942
|
+
});
|
|
943
|
+
return function(_data, _error, variables) {
|
|
944
|
+
return _ref.apply(this, arguments);
|
|
945
|
+
};
|
|
946
|
+
}();
|
|
947
|
+
};
|
|
948
|
+
// src/lib/optimistic/optimisticId.ts
|
|
949
|
+
var import_radash = require("radash");
|
|
950
|
+
var optimisticId = function() {
|
|
951
|
+
return "-".concat((0, import_radash.uid)(24));
|
|
952
|
+
};
|
|
953
|
+
// src/hooks/runs/useCreateRun/lib/onMutate/data.ts
|
|
954
|
+
var data = function(prevData) {
|
|
955
|
+
var run = {
|
|
956
|
+
id: optimisticId(),
|
|
957
|
+
object: "thread.run",
|
|
958
|
+
created_at: +/* @__PURE__ */ new Date(),
|
|
959
|
+
assistant_id: null,
|
|
960
|
+
thread_id: null,
|
|
961
|
+
status: "in_progress",
|
|
962
|
+
expires_at: +/* @__PURE__ */ new Date() + 1e3 * 60 * 60 * 24,
|
|
963
|
+
cancelled_at: null,
|
|
964
|
+
failed_at: null,
|
|
965
|
+
completed_at: null,
|
|
966
|
+
required_action: null,
|
|
967
|
+
last_error: null,
|
|
968
|
+
model: null,
|
|
969
|
+
instructions: null,
|
|
970
|
+
tools: [],
|
|
971
|
+
file_ids: [],
|
|
972
|
+
metadata: {},
|
|
973
|
+
usage: null
|
|
974
|
+
};
|
|
975
|
+
if (!prevData) {
|
|
976
|
+
return {
|
|
977
|
+
pageParams: [],
|
|
978
|
+
pages: [
|
|
979
|
+
{
|
|
980
|
+
data: [
|
|
981
|
+
run
|
|
982
|
+
],
|
|
983
|
+
hasNextPage: false,
|
|
984
|
+
lastId: run.id
|
|
985
|
+
}
|
|
986
|
+
]
|
|
987
|
+
};
|
|
988
|
+
}
|
|
989
|
+
var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
|
|
990
|
+
return _object_spread_props(_object_spread({}, prevData), {
|
|
991
|
+
pages: [
|
|
992
|
+
_object_spread_props(_object_spread({}, latestPage), {
|
|
993
|
+
data: [
|
|
994
|
+
run
|
|
995
|
+
].concat(_to_consumable_array(latestPage.data))
|
|
996
|
+
})
|
|
997
|
+
].concat(_to_consumable_array(pagesRest))
|
|
998
|
+
});
|
|
999
|
+
};
|
|
1000
|
+
// src/hooks/runs/useCreateRun/lib/onMutate/index.ts
|
|
1001
|
+
var onMutate = function(param) {
|
|
1002
|
+
var queryClient = param.queryClient;
|
|
1003
|
+
return function() {
|
|
1004
|
+
var _ref = _async_to_generator(function(variables) {
|
|
1005
|
+
var queryKey, prevRuns;
|
|
1006
|
+
return _ts_generator(this, function(_state) {
|
|
1007
|
+
switch(_state.label){
|
|
1008
|
+
case 0:
|
|
1009
|
+
queryKey = [
|
|
1010
|
+
"runs",
|
|
1011
|
+
variables
|
|
1012
|
+
];
|
|
1013
|
+
return [
|
|
1014
|
+
4,
|
|
1015
|
+
queryClient.cancelQueries({
|
|
1016
|
+
queryKey: queryKey
|
|
1017
|
+
})
|
|
1018
|
+
];
|
|
1019
|
+
case 1:
|
|
1020
|
+
_state.sent();
|
|
1021
|
+
prevRuns = queryClient.getQueryData(queryKey);
|
|
1022
|
+
queryClient.setQueryData(queryKey, data);
|
|
1023
|
+
return [
|
|
1024
|
+
2,
|
|
1025
|
+
{
|
|
1026
|
+
prevRuns: prevRuns,
|
|
1027
|
+
variables: variables
|
|
1028
|
+
}
|
|
1029
|
+
];
|
|
1030
|
+
}
|
|
1031
|
+
});
|
|
1032
|
+
});
|
|
1033
|
+
return function(variables) {
|
|
1034
|
+
return _ref.apply(this, arguments);
|
|
1035
|
+
};
|
|
1036
|
+
}();
|
|
1037
|
+
};
|
|
1038
|
+
// src/hooks/runs/useCreateRun/index.ts
|
|
1039
|
+
var useCreateRun = function() {
|
|
1040
|
+
var queryClient = (0, import_react_query4.useQueryClient)();
|
|
1041
|
+
var superinterfaceContext = useSuperinterfaceContext();
|
|
1042
|
+
var threadContext = useSuperinterfaceContext();
|
|
1043
|
+
var props = (0, import_react_query4.useMutation)(_object_spread({
|
|
1044
|
+
onSuccess: onSuccess({
|
|
1045
|
+
queryClient: queryClient
|
|
1046
|
+
}),
|
|
1047
|
+
onSettled: onSettled({
|
|
1048
|
+
queryClient: queryClient
|
|
1049
|
+
}),
|
|
1050
|
+
onMutate: onMutate({
|
|
1051
|
+
queryClient: queryClient
|
|
1052
|
+
})
|
|
1053
|
+
}, mutationOptions({
|
|
1054
|
+
mutationKeyBase: [
|
|
1055
|
+
"createRun"
|
|
1056
|
+
],
|
|
1057
|
+
path: "/runs",
|
|
1058
|
+
queryClient: queryClient,
|
|
1059
|
+
threadContext: threadContext,
|
|
1060
|
+
superinterfaceContext: superinterfaceContext
|
|
1061
|
+
})));
|
|
1062
|
+
return _object_spread_props(_object_spread({}, props), {
|
|
1063
|
+
createRun: (0, import_radash2.partob)(props.mutate, threadContext.variables)
|
|
1064
|
+
});
|
|
1065
|
+
};
|
|
1066
|
+
// src/lib/optimistic/isOptimistic.ts
|
|
1067
|
+
var import_lodash4 = __toESM(require("lodash"), 1);
|
|
1068
|
+
var isOptimistic = function(param) {
|
|
1069
|
+
var id = param.id;
|
|
1070
|
+
return import_lodash4.default.startsWith(id, "-");
|
|
1071
|
+
};
|
|
1072
|
+
// src/hooks/runs/useManageRuns/index.tsx
|
|
1073
|
+
var useManageRuns = function() {
|
|
1074
|
+
var queryClient = (0, import_react_query5.useQueryClient)();
|
|
1075
|
+
var latestRunProps = useLatestRun();
|
|
1076
|
+
var latestThreadMessageProps = useLatestThreadMessage();
|
|
1077
|
+
var createRunProps = useCreateRun();
|
|
1078
|
+
var threadContext = useSuperinterfaceContext();
|
|
1079
|
+
(0, import_react11.useEffect)(function() {
|
|
1080
|
+
if (createRunProps.isPending) return;
|
|
1081
|
+
if (latestRunProps.isFetching) return;
|
|
1082
|
+
if (latestThreadMessageProps.isFetching) return;
|
|
1083
|
+
if (!latestThreadMessageProps.latestThreadMessage) return;
|
|
1084
|
+
if (latestThreadMessageProps.latestThreadMessage.role !== "user") return;
|
|
1085
|
+
if (isOptimistic({
|
|
1086
|
+
id: latestThreadMessageProps.latestThreadMessage.id
|
|
1087
|
+
})) return;
|
|
1088
|
+
if (latestRunProps.latestRun && latestRunProps.latestRun.created_at > latestThreadMessageProps.latestThreadMessage.created_at) {
|
|
1089
|
+
return;
|
|
1090
|
+
}
|
|
1091
|
+
var isMutating = queryClient.isMutating({
|
|
1092
|
+
mutationKey: [
|
|
1093
|
+
"createRun",
|
|
1094
|
+
threadContext.variables
|
|
1095
|
+
]
|
|
1096
|
+
});
|
|
1097
|
+
if (isMutating) return;
|
|
1098
|
+
createRunProps.createRun();
|
|
1099
|
+
}, [
|
|
1100
|
+
threadContext,
|
|
1101
|
+
queryClient,
|
|
1102
|
+
createRunProps,
|
|
1103
|
+
latestRunProps,
|
|
1104
|
+
latestThreadMessageProps
|
|
1105
|
+
]);
|
|
1106
|
+
return null;
|
|
1107
|
+
};
|
|
1108
|
+
// src/hooks/runs/usePolling/index.tsx
|
|
1109
|
+
var import_react_query7 = require("@tanstack/react-query");
|
|
1110
|
+
var import_react_use = require("react-use");
|
|
1111
|
+
// src/hooks/runs/useIsRunActive/index.tsx
|
|
1112
|
+
var import_react12 = require("react");
|
|
1113
|
+
var import_react_query6 = require("@tanstack/react-query");
|
|
1114
|
+
// src/lib/runs/isRunEditingThreadMessage/index.ts
|
|
1115
|
+
var import_lodash5 = __toESM(require("lodash"), 1);
|
|
1116
|
+
var isRunEditingThreadMessage = function(param) {
|
|
1117
|
+
var threadMessage = param.threadMessage;
|
|
1118
|
+
if (!threadMessage) return false;
|
|
1119
|
+
if (threadMessage.role === "user") return false;
|
|
1120
|
+
if (!threadMessage.run_id) return false;
|
|
1121
|
+
var hasContent = import_lodash5.default.some(threadMessage.content, function(content) {
|
|
1122
|
+
var _content_text;
|
|
1123
|
+
return content.type !== "text" || content.type === "text" && ((_content_text = content.text) === null || _content_text === void 0 ? void 0 : _content_text.value) !== "";
|
|
1124
|
+
});
|
|
1125
|
+
return !hasContent;
|
|
1126
|
+
};
|
|
1127
|
+
// src/hooks/runs/useIsRunActive/index.tsx
|
|
1128
|
+
var progressStatuses = [
|
|
1129
|
+
"queued",
|
|
1130
|
+
"in_progress",
|
|
1131
|
+
"cancelling",
|
|
1132
|
+
"requires_action"
|
|
1133
|
+
];
|
|
1134
|
+
var stoppedStatuses = [
|
|
1135
|
+
"expired",
|
|
1136
|
+
"cancelled",
|
|
1137
|
+
"failed"
|
|
1138
|
+
];
|
|
1139
|
+
var isRunActive = function(param) {
|
|
1140
|
+
var latestRunProps = param.latestRunProps, latestThreadMessageProps = param.latestThreadMessageProps, isMutating = param.isMutating;
|
|
1141
|
+
var _latestThreadMessageProps_latestThreadMessage_metadata, _latestThreadMessageProps_latestThreadMessage;
|
|
1142
|
+
if ((_latestThreadMessageProps_latestThreadMessage = latestThreadMessageProps.latestThreadMessage) === null || _latestThreadMessageProps_latestThreadMessage === void 0 ? void 0 : (_latestThreadMessageProps_latestThreadMessage_metadata = _latestThreadMessageProps_latestThreadMessage.metadata) === null || _latestThreadMessageProps_latestThreadMessage_metadata === void 0 ? void 0 : _latestThreadMessageProps_latestThreadMessage_metadata.isBlocking) return false;
|
|
1143
|
+
if (isMutating) return true;
|
|
1144
|
+
if (!latestRunProps.latestRun) return false;
|
|
1145
|
+
if (progressStatuses.includes(latestRunProps.latestRun.status)) return true;
|
|
1146
|
+
if (stoppedStatuses.includes(latestRunProps.latestRun.status)) return false;
|
|
1147
|
+
return isRunEditingThreadMessage({
|
|
1148
|
+
threadMessage: latestThreadMessageProps.latestThreadMessage
|
|
1149
|
+
});
|
|
1150
|
+
};
|
|
1151
|
+
var useIsRunActive = function() {
|
|
1152
|
+
var latestRunProps = useLatestRun();
|
|
1153
|
+
var latestThreadMessageProps = useLatestThreadMessage();
|
|
1154
|
+
var threadContext = useSuperinterfaceContext();
|
|
1155
|
+
var isMutatingCreateRun = (0, import_react_query6.useIsMutating)({
|
|
1156
|
+
mutationKey: [
|
|
1157
|
+
"createRun",
|
|
1158
|
+
threadContext.variables
|
|
1159
|
+
]
|
|
1160
|
+
});
|
|
1161
|
+
var isMutatingCreateThreadMessage = (0, import_react_query6.useIsMutating)({
|
|
1162
|
+
mutationKey: [
|
|
1163
|
+
"createThreadMessage",
|
|
1164
|
+
threadContext.variables
|
|
1165
|
+
]
|
|
1166
|
+
});
|
|
1167
|
+
var isMutatingCreateHandleAction = (0, import_react_query6.useIsMutating)({
|
|
1168
|
+
mutationKey: [
|
|
1169
|
+
"handleAction",
|
|
1170
|
+
threadContext.variables
|
|
1171
|
+
]
|
|
1172
|
+
});
|
|
1173
|
+
return (0, import_react12.useMemo)(function() {
|
|
1174
|
+
return _object_spread_props(_object_spread({}, latestRunProps), {
|
|
1175
|
+
isRunActive: isRunActive({
|
|
1176
|
+
latestRunProps: latestRunProps,
|
|
1177
|
+
latestThreadMessageProps: latestThreadMessageProps,
|
|
1178
|
+
isMutating: isMutatingCreateRun > 0 || isMutatingCreateThreadMessage > 0 || isMutatingCreateHandleAction > 0
|
|
1179
|
+
})
|
|
1180
|
+
});
|
|
1181
|
+
}, [
|
|
1182
|
+
latestRunProps,
|
|
1183
|
+
latestThreadMessageProps,
|
|
1184
|
+
isMutatingCreateRun,
|
|
1185
|
+
isMutatingCreateThreadMessage,
|
|
1186
|
+
isMutatingCreateHandleAction
|
|
1187
|
+
]);
|
|
1188
|
+
};
|
|
1189
|
+
// src/hooks/runs/usePolling/lib/refetch.ts
|
|
1190
|
+
var refetch = function() {
|
|
1191
|
+
var _ref = _async_to_generator(function(param) {
|
|
1192
|
+
var queryClient, threadContext, _threadContext_defaultOptions_queries_queryKey, _threadContext_defaultOptions_queries_queryKey1;
|
|
1193
|
+
return _ts_generator(this, function(_state) {
|
|
1194
|
+
switch(_state.label){
|
|
1195
|
+
case 0:
|
|
1196
|
+
queryClient = param.queryClient, threadContext = param.threadContext;
|
|
1197
|
+
return [
|
|
1198
|
+
4,
|
|
1199
|
+
queryClient.invalidateQueries({
|
|
1200
|
+
queryKey: (_threadContext_defaultOptions_queries_queryKey = threadContext.defaultOptions.queries.queryKey) !== null && _threadContext_defaultOptions_queries_queryKey !== void 0 ? _threadContext_defaultOptions_queries_queryKey : [
|
|
1201
|
+
"threadMessages",
|
|
1202
|
+
threadContext.variables
|
|
1203
|
+
]
|
|
1204
|
+
})
|
|
1205
|
+
];
|
|
1206
|
+
case 1:
|
|
1207
|
+
_state.sent();
|
|
1208
|
+
return [
|
|
1209
|
+
4,
|
|
1210
|
+
queryClient.invalidateQueries({
|
|
1211
|
+
queryKey: (_threadContext_defaultOptions_queries_queryKey1 = threadContext.defaultOptions.queries.queryKey) !== null && _threadContext_defaultOptions_queries_queryKey1 !== void 0 ? _threadContext_defaultOptions_queries_queryKey1 : [
|
|
1212
|
+
"runs",
|
|
1213
|
+
threadContext.variables
|
|
1214
|
+
]
|
|
1215
|
+
})
|
|
1216
|
+
];
|
|
1217
|
+
case 2:
|
|
1218
|
+
_state.sent();
|
|
1219
|
+
return [
|
|
1220
|
+
2
|
|
1221
|
+
];
|
|
1222
|
+
}
|
|
1223
|
+
});
|
|
1224
|
+
});
|
|
1225
|
+
return function refetch(_) {
|
|
1226
|
+
return _ref.apply(this, arguments);
|
|
1227
|
+
};
|
|
1228
|
+
}();
|
|
1229
|
+
// src/hooks/runs/usePolling/index.tsx
|
|
1230
|
+
var usePolling = function() {
|
|
1231
|
+
var threadContext = useSuperinterfaceContext();
|
|
1232
|
+
var queryClient = (0, import_react_query7.useQueryClient)();
|
|
1233
|
+
var isRunActiveProps = useIsRunActive();
|
|
1234
|
+
(0, import_react_use.useInterval)(function() {
|
|
1235
|
+
refetch({
|
|
1236
|
+
queryClient: queryClient,
|
|
1237
|
+
threadContext: threadContext
|
|
1238
|
+
});
|
|
1239
|
+
console.log("poll refetched");
|
|
1240
|
+
}, isRunActiveProps.isRunActive ? 3e3 : null);
|
|
1241
|
+
return null;
|
|
1242
|
+
};
|
|
1243
|
+
// src/hooks/actions/useManageActions/index.tsx
|
|
1244
|
+
var import_react_query9 = require("@tanstack/react-query");
|
|
1245
|
+
var import_react13 = require("react");
|
|
1246
|
+
// src/hooks/actions/useHandleAction/index.tsx
|
|
1247
|
+
var import_radash3 = require("radash");
|
|
1248
|
+
var import_react_query8 = require("@tanstack/react-query");
|
|
1249
|
+
// src/hooks/actions/useHandleAction/lib/onSettled.ts
|
|
1250
|
+
var onSettled2 = function(param) {
|
|
1251
|
+
var queryClient = param.queryClient;
|
|
1252
|
+
return function() {
|
|
1253
|
+
var _ref = _async_to_generator(function(_data, _error, variables) {
|
|
1254
|
+
return _ts_generator(this, function(_state) {
|
|
1255
|
+
switch(_state.label){
|
|
1256
|
+
case 0:
|
|
1257
|
+
return [
|
|
1258
|
+
4,
|
|
1259
|
+
queryClient.invalidateQueries({
|
|
1260
|
+
queryKey: [
|
|
1261
|
+
"threadMessages",
|
|
1262
|
+
variables
|
|
1263
|
+
]
|
|
1264
|
+
})
|
|
1265
|
+
];
|
|
1266
|
+
case 1:
|
|
1267
|
+
_state.sent();
|
|
1268
|
+
return [
|
|
1269
|
+
4,
|
|
1270
|
+
queryClient.invalidateQueries({
|
|
1271
|
+
queryKey: [
|
|
1272
|
+
"runs",
|
|
1273
|
+
variables
|
|
1274
|
+
]
|
|
1275
|
+
})
|
|
1276
|
+
];
|
|
1277
|
+
case 2:
|
|
1278
|
+
_state.sent();
|
|
1279
|
+
return [
|
|
1280
|
+
2
|
|
1281
|
+
];
|
|
1282
|
+
}
|
|
1283
|
+
});
|
|
1284
|
+
});
|
|
1285
|
+
return function(_data, _error, variables) {
|
|
1286
|
+
return _ref.apply(this, arguments);
|
|
1287
|
+
};
|
|
1288
|
+
}();
|
|
1289
|
+
};
|
|
1290
|
+
// src/hooks/actions/useHandleAction/index.tsx
|
|
1291
|
+
var useHandleAction = function() {
|
|
1292
|
+
var queryClient = (0, import_react_query8.useQueryClient)();
|
|
1293
|
+
var superinterfaceContext = useSuperinterfaceContext();
|
|
1294
|
+
var threadContext = useSuperinterfaceContext();
|
|
1295
|
+
var props = (0, import_react_query8.useMutation)(_object_spread({
|
|
1296
|
+
onSettled: onSettled2({
|
|
1297
|
+
queryClient: queryClient
|
|
1298
|
+
})
|
|
1299
|
+
}, mutationOptions({
|
|
1300
|
+
mutationKeyBase: [
|
|
1301
|
+
"handleAction"
|
|
1302
|
+
],
|
|
1303
|
+
path: "/actions",
|
|
1304
|
+
queryClient: queryClient,
|
|
1305
|
+
threadContext: threadContext,
|
|
1306
|
+
superinterfaceContext: superinterfaceContext
|
|
1307
|
+
})));
|
|
1308
|
+
return _object_spread_props(_object_spread({}, props), {
|
|
1309
|
+
handleAction: (0, import_radash3.partob)(props.mutate, threadContext.variables)
|
|
1310
|
+
});
|
|
1311
|
+
};
|
|
1312
|
+
// src/hooks/actions/useManageActions/index.tsx
|
|
1313
|
+
var useManageActions = function() {
|
|
1314
|
+
var queryClient = (0, import_react_query9.useQueryClient)();
|
|
1315
|
+
var threadContext = useSuperinterfaceContext();
|
|
1316
|
+
var latestRunProps = useLatestRun();
|
|
1317
|
+
var handleActionProps = useHandleAction();
|
|
1318
|
+
(0, import_react13.useEffect)(function() {
|
|
1319
|
+
if (handleActionProps.isPending) return;
|
|
1320
|
+
if (latestRunProps.isFetching) return;
|
|
1321
|
+
if (!latestRunProps.latestRun) return;
|
|
1322
|
+
if (latestRunProps.latestRun.status !== "requires_action") return;
|
|
1323
|
+
var isMutating = queryClient.isMutating({
|
|
1324
|
+
mutationKey: [
|
|
1325
|
+
"handleAction",
|
|
1326
|
+
threadContext.variables
|
|
1327
|
+
]
|
|
1328
|
+
});
|
|
1329
|
+
if (isMutating) return;
|
|
1330
|
+
console.log("requires action", {
|
|
1331
|
+
latestRunProps: latestRunProps
|
|
1332
|
+
});
|
|
1333
|
+
handleActionProps.handleAction({
|
|
1334
|
+
latestRun: latestRunProps.latestRun
|
|
1335
|
+
});
|
|
1336
|
+
}, [
|
|
1337
|
+
handleActionProps,
|
|
1338
|
+
latestRunProps
|
|
1339
|
+
]);
|
|
1340
|
+
return null;
|
|
1341
|
+
};
|
|
1342
|
+
// src/hooks/threads/useThreadLifecycles/index.tsx
|
|
1343
|
+
var useThreadLifecycles = function() {
|
|
1344
|
+
useManageRuns();
|
|
1345
|
+
useManageActions();
|
|
1346
|
+
usePolling();
|
|
1347
|
+
return null;
|
|
1348
|
+
};
|
|
1349
|
+
// src/hooks/threadMessageGroups/useThreadMessageGroups/index.ts
|
|
1350
|
+
var import_react14 = require("react");
|
|
1351
|
+
// src/hooks/threadMessageGroups/useThreadMessageGroups/lib/threadMessageGroups/index.ts
|
|
1352
|
+
var import_lodash6 = __toESM(require("lodash"), 1);
|
|
1353
|
+
var import_radash5 = require("radash");
|
|
1354
|
+
// src/lib/threadMessages/order.ts
|
|
1355
|
+
var import_radash4 = require("radash");
|
|
1356
|
+
var order = function(param) {
|
|
1357
|
+
var threadMessages2 = param.threadMessages;
|
|
1358
|
+
return (0, import_radash4.sort)(threadMessages2, function(tm) {
|
|
1359
|
+
return tm.created_at;
|
|
1360
|
+
}, true);
|
|
1361
|
+
};
|
|
1362
|
+
// src/hooks/threadMessageGroups/useThreadMessageGroups/lib/threadMessageGroups/newGroup/newGroupItem.ts
|
|
1363
|
+
var newGroupItem = function(param) {
|
|
1364
|
+
var threadMessage = param.threadMessage;
|
|
1365
|
+
return {
|
|
1366
|
+
id: threadMessage.id,
|
|
1367
|
+
role: threadMessage.role,
|
|
1368
|
+
createdAt: threadMessage.created_at,
|
|
1369
|
+
threadMessages: [
|
|
1370
|
+
threadMessage
|
|
1371
|
+
]
|
|
1372
|
+
};
|
|
1373
|
+
};
|
|
1374
|
+
// src/hooks/threadMessageGroups/useThreadMessageGroups/lib/threadMessageGroups/newGroup/index.ts
|
|
1375
|
+
var newGroup = function(param) {
|
|
1376
|
+
var groups = param.groups, threadMessage = param.threadMessage;
|
|
1377
|
+
return _to_consumable_array(groups).concat([
|
|
1378
|
+
newGroupItem({
|
|
1379
|
+
threadMessage: threadMessage
|
|
1380
|
+
})
|
|
1381
|
+
]);
|
|
1382
|
+
};
|
|
1383
|
+
// src/hooks/threadMessageGroups/useThreadMessageGroups/lib/threadMessageGroups/index.ts
|
|
1384
|
+
var threadMessageGroups = function(param) {
|
|
1385
|
+
var threadMessages2 = param.threadMessages;
|
|
1386
|
+
return import_lodash6.default.reduce(order({
|
|
1387
|
+
threadMessages: threadMessages2
|
|
1388
|
+
}), function(groups, threadMessage) {
|
|
1389
|
+
var group = (0, import_radash5.last)(groups);
|
|
1390
|
+
if (!group) return newGroup({
|
|
1391
|
+
groups: groups,
|
|
1392
|
+
threadMessage: threadMessage
|
|
1393
|
+
});
|
|
1394
|
+
if (group.role !== threadMessage.role) {
|
|
1395
|
+
return newGroup({
|
|
1396
|
+
groups: groups,
|
|
1397
|
+
threadMessage: threadMessage
|
|
1398
|
+
});
|
|
1399
|
+
}
|
|
1400
|
+
return _to_consumable_array(import_lodash6.default.dropRight(groups)).concat([
|
|
1401
|
+
_object_spread_props(_object_spread({}, group), {
|
|
1402
|
+
threadMessages: _to_consumable_array(group.threadMessages).concat([
|
|
1403
|
+
threadMessage
|
|
1404
|
+
])
|
|
1405
|
+
})
|
|
1406
|
+
]);
|
|
1407
|
+
}, []);
|
|
1408
|
+
};
|
|
1409
|
+
// src/hooks/threadMessageGroups/useThreadMessageGroups/index.ts
|
|
1410
|
+
var useThreadMessageGroups = function(param) {
|
|
1411
|
+
var threadMessages2 = param.threadMessages;
|
|
1412
|
+
return (0, import_react14.useMemo)(function() {
|
|
1413
|
+
return {
|
|
1414
|
+
threadMessageGroups: threadMessageGroups({
|
|
1415
|
+
threadMessages: threadMessages2
|
|
1416
|
+
})
|
|
1417
|
+
};
|
|
1418
|
+
}, [
|
|
1419
|
+
threadMessages2
|
|
1420
|
+
]);
|
|
1421
|
+
};
|
|
1422
|
+
// src/components/threadMessages/ThreadMessages/Content/ThreadMessageGroup/index.tsx
|
|
1423
|
+
var import_react24 = require("react");
|
|
1424
|
+
var import_themes24 = require("@radix-ui/themes");
|
|
1425
|
+
var import_react_icons4 = require("@radix-ui/react-icons");
|
|
1426
|
+
// src/components/threadMessageGroups/ThreadMessagesGroupBase/AssistantAvatar.tsx
|
|
1427
|
+
var import_react16 = require("react");
|
|
1428
|
+
var import_themes6 = require("@radix-ui/themes");
|
|
1429
|
+
// src/contexts/assistants/AssistantAvatarContext/index.tsx
|
|
1430
|
+
var import_react15 = require("react");
|
|
1431
|
+
var import_themes5 = require("@radix-ui/themes");
|
|
1432
|
+
var import_react_icons = require("@radix-ui/react-icons");
|
|
1433
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
1434
|
+
var AssistantAvatarContext = (0, import_react15.createContext)(/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_themes5.Avatar, {
|
|
1435
|
+
fallback: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_icons.LightningBoltIcon, {}),
|
|
1436
|
+
size: "1"
|
|
1437
|
+
}));
|
|
1438
|
+
// src/components/threadMessageGroups/ThreadMessagesGroupBase/AssistantAvatar.tsx
|
|
1439
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1440
|
+
var AssistantAvatar = function() {
|
|
1441
|
+
var AssistantAvatarContextValue = (0, import_react16.useContext)(AssistantAvatarContext);
|
|
1442
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_themes6.Flex, {
|
|
1443
|
+
shrink: "0",
|
|
1444
|
+
style: {
|
|
1445
|
+
borderRadius: "var(--radius-3)",
|
|
1446
|
+
overflow: "hidden",
|
|
1447
|
+
height: "24px",
|
|
1448
|
+
width: "24px"
|
|
1449
|
+
},
|
|
1450
|
+
children: AssistantAvatarContextValue
|
|
1451
|
+
});
|
|
1452
|
+
};
|
|
1453
|
+
// src/contexts/assistants/AssistantNameContext/index.tsx
|
|
1454
|
+
var import_react17 = require("react");
|
|
1455
|
+
var AssistantNameContext = (0, import_react17.createContext)("Assistant");
|
|
1456
|
+
// src/components/threadMessages/ThreadMessages/Content/ThreadMessageGroup/Content/index.tsx
|
|
1457
|
+
var import_themes23 = require("@radix-ui/themes");
|
|
1458
|
+
// src/components/ThreadMessages/ThreadMessage/index.tsx
|
|
1459
|
+
var import_react23 = require("react");
|
|
1460
|
+
var import_themes22 = require("@radix-ui/themes");
|
|
1461
|
+
// src/components/runSteps/RunSteps/index.tsx
|
|
1462
|
+
var import_themes15 = require("@radix-ui/themes");
|
|
1463
|
+
// src/components/runSteps/RunStep/ToolCalls/index.tsx
|
|
1464
|
+
var import_themes14 = require("@radix-ui/themes");
|
|
1465
|
+
// src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
|
|
1466
|
+
var import_themes12 = require("@radix-ui/themes");
|
|
1467
|
+
// src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
|
|
1468
|
+
var import_react20 = require("react");
|
|
1469
|
+
// src/contexts/functions/FunctionComponentsContext/index.tsx
|
|
1470
|
+
var import_react18 = require("react");
|
|
1471
|
+
var FunctionComponentsContext = (0, import_react18.createContext)({});
|
|
1472
|
+
// src/components/functions/FunctionBase/index.tsx
|
|
1473
|
+
var import_themes10 = require("@radix-ui/themes");
|
|
1474
|
+
// src/components/toolCalls/ToolCallBase/index.tsx
|
|
1475
|
+
var import_themes7 = require("@radix-ui/themes");
|
|
1476
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
1477
|
+
var ToolCallBase = function(param) {
|
|
1478
|
+
var children = param.children;
|
|
1479
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes7.Flex, {
|
|
1480
|
+
py: "1",
|
|
1481
|
+
ml: "-2",
|
|
1482
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes7.PopoverTrigger, {
|
|
1483
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_themes7.Button, {
|
|
1484
|
+
size: "1",
|
|
1485
|
+
color: "gold",
|
|
1486
|
+
variant: "outline",
|
|
1487
|
+
style: {
|
|
1488
|
+
boxShadow: "none"
|
|
1489
|
+
},
|
|
1490
|
+
children: children
|
|
1491
|
+
})
|
|
1492
|
+
})
|
|
1493
|
+
});
|
|
1494
|
+
};
|
|
1495
|
+
// src/components/toolCalls/ToolCallBase/ToolCallTitle.tsx
|
|
1496
|
+
var import_themes8 = require("@radix-ui/themes");
|
|
1497
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1498
|
+
var ToolCallTitle = function(param) {
|
|
1499
|
+
var children = param.children;
|
|
1500
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_themes8.Text, {
|
|
1501
|
+
weight: "regular",
|
|
1502
|
+
children: children
|
|
1503
|
+
});
|
|
1504
|
+
};
|
|
1505
|
+
// src/components/functions/FunctionBase/Icon.tsx
|
|
1506
|
+
var import_react_icons2 = require("@radix-ui/react-icons");
|
|
1507
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1508
|
+
var Icon = function(param) {
|
|
1509
|
+
var runStep = param.runStep;
|
|
1510
|
+
if (runStep.completed_at) {
|
|
1511
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_icons2.CheckCircledIcon, {});
|
|
1512
|
+
} else if (runStep.cancelled_at || runStep.failed_at || runStep.status === "expired") {
|
|
1513
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_icons2.CircleBackslashIcon, {});
|
|
1514
|
+
} else {
|
|
1515
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_icons2.CircleIcon, {});
|
|
1516
|
+
}
|
|
1517
|
+
};
|
|
1518
|
+
// src/components/functions/FunctionBase/Content.tsx
|
|
1519
|
+
var import_react19 = require("react");
|
|
1520
|
+
var import_themes9 = require("@radix-ui/themes");
|
|
1521
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1522
|
+
var Content = function(param) {
|
|
1523
|
+
var fn = param.fn;
|
|
1524
|
+
var args = (0, import_react19.useMemo)(function() {
|
|
1525
|
+
var result = null;
|
|
1526
|
+
try {
|
|
1527
|
+
result = JSON.parse(fn.arguments);
|
|
1528
|
+
} catch (error) {
|
|
1529
|
+
console.error(error);
|
|
1530
|
+
}
|
|
1531
|
+
return result;
|
|
1532
|
+
}, [
|
|
1533
|
+
fn
|
|
1534
|
+
]);
|
|
1535
|
+
var output = (0, import_react19.useMemo)(function() {
|
|
1536
|
+
if (!fn.output) {
|
|
1537
|
+
return null;
|
|
1538
|
+
}
|
|
1539
|
+
var result = null;
|
|
1540
|
+
try {
|
|
1541
|
+
result = JSON.parse(fn.output);
|
|
1542
|
+
} catch (error) {
|
|
1543
|
+
console.error(error);
|
|
1544
|
+
}
|
|
1545
|
+
return result;
|
|
1546
|
+
}, [
|
|
1547
|
+
fn
|
|
1548
|
+
]);
|
|
1549
|
+
if (!args) {
|
|
1550
|
+
return null;
|
|
1551
|
+
}
|
|
1552
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_themes9.Code, {
|
|
1553
|
+
variant: "ghost",
|
|
1554
|
+
color: "gold",
|
|
1555
|
+
style: {
|
|
1556
|
+
whiteSpace: "pre",
|
|
1557
|
+
wordBreak: "break-word"
|
|
1558
|
+
},
|
|
1559
|
+
children: [
|
|
1560
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_themes9.Box, {
|
|
1561
|
+
children: args && JSON.stringify(args, null, 2)
|
|
1562
|
+
}),
|
|
1563
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_themes9.Box, {
|
|
1564
|
+
children: output && JSON.stringify(output, null, 2)
|
|
1565
|
+
})
|
|
1566
|
+
]
|
|
1567
|
+
});
|
|
1568
|
+
};
|
|
1569
|
+
// src/components/functions/FunctionBase/index.tsx
|
|
1570
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1571
|
+
var FunctionBase = function(param) {
|
|
1572
|
+
var fn = param.fn, runStep = param.runStep, title2 = param.title;
|
|
1573
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_themes10.PopoverRoot, {
|
|
1574
|
+
children: [
|
|
1575
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(ToolCallBase, {
|
|
1576
|
+
children: [
|
|
1577
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, {
|
|
1578
|
+
runStep: runStep
|
|
1579
|
+
}),
|
|
1580
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ToolCallTitle, {
|
|
1581
|
+
children: title2
|
|
1582
|
+
})
|
|
1583
|
+
]
|
|
1584
|
+
}),
|
|
1585
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_themes10.PopoverContent, {
|
|
1586
|
+
style: {
|
|
1587
|
+
maxHeight: "500px"
|
|
1588
|
+
},
|
|
1589
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Content, {
|
|
1590
|
+
fn: fn
|
|
1591
|
+
})
|
|
1592
|
+
})
|
|
1593
|
+
]
|
|
1594
|
+
});
|
|
1595
|
+
};
|
|
1596
|
+
// src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/DefaultFunction/lib/title.ts
|
|
1597
|
+
var title = function(param) {
|
|
1598
|
+
var fn = param.fn, runStep = param.runStep;
|
|
1599
|
+
if (runStep.completed_at) {
|
|
1600
|
+
return "Finished ".concat(fn.name);
|
|
1601
|
+
} else if (runStep.cancelled_at) {
|
|
1602
|
+
return "Cancelled ".concat(fn.name);
|
|
1603
|
+
} else {
|
|
1604
|
+
return "Calling ".concat(fn.name);
|
|
1605
|
+
}
|
|
1606
|
+
};
|
|
1607
|
+
// src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/DefaultFunction/index.tsx
|
|
1608
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1609
|
+
var DefaultFunction = function(param) {
|
|
1610
|
+
var fn = param.fn, runStep = param.runStep;
|
|
1611
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(FunctionBase, {
|
|
1612
|
+
fn: fn,
|
|
1613
|
+
runStep: runStep,
|
|
1614
|
+
title: title({
|
|
1615
|
+
runStep: runStep,
|
|
1616
|
+
fn: fn
|
|
1617
|
+
})
|
|
1618
|
+
});
|
|
1619
|
+
};
|
|
1620
|
+
// src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
|
|
1621
|
+
var import_jsx_runtime14 = // @ts-ignore-next-line
|
|
1622
|
+
require("react/jsx-runtime");
|
|
1623
|
+
var Fn = function(param) {
|
|
1624
|
+
var fn = param.fn, runStep = param.runStep;
|
|
1625
|
+
var functionComponentsContext = (0, import_react20.useContext)(FunctionComponentsContext);
|
|
1626
|
+
var Component = functionComponentsContext[fn.name] || DefaultFunction;
|
|
1627
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Component, {
|
|
1628
|
+
fn: fn,
|
|
1629
|
+
runStep: runStep
|
|
1630
|
+
});
|
|
1631
|
+
};
|
|
1632
|
+
// src/components/runSteps/RunStep/ToolCalls/ToolCall/CodeInterpreter/index.tsx
|
|
1633
|
+
var import_themes11 = require("@radix-ui/themes");
|
|
1634
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1635
|
+
var CodeInterpreter = function(param) {
|
|
1636
|
+
var codeInterpreter = param.codeInterpreter;
|
|
1637
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_themes11.Flex, {
|
|
1638
|
+
children: codeInterpreter.input
|
|
1639
|
+
});
|
|
1640
|
+
};
|
|
1641
|
+
// src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
|
|
1642
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1643
|
+
var ToolCall = function(param) {
|
|
1644
|
+
var toolCall = param.toolCall, runStep = param.runStep;
|
|
1645
|
+
if (toolCall.type === "function") {
|
|
1646
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Fn, {
|
|
1647
|
+
fn: toolCall.function,
|
|
1648
|
+
runStep: runStep
|
|
1649
|
+
});
|
|
1650
|
+
}
|
|
1651
|
+
if (toolCall.type === "code_interpreter") {
|
|
1652
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(CodeInterpreter, {
|
|
1653
|
+
codeInterpreter: toolCall.code_interpreter,
|
|
1654
|
+
runStep: runStep
|
|
1655
|
+
});
|
|
1656
|
+
}
|
|
1657
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_themes12.Flex, {
|
|
1658
|
+
children: toolCall.type
|
|
1659
|
+
});
|
|
1660
|
+
};
|
|
1661
|
+
// src/components/runSteps/RunStep/ToolCalls/Starting/index.tsx
|
|
1662
|
+
var import_themes13 = require("@radix-ui/themes");
|
|
1663
|
+
var import_react_icons3 = require("@radix-ui/react-icons");
|
|
1664
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1665
|
+
var Starting = function() {
|
|
1666
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_themes13.PopoverRoot, {
|
|
1667
|
+
children: [
|
|
1668
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(ToolCallBase, {
|
|
1669
|
+
children: [
|
|
1670
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_icons3.CircleIcon, {}),
|
|
1671
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ToolCallTitle, {
|
|
1672
|
+
children: "Starting actions"
|
|
1673
|
+
})
|
|
1674
|
+
]
|
|
1675
|
+
}),
|
|
1676
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_themes13.PopoverContent, {
|
|
1677
|
+
style: {
|
|
1678
|
+
maxHeight: "500px"
|
|
1679
|
+
},
|
|
1680
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_themes13.Text, {
|
|
1681
|
+
children: "Getting ready to connect to domain API"
|
|
1682
|
+
})
|
|
1683
|
+
})
|
|
1684
|
+
]
|
|
1685
|
+
});
|
|
1686
|
+
};
|
|
1687
|
+
// src/components/runSteps/RunStep/ToolCalls/index.tsx
|
|
1688
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1689
|
+
var ToolCalls = function(param) {
|
|
1690
|
+
var stepDetails = param.stepDetails, runStep = param.runStep;
|
|
1691
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_themes14.Flex, {
|
|
1692
|
+
direction: "column",
|
|
1693
|
+
children: [
|
|
1694
|
+
!stepDetails.tool_calls.length && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Starting, {}),
|
|
1695
|
+
stepDetails.tool_calls.map(function(toolCall) {
|
|
1696
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ToolCall, {
|
|
1697
|
+
toolCall: toolCall,
|
|
1698
|
+
runStep: runStep
|
|
1699
|
+
}, toolCall.id);
|
|
1700
|
+
})
|
|
1701
|
+
]
|
|
1702
|
+
});
|
|
1703
|
+
};
|
|
1704
|
+
// src/components/runSteps/RunStep/index.tsx
|
|
1705
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1706
|
+
var RunStep = function(param) {
|
|
1707
|
+
var runStep = param.runStep;
|
|
1708
|
+
if (runStep.step_details.type === "tool_calls") {
|
|
1709
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ToolCalls, {
|
|
1710
|
+
stepDetails: runStep.step_details,
|
|
1711
|
+
runStep: runStep
|
|
1712
|
+
});
|
|
1713
|
+
}
|
|
1714
|
+
return null;
|
|
1715
|
+
};
|
|
1716
|
+
// src/components/runSteps/RunSteps/index.tsx
|
|
1717
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1718
|
+
var RunSteps = function(param) {
|
|
1719
|
+
var runSteps = param.runSteps;
|
|
1720
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_themes15.Flex, {
|
|
1721
|
+
direction: "column-reverse",
|
|
1722
|
+
children: runSteps.map(function(runStep) {
|
|
1723
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(RunStep, {
|
|
1724
|
+
runStep: runStep
|
|
1725
|
+
}, runStep.id);
|
|
1726
|
+
})
|
|
1727
|
+
});
|
|
1728
|
+
};
|
|
1729
|
+
// src/components/ThreadMessages/ThreadMessage/TextContent/index.tsx
|
|
1730
|
+
var import_react22 = require("react");
|
|
1731
|
+
var import_react_remark = require("react-remark");
|
|
1732
|
+
// src/contexts/markdown/MarkdownContext/index.ts
|
|
1733
|
+
var import_react21 = require("react");
|
|
1734
|
+
// src/contexts/markdown/MarkdownContext/lib/components/Paragraph.tsx
|
|
1735
|
+
var import_themes16 = require("@radix-ui/themes");
|
|
1736
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1737
|
+
var Paragraph = function(param) {
|
|
1738
|
+
var children = param.children;
|
|
1739
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_themes16.Box, {
|
|
1740
|
+
pb: "3",
|
|
1741
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_themes16.Text, {
|
|
1742
|
+
size: "3",
|
|
1743
|
+
style: {
|
|
1744
|
+
whiteSpace: "pre-line",
|
|
1745
|
+
wordBreak: "break-word"
|
|
1746
|
+
},
|
|
1747
|
+
children: children
|
|
1748
|
+
})
|
|
1749
|
+
});
|
|
1750
|
+
};
|
|
1751
|
+
// src/contexts/markdown/MarkdownContext/lib/components/Link.tsx
|
|
1752
|
+
var import_themes17 = require("@radix-ui/themes");
|
|
1753
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1754
|
+
var Link = function(param) {
|
|
1755
|
+
var children = param.children, href = param.href;
|
|
1756
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_themes17.Link, {
|
|
1757
|
+
href: href,
|
|
1758
|
+
children: children
|
|
1759
|
+
});
|
|
1760
|
+
};
|
|
1761
|
+
// src/contexts/markdown/MarkdownContext/lib/components/UnorderedList.tsx
|
|
1762
|
+
var import_themes18 = require("@radix-ui/themes");
|
|
1763
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1764
|
+
var UnorderedList = function(param) {
|
|
1765
|
+
var children = param.children;
|
|
1766
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_themes18.Box, {
|
|
1767
|
+
pb: "3",
|
|
1768
|
+
asChild: true,
|
|
1769
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("ul", {
|
|
1770
|
+
style: {
|
|
1771
|
+
listStylePosition: "inside"
|
|
1772
|
+
},
|
|
1773
|
+
children: children
|
|
1774
|
+
})
|
|
1775
|
+
});
|
|
1776
|
+
};
|
|
1777
|
+
// src/contexts/markdown/MarkdownContext/lib/components/OrderedList.tsx
|
|
1778
|
+
var import_themes19 = require("@radix-ui/themes");
|
|
1779
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1780
|
+
var OrderedList = function(param) {
|
|
1781
|
+
var children = param.children;
|
|
1782
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_themes19.Box, {
|
|
1783
|
+
pb: "3",
|
|
1784
|
+
asChild: true,
|
|
1785
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ol", {
|
|
1786
|
+
style: {
|
|
1787
|
+
listStylePosition: "inside"
|
|
1788
|
+
},
|
|
1789
|
+
children: children
|
|
1790
|
+
})
|
|
1791
|
+
});
|
|
1792
|
+
};
|
|
1793
|
+
// src/contexts/markdown/MarkdownContext/lib/components/ListItem.tsx
|
|
1794
|
+
var import_themes20 = require("@radix-ui/themes");
|
|
1795
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1796
|
+
var ListItem = function(param) {
|
|
1797
|
+
var children = param.children;
|
|
1798
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_themes20.Box, {
|
|
1799
|
+
pb: "1",
|
|
1800
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("li", {
|
|
1801
|
+
children: children
|
|
1802
|
+
})
|
|
1803
|
+
});
|
|
1804
|
+
};
|
|
1805
|
+
// src/contexts/markdown/MarkdownContext/lib/components/Strong.tsx
|
|
1806
|
+
var import_themes21 = require("@radix-ui/themes");
|
|
1807
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1808
|
+
var Strong = function(param) {
|
|
1809
|
+
var children = param.children;
|
|
1810
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_themes21.Strong, {
|
|
1811
|
+
children: children
|
|
1812
|
+
});
|
|
1813
|
+
};
|
|
1814
|
+
// src/contexts/markdown/MarkdownContext/lib/components/index.tsx
|
|
1815
|
+
var components = {
|
|
1816
|
+
p: Paragraph,
|
|
1817
|
+
a: Link,
|
|
1818
|
+
strong: Strong,
|
|
1819
|
+
ul: UnorderedList,
|
|
1820
|
+
ol: OrderedList,
|
|
1821
|
+
li: ListItem
|
|
1822
|
+
};
|
|
1823
|
+
// src/contexts/markdown/MarkdownContext/index.ts
|
|
1824
|
+
var MarkdownContext = (0, import_react21.createContext)({
|
|
1825
|
+
remarkPlugins: [],
|
|
1826
|
+
rehypeReactOptions: {
|
|
1827
|
+
components: components
|
|
1828
|
+
}
|
|
1829
|
+
});
|
|
1830
|
+
// src/components/ThreadMessages/ThreadMessage/TextContent/index.tsx
|
|
1831
|
+
var TextContent = function(param) {
|
|
1832
|
+
var content = param.content;
|
|
1833
|
+
var markdownContext = (0, import_react22.useContext)(MarkdownContext);
|
|
1834
|
+
return (0, import_react_remark.useRemarkSync)(content.text.value, markdownContext);
|
|
1835
|
+
};
|
|
1836
|
+
// src/components/ThreadMessages/ThreadMessage/index.tsx
|
|
1837
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1838
|
+
var ThreadMessage = function(param) {
|
|
1839
|
+
var threadMessage = param.threadMessage;
|
|
1840
|
+
var _ref = _sliced_to_array((0, import_react23.useMemo)(function() {
|
|
1841
|
+
if (!threadMessage.runSteps.length) return [
|
|
1842
|
+
[],
|
|
1843
|
+
[]
|
|
1844
|
+
];
|
|
1845
|
+
var messageCreationRunStepIndex = threadMessage.runSteps.findIndex(function(runStep) {
|
|
1846
|
+
if (runStep.step_details.type !== "message_creation") return;
|
|
1847
|
+
return runStep.step_details.message_creation.message_id === threadMessage.id;
|
|
1848
|
+
});
|
|
1849
|
+
var nextRunStepIndex = threadMessage.runSteps.slice(0, messageCreationRunStepIndex).findLastIndex(function(runStep) {
|
|
1850
|
+
return runStep.step_details.type === "message_creation";
|
|
1851
|
+
});
|
|
1852
|
+
if (nextRunStepIndex === -1) {
|
|
1853
|
+
nextRunStepIndex = 0;
|
|
1854
|
+
}
|
|
1855
|
+
var laterRunSteps2 = threadMessage.runSteps.slice(nextRunStepIndex, messageCreationRunStepIndex);
|
|
1856
|
+
var prevRunStepIndex = threadMessage.runSteps.slice(messageCreationRunStepIndex + 1).findIndex(function(runStep) {
|
|
1857
|
+
return runStep.step_details.type === "message_creation";
|
|
1858
|
+
});
|
|
1859
|
+
var olderRunSteps2;
|
|
1860
|
+
if (prevRunStepIndex === -1) {
|
|
1861
|
+
olderRunSteps2 = threadMessage.runSteps.slice(messageCreationRunStepIndex + 1);
|
|
1862
|
+
} else {
|
|
1863
|
+
olderRunSteps2 = threadMessage.runSteps.slice(messageCreationRunStepIndex + 1, messageCreationRunStepIndex + prevRunStepIndex);
|
|
1864
|
+
}
|
|
1865
|
+
return [
|
|
1866
|
+
olderRunSteps2,
|
|
1867
|
+
laterRunSteps2
|
|
1868
|
+
];
|
|
1869
|
+
}, [
|
|
1870
|
+
threadMessage
|
|
1871
|
+
]), 2), olderRunSteps = _ref[0], laterRunSteps = _ref[1];
|
|
1872
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_themes22.Box, {
|
|
1873
|
+
children: [
|
|
1874
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RunSteps, {
|
|
1875
|
+
runSteps: olderRunSteps
|
|
1876
|
+
}),
|
|
1877
|
+
threadMessage.content.map(function(content, index) {
|
|
1878
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_themes22.Box, {
|
|
1879
|
+
children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(TextContent, {
|
|
1880
|
+
content: content
|
|
1881
|
+
})
|
|
1882
|
+
}, index);
|
|
1883
|
+
}),
|
|
1884
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RunSteps, {
|
|
1885
|
+
runSteps: laterRunSteps
|
|
1886
|
+
})
|
|
1887
|
+
]
|
|
1888
|
+
});
|
|
1889
|
+
};
|
|
1890
|
+
// src/components/threadMessages/ThreadMessages/Content/ThreadMessageGroup/Content/index.tsx
|
|
1891
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1892
|
+
var Content2 = function(param) {
|
|
1893
|
+
var threadMessageGroup = param.threadMessageGroup;
|
|
1894
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_themes23.Flex, {
|
|
1895
|
+
direction: "column-reverse",
|
|
1896
|
+
children: threadMessageGroup.threadMessages.map(function(threadMessage) {
|
|
1897
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ThreadMessage, {
|
|
1898
|
+
threadMessage: threadMessage
|
|
1899
|
+
}, threadMessage.id);
|
|
1900
|
+
})
|
|
1901
|
+
});
|
|
1902
|
+
};
|
|
1903
|
+
// src/components/threadMessages/ThreadMessages/Content/ThreadMessageGroup/index.tsx
|
|
1904
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1905
|
+
var ThreadMessageGroup = function(param) {
|
|
1906
|
+
var threadMessageGroup = param.threadMessageGroup;
|
|
1907
|
+
var assistantNameContext = (0, import_react24.useContext)(AssistantNameContext);
|
|
1908
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(ThreadMessagesGroupBase, {
|
|
1909
|
+
children: [
|
|
1910
|
+
threadMessageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_themes24.Avatar, {
|
|
1911
|
+
fallback: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_icons4.PersonIcon, {}),
|
|
1912
|
+
size: "1"
|
|
1913
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AssistantAvatar, {}),
|
|
1914
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_themes24.Box, {
|
|
1915
|
+
grow: "1",
|
|
1916
|
+
children: [
|
|
1917
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Name, {
|
|
1918
|
+
children: threadMessageGroup.role === "user" ? "You" : assistantNameContext
|
|
1919
|
+
}),
|
|
1920
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Content2, {
|
|
1921
|
+
threadMessageGroup: threadMessageGroup
|
|
1922
|
+
})
|
|
1923
|
+
]
|
|
1924
|
+
})
|
|
1925
|
+
]
|
|
1926
|
+
});
|
|
1927
|
+
};
|
|
1928
|
+
// src/components/threadMessages/ThreadMessages/Content/index.tsx
|
|
1929
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1930
|
+
var Content3 = function(param) {
|
|
1931
|
+
var threadMessages2 = param.threadMessages, isLoading = param.isLoading, isLoadingError = param.isLoadingError;
|
|
1932
|
+
var _useThreadMessageGroups = useThreadMessageGroups({
|
|
1933
|
+
threadMessages: threadMessages2
|
|
1934
|
+
}), threadMessageGroups2 = _useThreadMessageGroups.threadMessageGroups;
|
|
1935
|
+
if (isLoading || isLoadingError) {
|
|
1936
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ThreadMessagesSkeleton, {});
|
|
1937
|
+
}
|
|
1938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, {
|
|
1939
|
+
children: threadMessageGroups2.map(function(threadMessageGroup) {
|
|
1940
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ThreadMessageGroup, {
|
|
1941
|
+
threadMessageGroup: threadMessageGroup
|
|
1942
|
+
}, threadMessageGroup.id);
|
|
1943
|
+
})
|
|
1944
|
+
});
|
|
1945
|
+
};
|
|
1946
|
+
// src/components/threadMessages/ThreadMessages/Progress/index.tsx
|
|
1947
|
+
var import_themes27 = require("@radix-ui/themes");
|
|
1948
|
+
// src/components/skeletons/StartingContentSkeleton/index.tsx
|
|
1949
|
+
var import_themes25 = require("@radix-ui/themes");
|
|
1950
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
1951
|
+
var StartingContentSkeleton = function() {
|
|
1952
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_themes25.Box, {
|
|
1953
|
+
shrink: "0",
|
|
1954
|
+
mt: "1",
|
|
1955
|
+
style: {
|
|
1956
|
+
animation: "pulse 2s cubic-bezier(.4,0,.6,1) infinite",
|
|
1957
|
+
borderRadius: "var(--radius-3)",
|
|
1958
|
+
backgroundColor: "var(--gray-12)",
|
|
1959
|
+
height: "var(--space-4)",
|
|
1960
|
+
width: "var(--space-4)"
|
|
1961
|
+
}
|
|
1962
|
+
});
|
|
1963
|
+
};
|
|
1964
|
+
// src/components/skeletons/StartingSkeleton/index.tsx
|
|
1965
|
+
var import_react25 = require("react");
|
|
1966
|
+
var import_themes26 = require("@radix-ui/themes");
|
|
1967
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
1968
|
+
var StartingSkeleton = function(param) {
|
|
1969
|
+
var children = param.children;
|
|
1970
|
+
var assistantNameContext = (0, import_react25.useContext)(AssistantNameContext);
|
|
1971
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(ThreadMessagesGroupBase, {
|
|
1972
|
+
children: [
|
|
1973
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(AssistantAvatar, {}),
|
|
1974
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_themes26.Box, {
|
|
1975
|
+
children: [
|
|
1976
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Name, {
|
|
1977
|
+
children: assistantNameContext
|
|
1978
|
+
}),
|
|
1979
|
+
children,
|
|
1980
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(StartingContentSkeleton, {})
|
|
1981
|
+
]
|
|
1982
|
+
})
|
|
1983
|
+
]
|
|
1984
|
+
});
|
|
1985
|
+
};
|
|
1986
|
+
// src/components/threadMessages/ThreadMessages/Progress/index.tsx
|
|
1987
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
1988
|
+
var Progress = function(param) {
|
|
1989
|
+
var latestThreadMessage = param.latestThreadMessage, isRunActive2 = param.isRunActive;
|
|
1990
|
+
if (!latestThreadMessage) return null;
|
|
1991
|
+
if (!isRunActive2) return null;
|
|
1992
|
+
if (latestThreadMessage.role === "user") {
|
|
1993
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingSkeleton, {});
|
|
1994
|
+
}
|
|
1995
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(ThreadMessagesGroupBase, {
|
|
1996
|
+
children: [
|
|
1997
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_themes27.Box, {
|
|
1998
|
+
pl: "5"
|
|
1999
|
+
}),
|
|
2000
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingContentSkeleton, {})
|
|
2001
|
+
]
|
|
2002
|
+
});
|
|
2003
|
+
};
|
|
2004
|
+
// src/components/threadMessages/ThreadMessages/index.tsx
|
|
2005
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
2006
|
+
var ThreadMessages = function(param) {
|
|
2007
|
+
var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
|
|
2008
|
+
var _useThreadMessages = useThreadMessages(), threadMessages2 = _useThreadMessages.threadMessages, isFetchingNextPage = _useThreadMessages.isFetchingNextPage, hasNextPage = _useThreadMessages.hasNextPage, fetchNextPage = _useThreadMessages.fetchNextPage, isLoading = _useThreadMessages.isLoading, isLoadingError = _useThreadMessages.isLoadingError;
|
|
2009
|
+
useThreadLifecycles();
|
|
2010
|
+
var _useInfiniteScroll = useInfiniteScroll({
|
|
2011
|
+
isFetchingNextPage: isFetchingNextPage,
|
|
2012
|
+
hasNextPage: hasNextPage,
|
|
2013
|
+
fetchNextPage: fetchNextPage
|
|
2014
|
+
}), containerRef = _useInfiniteScroll.containerRef, loaderRef = _useInfiniteScroll.loaderRef;
|
|
2015
|
+
var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
|
|
2016
|
+
var latestThreadMessage = useLatestThreadMessage().latestThreadMessage;
|
|
2017
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_themes28.Flex, {
|
|
2018
|
+
ref: containerRef,
|
|
2019
|
+
direction: "column-reverse",
|
|
2020
|
+
grow: "1",
|
|
2021
|
+
style: _object_spread_props(_object_spread({}, style), {
|
|
2022
|
+
overflow: "auto"
|
|
2023
|
+
}),
|
|
2024
|
+
children: [
|
|
2025
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_themes28.Flex, {
|
|
2026
|
+
shrink: "0",
|
|
2027
|
+
style: {
|
|
2028
|
+
height: "var(--space-3)"
|
|
2029
|
+
}
|
|
2030
|
+
}),
|
|
2031
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Progress, {
|
|
2032
|
+
latestThreadMessage: latestThreadMessage,
|
|
2033
|
+
isRunActive: isRunActive2
|
|
2034
|
+
}),
|
|
2035
|
+
children,
|
|
2036
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Content3, {
|
|
2037
|
+
threadMessages: threadMessages2,
|
|
2038
|
+
isLoading: isLoading,
|
|
2039
|
+
isLoadingError: isLoadingError
|
|
2040
|
+
}),
|
|
2041
|
+
hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ThreadMessagesSkeleton, {
|
|
2042
|
+
ref: loaderRef
|
|
2043
|
+
}),
|
|
2044
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_themes28.Flex, {
|
|
2045
|
+
shrink: "0",
|
|
2046
|
+
grow: "1"
|
|
2047
|
+
})
|
|
2048
|
+
]
|
|
2049
|
+
});
|
|
2050
|
+
};
|
|
2051
|
+
// src/components/threadMessages/ThreadMessageForm/index.tsx
|
|
2052
|
+
var import_themes30 = require("@radix-ui/themes");
|
|
2053
|
+
var import_react27 = require("react");
|
|
2054
|
+
var import_react_hook_form = require("react-hook-form");
|
|
2055
|
+
var import_react_use2 = require("react-use");
|
|
2056
|
+
// src/components/textareas/TextareaBase/index.tsx
|
|
2057
|
+
var import_react26 = require("react");
|
|
2058
|
+
var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"), 1);
|
|
2059
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
2060
|
+
var UPSCALE_RATIO = 16 / 14;
|
|
2061
|
+
var TextareaBase = (0, import_react26.forwardRef)(function TextareaBase2(props, ref) {
|
|
2062
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_textarea_autosize.default, _object_spread({
|
|
2063
|
+
ref: ref,
|
|
2064
|
+
className: "textarea-base",
|
|
2065
|
+
style: {
|
|
2066
|
+
resize: "none",
|
|
2067
|
+
fontSize: "".concat(14 * UPSCALE_RATIO, "px"),
|
|
2068
|
+
lineHeight: "".concat(24 * UPSCALE_RATIO, "px"),
|
|
2069
|
+
transform: "scale(".concat(1 / UPSCALE_RATIO, ")"),
|
|
2070
|
+
margin: "0 ".concat((-100 * UPSCALE_RATIO + 100) / 2, "%"),
|
|
2071
|
+
width: "".concat(100 * UPSCALE_RATIO, "%"),
|
|
2072
|
+
maxWidth: "".concat(100 * UPSCALE_RATIO, "%"),
|
|
2073
|
+
flexGrow: 1,
|
|
2074
|
+
display: "flex"
|
|
2075
|
+
}
|
|
2076
|
+
}, props));
|
|
2077
|
+
});
|
|
2078
|
+
// src/hooks/threadMessages/useCreateThreadMessage/index.ts
|
|
2079
|
+
var import_radash8 = require("radash");
|
|
2080
|
+
var import_react_query10 = require("@tanstack/react-query");
|
|
2081
|
+
// src/hooks/threadMessages/useCreateThreadMessage/lib/mutationOptions/onMutate/index.ts
|
|
2082
|
+
var import_radash6 = require("radash");
|
|
2083
|
+
// src/hooks/threadMessages/useCreateThreadMessage/lib/mutationOptions/onMutate/data.ts
|
|
2084
|
+
var data2 = function(param) {
|
|
2085
|
+
var newThreadMessage = param.newThreadMessage;
|
|
2086
|
+
return function(prevData) {
|
|
2087
|
+
var message = {
|
|
2088
|
+
id: optimisticId(),
|
|
2089
|
+
role: "user",
|
|
2090
|
+
created_at: +/* @__PURE__ */ new Date(),
|
|
2091
|
+
object: "thread.message",
|
|
2092
|
+
content: [
|
|
2093
|
+
{
|
|
2094
|
+
type: "text",
|
|
2095
|
+
text: {
|
|
2096
|
+
annotations: [],
|
|
2097
|
+
value: newThreadMessage.content
|
|
2098
|
+
}
|
|
2099
|
+
}
|
|
2100
|
+
],
|
|
2101
|
+
run_id: null,
|
|
2102
|
+
assistant_id: null,
|
|
2103
|
+
thread_id: null,
|
|
2104
|
+
file_ids: [],
|
|
2105
|
+
metadata: {},
|
|
2106
|
+
runSteps: []
|
|
2107
|
+
};
|
|
2108
|
+
if (!prevData) {
|
|
2109
|
+
return {
|
|
2110
|
+
pageParams: [],
|
|
2111
|
+
pages: [
|
|
2112
|
+
{
|
|
2113
|
+
data: [
|
|
2114
|
+
message
|
|
2115
|
+
],
|
|
2116
|
+
hasNextPage: false,
|
|
2117
|
+
lastId: message.id
|
|
2118
|
+
}
|
|
2119
|
+
]
|
|
2120
|
+
};
|
|
2121
|
+
}
|
|
2122
|
+
var _prevData_pages = _to_array(prevData.pages), latestPage = _prevData_pages[0], pagesRest = _prevData_pages.slice(1);
|
|
2123
|
+
return _object_spread_props(_object_spread({}, prevData), {
|
|
2124
|
+
pages: [
|
|
2125
|
+
_object_spread_props(_object_spread({}, latestPage), {
|
|
2126
|
+
data: [
|
|
2127
|
+
message
|
|
2128
|
+
].concat(_to_consumable_array(latestPage.data))
|
|
2129
|
+
})
|
|
2130
|
+
].concat(_to_consumable_array(pagesRest))
|
|
2131
|
+
});
|
|
2132
|
+
};
|
|
2133
|
+
};
|
|
2134
|
+
// src/hooks/threadMessages/useCreateThreadMessage/lib/mutationOptions/onMutate/index.ts
|
|
2135
|
+
var onMutate2 = function(param) {
|
|
2136
|
+
var queryClient = param.queryClient;
|
|
2137
|
+
return function() {
|
|
2138
|
+
var _ref = _async_to_generator(function(newThreadMessage) {
|
|
2139
|
+
var queryKey, prevThreadMessages;
|
|
2140
|
+
return _ts_generator(this, function(_state) {
|
|
2141
|
+
switch(_state.label){
|
|
2142
|
+
case 0:
|
|
2143
|
+
queryKey = [
|
|
2144
|
+
"threadMessages",
|
|
2145
|
+
(0, import_radash6.omit)(newThreadMessage, [
|
|
2146
|
+
"content"
|
|
2147
|
+
])
|
|
2148
|
+
];
|
|
2149
|
+
return [
|
|
2150
|
+
4,
|
|
2151
|
+
queryClient.cancelQueries({
|
|
2152
|
+
queryKey: queryKey
|
|
2153
|
+
})
|
|
2154
|
+
];
|
|
2155
|
+
case 1:
|
|
2156
|
+
_state.sent();
|
|
2157
|
+
prevThreadMessages = queryClient.getQueryData(queryKey);
|
|
2158
|
+
queryClient.setQueryData(queryKey, data2({
|
|
2159
|
+
newThreadMessage: newThreadMessage
|
|
2160
|
+
}));
|
|
2161
|
+
return [
|
|
2162
|
+
2,
|
|
2163
|
+
{
|
|
2164
|
+
prevThreadMessages: prevThreadMessages,
|
|
2165
|
+
newThreadMessage: newThreadMessage
|
|
2166
|
+
}
|
|
2167
|
+
];
|
|
2168
|
+
}
|
|
2169
|
+
});
|
|
2170
|
+
});
|
|
2171
|
+
return function(newThreadMessage) {
|
|
2172
|
+
return _ref.apply(this, arguments);
|
|
2173
|
+
};
|
|
2174
|
+
}();
|
|
2175
|
+
};
|
|
2176
|
+
// src/hooks/threadMessages/useCreateThreadMessage/lib/mutationOptions/onSettled.ts
|
|
2177
|
+
var import_radash7 = require("radash");
|
|
2178
|
+
var onSettled3 = function(param) {
|
|
2179
|
+
var queryClient = param.queryClient;
|
|
2180
|
+
return function() {
|
|
2181
|
+
var _ref = _async_to_generator(function(_data, _error, variables) {
|
|
2182
|
+
return _ts_generator(this, function(_state) {
|
|
2183
|
+
switch(_state.label){
|
|
2184
|
+
case 0:
|
|
2185
|
+
return [
|
|
2186
|
+
4,
|
|
2187
|
+
queryClient.invalidateQueries({
|
|
2188
|
+
queryKey: [
|
|
2189
|
+
"threadMessages",
|
|
2190
|
+
(0, import_radash7.omit)(variables, [
|
|
2191
|
+
"content"
|
|
2192
|
+
])
|
|
2193
|
+
]
|
|
2194
|
+
})
|
|
2195
|
+
];
|
|
2196
|
+
case 1:
|
|
2197
|
+
_state.sent();
|
|
2198
|
+
return [
|
|
2199
|
+
4,
|
|
2200
|
+
queryClient.invalidateQueries({
|
|
2201
|
+
queryKey: [
|
|
2202
|
+
"runs",
|
|
2203
|
+
(0, import_radash7.omit)(variables, [
|
|
2204
|
+
"content"
|
|
2205
|
+
])
|
|
2206
|
+
]
|
|
2207
|
+
})
|
|
2208
|
+
];
|
|
2209
|
+
case 2:
|
|
2210
|
+
_state.sent();
|
|
2211
|
+
return [
|
|
2212
|
+
2
|
|
2213
|
+
];
|
|
2214
|
+
}
|
|
2215
|
+
});
|
|
2216
|
+
});
|
|
2217
|
+
return function(_data, _error, variables) {
|
|
2218
|
+
return _ref.apply(this, arguments);
|
|
2219
|
+
};
|
|
2220
|
+
}();
|
|
2221
|
+
};
|
|
2222
|
+
// src/hooks/threadMessages/useCreateThreadMessage/index.ts
|
|
2223
|
+
var useCreateThreadMessage = function() {
|
|
2224
|
+
var queryClient = (0, import_react_query10.useQueryClient)();
|
|
2225
|
+
var superinterfaceContext = useSuperinterfaceContext();
|
|
2226
|
+
var threadContext = useSuperinterfaceContext();
|
|
2227
|
+
var props = (0, import_react_query10.useMutation)(_object_spread({
|
|
2228
|
+
onMutate: onMutate2({
|
|
2229
|
+
queryClient: queryClient
|
|
2230
|
+
}),
|
|
2231
|
+
onSettled: onSettled3({
|
|
2232
|
+
queryClient: queryClient
|
|
2233
|
+
})
|
|
2234
|
+
}, mutationOptions({
|
|
2235
|
+
mutationKeyBase: [
|
|
2236
|
+
"createThreadMessage"
|
|
2237
|
+
],
|
|
2238
|
+
path: "/thread-messages",
|
|
2239
|
+
queryClient: queryClient,
|
|
2240
|
+
threadContext: threadContext,
|
|
2241
|
+
superinterfaceContext: superinterfaceContext
|
|
2242
|
+
})));
|
|
2243
|
+
return _object_spread_props(_object_spread({}, props), {
|
|
2244
|
+
createThreadMessage: (0, import_radash8.partob)(props.mutateAsync, threadContext.variables)
|
|
2245
|
+
});
|
|
2246
|
+
};
|
|
2247
|
+
// src/components/threadMessages/ThreadMessageForm/Submit/index.tsx
|
|
2248
|
+
var import_react_icons5 = require("@radix-ui/react-icons");
|
|
2249
|
+
var import_themes29 = require("@radix-ui/themes");
|
|
2250
|
+
// src/components/spinners/Spinner/index.tsx
|
|
2251
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
2252
|
+
var Spinner = function(props) {
|
|
2253
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("svg", _object_spread_props(_object_spread({
|
|
2254
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2255
|
+
width: "24",
|
|
2256
|
+
height: "24",
|
|
2257
|
+
viewBox: "0 0 24 24",
|
|
2258
|
+
fill: "none",
|
|
2259
|
+
stroke: "currentColor",
|
|
2260
|
+
strokeWidth: "2",
|
|
2261
|
+
strokeLinecap: "round",
|
|
2262
|
+
strokeLinejoin: "round",
|
|
2263
|
+
style: {
|
|
2264
|
+
height: "var(--space-4)",
|
|
2265
|
+
width: "var(--space-4)",
|
|
2266
|
+
animation: "spin 1s linear infinite"
|
|
2267
|
+
}
|
|
2268
|
+
}, props), {
|
|
2269
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("path", {
|
|
2270
|
+
d: "M21 12a9 9 0 1 1-6.219-8.56"
|
|
2271
|
+
})
|
|
2272
|
+
}));
|
|
2273
|
+
};
|
|
2274
|
+
// src/components/threadMessages/ThreadMessageForm/Submit/index.tsx
|
|
2275
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
2276
|
+
var Submit = function(param) {
|
|
2277
|
+
var isLoading = param.isLoading, isDisabled = param.isDisabled;
|
|
2278
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_themes29.Button, {
|
|
2279
|
+
type: "submit",
|
|
2280
|
+
radius: "large",
|
|
2281
|
+
disabled: isDisabled,
|
|
2282
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Spinner, {}) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_icons5.ArrowUpIcon, {})
|
|
2283
|
+
});
|
|
2284
|
+
};
|
|
2285
|
+
// src/components/threadMessages/ThreadMessageForm/lib/useFormProps/index.ts
|
|
2286
|
+
var import_zod = require("zod");
|
|
2287
|
+
var import_zod2 = require("@hookform/resolvers/zod");
|
|
2288
|
+
var schema = import_zod.z.object({
|
|
2289
|
+
content: import_zod.z.string().min(1)
|
|
2290
|
+
});
|
|
2291
|
+
var useFormProps = {
|
|
2292
|
+
resolver: (0, import_zod2.zodResolver)(schema)
|
|
2293
|
+
};
|
|
2294
|
+
// src/components/threadMessages/ThreadMessageForm/index.tsx
|
|
2295
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
2296
|
+
var ThreadMessageForm = function() {
|
|
2297
|
+
var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, children = _ref.children, tmp = _ref.useFormProps, useFormProps2 = tmp === void 0 ? useFormProps : tmp, _ref_style = _ref.style, style = _ref_style === void 0 ? {} : _ref_style;
|
|
2298
|
+
var _ref1 = (0, import_react_hook_form.useForm)(useFormProps2), register = _ref1.register, handleSubmit = _ref1.handleSubmit, _ref_formState = _ref1.formState, errors = _ref_formState.errors, isSubmitting = _ref_formState.isSubmitting, reset = _ref1.reset;
|
|
2299
|
+
var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
|
|
2300
|
+
var isLoading = (0, import_react27.useMemo)(function() {
|
|
2301
|
+
return isRunActive2 || isSubmitting;
|
|
2302
|
+
}, [
|
|
2303
|
+
isRunActive2,
|
|
2304
|
+
isSubmitting
|
|
2305
|
+
]);
|
|
2306
|
+
var createThreadMessage = useCreateThreadMessage().createThreadMessage;
|
|
2307
|
+
var onSubmit = function() {
|
|
2308
|
+
var _ref = _async_to_generator(function(data3) {
|
|
2309
|
+
return _ts_generator(this, function(_state) {
|
|
2310
|
+
switch(_state.label){
|
|
2311
|
+
case 0:
|
|
2312
|
+
reset();
|
|
2313
|
+
return [
|
|
2314
|
+
4,
|
|
2315
|
+
createThreadMessage({
|
|
2316
|
+
content: data3.content
|
|
2317
|
+
})
|
|
2318
|
+
];
|
|
2319
|
+
case 1:
|
|
2320
|
+
_state.sent();
|
|
2321
|
+
return [
|
|
2322
|
+
2
|
|
2323
|
+
];
|
|
2324
|
+
}
|
|
2325
|
+
});
|
|
2326
|
+
});
|
|
2327
|
+
return function onSubmit(data3) {
|
|
2328
|
+
return _ref.apply(this, arguments);
|
|
2329
|
+
};
|
|
2330
|
+
}();
|
|
2331
|
+
var latestThreadMessage = useLatestThreadMessage().latestThreadMessage;
|
|
2332
|
+
var isDisabled = (0, import_react27.useMemo)(function() {
|
|
2333
|
+
var // @ts-ignore-next-line
|
|
2334
|
+
_latestThreadMessage_metadata;
|
|
2335
|
+
return latestThreadMessage === null || latestThreadMessage === void 0 ? void 0 : (_latestThreadMessage_metadata = latestThreadMessage.metadata) === null || _latestThreadMessage_metadata === void 0 ? void 0 : _latestThreadMessage_metadata.isBlocking;
|
|
2336
|
+
}, [
|
|
2337
|
+
latestThreadMessage,
|
|
2338
|
+
isLoading
|
|
2339
|
+
]);
|
|
2340
|
+
var isSubmitDisabled = (0, import_react27.useMemo)(function() {
|
|
2341
|
+
return isDisabled || isLoading;
|
|
2342
|
+
}, [
|
|
2343
|
+
isDisabled,
|
|
2344
|
+
isLoading
|
|
2345
|
+
]);
|
|
2346
|
+
var isDisabledPrevious = (0, import_react_use2.usePrevious)(isDisabled);
|
|
2347
|
+
var textareaRef = (0, import_react27.useRef)(null);
|
|
2348
|
+
var textareaProps = register("content");
|
|
2349
|
+
(0, import_react27.useEffect)(function() {
|
|
2350
|
+
if (isDisabled) return;
|
|
2351
|
+
if (!isDisabledPrevious) return;
|
|
2352
|
+
if (!textareaRef.current) return;
|
|
2353
|
+
textareaRef.current.focus();
|
|
2354
|
+
}, [
|
|
2355
|
+
isDisabled,
|
|
2356
|
+
isDisabledPrevious,
|
|
2357
|
+
textareaProps
|
|
2358
|
+
]);
|
|
2359
|
+
var assistantNameContext = (0, import_react27.useContext)(AssistantNameContext);
|
|
2360
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_themes30.Container, {
|
|
2361
|
+
size: "2",
|
|
2362
|
+
grow: "0",
|
|
2363
|
+
style: style,
|
|
2364
|
+
children: [
|
|
2365
|
+
children,
|
|
2366
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes30.Flex, {
|
|
2367
|
+
direction: "column",
|
|
2368
|
+
shrink: "0",
|
|
2369
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes30.Flex, {
|
|
2370
|
+
direction: "column",
|
|
2371
|
+
shrink: "0",
|
|
2372
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("form", {
|
|
2373
|
+
onSubmit: handleSubmit(onSubmit),
|
|
2374
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_themes30.Flex, {
|
|
2375
|
+
style: _object_spread({
|
|
2376
|
+
borderRadius: "var(--radius-2)",
|
|
2377
|
+
borderWidth: "1px",
|
|
2378
|
+
borderStyle: "solid",
|
|
2379
|
+
borderColor: errors.content ? "var(--red-9)" : "var(--gray-5)"
|
|
2380
|
+
}, errors.content ? {
|
|
2381
|
+
backgroundColor: "var(--red-2)"
|
|
2382
|
+
} : {}),
|
|
2383
|
+
p: "2",
|
|
2384
|
+
pl: "4",
|
|
2385
|
+
children: [
|
|
2386
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes30.Text, {
|
|
2387
|
+
size: "2",
|
|
2388
|
+
style: {
|
|
2389
|
+
flexGrow: 1
|
|
2390
|
+
},
|
|
2391
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes30.Flex, {
|
|
2392
|
+
grow: "1",
|
|
2393
|
+
direction: "column",
|
|
2394
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(TextareaBase, _object_spread_props(_object_spread({
|
|
2395
|
+
minRows: 1,
|
|
2396
|
+
placeholder: "Message ".concat(assistantNameContext, "..."),
|
|
2397
|
+
disabled: isDisabled,
|
|
2398
|
+
onKeyDown: function(e) {
|
|
2399
|
+
if (e.key === "Enter" && !e.shiftKey) {
|
|
2400
|
+
e.preventDefault();
|
|
2401
|
+
if (isSubmitDisabled) return;
|
|
2402
|
+
handleSubmit(onSubmit)();
|
|
2403
|
+
}
|
|
2404
|
+
},
|
|
2405
|
+
autoFocus: true
|
|
2406
|
+
}, textareaProps), {
|
|
2407
|
+
ref: function(e) {
|
|
2408
|
+
textareaProps.ref(e);
|
|
2409
|
+
textareaRef.current = e;
|
|
2410
|
+
}
|
|
2411
|
+
}))
|
|
2412
|
+
})
|
|
2413
|
+
}),
|
|
2414
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_themes30.Flex, {
|
|
2415
|
+
shrink: "0",
|
|
2416
|
+
align: "end",
|
|
2417
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Submit, {
|
|
2418
|
+
isLoading: isLoading,
|
|
2419
|
+
isDisabled: isSubmitDisabled
|
|
2420
|
+
})
|
|
2421
|
+
})
|
|
2422
|
+
]
|
|
2423
|
+
})
|
|
2424
|
+
})
|
|
2425
|
+
})
|
|
2426
|
+
})
|
|
2427
|
+
]
|
|
2428
|
+
});
|
|
2429
|
+
};
|
|
2430
|
+
// src/components/threads/Thread/index.tsx
|
|
2431
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
2432
|
+
var Thread = function(props) {
|
|
2433
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SuperinterfaceProvider, _object_spread_props(_object_spread({}, props), {
|
|
2434
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_themes31.Flex, {
|
|
2435
|
+
direction: "column",
|
|
2436
|
+
grow: "1",
|
|
2437
|
+
children: [
|
|
2438
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ThreadMessages, {
|
|
2439
|
+
style: {
|
|
2440
|
+
padding: "var(--space-5)"
|
|
2441
|
+
}
|
|
2442
|
+
}),
|
|
2443
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ThreadMessageForm, {
|
|
2444
|
+
style: {
|
|
2445
|
+
paddingLeft: "var(--space-5)",
|
|
2446
|
+
paddingRight: "var(--space-5)",
|
|
2447
|
+
paddingBottom: "var(--space-5)"
|
|
2448
|
+
}
|
|
2449
|
+
})
|
|
2450
|
+
]
|
|
2451
|
+
})
|
|
2452
|
+
}));
|
|
2453
|
+
};
|
|
2454
|
+
// src/components/threads/ThreadDialog/Root/index.tsx
|
|
2455
|
+
var import_themes32 = require("@radix-ui/themes");
|
|
2456
|
+
// src/components/threads/ThreadDialog/Provider/index.tsx
|
|
2457
|
+
var import_react30 = require("react");
|
|
2458
|
+
// src/contexts/threads/ThreadDialogContext/index.ts
|
|
2459
|
+
var import_react28 = require("react");
|
|
2460
|
+
var ThreadDialogContext = (0, import_react28.createContext)({
|
|
2461
|
+
isOpen: false,
|
|
2462
|
+
setIsOpen: function() {}
|
|
2463
|
+
});
|
|
2464
|
+
// src/hooks/threads/useThreadDialogContext/index.ts
|
|
2465
|
+
var import_react29 = require("react");
|
|
2466
|
+
var useThreadDialogContext = function() {
|
|
2467
|
+
return (0, import_react29.useContext)(ThreadDialogContext);
|
|
2468
|
+
};
|
|
2469
|
+
// src/components/threads/ThreadDialog/Provider/index.tsx
|
|
2470
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
2471
|
+
var Provider = function(param) {
|
|
2472
|
+
var children = param.children;
|
|
2473
|
+
var threadDialogContext = useThreadDialogContext();
|
|
2474
|
+
var _ref = _sliced_to_array((0, import_react30.useState)(threadDialogContext.isOpen), 2), isOpen = _ref[0], setIsOpen = _ref[1];
|
|
2475
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ThreadDialogContext.Provider, {
|
|
2476
|
+
value: {
|
|
2477
|
+
isOpen: isOpen,
|
|
2478
|
+
setIsOpen: setIsOpen
|
|
2479
|
+
},
|
|
2480
|
+
children: children
|
|
2481
|
+
});
|
|
2482
|
+
};
|
|
2483
|
+
// src/components/threads/ThreadDialog/Root/index.tsx
|
|
2484
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
2485
|
+
var Root = function(param) {
|
|
2486
|
+
var children = param.children, _param_style = param.style, style = _param_style === void 0 ? {} : _param_style;
|
|
2487
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Provider, {
|
|
2488
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_themes32.Flex, {
|
|
2489
|
+
direction: "column",
|
|
2490
|
+
justify: "end",
|
|
2491
|
+
align: "end",
|
|
2492
|
+
position: "fixed",
|
|
2493
|
+
style: _object_spread({
|
|
2494
|
+
bottom: "24px",
|
|
2495
|
+
right: "24px",
|
|
2496
|
+
top: "24px",
|
|
2497
|
+
zIndex: 9999999999
|
|
2498
|
+
}, style),
|
|
2499
|
+
children: children
|
|
2500
|
+
})
|
|
2501
|
+
});
|
|
2502
|
+
};
|
|
2503
|
+
// src/components/threads/ThreadDialog/Trigger/index.tsx
|
|
2504
|
+
var import_themes33 = require("@radix-ui/themes");
|
|
2505
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
2506
|
+
var Trigger = function(param) {
|
|
2507
|
+
var children = param.children;
|
|
2508
|
+
var setIsOpen = useThreadDialogContext().setIsOpen;
|
|
2509
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_themes33.Flex, {
|
|
2510
|
+
onClick: function() {
|
|
2511
|
+
return setIsOpen(function(prev) {
|
|
2512
|
+
return !prev;
|
|
2513
|
+
});
|
|
2514
|
+
},
|
|
2515
|
+
direction: "column",
|
|
2516
|
+
shrink: "0",
|
|
2517
|
+
children: children
|
|
2518
|
+
});
|
|
2519
|
+
};
|
|
2520
|
+
// src/components/threads/ThreadDialog/Button/index.tsx
|
|
2521
|
+
var import_themes34 = require("@radix-ui/themes");
|
|
2522
|
+
var import_react_icons6 = require("@radix-ui/react-icons");
|
|
2523
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
2524
|
+
var Button3 = function() {
|
|
2525
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_themes34.IconButton, {
|
|
2526
|
+
size: "4",
|
|
2527
|
+
radius: "full",
|
|
2528
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_icons6.ChatBubbleIcon, {})
|
|
2529
|
+
});
|
|
2530
|
+
};
|
|
2531
|
+
// src/components/threads/ThreadDialog/Content/index.tsx
|
|
2532
|
+
var import_themes35 = require("@radix-ui/themes");
|
|
2533
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
2534
|
+
var Content4 = function(param) {
|
|
2535
|
+
var children = param.children;
|
|
2536
|
+
var isOpen = useThreadDialogContext().isOpen;
|
|
2537
|
+
if (!isOpen) return null;
|
|
2538
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, {
|
|
2539
|
+
children: [
|
|
2540
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("style", {
|
|
2541
|
+
children: ".superinterface-thread-dialog-card .rt-CardInner { display: flex; }"
|
|
2542
|
+
}),
|
|
2543
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_themes35.Card, {
|
|
2544
|
+
className: "superinterface-thread-dialog-card",
|
|
2545
|
+
mb: "3",
|
|
2546
|
+
style: {
|
|
2547
|
+
flexGrow: 1,
|
|
2548
|
+
width: "100vw",
|
|
2549
|
+
maxWidth: "400px",
|
|
2550
|
+
maxHeight: "720px"
|
|
2551
|
+
},
|
|
2552
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_themes35.Inset, {
|
|
2553
|
+
clip: "padding-box",
|
|
2554
|
+
side: "all",
|
|
2555
|
+
pb: "current",
|
|
2556
|
+
style: {
|
|
2557
|
+
display: "flex",
|
|
2558
|
+
flexGrow: 1
|
|
2559
|
+
},
|
|
2560
|
+
children: children
|
|
2561
|
+
})
|
|
2562
|
+
})
|
|
2563
|
+
]
|
|
2564
|
+
});
|
|
2565
|
+
};
|
|
2566
|
+
// src/components/threads/ThreadDialog/index.tsx
|
|
2567
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
2568
|
+
var ThreadDialog = function() {
|
|
2569
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Root, {
|
|
2570
|
+
children: [
|
|
2571
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Content4, {
|
|
2572
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Thread, {})
|
|
2573
|
+
}),
|
|
2574
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Trigger, {
|
|
2575
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Button3, {})
|
|
2576
|
+
})
|
|
2577
|
+
]
|
|
2578
|
+
});
|
|
2579
|
+
};
|
|
2580
|
+
ThreadDialog.Root = Root;
|
|
2581
|
+
ThreadDialog.Trigger = Trigger;
|
|
2582
|
+
ThreadDialog.Button = Button3;
|
|
2583
|
+
ThreadDialog.Content = Content4;
|
|
2584
|
+
// src/components/threads/AudioThread/Root/index.tsx
|
|
2585
|
+
var import_runtime = require("regenerator-runtime/runtime");
|
|
2586
|
+
var import_react35 = require("react");
|
|
2587
|
+
var import_themes36 = require("@radix-ui/themes");
|
|
2588
|
+
var import_react_speech_recognition = __toESM(require("react-speech-recognition"), 1);
|
|
2589
|
+
// src/contexts/threads/AudioThreadContext/index.ts
|
|
2590
|
+
var import_react31 = require("react");
|
|
2591
|
+
var AudioThreadContext = (0, import_react31.createContext)({
|
|
2592
|
+
status: "idle",
|
|
2593
|
+
recorderProps: {
|
|
2594
|
+
status: "idle",
|
|
2595
|
+
start: /*#__PURE__*/ _async_to_generator(function() {
|
|
2596
|
+
return _ts_generator(this, function(_state) {
|
|
2597
|
+
return [
|
|
2598
|
+
2
|
|
2599
|
+
];
|
|
2600
|
+
});
|
|
2601
|
+
}),
|
|
2602
|
+
stop: /*#__PURE__*/ _async_to_generator(function() {
|
|
2603
|
+
return _ts_generator(this, function(_state) {
|
|
2604
|
+
return [
|
|
2605
|
+
2
|
|
2606
|
+
];
|
|
2607
|
+
});
|
|
2608
|
+
}),
|
|
2609
|
+
pause: /*#__PURE__*/ _async_to_generator(function() {
|
|
2610
|
+
return _ts_generator(this, function(_state) {
|
|
2611
|
+
return [
|
|
2612
|
+
2
|
|
2613
|
+
];
|
|
2614
|
+
});
|
|
2615
|
+
}),
|
|
2616
|
+
resume: /*#__PURE__*/ _async_to_generator(function() {
|
|
2617
|
+
return _ts_generator(this, function(_state) {
|
|
2618
|
+
return [
|
|
2619
|
+
2
|
|
2620
|
+
];
|
|
2621
|
+
});
|
|
2622
|
+
}),
|
|
2623
|
+
visualizationAnalyser: null
|
|
2624
|
+
},
|
|
2625
|
+
messageAudioProps: {
|
|
2626
|
+
visualizationAnalyser: null,
|
|
2627
|
+
playing: false,
|
|
2628
|
+
paused: false,
|
|
2629
|
+
isReady: false,
|
|
2630
|
+
play: /*#__PURE__*/ _async_to_generator(function() {
|
|
2631
|
+
return _ts_generator(this, function(_state) {
|
|
2632
|
+
return [
|
|
2633
|
+
2
|
|
2634
|
+
];
|
|
2635
|
+
});
|
|
2636
|
+
}),
|
|
2637
|
+
pause: /*#__PURE__*/ _async_to_generator(function() {
|
|
2638
|
+
return _ts_generator(this, function(_state) {
|
|
2639
|
+
return [
|
|
2640
|
+
2
|
|
2641
|
+
];
|
|
2642
|
+
});
|
|
2643
|
+
})
|
|
2644
|
+
}
|
|
2645
|
+
});
|
|
2646
|
+
// src/components/threads/AudioThread/Root/index.tsx
|
|
2647
|
+
var import_react_use4 = require("react-use");
|
|
2648
|
+
// src/hooks/audioThreads/useStatus/index.ts
|
|
2649
|
+
var import_react32 = require("react");
|
|
2650
|
+
var useStatus = function(param) {
|
|
2651
|
+
var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createThreadMessageProps = param.createThreadMessageProps;
|
|
2652
|
+
var isRunActiveProps = useIsRunActive();
|
|
2653
|
+
var status = (0, import_react32.useMemo)(function() {
|
|
2654
|
+
if (recorderProps.status === "recording") return "recording";
|
|
2655
|
+
if (createThreadMessageProps.isPending) return "creatingMessage";
|
|
2656
|
+
if (isRunActiveProps.isRunActive) return "runActive";
|
|
2657
|
+
if (messageAudioProps.playing) return "playing";
|
|
2658
|
+
if (messageAudioProps.paused) return "playerPaused";
|
|
2659
|
+
if (!messageAudioProps.isReady) return "loading";
|
|
2660
|
+
if (recorderProps.status === "idle") return "idle";
|
|
2661
|
+
if (recorderProps.status === "paused") return "recorderPaused";
|
|
2662
|
+
return "loading";
|
|
2663
|
+
}, [
|
|
2664
|
+
messageAudioProps,
|
|
2665
|
+
recorderProps,
|
|
2666
|
+
createThreadMessageProps,
|
|
2667
|
+
isRunActiveProps
|
|
2668
|
+
]);
|
|
2669
|
+
return {
|
|
2670
|
+
status: status
|
|
2671
|
+
};
|
|
2672
|
+
};
|
|
2673
|
+
// src/hooks/audioThreads/useRecorder/index.ts
|
|
2674
|
+
var import_dayjs = __toESM(require("dayjs"), 1);
|
|
2675
|
+
var import_use_audio_capture = require("use-audio-capture");
|
|
2676
|
+
var import_react33 = require("react");
|
|
2677
|
+
var import_react_use_audio_player = require("react-use-audio-player");
|
|
2678
|
+
var import_react_use3 = require("react-use");
|
|
2679
|
+
var useRecorder = function(param) {
|
|
2680
|
+
var isStopOnSilence = param.isStopOnSilence, onStart = param.onStart, onStop = param.onStop;
|
|
2681
|
+
var _ref = _sliced_to_array((0, import_react33.useState)(null), 2), silenceStart = _ref[0], setSilenceStart = _ref[1];
|
|
2682
|
+
var _ref1 = _sliced_to_array((0, import_react33.useState)(null), 2), noiseStart = _ref1[0], setNoiseStart = _ref1[1];
|
|
2683
|
+
var _ref2 = _sliced_to_array((0, import_react33.useState)(null), 2), mediaStream = _ref2[0], setMediaStream = _ref2[1];
|
|
2684
|
+
var _ref3 = _sliced_to_array((0, import_react33.useState)("idle"), 2), status = _ref3[0], setStatus = _ref3[1];
|
|
2685
|
+
var startAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
|
|
2686
|
+
var endAudioPlayer = (0, import_react_use_audio_player.useAudioPlayer)();
|
|
2687
|
+
var _ref4 = _sliced_to_array((0, import_react33.useState)(false), 2), isLoaded = _ref4[0], setIsLoaded = _ref4[1];
|
|
2688
|
+
(0, import_react33.useEffect)(function() {
|
|
2689
|
+
if (isLoaded) return;
|
|
2690
|
+
setIsLoaded(true);
|
|
2691
|
+
startAudioPlayer.load("/sounds/warning.wav", {
|
|
2692
|
+
html5: true
|
|
2693
|
+
});
|
|
2694
|
+
endAudioPlayer.load("/sounds/success.wav", {
|
|
2695
|
+
html5: true
|
|
2696
|
+
});
|
|
2697
|
+
}, [
|
|
2698
|
+
isLoaded,
|
|
2699
|
+
startAudioPlayer,
|
|
2700
|
+
endAudioPlayer
|
|
2701
|
+
]);
|
|
2702
|
+
var audioCaptureProps = (0, import_use_audio_capture.useAudioCapture)({
|
|
2703
|
+
onStart: function(event, opts) {
|
|
2704
|
+
startAudioPlayer.play();
|
|
2705
|
+
setStatus("recording");
|
|
2706
|
+
setMediaStream(opts.mediaStream);
|
|
2707
|
+
isInited.current = false;
|
|
2708
|
+
if (onStart) onStart(event, opts);
|
|
2709
|
+
setSilenceStart(null);
|
|
2710
|
+
setNoiseStart(null);
|
|
2711
|
+
},
|
|
2712
|
+
onStop: /*#__PURE__*/ _async_to_generator(function() {
|
|
2713
|
+
var _len, args, _key;
|
|
2714
|
+
var _arguments = arguments;
|
|
2715
|
+
return _ts_generator(this, function(_state) {
|
|
2716
|
+
switch(_state.label){
|
|
2717
|
+
case 0:
|
|
2718
|
+
for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
2719
|
+
args[_key] = _arguments[_key];
|
|
2720
|
+
}
|
|
2721
|
+
endAudioPlayer.play();
|
|
2722
|
+
setStatus("stopped");
|
|
2723
|
+
if (!onStop) return [
|
|
2724
|
+
3,
|
|
2725
|
+
2
|
|
2726
|
+
];
|
|
2727
|
+
return [
|
|
2728
|
+
4,
|
|
2729
|
+
onStop.apply(void 0, _to_consumable_array(args))
|
|
2730
|
+
];
|
|
2731
|
+
case 1:
|
|
2732
|
+
_state.sent();
|
|
2733
|
+
_state.label = 2;
|
|
2734
|
+
case 2:
|
|
2735
|
+
setSilenceStart(null);
|
|
2736
|
+
setNoiseStart(null);
|
|
2737
|
+
return [
|
|
2738
|
+
2
|
|
2739
|
+
];
|
|
2740
|
+
}
|
|
2741
|
+
});
|
|
2742
|
+
}),
|
|
2743
|
+
onPause: function() {
|
|
2744
|
+
setStatus("paused");
|
|
2745
|
+
setSilenceStart(null);
|
|
2746
|
+
setNoiseStart(null);
|
|
2747
|
+
},
|
|
2748
|
+
onResume: function() {
|
|
2749
|
+
setStatus("recording");
|
|
2750
|
+
setSilenceStart(null);
|
|
2751
|
+
setNoiseStart(null);
|
|
2752
|
+
}
|
|
2753
|
+
});
|
|
2754
|
+
var _ref5 = _sliced_to_array((0, import_react33.useState)(null), 2), audioEngine = _ref5[0], setAudioEngine = _ref5[1];
|
|
2755
|
+
var isInited = (0, import_react33.useRef)(false);
|
|
2756
|
+
(0, import_react33.useEffect)(function() {
|
|
2757
|
+
if (!mediaStream) return;
|
|
2758
|
+
if (isInited.current) return;
|
|
2759
|
+
isInited.current = true;
|
|
2760
|
+
var audioContext = new AudioContext();
|
|
2761
|
+
setAudioEngine({
|
|
2762
|
+
source: audioContext.createMediaStreamSource(mediaStream),
|
|
2763
|
+
audioContext: audioContext
|
|
2764
|
+
});
|
|
2765
|
+
}, [
|
|
2766
|
+
isInited,
|
|
2767
|
+
mediaStream
|
|
2768
|
+
]);
|
|
2769
|
+
var visualizationAnalyser = (0, import_react33.useMemo)(function() {
|
|
2770
|
+
if (!audioEngine) return null;
|
|
2771
|
+
var result = audioEngine.audioContext.createAnalyser();
|
|
2772
|
+
audioEngine.source.connect(result);
|
|
2773
|
+
return result;
|
|
2774
|
+
}, [
|
|
2775
|
+
audioEngine
|
|
2776
|
+
]);
|
|
2777
|
+
var silenceAnalyser = (0, import_react33.useMemo)(function() {
|
|
2778
|
+
if (!audioEngine) return null;
|
|
2779
|
+
var result = audioEngine.audioContext.createAnalyser();
|
|
2780
|
+
result.minDecibels = -45;
|
|
2781
|
+
audioEngine.source.connect(result);
|
|
2782
|
+
return result;
|
|
2783
|
+
}, [
|
|
2784
|
+
audioEngine
|
|
2785
|
+
]);
|
|
2786
|
+
var handleSilence = (0, import_react33.useCallback)(function() {
|
|
2787
|
+
if (!silenceAnalyser) return;
|
|
2788
|
+
var frequencyData = new Uint8Array(silenceAnalyser.frequencyBinCount);
|
|
2789
|
+
silenceAnalyser.getByteFrequencyData(frequencyData);
|
|
2790
|
+
var isSilent = frequencyData.every(function(f) {
|
|
2791
|
+
return f === 0;
|
|
2792
|
+
});
|
|
2793
|
+
setSilenceStart(function(silenceStart2) {
|
|
2794
|
+
if (isSilent) return silenceStart2 || (0, import_dayjs.default)();
|
|
2795
|
+
return null;
|
|
2796
|
+
});
|
|
2797
|
+
setNoiseStart(function(noiseStart2) {
|
|
2798
|
+
if (isSilent) return noiseStart2;
|
|
2799
|
+
return noiseStart2 || (0, import_dayjs.default)();
|
|
2800
|
+
});
|
|
2801
|
+
requestAnimationFrame(function() {
|
|
2802
|
+
return handleSilence();
|
|
2803
|
+
});
|
|
2804
|
+
}, [
|
|
2805
|
+
silenceAnalyser,
|
|
2806
|
+
setNoiseStart,
|
|
2807
|
+
setSilenceStart
|
|
2808
|
+
]);
|
|
2809
|
+
(0, import_react33.useEffect)(function() {
|
|
2810
|
+
if (!isStopOnSilence) return;
|
|
2811
|
+
requestAnimationFrame(function() {
|
|
2812
|
+
return handleSilence();
|
|
2813
|
+
});
|
|
2814
|
+
}, [
|
|
2815
|
+
handleSilence,
|
|
2816
|
+
isStopOnSilence
|
|
2817
|
+
]);
|
|
2818
|
+
(0, import_react_use3.useInterval)(function() {
|
|
2819
|
+
if (!isStopOnSilence) return;
|
|
2820
|
+
if (status !== "recording") return;
|
|
2821
|
+
if (!silenceStart) return;
|
|
2822
|
+
if (!noiseStart) return;
|
|
2823
|
+
if (!silenceStart.isBefore((0, import_dayjs.default)().subtract(1, "second"))) return;
|
|
2824
|
+
audioCaptureProps.stop();
|
|
2825
|
+
}, 100);
|
|
2826
|
+
return _object_spread_props(_object_spread({}, audioCaptureProps), {
|
|
2827
|
+
status: status,
|
|
2828
|
+
visualizationAnalyser: visualizationAnalyser
|
|
2829
|
+
});
|
|
2830
|
+
};
|
|
2831
|
+
// src/hooks/audioThreads/useMessageAudio/index.ts
|
|
2832
|
+
var import_react34 = require("react");
|
|
2833
|
+
var import_howler = require("howler");
|
|
2834
|
+
var import_react_use_audio_player2 = require("react-use-audio-player");
|
|
2835
|
+
// src/hooks/audioThreads/useMessageAudio/lib/input.ts
|
|
2836
|
+
var import_radash9 = require("radash");
|
|
2837
|
+
var input = function(param) {
|
|
2838
|
+
var threadMessage = param.threadMessage;
|
|
2839
|
+
var textContents = threadMessage.content.filter(function(c) {
|
|
2840
|
+
return c.type === "text";
|
|
2841
|
+
});
|
|
2842
|
+
var result = textContents.map(function(c) {
|
|
2843
|
+
return c.text.value;
|
|
2844
|
+
}).join(" ");
|
|
2845
|
+
if ((0, import_radash9.isEmpty)(result)) return null;
|
|
2846
|
+
return result;
|
|
2847
|
+
};
|
|
2848
|
+
// src/hooks/audioThreads/useMessageAudio/lib/isHtmlAudioSupported.ts
|
|
2849
|
+
var import_detect_browser = require("detect-browser");
|
|
2850
|
+
var unsupportedNames = [
|
|
2851
|
+
"safari",
|
|
2852
|
+
"ios"
|
|
2853
|
+
];
|
|
2854
|
+
var isHtmlAudioSupported = !unsupportedNames.includes(((_this = (0, import_detect_browser.detect)()) === null || _this === void 0 ? void 0 : _this.name) || "");
|
|
2855
|
+
// src/hooks/audioThreads/useMessageAudio/index.ts
|
|
2856
|
+
var useMessageAudio = function(param) {
|
|
2857
|
+
var onEnd = param.onEnd;
|
|
2858
|
+
var _ref = _sliced_to_array((0, import_react34.useState)([]), 2), playedMessageIds = _ref[0], setPlayedMessageIds = _ref[1];
|
|
2859
|
+
var audioPlayer = (0, import_react_use_audio_player2.useAudioPlayer)();
|
|
2860
|
+
var superinterfaceContext = useSuperinterfaceContext();
|
|
2861
|
+
var latestThreadMessageProps = useLatestThreadMessage();
|
|
2862
|
+
(0, import_react34.useEffect)(function() {
|
|
2863
|
+
if (audioPlayer.playing) return;
|
|
2864
|
+
if (!latestThreadMessageProps.latestThreadMessage) return;
|
|
2865
|
+
if (latestThreadMessageProps.latestThreadMessage.role !== "assistant") return;
|
|
2866
|
+
if (playedMessageIds.includes(latestThreadMessageProps.latestThreadMessage.id)) return;
|
|
2867
|
+
var input2 = input({
|
|
2868
|
+
threadMessage: latestThreadMessageProps.latestThreadMessage
|
|
2869
|
+
});
|
|
2870
|
+
if (!input2) return;
|
|
2871
|
+
setPlayedMessageIds(function(prev) {
|
|
2872
|
+
return _to_consumable_array(prev).concat([
|
|
2873
|
+
latestThreadMessageProps.latestThreadMessage.id
|
|
2874
|
+
]);
|
|
2875
|
+
});
|
|
2876
|
+
audioPlayer.load("".concat(superinterfaceContext.baseUrl, "/tts?input=").concat(input2), {
|
|
2877
|
+
format: "mp3",
|
|
2878
|
+
autoplay: true,
|
|
2879
|
+
html5: isHtmlAudioSupported,
|
|
2880
|
+
onend: onEnd
|
|
2881
|
+
});
|
|
2882
|
+
}, [
|
|
2883
|
+
superinterfaceContext,
|
|
2884
|
+
latestThreadMessageProps,
|
|
2885
|
+
audioPlayer,
|
|
2886
|
+
playedMessageIds,
|
|
2887
|
+
onEnd
|
|
2888
|
+
]);
|
|
2889
|
+
var isInited = (0, import_react34.useRef)(false);
|
|
2890
|
+
var _ref1 = _sliced_to_array((0, import_react34.useState)(null), 2), audioEngine = _ref1[0], setAudioEngine = _ref1[1];
|
|
2891
|
+
(0, import_react34.useEffect)(function() {
|
|
2892
|
+
if (!audioPlayer.playing) return;
|
|
2893
|
+
if (isInited.current) return;
|
|
2894
|
+
isInited.current = true;
|
|
2895
|
+
if (isHtmlAudioSupported) {
|
|
2896
|
+
var audioContext = new AudioContext();
|
|
2897
|
+
setAudioEngine({
|
|
2898
|
+
// @ts-ignore-next-line
|
|
2899
|
+
source: audioContext.createMediaElementSource(import_howler.Howler._howls[0]._sounds[0]._node),
|
|
2900
|
+
audioContext: audioContext
|
|
2901
|
+
});
|
|
2902
|
+
} else {
|
|
2903
|
+
setAudioEngine({
|
|
2904
|
+
source: import_howler.Howler.masterGain,
|
|
2905
|
+
audioContext: import_howler.Howler.ctx
|
|
2906
|
+
});
|
|
2907
|
+
}
|
|
2908
|
+
}, [
|
|
2909
|
+
audioPlayer,
|
|
2910
|
+
isInited
|
|
2911
|
+
]);
|
|
2912
|
+
var visualizationAnalyser = (0, import_react34.useMemo)(function() {
|
|
2913
|
+
if (!audioEngine) return null;
|
|
2914
|
+
var result = audioEngine.audioContext.createAnalyser();
|
|
2915
|
+
audioEngine.source.connect(audioEngine.audioContext.destination);
|
|
2916
|
+
audioEngine.source.connect(result);
|
|
2917
|
+
return result;
|
|
2918
|
+
}, [
|
|
2919
|
+
audioEngine
|
|
2920
|
+
]);
|
|
2921
|
+
return _object_spread_props(_object_spread({}, audioPlayer), {
|
|
2922
|
+
visualizationAnalyser: visualizationAnalyser
|
|
2923
|
+
});
|
|
2924
|
+
};
|
|
2925
|
+
// src/components/threads/AudioThread/Root/index.tsx
|
|
2926
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
2927
|
+
var Root2 = function(param) {
|
|
2928
|
+
var children = param.children;
|
|
2929
|
+
useThreadLifecycles();
|
|
2930
|
+
var createThreadMessageProps = useCreateThreadMessage();
|
|
2931
|
+
var _ref = (0, import_react_speech_recognition.useSpeechRecognition)(), transcript = _ref.transcript, listening = _ref.listening, resetTranscript = _ref.resetTranscript, browserSupportsSpeechRecognition = _ref.browserSupportsSpeechRecognition, rest = _object_without_properties(_ref, [
|
|
2932
|
+
"transcript",
|
|
2933
|
+
"listening",
|
|
2934
|
+
"resetTranscript",
|
|
2935
|
+
"browserSupportsSpeechRecognition"
|
|
2936
|
+
]);
|
|
2937
|
+
var transcriptRef = (0, import_react35.useRef)(transcript);
|
|
2938
|
+
(0, import_react35.useEffect)(function() {
|
|
2939
|
+
transcriptRef.current = transcript;
|
|
2940
|
+
}, [
|
|
2941
|
+
transcript
|
|
2942
|
+
]);
|
|
2943
|
+
var recorderProps = useRecorder({
|
|
2944
|
+
isStopOnSilence: true,
|
|
2945
|
+
onStart: /*#__PURE__*/ _async_to_generator(function() {
|
|
2946
|
+
return _ts_generator(this, function(_state) {
|
|
2947
|
+
console.log("start");
|
|
2948
|
+
resetTranscript();
|
|
2949
|
+
import_react_speech_recognition.default.default.startListening({
|
|
2950
|
+
continuous: true
|
|
2951
|
+
});
|
|
2952
|
+
return [
|
|
2953
|
+
2
|
|
2954
|
+
];
|
|
2955
|
+
});
|
|
2956
|
+
}),
|
|
2957
|
+
onStop: function() {
|
|
2958
|
+
var _ref = _async_to_generator(function(_event, chunks) {
|
|
2959
|
+
return _ts_generator(this, function(_state) {
|
|
2960
|
+
console.log({
|
|
2961
|
+
transcript: transcriptRef.current
|
|
2962
|
+
});
|
|
2963
|
+
return [
|
|
2964
|
+
2,
|
|
2965
|
+
createThreadMessageProps.createThreadMessage({
|
|
2966
|
+
content: transcriptRef.current
|
|
2967
|
+
})
|
|
2968
|
+
];
|
|
2969
|
+
});
|
|
2970
|
+
});
|
|
2971
|
+
return function(_event, chunks) {
|
|
2972
|
+
return _ref.apply(this, arguments);
|
|
2973
|
+
};
|
|
2974
|
+
}()
|
|
2975
|
+
});
|
|
2976
|
+
var microphonePermission = (0, import_react_use4.usePermission)({
|
|
2977
|
+
name: "microphone"
|
|
2978
|
+
});
|
|
2979
|
+
var messageAudioProps = useMessageAudio({
|
|
2980
|
+
onEnd: function() {
|
|
2981
|
+
if (microphonePermission === "granted") {
|
|
2982
|
+
recorderProps.start();
|
|
2983
|
+
}
|
|
2984
|
+
}
|
|
2985
|
+
});
|
|
2986
|
+
var status = useStatus({
|
|
2987
|
+
recorderProps: recorderProps,
|
|
2988
|
+
createThreadMessageProps: createThreadMessageProps,
|
|
2989
|
+
messageAudioProps: messageAudioProps
|
|
2990
|
+
}).status;
|
|
2991
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(AudioThreadContext.Provider, {
|
|
2992
|
+
value: {
|
|
2993
|
+
status: status,
|
|
2994
|
+
recorderProps: recorderProps,
|
|
2995
|
+
messageAudioProps: messageAudioProps
|
|
2996
|
+
},
|
|
2997
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_themes36.Flex, {
|
|
2998
|
+
direction: "column",
|
|
2999
|
+
grow: "1",
|
|
3000
|
+
p: "5",
|
|
3001
|
+
children: children
|
|
3002
|
+
})
|
|
3003
|
+
});
|
|
3004
|
+
};
|
|
3005
|
+
// src/components/threads/AudioThread/Visualization/index.tsx
|
|
3006
|
+
var import_themes37 = require("@radix-ui/themes");
|
|
3007
|
+
// src/hooks/threads/useAudioThreadContext/index.ts
|
|
3008
|
+
var import_react36 = require("react");
|
|
3009
|
+
var useAudioThreadContext = function() {
|
|
3010
|
+
return (0, import_react36.useContext)(AudioThreadContext);
|
|
3011
|
+
};
|
|
3012
|
+
// src/components/threads/AudioThread/Visualization/index.tsx
|
|
3013
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
3014
|
+
var Visualization = function() {
|
|
3015
|
+
var audioThreadContext = useAudioThreadContext();
|
|
3016
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_themes37.Flex, {
|
|
3017
|
+
direction: "column",
|
|
3018
|
+
align: "center",
|
|
3019
|
+
justify: "center",
|
|
3020
|
+
mb: "3",
|
|
3021
|
+
grow: "1",
|
|
3022
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_themes37.Flex, {
|
|
3023
|
+
align: "center",
|
|
3024
|
+
justify: "center",
|
|
3025
|
+
style: {
|
|
3026
|
+
backgroundColor: "var(--".concat(audioThreadContext.status === "playing" ? "mint" : "gray", "-4)"),
|
|
3027
|
+
height: "200px",
|
|
3028
|
+
width: "200px",
|
|
3029
|
+
borderRadius: "9999px"
|
|
3030
|
+
}
|
|
3031
|
+
})
|
|
3032
|
+
});
|
|
3033
|
+
};
|
|
3034
|
+
// src/components/threads/AudioThread/Form/index.tsx
|
|
3035
|
+
var import_react_icons8 = require("@radix-ui/react-icons");
|
|
3036
|
+
var import_themes40 = require("@radix-ui/themes");
|
|
3037
|
+
// src/components/threads/AudioThread/Form/Visualizer/index.tsx
|
|
3038
|
+
var import_lodash7 = __toESM(require("lodash"), 1);
|
|
3039
|
+
var import_themes38 = require("@radix-ui/themes");
|
|
3040
|
+
var import_react37 = require("react");
|
|
3041
|
+
var import_radash10 = require("radash");
|
|
3042
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
3043
|
+
var barCount = 4;
|
|
3044
|
+
var Visualizer = function() {
|
|
3045
|
+
var audioThreadContext = useAudioThreadContext();
|
|
3046
|
+
var visualizationAnalyser = audioThreadContext.recorderProps.visualizationAnalyser;
|
|
3047
|
+
var _ref = _sliced_to_array((0, import_react37.useState)(function() {
|
|
3048
|
+
return new AudioContext().createAnalyser();
|
|
3049
|
+
}), 1), emptyVisualizer = _ref[0];
|
|
3050
|
+
var _ref1 = _sliced_to_array((0, import_react37.useState)([]), 2), barHeights = _ref1[0], setBarHeights = _ref1[1];
|
|
3051
|
+
var draw = (0, import_react37.useCallback)(function(param) {
|
|
3052
|
+
var visualizationAnalyser2 = param.visualizationAnalyser;
|
|
3053
|
+
var frequencyData = new Uint8Array(visualizationAnalyser2.frequencyBinCount / 15);
|
|
3054
|
+
visualizationAnalyser2.getByteFrequencyData(frequencyData);
|
|
3055
|
+
var clusteredFrequencyData = (0, import_radash10.cluster)(frequencyData, frequencyData.length / barCount);
|
|
3056
|
+
setBarHeights(clusteredFrequencyData.map(function(frequencyDataCluster) {
|
|
3057
|
+
return import_lodash7.default.mean(frequencyDataCluster) / 255 * 100;
|
|
3058
|
+
}));
|
|
3059
|
+
requestAnimationFrame(function() {
|
|
3060
|
+
return draw({
|
|
3061
|
+
visualizationAnalyser: visualizationAnalyser2
|
|
3062
|
+
});
|
|
3063
|
+
});
|
|
3064
|
+
}, []);
|
|
3065
|
+
(0, import_react37.useEffect)(function() {
|
|
3066
|
+
draw({
|
|
3067
|
+
visualizationAnalyser: visualizationAnalyser || emptyVisualizer
|
|
3068
|
+
});
|
|
3069
|
+
}, [
|
|
3070
|
+
draw,
|
|
3071
|
+
visualizationAnalyser,
|
|
3072
|
+
emptyVisualizer
|
|
3073
|
+
]);
|
|
3074
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes38.Grid, {
|
|
3075
|
+
columns: "".concat(barCount),
|
|
3076
|
+
gap: "1",
|
|
3077
|
+
width: "auto",
|
|
3078
|
+
style: {
|
|
3079
|
+
// TODO not sure why we need this
|
|
3080
|
+
gridTemplateColumns: "repeat(4, minmax(0, 1fr))"
|
|
3081
|
+
},
|
|
3082
|
+
children: barHeights.map(function(barHeight, index) {
|
|
3083
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes38.Flex, {
|
|
3084
|
+
direction: "column",
|
|
3085
|
+
align: "center",
|
|
3086
|
+
justify: "center",
|
|
3087
|
+
style: {
|
|
3088
|
+
height: "20px"
|
|
3089
|
+
},
|
|
3090
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_themes38.Flex, {
|
|
3091
|
+
style: {
|
|
3092
|
+
backgroundColor: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-11)"),
|
|
3093
|
+
borderRadius: "var(--radius-6)",
|
|
3094
|
+
height: "".concat(barHeight + 20, "%"),
|
|
3095
|
+
minHeight: "50%",
|
|
3096
|
+
maxHeight: "100%",
|
|
3097
|
+
width: "12px"
|
|
3098
|
+
}
|
|
3099
|
+
})
|
|
3100
|
+
}, index);
|
|
3101
|
+
})
|
|
3102
|
+
});
|
|
3103
|
+
};
|
|
3104
|
+
// src/components/threads/AudioThread/Form/ActionButton/index.tsx
|
|
3105
|
+
var import_themes39 = require("@radix-ui/themes");
|
|
3106
|
+
var import_react_icons7 = require("@radix-ui/react-icons");
|
|
3107
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
3108
|
+
var ActionButton = function() {
|
|
3109
|
+
var audioThreadContext = useAudioThreadContext();
|
|
3110
|
+
if (audioThreadContext.status === "recording") {
|
|
3111
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_themes39.Flex, {
|
|
3112
|
+
align: "center",
|
|
3113
|
+
children: [
|
|
3114
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes39.Flex, {
|
|
3115
|
+
mr: "3",
|
|
3116
|
+
ml: "-7",
|
|
3117
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes39.IconButton, {
|
|
3118
|
+
onClick: audioThreadContext.recorderProps.pause,
|
|
3119
|
+
color: "gray",
|
|
3120
|
+
radius: "full",
|
|
3121
|
+
size: "1",
|
|
3122
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_icons7.PauseIcon, {})
|
|
3123
|
+
})
|
|
3124
|
+
}),
|
|
3125
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes39.Tooltip, {
|
|
3126
|
+
open: true,
|
|
3127
|
+
content: "Send your message",
|
|
3128
|
+
side: "bottom",
|
|
3129
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes39.IconButton, {
|
|
3130
|
+
onClick: audioThreadContext.recorderProps.stop,
|
|
3131
|
+
color: "gray",
|
|
3132
|
+
highContrast: true,
|
|
3133
|
+
radius: "full",
|
|
3134
|
+
size: "4",
|
|
3135
|
+
style: {
|
|
3136
|
+
border: "2px solid var(--gray-8)"
|
|
3137
|
+
},
|
|
3138
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_icons7.ArrowUpIcon, {})
|
|
3139
|
+
})
|
|
3140
|
+
})
|
|
3141
|
+
]
|
|
3142
|
+
});
|
|
3143
|
+
}
|
|
3144
|
+
if (audioThreadContext.status === "recorderPaused") {
|
|
3145
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes39.IconButton, {
|
|
3146
|
+
onClick: audioThreadContext.recorderProps.resume,
|
|
3147
|
+
color: "red",
|
|
3148
|
+
radius: "full",
|
|
3149
|
+
size: "4",
|
|
3150
|
+
style: {
|
|
3151
|
+
border: "2px solid var(--gray-8)"
|
|
3152
|
+
},
|
|
3153
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_icons7.ResumeIcon, {})
|
|
3154
|
+
});
|
|
3155
|
+
}
|
|
3156
|
+
if (audioThreadContext.status === "idle") {
|
|
3157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes39.IconButton, {
|
|
3158
|
+
onClick: function() {
|
|
3159
|
+
return audioThreadContext.recorderProps.start();
|
|
3160
|
+
},
|
|
3161
|
+
size: "4",
|
|
3162
|
+
color: "red",
|
|
3163
|
+
radius: "full",
|
|
3164
|
+
style: {
|
|
3165
|
+
border: "2px solid var(--gray-8)"
|
|
3166
|
+
}
|
|
3167
|
+
});
|
|
3168
|
+
}
|
|
3169
|
+
if (audioThreadContext.status === "playing") {
|
|
3170
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes39.IconButton, {
|
|
3171
|
+
onClick: function() {
|
|
3172
|
+
return audioThreadContext.messageAudioProps.pause();
|
|
3173
|
+
},
|
|
3174
|
+
size: "4",
|
|
3175
|
+
color: "gray",
|
|
3176
|
+
radius: "full",
|
|
3177
|
+
style: {
|
|
3178
|
+
border: "2px solid var(--gray-8)"
|
|
3179
|
+
},
|
|
3180
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_icons7.PauseIcon, {})
|
|
3181
|
+
});
|
|
3182
|
+
}
|
|
3183
|
+
if (audioThreadContext.status === "playerPaused") {
|
|
3184
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes39.IconButton, {
|
|
3185
|
+
onClick: function() {
|
|
3186
|
+
return audioThreadContext.messageAudioProps.play();
|
|
3187
|
+
},
|
|
3188
|
+
size: "4",
|
|
3189
|
+
color: "gray",
|
|
3190
|
+
radius: "full",
|
|
3191
|
+
style: {
|
|
3192
|
+
border: "2px solid var(--gray-8)"
|
|
3193
|
+
},
|
|
3194
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_icons7.ResumeIcon, {})
|
|
3195
|
+
});
|
|
3196
|
+
}
|
|
3197
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_themes39.IconButton, {
|
|
3198
|
+
size: "4",
|
|
3199
|
+
color: "red",
|
|
3200
|
+
radius: "full",
|
|
3201
|
+
disabled: true,
|
|
3202
|
+
style: {
|
|
3203
|
+
border: "2px solid var(--gray-8)"
|
|
3204
|
+
}
|
|
3205
|
+
});
|
|
3206
|
+
};
|
|
3207
|
+
// src/components/threads/AudioThread/Form/index.tsx
|
|
3208
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
3209
|
+
var Form = function() {
|
|
3210
|
+
var audioThreadContext = useAudioThreadContext();
|
|
3211
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_themes40.Flex, {
|
|
3212
|
+
direction: "column",
|
|
3213
|
+
align: "center",
|
|
3214
|
+
children: [
|
|
3215
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_themes40.Flex, {
|
|
3216
|
+
pb: "3",
|
|
3217
|
+
align: "center",
|
|
3218
|
+
children: [
|
|
3219
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes40.Flex, {
|
|
3220
|
+
ml: "-5",
|
|
3221
|
+
mr: "2",
|
|
3222
|
+
align: "center",
|
|
3223
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_icons8.SpeakerModerateIcon, {
|
|
3224
|
+
style: {
|
|
3225
|
+
color: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-12)")
|
|
3226
|
+
}
|
|
3227
|
+
})
|
|
3228
|
+
}),
|
|
3229
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_themes40.Flex, {
|
|
3230
|
+
px: "2",
|
|
3231
|
+
py: "1",
|
|
3232
|
+
style: {
|
|
3233
|
+
backgroundColor: "var(--".concat(audioThreadContext.status === "recording" ? "mint" : "gray", "-4)"),
|
|
3234
|
+
borderRadius: "var(--radius-6)"
|
|
3235
|
+
},
|
|
3236
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Visualizer, {})
|
|
3237
|
+
})
|
|
3238
|
+
]
|
|
3239
|
+
}),
|
|
3240
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ActionButton, {})
|
|
3241
|
+
]
|
|
3242
|
+
});
|
|
3243
|
+
};
|
|
3244
|
+
// src/components/threads/AudioThread/index.tsx
|
|
3245
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
3246
|
+
var AudioThread = function(props) {
|
|
3247
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Root2, _object_spread_props(_object_spread({}, props), {
|
|
3248
|
+
children: [
|
|
3249
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Visualization, {}),
|
|
3250
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Form, {})
|
|
3251
|
+
]
|
|
3252
|
+
}));
|
|
3253
|
+
};
|
|
3254
|
+
AudioThread.Root = Root2;
|
|
3255
|
+
AudioThread.Visualization = Visualization;
|
|
3256
|
+
AudioThread.Form = Form;
|
|
3257
|
+
// src/components/threads/AudioThreadDialog/index.tsx
|
|
3258
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
3259
|
+
var AudioThreadDialog = function() {
|
|
3260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Root, {
|
|
3261
|
+
children: [
|
|
3262
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Content4, {
|
|
3263
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(AudioThread, {})
|
|
3264
|
+
}),
|
|
3265
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Trigger, {
|
|
3266
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button3, {})
|
|
3267
|
+
})
|
|
3268
|
+
]
|
|
3269
|
+
});
|
|
3270
|
+
};
|
|
3271
|
+
AudioThreadDialog.Root = Root;
|
|
3272
|
+
AudioThreadDialog.Trigger = Trigger;
|
|
3273
|
+
AudioThreadDialog.Button = Button3;
|
|
3274
|
+
AudioThreadDialog.Content = Content4;
|
|
3275
|
+
// src/components/suggestions/Suggestions/index.tsx
|
|
3276
|
+
var import_react38 = require("react");
|
|
3277
|
+
var import_themes42 = require("@radix-ui/themes");
|
|
3278
|
+
// src/components/suggestions/Suggestion/index.tsx
|
|
3279
|
+
var import_react_icons9 = require("@radix-ui/react-icons");
|
|
3280
|
+
var import_themes41 = require("@radix-ui/themes");
|
|
3281
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
3282
|
+
var Suggestion = function(param) {
|
|
3283
|
+
var suggestion = param.suggestion;
|
|
3284
|
+
var createThreadMessage = useCreateThreadMessage().createThreadMessage;
|
|
3285
|
+
var _useIsRunActive = useIsRunActive(), isRunActive2 = _useIsRunActive.isRunActive;
|
|
3286
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_themes41.Button, {
|
|
3287
|
+
variant: "soft",
|
|
3288
|
+
style: {
|
|
3289
|
+
justifyContent: "space-between"
|
|
3290
|
+
},
|
|
3291
|
+
onClick: function() {
|
|
3292
|
+
createThreadMessage({
|
|
3293
|
+
content: suggestion
|
|
3294
|
+
});
|
|
3295
|
+
},
|
|
3296
|
+
disabled: isRunActive2,
|
|
3297
|
+
children: [
|
|
3298
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_themes41.Text, {
|
|
3299
|
+
size: "1",
|
|
3300
|
+
weight: "regular",
|
|
3301
|
+
children: suggestion
|
|
3302
|
+
}),
|
|
3303
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_icons9.ArrowUpIcon, {})
|
|
3304
|
+
]
|
|
3305
|
+
});
|
|
3306
|
+
};
|
|
3307
|
+
// src/components/suggestions/Suggestions/index.tsx
|
|
3308
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
3309
|
+
var Suggestions = function(param) {
|
|
3310
|
+
var _param_emptyStateSuggestions = param.emptyStateSuggestions, emptyStateSuggestions = _param_emptyStateSuggestions === void 0 ? [] : _param_emptyStateSuggestions, _param_suggestions = param.suggestions, suggestions = _param_suggestions === void 0 ? [] : _param_suggestions;
|
|
3311
|
+
var latestThreadMessageProps = useLatestThreadMessage();
|
|
3312
|
+
var isRunActiveProps = useIsRunActive();
|
|
3313
|
+
var isDisabled = (0, import_react38.useMemo)(function() {
|
|
3314
|
+
var // @ts-ignore-next-line
|
|
3315
|
+
_latestThreadMessageProps_latestThreadMessage_metadata, _latestThreadMessageProps_latestThreadMessage;
|
|
3316
|
+
return ((_latestThreadMessageProps_latestThreadMessage = latestThreadMessageProps.latestThreadMessage) === null || _latestThreadMessageProps_latestThreadMessage === void 0 ? void 0 : (_latestThreadMessageProps_latestThreadMessage_metadata = _latestThreadMessageProps_latestThreadMessage.metadata) === null || _latestThreadMessageProps_latestThreadMessage_metadata === void 0 ? void 0 : _latestThreadMessageProps_latestThreadMessage_metadata.isBlocking) || isRunActiveProps.isRunActive;
|
|
3317
|
+
}, [
|
|
3318
|
+
latestThreadMessageProps,
|
|
3319
|
+
isRunActiveProps
|
|
3320
|
+
]);
|
|
3321
|
+
if (latestThreadMessageProps.isLoading) return null;
|
|
3322
|
+
if (isDisabled) return null;
|
|
3323
|
+
if (!latestThreadMessageProps.latestThreadMessage && emptyStateSuggestions.length > 0) {
|
|
3324
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes42.Flex, {
|
|
3325
|
+
gap: "2",
|
|
3326
|
+
py: "2",
|
|
3327
|
+
wrap: "wrap",
|
|
3328
|
+
children: emptyStateSuggestions.map(function(suggestion) {
|
|
3329
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Suggestion, {
|
|
3330
|
+
suggestion: suggestion
|
|
3331
|
+
}, suggestion);
|
|
3332
|
+
})
|
|
3333
|
+
});
|
|
3334
|
+
}
|
|
3335
|
+
if (latestThreadMessageProps.latestThreadMessage.role === "assistant") {
|
|
3336
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_themes42.Flex, {
|
|
3337
|
+
gap: "2",
|
|
3338
|
+
py: "2",
|
|
3339
|
+
wrap: "wrap",
|
|
3340
|
+
children: suggestions.map(function(suggestion) {
|
|
3341
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Suggestion, {
|
|
3342
|
+
suggestion: suggestion
|
|
3343
|
+
}, suggestion);
|
|
3344
|
+
})
|
|
3345
|
+
});
|
|
3346
|
+
}
|
|
3347
|
+
return null;
|
|
3348
|
+
};
|
|
3349
|
+
// src/hooks/markdown/useMarkdownContext/index.ts
|
|
3350
|
+
var import_react39 = require("react");
|
|
3351
|
+
var useMarkdownContext = function() {
|
|
3352
|
+
return (0, import_react39.useContext)(MarkdownContext);
|
|
3353
|
+
};
|
|
3354
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
3355
|
+
0 && (module.exports = {
|
|
3356
|
+
AssistantAvatarContext: AssistantAvatarContext,
|
|
3357
|
+
AssistantNameContext: AssistantNameContext,
|
|
3358
|
+
AudioThread: AudioThread,
|
|
3359
|
+
AudioThreadDialog: AudioThreadDialog,
|
|
3360
|
+
FunctionBase: FunctionBase,
|
|
3361
|
+
FunctionComponentsContext: FunctionComponentsContext,
|
|
3362
|
+
MarkdownContext: MarkdownContext,
|
|
3363
|
+
Suggestion: Suggestion,
|
|
3364
|
+
Suggestions: Suggestions,
|
|
3365
|
+
SuperinterfaceProvider: SuperinterfaceProvider,
|
|
3366
|
+
Thread: Thread,
|
|
3367
|
+
ThreadDialog: ThreadDialog,
|
|
3368
|
+
ThreadMessageForm: ThreadMessageForm,
|
|
3369
|
+
ThreadMessages: ThreadMessages,
|
|
3370
|
+
ThreadProvider: ThreadProvider,
|
|
3371
|
+
useCreateRun: useCreateRun,
|
|
3372
|
+
useCreateThreadMessage: useCreateThreadMessage,
|
|
3373
|
+
useIsRunActive: useIsRunActive,
|
|
3374
|
+
useLatestRun: useLatestRun,
|
|
3375
|
+
useLatestThreadMessage: useLatestThreadMessage,
|
|
3376
|
+
useMarkdownContext: useMarkdownContext,
|
|
3377
|
+
useRuns: useRuns,
|
|
3378
|
+
useSuperinterfaceContext: useSuperinterfaceContext,
|
|
3379
|
+
useThreadContext: useThreadContext,
|
|
3380
|
+
useThreadLifecycles: useThreadLifecycles,
|
|
3381
|
+
useThreadMessages: useThreadMessages
|
|
3382
|
+
});
|
|
3383
|
+
//# sourceMappingURL=index.cjs.map
|