@superinterface/react 1.0.5 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/index-LPUEY9WE.d.ts +5 -0
  2. package/dist/index.d.ts +135 -130
  3. package/dist/index.js +940 -750
  4. package/dist/index.js.map +1 -1
  5. package/dist/mutationFns.d.ts +9 -4
  6. package/dist/mutationFns.js +21 -19
  7. package/dist/mutationFns.js.map +1 -1
  8. package/dist/queryFns.d.ts +6 -3
  9. package/dist/queryFns.js +29 -24
  10. package/dist/queryFns.js.map +1 -1
  11. package/dist/utils.d.ts +24 -0
  12. package/dist/{lib/index.js → utils.js} +48 -5
  13. package/dist/utils.js.map +1 -0
  14. package/package.json +2 -3
  15. package/dist/chunk-DP5XKPRM.mjs +0 -8
  16. package/dist/chunk-DP5XKPRM.mjs.map +0 -1
  17. package/dist/chunk-E4KDALPU.mjs +0 -11
  18. package/dist/chunk-E4KDALPU.mjs.map +0 -1
  19. package/dist/chunk-QPW4QQ26.mjs +0 -49
  20. package/dist/chunk-QPW4QQ26.mjs.map +0 -1
  21. package/dist/index.d.mts +0 -561
  22. package/dist/index.mjs +0 -1899
  23. package/dist/index.mjs.map +0 -1
  24. package/dist/lib/index.d.mts +0 -3
  25. package/dist/lib/index.d.ts +0 -3
  26. package/dist/lib/index.js.map +0 -1
  27. package/dist/lib/index.mjs +0 -7
  28. package/dist/lib/index.mjs.map +0 -1
  29. package/dist/mutationFns.d.mts +0 -31
  30. package/dist/mutationFns.mjs +0 -84
  31. package/dist/mutationFns.mjs.map +0 -1
  32. package/dist/queryFns.d.mts +0 -15
  33. package/dist/queryFns.mjs +0 -126
  34. package/dist/queryFns.mjs.map +0 -1
  35. package/dist/queryKeys.d.mts +0 -5
  36. package/dist/queryKeys.d.ts +0 -5
  37. package/dist/queryKeys.js +0 -38
  38. package/dist/queryKeys.js.map +0 -1
  39. package/dist/queryKeys.mjs +0 -9
  40. package/dist/queryKeys.mjs.map +0 -1
  41. package/dist/types/index.d.mts +0 -33
  42. package/dist/types/index.mjs +0 -1
  43. package/dist/types/index.mjs.map +0 -1
package/dist/index.js CHANGED
@@ -30,22 +30,26 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
+ AssistantAvatarContext: () => AssistantAvatarContext,
34
+ AssistantNameContext: () => AssistantNameContext,
33
35
  Form: () => Form,
36
+ FunctionBase: () => FunctionBase,
37
+ FunctionComponentsContext: () => FunctionComponentsContext,
38
+ MarkdownContext: () => MarkdownContext,
34
39
  Messages: () => Messages,
35
- QueryClient: () => import_react_query8.QueryClient,
36
- QueryClientProvider: () => import_react_query8.QueryClientProvider,
40
+ Suggestions: () => Suggestions,
41
+ SuperinterfaceProvider: () => SuperinterfaceProvider,
37
42
  useCreateMessage: () => useCreateMessage,
38
43
  useIsRunActive: () => useIsRunActive,
39
44
  useLatestMessage: () => useLatestMessage,
45
+ useMarkdownContext: () => useMarkdownContext,
40
46
  useMessages: () => useMessages,
41
- useQuery: () => import_react_query8.useQuery,
42
- useQueryClient: () => import_react_query8.useQueryClient,
43
47
  useThreadLifecycles: () => useThreadLifecycles
44
48
  });
45
49
  module.exports = __toCommonJS(src_exports);
46
50
 
47
51
  // src/components/messages/Messages/index.tsx
48
- var import_themes29 = require("@radix-ui/themes");
52
+ var import_themes28 = require("@radix-ui/themes");
49
53
 
50
54
  // src/hooks/misc/useInfiniteScroll/index.tsx
51
55
  var import_react2 = require("react");
@@ -227,22 +231,21 @@ var MessagesSkeleton = (0, import_react4.forwardRef)(function MessagesSkeleton2(
227
231
  });
228
232
 
229
233
  // src/hooks/messages/useMessages/index.tsx
234
+ var import_react7 = require("react");
235
+ var import_react_query2 = require("@tanstack/react-query");
236
+
237
+ // src/hooks/core/useSuperinterfaceContext/index.ts
238
+ var import_react6 = require("react");
239
+
240
+ // src/contexts/core/SuperinterfaceContext/index.tsx
230
241
  var import_react5 = require("react");
231
- var import_react_query = require("@tanstack/react-query");
232
242
 
233
243
  // src/hooks/messages/useMessages/lib/queryOptions/queryKey.ts
234
- var queryKey = () => ["messages"];
244
+ var queryKey = ["messages"];
235
245
 
236
246
  // src/hooks/messages/useMessages/lib/queryOptions/index.ts
237
247
  var queryOptions = {
238
- queryKey: queryKey(),
239
- // queryFn: ({
240
- // pageParam,
241
- // }: { pageParam?: string }) => (
242
- // queryFn({
243
- // ...(pageParam ? { cursor: pageParam } : {}),
244
- // })
245
- // ),
248
+ queryKey,
246
249
  initialPageParam: void 0,
247
250
  getNextPageParam: (lastPage) => {
248
251
  if (!lastPage.hasNextPage)
@@ -251,60 +254,12 @@ var queryOptions = {
251
254
  }
252
255
  };
253
256
 
254
- // src/hooks/messages/useMessages/index.tsx
255
- var messages = ({
256
- props
257
- }) => {
258
- if (!props.data)
259
- return [];
260
- return props.data.pages.reduce((acc, page) => acc.concat(page.data), []);
261
- };
262
- var useMessages = ({
263
- messagesQueryOptions
264
- }) => {
265
- const props = (0, import_react_query.useInfiniteQuery)({
266
- ...queryOptions,
267
- ...messagesQueryOptions
268
- });
269
- return (0, import_react5.useMemo)(() => ({
270
- ...props,
271
- messages: messages({ props })
272
- }), [props]);
273
- };
274
-
275
- // src/hooks/runs/useManageRuns/index.tsx
276
- var import_react9 = require("react");
277
-
278
- // src/hooks/messages/useLatestMessage/index.ts
279
- var import_react6 = require("react");
280
- var useLatestMessage = (args) => {
281
- const props = useMessages(args);
282
- return (0, import_react6.useMemo)(() => ({
283
- ...props,
284
- latestMessage: props.messages[0] || null
285
- }), [props]);
286
- };
287
-
288
- // src/hooks/runs/useLatestRun/index.ts
289
- var import_react8 = require("react");
290
-
291
- // src/hooks/runs/useRuns/index.tsx
292
- var import_react7 = require("react");
293
- var import_react_query2 = require("@tanstack/react-query");
294
-
295
257
  // src/hooks/runs/useRuns/lib/queryOptions/queryKey.ts
296
- var queryKey2 = () => ["runs"];
258
+ var queryKey2 = ["runs"];
297
259
 
298
260
  // src/hooks/runs/useRuns/lib/queryOptions/index.ts
299
261
  var queryOptions2 = {
300
- queryKey: queryKey2(),
301
- // queryFn: ({
302
- // pageParam,
303
- // }: { pageParam?: string }) => (
304
- // queryFn({
305
- // assistantConversationId,
306
- // })
307
- // ),
262
+ queryKey: queryKey2,
308
263
  initialPageParam: void 0,
309
264
  getNextPageParam: (lastPage) => {
310
265
  if (!lastPage.hasNextPage)
@@ -314,55 +269,171 @@ var queryOptions2 = {
314
269
  limit: 10
315
270
  };
316
271
 
317
- // src/hooks/runs/useRuns/lib/getRuns.ts
318
- var getRuns = ({
319
- data: data2
272
+ // src/lib/core/fillOption.ts
273
+ var extended = [
274
+ "enabled",
275
+ "queryKey"
276
+ ];
277
+ var fillOption = ({
278
+ value,
279
+ key,
280
+ meta,
281
+ args
320
282
  }) => {
321
- if (!data2)
322
- return [];
323
- return data2.pages.reduce((acc, page) => acc.concat(page.data), []);
283
+ if (typeof value === "function" && extended.includes(key)) {
284
+ return value({
285
+ meta,
286
+ ...args
287
+ });
288
+ }
289
+ return value;
324
290
  };
325
291
 
326
- // src/hooks/runs/useRuns/index.tsx
327
- var useRuns = ({
328
- runsQueryOptions
329
- }) => {
330
- const props = (0, import_react_query2.useInfiniteQuery)({
331
- ...queryOptions2,
332
- ...runsQueryOptions
292
+ // src/lib/optimistic/optimisticId.ts
293
+ var import_radash = require("radash");
294
+ var optimisticId = () => `-${(0, import_radash.uid)(24)}`;
295
+
296
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.ts
297
+ var data = ({
298
+ newMessage
299
+ }) => (prevData) => {
300
+ const message = {
301
+ id: optimisticId(),
302
+ role: "user",
303
+ created_at: +/* @__PURE__ */ new Date(),
304
+ object: "thread.message",
305
+ content: [
306
+ {
307
+ type: "text",
308
+ text: {
309
+ annotations: [],
310
+ value: newMessage.content
311
+ }
312
+ }
313
+ ],
314
+ run_id: null,
315
+ assistant_id: null,
316
+ thread_id: null,
317
+ file_ids: [],
318
+ metadata: {},
319
+ runSteps: []
320
+ };
321
+ if (!prevData) {
322
+ return {
323
+ pageParams: [],
324
+ pages: [
325
+ {
326
+ data: [message],
327
+ hasNextPage: false,
328
+ lastId: message.id
329
+ }
330
+ ]
331
+ };
332
+ }
333
+ const [latestPage, ...pagesRest] = prevData.pages;
334
+ return {
335
+ ...prevData,
336
+ pages: [
337
+ {
338
+ ...latestPage,
339
+ data: [
340
+ message,
341
+ ...latestPage.data
342
+ ]
343
+ },
344
+ ...pagesRest
345
+ ]
346
+ };
347
+ };
348
+
349
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.ts
350
+ var onMutate = async (newMessage, context) => {
351
+ await context.meta.queryClient.cancelQueries(
352
+ fillOption({
353
+ value: context.meta.superinterfaceContext.queryOptions.messages.queryKey,
354
+ key: "queryKey",
355
+ meta: context.meta,
356
+ args: newMessage
357
+ })
358
+ );
359
+ const prevMessages = context.meta.queryClient.getQueryData(
360
+ fillOption({
361
+ value: context.meta.superinterfaceContext.queryOptions.messages.queryKey,
362
+ key: "queryKey",
363
+ meta: context.meta,
364
+ args: newMessage
365
+ })
366
+ );
367
+ context.meta.queryClient.setQueryData(
368
+ fillOption({
369
+ value: context.meta.superinterfaceContext.queryOptions.messages.queryKey,
370
+ key: "queryKey",
371
+ meta: context.meta,
372
+ args: newMessage
373
+ }),
374
+ data({ newMessage })
375
+ );
376
+ return {
377
+ prevMessages,
378
+ newMessage,
379
+ meta: context.meta
380
+ };
381
+ };
382
+
383
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/onError.ts
384
+ var onError = async (_error, newMessage, context) => {
385
+ if (!context) {
386
+ return;
387
+ }
388
+ };
389
+
390
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/onSettled.ts
391
+ var onSettled = async (_data, _error, variables, context) => {
392
+ await context.meta.queryClient.invalidateQueries({
393
+ queryKey: fillOption({
394
+ value: context.meta.superinterfaceContext.queryOptions.messages.queryKey,
395
+ key: "queryKey",
396
+ meta: context.meta,
397
+ args: variables
398
+ })
399
+ });
400
+ await context.meta.queryClient.invalidateQueries({
401
+ queryKey: fillOption({
402
+ value: context.meta.superinterfaceContext.queryOptions.runs.queryKey,
403
+ key: "queryKey",
404
+ meta: context.meta,
405
+ args: variables
406
+ })
333
407
  });
334
- return (0, import_react7.useMemo)(() => ({
335
- ...props,
336
- runs: getRuns({ data: props.data })
337
- }), [props]);
338
408
  };
339
409
 
340
- // src/hooks/runs/useLatestRun/index.ts
341
- var useLatestRun = (args) => {
342
- const props = useRuns(args);
343
- return (0, import_react8.useMemo)(() => ({
344
- ...props,
345
- latestRun: props.runs[0]
346
- }), [props]);
410
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/index.ts
411
+ var mutationOptions = {
412
+ onMutate,
413
+ onError,
414
+ onSettled
347
415
  };
348
416
 
349
- // src/hooks/runs/useCreateRun/index.ts
350
- var import_react_query3 = require("@tanstack/react-query");
417
+ // src/hooks/runs/useCreateRun/lib/mutationOptions/onMutate.ts
418
+ var onMutate2 = async (_newRun, context) => context;
351
419
 
352
420
  // src/hooks/runs/useCreateRun/lib/mutationOptions/onSuccess.ts
353
- var onSuccess = ({
354
- queryClient
355
- }) => (response) => queryClient.setQueryData(
356
- queryKey2(),
421
+ var onSuccess = async (data2, variables, context) => context.meta.queryClient.setQueryData(
422
+ fillOption({
423
+ value: context.meta.superinterfaceContext.queryOptions.runs.queryKey,
424
+ key: "queryKey",
425
+ meta: context.meta,
426
+ args: variables
427
+ }),
357
428
  (prevData) => {
358
429
  if (!prevData) {
359
430
  return {
360
431
  pageParams: [],
361
432
  pages: [
362
433
  {
363
- data: [response.run],
434
+ data: [data2.run],
364
435
  hasNextPage: false,
365
- lastId: response.run.id
436
+ lastId: data2.run.id
366
437
  }
367
438
  ]
368
439
  };
@@ -374,7 +445,7 @@ var onSuccess = ({
374
445
  {
375
446
  ...latestPage,
376
447
  data: [
377
- response.run,
448
+ data2.run,
378
449
  ...latestPage.data
379
450
  ]
380
451
  },
@@ -385,68 +456,224 @@ var onSuccess = ({
385
456
  );
386
457
 
387
458
  // src/hooks/runs/useCreateRun/lib/mutationOptions/onSettled.ts
388
- var onSettled = ({
389
- queryClient
390
- }) => (response) => {
391
- if (!response) {
392
- throw new Error("useCreateRun onSettled: response is undefined");
393
- }
394
- queryClient.invalidateQueries({
395
- queryKey: queryKey()
459
+ var onSettled2 = async (_data, _error, variables, context) => {
460
+ await context.meta.queryClient.invalidateQueries({
461
+ queryKey: fillOption({
462
+ value: context.meta.superinterfaceContext.queryOptions.messages.queryKey,
463
+ key: "queryKey",
464
+ meta: context.meta,
465
+ args: variables
466
+ })
396
467
  });
397
- queryClient.invalidateQueries({
398
- queryKey: queryKey2()
468
+ await context.meta.queryClient.invalidateQueries({
469
+ queryKey: fillOption({
470
+ value: context.meta.superinterfaceContext.queryOptions.runs.queryKey,
471
+ key: "queryKey",
472
+ meta: context.meta,
473
+ args: variables
474
+ })
399
475
  });
400
476
  };
401
477
 
402
478
  // src/hooks/runs/useCreateRun/lib/mutationOptions/index.ts
403
- var mutationOptions = ({
404
- queryClient
405
- }) => ({
406
- // mutationFn,
407
- onSuccess: onSuccess({ queryClient }),
408
- onSettled: onSettled({ queryClient })
479
+ var mutationOptions2 = {
480
+ onMutate: onMutate2,
481
+ onSuccess,
482
+ onSettled: onSettled2
483
+ };
484
+
485
+ // src/hooks/actions/useHandleAction/lib/mutationOptions/onMutate.ts
486
+ var onMutate3 = async (_newRun, context) => context;
487
+
488
+ // src/hooks/actions/useHandleAction/lib/mutationOptions/onSettled.ts
489
+ var onSettled3 = async (_data, _error, variables, context) => {
490
+ await context.meta.queryClient.invalidateQueries({
491
+ queryKey: fillOption({
492
+ value: context.meta.superinterfaceContext.queryOptions.messages.queryKey,
493
+ key: "queryKey",
494
+ meta: context.meta,
495
+ args: variables
496
+ })
497
+ });
498
+ await context.meta.queryClient.invalidateQueries({
499
+ queryKey: fillOption({
500
+ value: context.meta.superinterfaceContext.queryOptions.runs.queryKey,
501
+ key: "queryKey",
502
+ meta: context.meta,
503
+ args: variables
504
+ })
505
+ });
506
+ };
507
+
508
+ // src/hooks/actions/useHandleAction/lib/mutationOptions/index.ts
509
+ var mutationOptions3 = {
510
+ onMutate: onMutate3,
511
+ onSettled: onSettled3
512
+ };
513
+
514
+ // src/contexts/core/SuperinterfaceContext/index.tsx
515
+ var SuperinterfaceContext = (0, import_react5.createContext)({
516
+ queryOptions: {
517
+ messages: queryOptions,
518
+ runs: queryOptions2
519
+ },
520
+ mutationOptions: {
521
+ createMessage: mutationOptions,
522
+ createRun: mutationOptions2,
523
+ handleAction: mutationOptions3
524
+ }
409
525
  });
410
526
 
527
+ // src/hooks/core/useSuperinterfaceContext/index.ts
528
+ var useSuperinterfaceContext = () => (0, import_react6.useContext)(SuperinterfaceContext);
529
+
530
+ // src/hooks/metas/useMeta/index.ts
531
+ var import_react_query = require("@tanstack/react-query");
532
+ var useMeta = () => {
533
+ const superinterfaceContext = useSuperinterfaceContext();
534
+ const queryClient = (0, import_react_query.useQueryClient)();
535
+ return {
536
+ meta: {
537
+ queryClient,
538
+ superinterfaceContext
539
+ }
540
+ };
541
+ };
542
+
543
+ // src/lib/core/extendOptions.ts
544
+ var import_radash2 = require("radash");
545
+ var import_lodash2 = require("lodash");
546
+ var fill = ({ options, meta, args }) => (0, import_radash2.mapValues)(options, (value, key) => {
547
+ if (key === "onMutate") {
548
+ return async (...args2) => {
549
+ return value(...args2, { meta });
550
+ };
551
+ }
552
+ return fillOption({
553
+ value,
554
+ key,
555
+ meta,
556
+ args
557
+ });
558
+ });
559
+ var extendOptions = ({
560
+ defaultOptions,
561
+ args,
562
+ meta
563
+ }) => {
564
+ const options = (0, import_lodash2.merge)(defaultOptions, args);
565
+ return {
566
+ meta,
567
+ ...fill({ options, meta, args })
568
+ };
569
+ };
570
+
571
+ // src/hooks/messages/useMessages/index.tsx
572
+ var messages = ({
573
+ props
574
+ }) => {
575
+ if (!props.data)
576
+ return [];
577
+ return props.data.pages.reduce((acc, page) => acc.concat(page.data), []);
578
+ };
579
+ var useMessages = (args = {}) => {
580
+ const { meta } = useMeta();
581
+ const superinterfaceContext = useSuperinterfaceContext();
582
+ const props = (0, import_react_query2.useInfiniteQuery)(extendOptions({
583
+ defaultOptions: superinterfaceContext.queryOptions.messages,
584
+ args,
585
+ meta
586
+ }));
587
+ return (0, import_react7.useMemo)(() => ({
588
+ ...props,
589
+ // @ts-ignore-next-line
590
+ messages: messages({ props })
591
+ }), [props]);
592
+ };
593
+
594
+ // src/hooks/runs/useManageRuns/index.tsx
595
+ var import_react11 = require("react");
596
+
597
+ // src/hooks/messages/useLatestMessage/index.ts
598
+ var import_react8 = require("react");
599
+ var useLatestMessage = (args = {}) => {
600
+ const props = useMessages(args);
601
+ return (0, import_react8.useMemo)(() => ({
602
+ ...props,
603
+ latestMessage: props.messages[0] || null
604
+ }), [props]);
605
+ };
606
+
607
+ // src/hooks/runs/useLatestRun/index.ts
608
+ var import_react10 = require("react");
609
+
610
+ // src/hooks/runs/useRuns/index.tsx
611
+ var import_react9 = require("react");
612
+ var import_react_query3 = require("@tanstack/react-query");
613
+
614
+ // src/hooks/runs/useRuns/lib/getRuns.ts
615
+ var getRuns = ({
616
+ data: data2
617
+ }) => {
618
+ if (!data2)
619
+ return [];
620
+ return data2.pages.reduce((acc, page) => acc.concat(page.data), []);
621
+ };
622
+
623
+ // src/hooks/runs/useRuns/index.tsx
624
+ var useRuns = (args = {}) => {
625
+ const { meta } = useMeta();
626
+ const superinterfaceContext = useSuperinterfaceContext();
627
+ const props = (0, import_react_query3.useInfiniteQuery)(extendOptions({
628
+ defaultOptions: superinterfaceContext.queryOptions.runs,
629
+ args,
630
+ meta
631
+ }));
632
+ return (0, import_react9.useMemo)(() => ({
633
+ ...props,
634
+ // @ts-ignore-next-line
635
+ runs: getRuns({ data: props.data })
636
+ }), [props]);
637
+ };
638
+
639
+ // src/hooks/runs/useLatestRun/index.ts
640
+ var useLatestRun = (args = {}) => {
641
+ const props = useRuns(args);
642
+ return (0, import_react10.useMemo)(() => ({
643
+ ...props,
644
+ latestRun: props.runs[0]
645
+ }), [props]);
646
+ };
647
+
411
648
  // src/hooks/runs/useCreateRun/index.ts
412
- var useCreateRun = ({
413
- createRunMutationOptions
649
+ var import_react_query4 = require("@tanstack/react-query");
650
+ var useCreateRun = (args = () => {
414
651
  }) => {
415
- const queryClient = (0, import_react_query3.useQueryClient)();
416
- const mutationProps = (0, import_react_query3.useMutation)({
417
- ...mutationOptions({
418
- queryClient
419
- }),
420
- ...createRunMutationOptions
421
- });
652
+ const superinterfaceContext = useSuperinterfaceContext();
653
+ const { meta } = useMeta();
654
+ const props = (0, import_react_query4.useMutation)(extendOptions({
655
+ defaultOptions: superinterfaceContext.mutationOptions.createRun,
656
+ args,
657
+ meta
658
+ }));
422
659
  return {
423
- ...mutationProps,
424
- createRun: mutationProps.mutate
660
+ ...props,
661
+ createRun: props.mutate
425
662
  };
426
663
  };
427
664
 
428
665
  // src/lib/optimistic/isOptimistic.ts
429
- var import_lodash2 = __toESM(require("lodash"));
666
+ var import_lodash3 = __toESM(require("lodash"));
430
667
  var isOptimistic = ({
431
668
  id
432
- }) => import_lodash2.default.startsWith(id, "-");
669
+ }) => import_lodash3.default.startsWith(id, "-");
433
670
 
434
671
  // src/hooks/runs/useManageRuns/index.tsx
435
- var useManageRuns = ({
436
- messagesQueryOptions,
437
- runsQueryOptions,
438
- createRunMutationOptions
439
- }) => {
440
- const latestRunProps = useLatestRun({
441
- runsQueryOptions
442
- });
443
- const latestMessageProps = useLatestMessage({
444
- messagesQueryOptions
445
- });
446
- const createRunProps = useCreateRun({
447
- createRunMutationOptions
448
- });
449
- (0, import_react9.useEffect)(() => {
672
+ var useManageRuns = (args) => {
673
+ const latestRunProps = useLatestRun(args);
674
+ const latestMessageProps = useLatestMessage(args);
675
+ const createRunProps = useCreateRun(args);
676
+ (0, import_react11.useEffect)(() => {
450
677
  if (createRunProps.isPending)
451
678
  return;
452
679
  if (latestRunProps.isFetching)
@@ -460,7 +687,7 @@ var useManageRuns = ({
460
687
  if (isOptimistic({ id: latestMessageProps.latestMessage.id }))
461
688
  return;
462
689
  if (!latestRunProps.latestRun || latestMessageProps.latestMessage.created_at > latestRunProps.latestRun.created_at) {
463
- createRunProps.createRun();
690
+ createRunProps.createRun(args);
464
691
  }
465
692
  }, [
466
693
  createRunProps,
@@ -470,15 +697,12 @@ var useManageRuns = ({
470
697
  return null;
471
698
  };
472
699
 
473
- // src/hooks/runs/usePolling/index.tsx
474
- var import_react_query5 = require("@tanstack/react-query");
475
-
476
700
  // src/hooks/runs/useIsRunActive/index.tsx
477
- var import_react10 = require("react");
478
- var import_react_query4 = require("@tanstack/react-query");
701
+ var import_react12 = require("react");
702
+ var import_react_query5 = require("@tanstack/react-query");
479
703
 
480
704
  // src/lib/runs/isRunEditingMessage/index.ts
481
- var import_lodash3 = __toESM(require("lodash"));
705
+ var import_lodash4 = __toESM(require("lodash"));
482
706
  var isRunEditingMessage = ({
483
707
  message
484
708
  }) => {
@@ -488,7 +712,7 @@ var isRunEditingMessage = ({
488
712
  return false;
489
713
  if (!message.run_id)
490
714
  return false;
491
- const hasContent = import_lodash3.default.some(message.content, (content) => {
715
+ const hasContent = import_lodash4.default.some(message.content, (content) => {
492
716
  var _a;
493
717
  return content.type !== "text" || content.type === "text" && ((_a = content.text) == null ? void 0 : _a.value) !== "";
494
718
  });
@@ -498,7 +722,6 @@ var isRunEditingMessage = ({
498
722
  // src/hooks/runs/useIsRunActive/index.tsx
499
723
  var statuses = [
500
724
  "queued",
501
- // 'completed',
502
725
  "in_progress",
503
726
  "cancelling",
504
727
  "requires_action"
@@ -519,18 +742,11 @@ var isRunActive = ({
519
742
  return true;
520
743
  return isRunEditingMessage({ message: latestMessageProps.latestMessage });
521
744
  };
522
- var useIsRunActive = ({
523
- messagesQueryOptions,
524
- runsQueryOptions
525
- }) => {
526
- const latestRunProps = useLatestRun({
527
- runsQueryOptions
528
- });
529
- const latestMessageProps = useLatestMessage({
530
- messagesQueryOptions
531
- });
532
- const isMutating = (0, import_react_query4.useIsMutating)();
533
- return (0, import_react10.useMemo)(() => ({
745
+ var useIsRunActive = (args) => {
746
+ const latestRunProps = useLatestRun(args);
747
+ const latestMessageProps = useLatestMessage(args);
748
+ const isMutating = (0, import_react_query5.useIsMutating)();
749
+ return (0, import_react12.useMemo)(() => ({
534
750
  ...latestRunProps,
535
751
  isRunActive: isRunActive({
536
752
  latestRunProps,
@@ -545,32 +761,36 @@ var import_react_use = require("react-use");
545
761
 
546
762
  // src/hooks/runs/usePolling/lib/refetch.ts
547
763
  var refetch = async ({
548
- queryClient,
549
- latestRun
764
+ meta,
765
+ args
550
766
  }) => {
551
- await queryClient.invalidateQueries({
552
- queryKey: queryKey()
767
+ await meta.queryClient.invalidateQueries({
768
+ queryKey: fillOption({
769
+ value: meta.superinterfaceContext.queryOptions.messages.queryKey,
770
+ key: "queryKey",
771
+ meta,
772
+ args
773
+ })
553
774
  });
554
- await queryClient.invalidateQueries({
555
- queryKey: queryKey2()
775
+ await meta.queryClient.invalidateQueries({
776
+ queryKey: fillOption({
777
+ value: meta.superinterfaceContext.queryOptions.runs.queryKey,
778
+ key: "queryKey",
779
+ meta,
780
+ args
781
+ })
556
782
  });
557
783
  };
558
784
 
559
785
  // src/hooks/runs/usePolling/index.tsx
560
- var usePolling = ({
561
- messagesQueryOptions,
562
- runsQueryOptions
563
- }) => {
564
- const queryClient = (0, import_react_query5.useQueryClient)();
565
- const isRunActiveProps = useIsRunActive({
566
- messagesQueryOptions,
567
- runsQueryOptions
568
- });
786
+ var usePolling = (args = {}) => {
787
+ const { meta } = useMeta();
788
+ const isRunActiveProps = useIsRunActive(args);
569
789
  (0, import_react_use.useInterval)(
570
790
  () => {
571
791
  refetch({
572
- queryClient,
573
- latestRun: isRunActiveProps.latestRun
792
+ args,
793
+ meta
574
794
  });
575
795
  console.log("poll refetched");
576
796
  },
@@ -580,63 +800,30 @@ var usePolling = ({
580
800
  };
581
801
 
582
802
  // src/hooks/actions/useManageActions/index.tsx
583
- var import_react11 = require("react");
803
+ var import_react13 = require("react");
584
804
 
585
805
  // src/hooks/actions/useHandleAction/index.tsx
586
806
  var import_react_query6 = require("@tanstack/react-query");
587
-
588
- // src/hooks/actions/useHandleAction/lib/mutationOptions/onSettled.ts
589
- var onSettled2 = ({
590
- queryClient
591
- }) => (response) => {
592
- if (!response) {
593
- throw new Error("useHandleAction onSettled: response is undefined");
594
- }
595
- queryClient.invalidateQueries({
596
- queryKey: queryKey()
597
- });
598
- queryClient.invalidateQueries({
599
- queryKey: queryKey2()
600
- });
601
- };
602
-
603
- // src/hooks/actions/useHandleAction/lib/mutationOptions/index.ts
604
- var mutationOptions2 = ({
605
- queryClient
606
- }) => ({
607
- // mutationFn,
608
- onSettled: onSettled2({ queryClient })
609
- });
610
-
611
- // src/hooks/actions/useHandleAction/index.tsx
612
- var useHandleAction = ({
613
- handleActionMutationOptions
807
+ var useHandleAction = (args = () => {
614
808
  }) => {
615
- const queryClient = (0, import_react_query6.useQueryClient)();
616
- const mutationProps = (0, import_react_query6.useMutation)({
617
- ...mutationOptions2({
618
- queryClient
619
- }),
620
- ...handleActionMutationOptions
621
- });
809
+ const superinterfaceContext = useSuperinterfaceContext();
810
+ const { meta } = useMeta();
811
+ const props = (0, import_react_query6.useMutation)(extendOptions({
812
+ defaultOptions: superinterfaceContext.mutationOptions.handleAction,
813
+ args,
814
+ meta
815
+ }));
622
816
  return {
623
- ...mutationProps,
624
- handleAction: mutationProps.mutate
817
+ ...props,
818
+ handleAction: props.mutate
625
819
  };
626
820
  };
627
821
 
628
822
  // src/hooks/actions/useManageActions/index.tsx
629
- var useManageActions = ({
630
- runsQueryOptions,
631
- handleActionMutationOptions
632
- }) => {
633
- const latestRunProps = useLatestRun({
634
- runsQueryOptions
635
- });
636
- const handleActionProps = useHandleAction({
637
- handleActionMutationOptions
638
- });
639
- (0, import_react11.useEffect)(() => {
823
+ var useManageActions = (args) => {
824
+ const latestRunProps = useLatestRun(args);
825
+ const handleActionProps = useHandleAction(args);
826
+ (0, import_react13.useEffect)(() => {
640
827
  if (handleActionProps.isPending)
641
828
  return;
642
829
  if (latestRunProps.isFetching)
@@ -648,44 +835,32 @@ var useManageActions = ({
648
835
  console.log("requires action", {
649
836
  latestRunProps
650
837
  });
651
- handleActionProps.handleAction({ latestRun: latestRunProps.latestRun });
838
+ handleActionProps.handleAction({
839
+ latestRun: latestRunProps.latestRun,
840
+ ...args
841
+ });
652
842
  }, [handleActionProps, latestRunProps]);
653
843
  return null;
654
844
  };
655
845
 
656
846
  // src/hooks/threads/useThreadLifecycles/index.tsx
657
- var useThreadLifecycles = ({
658
- messagesQueryOptions,
659
- runsQueryOptions,
660
- createRunMutationOptions,
661
- handleActionMutationOptions
662
- }) => {
663
- useManageRuns({
664
- messagesQueryOptions,
665
- runsQueryOptions,
666
- createRunMutationOptions
667
- });
668
- useManageActions({
669
- runsQueryOptions,
670
- handleActionMutationOptions
671
- });
672
- usePolling({
673
- messagesQueryOptions,
674
- runsQueryOptions
675
- });
847
+ var useThreadLifecycles = (args) => {
848
+ useManageRuns(args);
849
+ useManageActions(args);
850
+ usePolling(args);
676
851
  return null;
677
852
  };
678
853
 
679
854
  // src/hooks/messageGroups/useMessageGroups/index.ts
680
- var import_react12 = require("react");
855
+ var import_react14 = require("react");
681
856
 
682
857
  // src/hooks/messageGroups/useMessageGroups/lib/messageGroups/index.ts
683
- var import_lodash4 = __toESM(require("lodash"));
684
- var import_radash2 = require("radash");
858
+ var import_lodash5 = __toESM(require("lodash"));
859
+ var import_radash4 = require("radash");
685
860
 
686
861
  // src/lib/messages/order.ts
687
- var import_radash = require("radash");
688
- var order = ({ messages: messages2 }) => (0, import_radash.sort)(messages2, (m) => m.created_at, true);
862
+ var import_radash3 = require("radash");
863
+ var order = ({ messages: messages2 }) => (0, import_radash3.sort)(messages2, (m) => m.created_at, true);
689
864
 
690
865
  // src/hooks/messageGroups/useMessageGroups/lib/messageGroups/newGroup/newGroupItem.ts
691
866
  var newGroupItem = ({ message }) => ({
@@ -706,10 +881,10 @@ var newGroup = ({ groups, message }) => [
706
881
  // src/hooks/messageGroups/useMessageGroups/lib/messageGroups/index.ts
707
882
  var messageGroups = ({
708
883
  messages: messages2
709
- }) => import_lodash4.default.reduce(
884
+ }) => import_lodash5.default.reduce(
710
885
  order({ messages: messages2 }),
711
886
  (groups, message) => {
712
- const group = (0, import_radash2.last)(groups);
887
+ const group = (0, import_radash4.last)(groups);
713
888
  if (!group)
714
889
  return newGroup({ groups, message });
715
890
  if (group.role !== message.role) {
@@ -719,7 +894,7 @@ var messageGroups = ({
719
894
  });
720
895
  }
721
896
  return [
722
- ...import_lodash4.default.dropRight(groups),
897
+ ...import_lodash5.default.dropRight(groups),
723
898
  {
724
899
  ...group,
725
900
  messages: [...group.messages, message]
@@ -732,7 +907,7 @@ var messageGroups = ({
732
907
  // src/hooks/messageGroups/useMessageGroups/index.ts
733
908
  var useMessageGroups = ({
734
909
  messages: messages2
735
- }) => (0, import_react12.useMemo)(
910
+ }) => (0, import_react14.useMemo)(
736
911
  () => ({
737
912
  messageGroups: messageGroups({ messages: messages2 })
738
913
  }),
@@ -740,20 +915,20 @@ var useMessageGroups = ({
740
915
  );
741
916
 
742
917
  // src/components/messages/Messages/Content/MessageGroup/index.tsx
743
- var import_react21 = require("react");
744
- var import_themes25 = require("@radix-ui/themes");
918
+ var import_react24 = require("react");
919
+ var import_themes24 = require("@radix-ui/themes");
745
920
  var import_react_icons4 = require("@radix-ui/react-icons");
746
921
 
747
922
  // src/components/messageGroups/MessagesGroupBase/AssistantAvatar.tsx
748
- var import_react14 = require("react");
923
+ var import_react16 = require("react");
749
924
  var import_themes6 = require("@radix-ui/themes");
750
925
 
751
- // src/contexts/avatars/AssistantAvatarContext/index.tsx
752
- var import_react13 = require("react");
926
+ // src/contexts/assistants/AssistantAvatarContext/index.tsx
927
+ var import_react15 = require("react");
753
928
  var import_themes5 = require("@radix-ui/themes");
754
929
  var import_react_icons = require("@radix-ui/react-icons");
755
930
  var import_jsx_runtime5 = require("react/jsx-runtime");
756
- var AssistantAvatarContext = (0, import_react13.createContext)(
931
+ var AssistantAvatarContext = (0, import_react15.createContext)(
757
932
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
758
933
  import_themes5.Avatar,
759
934
  {
@@ -766,7 +941,7 @@ var AssistantAvatarContext = (0, import_react13.createContext)(
766
941
  // src/components/messageGroups/MessagesGroupBase/AssistantAvatar.tsx
767
942
  var import_jsx_runtime6 = require("react/jsx-runtime");
768
943
  var AssistantAvatar = () => {
769
- const AssistantAvatarContextValue = (0, import_react14.useContext)(AssistantAvatarContext);
944
+ const AssistantAvatarContextValue = (0, import_react16.useContext)(AssistantAvatarContext);
770
945
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
771
946
  import_themes6.Flex,
772
947
  {
@@ -778,55 +953,59 @@ var AssistantAvatar = () => {
778
953
  };
779
954
 
780
955
  // src/contexts/assistants/AssistantNameContext/index.tsx
781
- var import_react15 = require("react");
782
- var AssistantNameContext = (0, import_react15.createContext)("Assistant");
956
+ var import_react17 = require("react");
957
+ var AssistantNameContext = (0, import_react17.createContext)("Assistant");
783
958
 
784
959
  // src/components/messages/Messages/Content/MessageGroup/Content/index.tsx
785
- var import_themes24 = require("@radix-ui/themes");
960
+ var import_themes23 = require("@radix-ui/themes");
786
961
 
787
962
  // src/components/messages/Message/index.tsx
788
- var import_react20 = require("react");
789
- var import_themes23 = require("@radix-ui/themes");
963
+ var import_react23 = require("react");
964
+ var import_themes22 = require("@radix-ui/themes");
790
965
 
791
966
  // src/components/runSteps/RunSteps/index.tsx
792
- var import_themes16 = require("@radix-ui/themes");
967
+ var import_themes15 = require("@radix-ui/themes");
793
968
 
794
969
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
795
- var import_themes15 = require("@radix-ui/themes");
970
+ var import_themes14 = require("@radix-ui/themes");
796
971
 
797
972
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
798
- var import_themes13 = require("@radix-ui/themes");
973
+ var import_themes12 = require("@radix-ui/themes");
974
+
975
+ // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
976
+ var import_react20 = require("react");
977
+
978
+ // src/contexts/functions/FunctionComponentsContext/index.tsx
979
+ var import_react18 = require("react");
980
+ var FunctionComponentsContext = (0, import_react18.createContext)({});
799
981
 
800
- // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Availabilities/index.tsx
982
+ // src/components/functions/FunctionBase/index.tsx
801
983
  var import_themes10 = require("@radix-ui/themes");
802
984
 
803
985
  // src/components/toolCalls/ToolCallBase/index.tsx
804
- var import_react16 = require("react");
805
986
  var import_themes7 = require("@radix-ui/themes");
806
987
  var import_jsx_runtime7 = require("react/jsx-runtime");
807
- var ToolCallBase = (0, import_react16.forwardRef)(function ToolCallBase2({
988
+ var ToolCallBase = ({
808
989
  children
809
- }, ref) {
810
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
811
- import_themes7.Flex,
812
- {
813
- py: "1",
814
- ml: "-2",
815
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_themes7.PopoverTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
816
- import_themes7.Button,
817
- {
818
- size: "1",
819
- color: "gold",
820
- variant: "outline",
821
- style: {
822
- boxShadow: "none"
823
- },
824
- children
825
- }
826
- ) })
827
- }
828
- );
829
- });
990
+ }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
991
+ import_themes7.Flex,
992
+ {
993
+ py: "1",
994
+ ml: "-2",
995
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_themes7.PopoverTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
996
+ import_themes7.Button,
997
+ {
998
+ size: "1",
999
+ color: "gold",
1000
+ variant: "outline",
1001
+ style: {
1002
+ boxShadow: "none"
1003
+ },
1004
+ children
1005
+ }
1006
+ ) })
1007
+ }
1008
+ );
830
1009
 
831
1010
  // src/components/toolCalls/ToolCallBase/ToolCallTitle.tsx
832
1011
  var import_themes8 = require("@radix-ui/themes");
@@ -841,7 +1020,7 @@ var ToolCallTitle = ({
841
1020
  }
842
1021
  );
843
1022
 
844
- // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Icon.tsx
1023
+ // src/components/functions/FunctionBase/Icon.tsx
845
1024
  var import_react_icons2 = require("@radix-ui/react-icons");
846
1025
  var import_jsx_runtime9 = require("react/jsx-runtime");
847
1026
  var Icon = ({
@@ -856,14 +1035,14 @@ var Icon = ({
856
1035
  }
857
1036
  };
858
1037
 
859
- // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Content/index.tsx
860
- var import_react17 = require("react");
1038
+ // src/components/functions/FunctionBase/Content.tsx
1039
+ var import_react19 = require("react");
861
1040
  var import_themes9 = require("@radix-ui/themes");
862
1041
  var import_jsx_runtime10 = require("react/jsx-runtime");
863
1042
  var Content = ({
864
1043
  fn
865
1044
  }) => {
866
- const args = (0, import_react17.useMemo)(() => {
1045
+ const args = (0, import_react19.useMemo)(() => {
867
1046
  let result = null;
868
1047
  try {
869
1048
  result = JSON.parse(fn.arguments);
@@ -872,7 +1051,7 @@ var Content = ({
872
1051
  }
873
1052
  return result;
874
1053
  }, [fn]);
875
- const output = (0, import_react17.useMemo)(() => {
1054
+ const output = (0, import_react19.useMemo)(() => {
876
1055
  if (!fn.output) {
877
1056
  return null;
878
1057
  }
@@ -901,116 +1080,89 @@ var Content = ({
901
1080
  );
902
1081
  };
903
1082
 
904
- // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Availabilities/Title.tsx
1083
+ // src/components/functions/FunctionBase/index.tsx
905
1084
  var import_jsx_runtime11 = require("react/jsx-runtime");
906
- var Title = ({
907
- runStep
908
- }) => {
909
- if (runStep.completed_at) {
910
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, { children: "Finished getting domains availability" });
911
- } else if (runStep.cancelled_at) {
912
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, { children: "Cancelled getting domains availability" });
913
- } else {
914
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, { children: "Getting domains availability" });
915
- }
916
- };
917
-
918
- // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Availabilities/index.tsx
919
- var import_jsx_runtime12 = require("react/jsx-runtime");
920
- var Availabilities = ({
1085
+ var FunctionBase = ({
921
1086
  fn,
922
- runStep
923
- }) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_themes10.PopoverRoot, { children: [
924
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(ToolCallBase, { children: [
925
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { runStep }),
926
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ToolCallTitle, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Title, { runStep }) })
1087
+ runStep,
1088
+ title: title2
1089
+ }) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_themes10.PopoverRoot, { children: [
1090
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(ToolCallBase, { children: [
1091
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, { runStep }),
1092
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ToolCallTitle, { children: title2 })
927
1093
  ] }),
928
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1094
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
929
1095
  import_themes10.PopoverContent,
930
1096
  {
931
1097
  className: "max-h-[500px]",
932
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Content, { fn })
1098
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Content, { fn })
933
1099
  }
934
1100
  )
935
1101
  ] });
936
1102
 
937
- // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Scores/index.tsx
938
- var import_themes11 = require("@radix-ui/themes");
939
-
940
- // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Scores/Title.tsx
941
- var import_jsx_runtime13 = require("react/jsx-runtime");
942
- var Title2 = ({
1103
+ // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/DefaultFunction/lib/title.ts
1104
+ var title = ({
1105
+ fn,
943
1106
  runStep
944
1107
  }) => {
945
1108
  if (runStep.completed_at) {
946
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: "Finished getting domains scores" });
1109
+ return `Finished ${fn.name}`;
947
1110
  } else if (runStep.cancelled_at) {
948
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: "Cancelled getting domains scores" });
1111
+ return `Cancelled ${fn.name}`;
949
1112
  } else {
950
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: "Getting domains scores" });
1113
+ return `Calling ${fn.name}`;
951
1114
  }
952
1115
  };
953
1116
 
954
- // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Scores/index.tsx
955
- var import_jsx_runtime14 = require("react/jsx-runtime");
956
- var Scores = ({
1117
+ // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/DefaultFunction/index.tsx
1118
+ var import_jsx_runtime12 = require("react/jsx-runtime");
1119
+ var DefaultFunction = ({
957
1120
  fn,
958
1121
  runStep
959
- }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_themes11.PopoverRoot, { children: [
960
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(ToolCallBase, { children: [
961
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Icon, { runStep }),
962
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ToolCallTitle, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Title2, { runStep }) })
963
- ] }),
964
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
965
- import_themes11.PopoverContent,
966
- {
967
- className: "max-h-[500px]",
968
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Content, { fn })
969
- }
970
- )
971
- ] });
1122
+ }) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1123
+ FunctionBase,
1124
+ {
1125
+ fn,
1126
+ runStep,
1127
+ title: title({ runStep, fn })
1128
+ }
1129
+ );
972
1130
 
973
1131
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx
974
- var import_jsx_runtime15 = require("react/jsx-runtime");
1132
+ var import_jsx_runtime13 = (
1133
+ // @ts-ignore-next-line
1134
+ require("react/jsx-runtime")
1135
+ );
975
1136
  var Fn = ({
976
1137
  fn,
977
1138
  runStep
978
1139
  }) => {
979
- if (fn.name === "getAvailabilities") {
980
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
981
- Availabilities,
982
- {
983
- fn,
984
- runStep
985
- }
986
- );
987
- } else if (fn.name === "getScores") {
988
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
989
- Scores,
990
- {
991
- fn,
992
- runStep
993
- }
994
- );
995
- }
996
- return null;
1140
+ const functionComponentsContext = (0, import_react20.useContext)(FunctionComponentsContext);
1141
+ const Component = functionComponentsContext[fn.name] || DefaultFunction;
1142
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1143
+ Component,
1144
+ {
1145
+ fn,
1146
+ runStep
1147
+ }
1148
+ );
997
1149
  };
998
1150
 
999
1151
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/CodeInterpreter/index.tsx
1000
- var import_themes12 = require("@radix-ui/themes");
1001
- var import_jsx_runtime16 = require("react/jsx-runtime");
1152
+ var import_themes11 = require("@radix-ui/themes");
1153
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1002
1154
  var CodeInterpreter = ({
1003
1155
  codeInterpreter
1004
- }) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_themes12.Flex, { children: codeInterpreter.input });
1156
+ }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_themes11.Flex, { children: codeInterpreter.input });
1005
1157
 
1006
1158
  // src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx
1007
- var import_jsx_runtime17 = require("react/jsx-runtime");
1159
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1008
1160
  var ToolCall = ({
1009
1161
  toolCall,
1010
1162
  runStep
1011
1163
  }) => {
1012
1164
  if (toolCall.type === "function") {
1013
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1165
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1014
1166
  Fn,
1015
1167
  {
1016
1168
  fn: toolCall.function,
@@ -1019,7 +1171,7 @@ var ToolCall = ({
1019
1171
  );
1020
1172
  }
1021
1173
  if (toolCall.type === "code_interpreter") {
1022
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1174
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1023
1175
  CodeInterpreter,
1024
1176
  {
1025
1177
  codeInterpreter: toolCall.code_interpreter,
@@ -1027,39 +1179,39 @@ var ToolCall = ({
1027
1179
  }
1028
1180
  );
1029
1181
  }
1030
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_themes13.Flex, { children: toolCall.type });
1182
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_themes12.Flex, { children: toolCall.type });
1031
1183
  };
1032
1184
 
1033
1185
  // src/components/runSteps/RunStep/ToolCalls/Starting/index.tsx
1034
- var import_themes14 = require("@radix-ui/themes");
1186
+ var import_themes13 = require("@radix-ui/themes");
1035
1187
  var import_react_icons3 = require("@radix-ui/react-icons");
1036
- var import_jsx_runtime18 = require("react/jsx-runtime");
1037
- var Starting = () => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_themes14.PopoverRoot, { children: [
1038
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ToolCallBase, { children: [
1039
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_icons3.CircleIcon, {}),
1040
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ToolCallTitle, { children: "Starting actions" })
1188
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1189
+ var Starting = () => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_themes13.PopoverRoot, { children: [
1190
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(ToolCallBase, { children: [
1191
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_icons3.CircleIcon, {}),
1192
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ToolCallTitle, { children: "Starting actions" })
1041
1193
  ] }),
1042
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1043
- import_themes14.PopoverContent,
1194
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1195
+ import_themes13.PopoverContent,
1044
1196
  {
1045
1197
  className: "max-h-[500px]",
1046
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_themes14.Text, { children: "Getting ready to connect to domain API" })
1198
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_themes13.Text, { children: "Getting ready to connect to domain API" })
1047
1199
  }
1048
1200
  )
1049
1201
  ] });
1050
1202
 
1051
1203
  // src/components/runSteps/RunStep/ToolCalls/index.tsx
1052
- var import_jsx_runtime19 = require("react/jsx-runtime");
1204
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1053
1205
  var ToolCalls = ({
1054
1206
  stepDetails,
1055
1207
  runStep
1056
- }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1057
- import_themes15.Flex,
1208
+ }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1209
+ import_themes14.Flex,
1058
1210
  {
1059
1211
  direction: "column",
1060
1212
  children: [
1061
- !stepDetails.tool_calls.length && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Starting, {}),
1062
- stepDetails.tool_calls.map((toolCall) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1213
+ !stepDetails.tool_calls.length && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Starting, {}),
1214
+ stepDetails.tool_calls.map((toolCall) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1063
1215
  ToolCall,
1064
1216
  {
1065
1217
  toolCall,
@@ -1072,12 +1224,12 @@ var ToolCalls = ({
1072
1224
  );
1073
1225
 
1074
1226
  // src/components/runSteps/RunStep/index.tsx
1075
- var import_jsx_runtime20 = require("react/jsx-runtime");
1227
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1076
1228
  var RunStep = ({
1077
1229
  runStep
1078
1230
  }) => {
1079
1231
  if (runStep.step_details.type === "tool_calls") {
1080
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1232
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1081
1233
  ToolCalls,
1082
1234
  {
1083
1235
  stepDetails: runStep.step_details,
@@ -1089,14 +1241,14 @@ var RunStep = ({
1089
1241
  };
1090
1242
 
1091
1243
  // src/components/runSteps/RunSteps/index.tsx
1092
- var import_jsx_runtime21 = require("react/jsx-runtime");
1244
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1093
1245
  var RunSteps = ({
1094
1246
  runSteps
1095
- }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1096
- import_themes16.Flex,
1247
+ }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1248
+ import_themes15.Flex,
1097
1249
  {
1098
1250
  direction: "column-reverse",
1099
- children: runSteps.map((runStep) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1251
+ children: runSteps.map((runStep) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1100
1252
  RunStep,
1101
1253
  {
1102
1254
  runStep
@@ -1107,21 +1259,21 @@ var RunSteps = ({
1107
1259
  );
1108
1260
 
1109
1261
  // src/components/messages/Message/TextContent/index.tsx
1110
- var import_react19 = require("react");
1262
+ var import_react22 = require("react");
1111
1263
  var import_react_markdown = __toESM(require("react-markdown"));
1112
1264
 
1113
1265
  // src/contexts/markdown/MarkdownContext/index.ts
1114
- var import_react18 = require("react");
1266
+ var import_react21 = require("react");
1115
1267
 
1116
1268
  // src/contexts/markdown/MarkdownContext/lib/components/Paragraph.tsx
1117
- var import_themes17 = require("@radix-ui/themes");
1118
- var import_jsx_runtime22 = require("react/jsx-runtime");
1119
- var Paragraph = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1120
- import_themes17.Box,
1269
+ var import_themes16 = require("@radix-ui/themes");
1270
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1271
+ var Paragraph = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1272
+ import_themes16.Box,
1121
1273
  {
1122
1274
  pb: "3",
1123
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1124
- import_themes17.Text,
1275
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1276
+ import_themes16.Text,
1125
1277
  {
1126
1278
  size: "3",
1127
1279
  className: "whitespace-pre-line break-words",
@@ -1132,10 +1284,10 @@ var Paragraph = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1132
1284
  );
1133
1285
 
1134
1286
  // src/contexts/markdown/MarkdownContext/lib/components/Link.tsx
1135
- var import_themes18 = require("@radix-ui/themes");
1136
- var import_jsx_runtime23 = require("react/jsx-runtime");
1137
- var Link = ({ children, href }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1138
- import_themes18.Link,
1287
+ var import_themes17 = require("@radix-ui/themes");
1288
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1289
+ var Link = ({ children, href }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1290
+ import_themes17.Link,
1139
1291
  {
1140
1292
  href,
1141
1293
  children
@@ -1143,14 +1295,14 @@ var Link = ({ children, href }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)
1143
1295
  );
1144
1296
 
1145
1297
  // src/contexts/markdown/MarkdownContext/lib/components/UnorderedList.tsx
1146
- var import_themes19 = require("@radix-ui/themes");
1147
- var import_jsx_runtime24 = require("react/jsx-runtime");
1148
- var UnorderedList = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1149
- import_themes19.Box,
1298
+ var import_themes18 = require("@radix-ui/themes");
1299
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1300
+ var UnorderedList = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1301
+ import_themes18.Box,
1150
1302
  {
1151
1303
  pb: "3",
1152
1304
  asChild: true,
1153
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1305
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1154
1306
  "ul",
1155
1307
  {
1156
1308
  className: "list-inside",
@@ -1161,14 +1313,14 @@ var UnorderedList = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime24.j
1161
1313
  );
1162
1314
 
1163
1315
  // src/contexts/markdown/MarkdownContext/lib/components/OrderedList.tsx
1164
- var import_themes20 = require("@radix-ui/themes");
1165
- var import_jsx_runtime25 = require("react/jsx-runtime");
1166
- var OrderedList = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1167
- import_themes20.Box,
1316
+ var import_themes19 = require("@radix-ui/themes");
1317
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1318
+ var OrderedList = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1319
+ import_themes19.Box,
1168
1320
  {
1169
1321
  pb: "3",
1170
1322
  asChild: true,
1171
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1323
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1172
1324
  "ol",
1173
1325
  {
1174
1326
  className: "list-inside",
@@ -1179,20 +1331,20 @@ var OrderedList = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx
1179
1331
  );
1180
1332
 
1181
1333
  // src/contexts/markdown/MarkdownContext/lib/components/ListItem.tsx
1182
- var import_themes21 = require("@radix-ui/themes");
1183
- var import_jsx_runtime26 = require("react/jsx-runtime");
1184
- var ListItem = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1185
- import_themes21.Box,
1334
+ var import_themes20 = require("@radix-ui/themes");
1335
+ var import_jsx_runtime24 = require("react/jsx-runtime");
1336
+ var ListItem = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1337
+ import_themes20.Box,
1186
1338
  {
1187
1339
  pb: "1",
1188
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("li", { children })
1340
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", { children })
1189
1341
  }
1190
1342
  );
1191
1343
 
1192
1344
  // src/contexts/markdown/MarkdownContext/lib/components/Strong.tsx
1193
- var import_themes22 = require("@radix-ui/themes");
1194
- var import_jsx_runtime27 = require("react/jsx-runtime");
1195
- var Strong = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_themes22.Strong, { children });
1345
+ var import_themes21 = require("@radix-ui/themes");
1346
+ var import_jsx_runtime25 = require("react/jsx-runtime");
1347
+ var Strong = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_themes21.Strong, { children });
1196
1348
 
1197
1349
  // src/contexts/markdown/MarkdownContext/lib/components/index.tsx
1198
1350
  var components = {
@@ -1205,18 +1357,18 @@ var components = {
1205
1357
  };
1206
1358
 
1207
1359
  // src/contexts/markdown/MarkdownContext/index.ts
1208
- var MarkdownContext = (0, import_react18.createContext)({
1360
+ var MarkdownContext = (0, import_react21.createContext)({
1209
1361
  remarkPlugins: [],
1210
1362
  components
1211
1363
  });
1212
1364
 
1213
1365
  // src/components/messages/Message/TextContent/index.tsx
1214
- var import_jsx_runtime28 = require("react/jsx-runtime");
1366
+ var import_jsx_runtime26 = require("react/jsx-runtime");
1215
1367
  var TextContent = ({
1216
1368
  content
1217
1369
  }) => {
1218
- const markdownContext = (0, import_react19.useContext)(MarkdownContext);
1219
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1370
+ const markdownContext = (0, import_react22.useContext)(MarkdownContext);
1371
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1220
1372
  import_react_markdown.default,
1221
1373
  {
1222
1374
  ...markdownContext,
@@ -1226,11 +1378,11 @@ var TextContent = ({
1226
1378
  };
1227
1379
 
1228
1380
  // src/components/messages/Message/index.tsx
1229
- var import_jsx_runtime29 = require("react/jsx-runtime");
1381
+ var import_jsx_runtime27 = require("react/jsx-runtime");
1230
1382
  var Message = ({
1231
1383
  message
1232
1384
  }) => {
1233
- const [olderRunSteps, laterRunSteps] = (0, import_react20.useMemo)(() => {
1385
+ const [olderRunSteps, laterRunSteps] = (0, import_react23.useMemo)(() => {
1234
1386
  if (!message.runSteps.length)
1235
1387
  return [[], []];
1236
1388
  const messageCreationRunStepIndex = message.runSteps.findIndex((runStep) => {
@@ -1252,21 +1404,21 @@ var Message = ({
1252
1404
  }
1253
1405
  return [olderRunSteps2, laterRunSteps2];
1254
1406
  }, [message]);
1255
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_themes23.Box, { children: [
1256
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1407
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_themes22.Box, { children: [
1408
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1257
1409
  RunSteps,
1258
1410
  {
1259
1411
  runSteps: olderRunSteps
1260
1412
  }
1261
1413
  ),
1262
- message.content.map((content, index) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1263
- import_themes23.Box,
1414
+ message.content.map((content, index) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1415
+ import_themes22.Box,
1264
1416
  {
1265
- children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(TextContent, { content })
1417
+ children: content.type === "text" && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(TextContent, { content })
1266
1418
  },
1267
1419
  index
1268
1420
  )),
1269
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1421
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1270
1422
  RunSteps,
1271
1423
  {
1272
1424
  runSteps: laterRunSteps
@@ -1276,14 +1428,14 @@ var Message = ({
1276
1428
  };
1277
1429
 
1278
1430
  // src/components/messages/Messages/Content/MessageGroup/Content/index.tsx
1279
- var import_jsx_runtime30 = require("react/jsx-runtime");
1431
+ var import_jsx_runtime28 = require("react/jsx-runtime");
1280
1432
  var Content2 = ({
1281
1433
  messageGroup
1282
- }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1283
- import_themes24.Flex,
1434
+ }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1435
+ import_themes23.Flex,
1284
1436
  {
1285
1437
  direction: "column-reverse",
1286
- children: messageGroup.messages.map((message) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1438
+ children: messageGroup.messages.map((message) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1287
1439
  Message,
1288
1440
  {
1289
1441
  message
@@ -1294,22 +1446,22 @@ var Content2 = ({
1294
1446
  );
1295
1447
 
1296
1448
  // src/components/messages/Messages/Content/MessageGroup/index.tsx
1297
- var import_jsx_runtime31 = require("react/jsx-runtime");
1449
+ var import_jsx_runtime29 = require("react/jsx-runtime");
1298
1450
  var MessageGroup = ({
1299
1451
  messageGroup
1300
1452
  }) => {
1301
- const assistantNameContext = (0, import_react21.useContext)(AssistantNameContext);
1302
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(MessagesGroupBase, { children: [
1303
- messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1304
- import_themes25.Avatar,
1453
+ const assistantNameContext = (0, import_react24.useContext)(AssistantNameContext);
1454
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(MessagesGroupBase, { children: [
1455
+ messageGroup.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1456
+ import_themes24.Avatar,
1305
1457
  {
1306
- fallback: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_icons4.PersonIcon, {}),
1458
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_icons4.PersonIcon, {}),
1307
1459
  size: "1"
1308
1460
  }
1309
- ) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(AssistantAvatar, {}),
1310
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_themes25.Box, { children: [
1311
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Name, { children: messageGroup.role === "user" ? "You" : assistantNameContext }),
1312
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1461
+ ) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AssistantAvatar, {}),
1462
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_themes24.Box, { children: [
1463
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Name, { children: messageGroup.role === "user" ? "You" : assistantNameContext }),
1464
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1313
1465
  Content2,
1314
1466
  {
1315
1467
  messageGroup
@@ -1320,14 +1472,14 @@ var MessageGroup = ({
1320
1472
  };
1321
1473
 
1322
1474
  // src/components/messages/Messages/Content/index.tsx
1323
- var import_jsx_runtime32 = require("react/jsx-runtime");
1475
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1324
1476
  var Content3 = ({
1325
1477
  messages: messages2
1326
1478
  }) => {
1327
1479
  const { messageGroups: messageGroups2 } = useMessageGroups({
1328
1480
  messages: messages2
1329
1481
  });
1330
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_jsx_runtime32.Fragment, { children: messageGroups2.map((messageGroup) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1482
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, { children: messageGroups2.map((messageGroup) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1331
1483
  MessageGroup,
1332
1484
  {
1333
1485
  messageGroup
@@ -1337,13 +1489,13 @@ var Content3 = ({
1337
1489
  };
1338
1490
 
1339
1491
  // src/components/messages/Messages/ProgressMessage/index.tsx
1340
- var import_themes28 = require("@radix-ui/themes");
1492
+ var import_themes27 = require("@radix-ui/themes");
1341
1493
 
1342
1494
  // src/components/skeletons/StartingContentSkeleton/index.tsx
1343
- var import_themes26 = require("@radix-ui/themes");
1344
- var import_jsx_runtime33 = require("react/jsx-runtime");
1345
- var StartingContentSkeleton = () => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1346
- import_themes26.Box,
1495
+ var import_themes25 = require("@radix-ui/themes");
1496
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1497
+ var StartingContentSkeleton = () => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1498
+ import_themes25.Box,
1347
1499
  {
1348
1500
  height: "4",
1349
1501
  width: "4",
@@ -1354,25 +1506,25 @@ var StartingContentSkeleton = () => /* @__PURE__ */ (0, import_jsx_runtime33.jsx
1354
1506
  );
1355
1507
 
1356
1508
  // src/components/skeletons/StartingSkeleton/index.tsx
1357
- var import_react22 = require("react");
1358
- var import_themes27 = require("@radix-ui/themes");
1359
- var import_jsx_runtime34 = require("react/jsx-runtime");
1509
+ var import_react25 = require("react");
1510
+ var import_themes26 = require("@radix-ui/themes");
1511
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1360
1512
  var StartingSkeleton = ({
1361
1513
  children
1362
1514
  }) => {
1363
- const assistantNameContext = (0, import_react22.useContext)(AssistantNameContext);
1364
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(MessagesGroupBase, { children: [
1365
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(AssistantAvatar, {}),
1366
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_themes27.Box, { children: [
1367
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Name, { children: assistantNameContext }),
1515
+ const assistantNameContext = (0, import_react25.useContext)(AssistantNameContext);
1516
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(MessagesGroupBase, { children: [
1517
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(AssistantAvatar, {}),
1518
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_themes26.Box, { children: [
1519
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Name, { children: assistantNameContext }),
1368
1520
  children,
1369
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(StartingContentSkeleton, {})
1521
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(StartingContentSkeleton, {})
1370
1522
  ] })
1371
1523
  ] });
1372
1524
  };
1373
1525
 
1374
1526
  // src/components/messages/Messages/ProgressMessage/index.tsx
1375
- var import_jsx_runtime35 = require("react/jsx-runtime");
1527
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1376
1528
  var ProgressMessage = ({
1377
1529
  latestMessage,
1378
1530
  isRunActive: isRunActive2
@@ -1382,51 +1534,36 @@ var ProgressMessage = ({
1382
1534
  if (!isRunActive2)
1383
1535
  return null;
1384
1536
  if (latestMessage.role === "user") {
1385
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(StartingSkeleton, {});
1537
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingSkeleton, {});
1386
1538
  }
1387
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(MessagesGroupBase, { children: [
1388
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_themes28.Box, { pl: "5" }),
1389
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(StartingContentSkeleton, {})
1539
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(MessagesGroupBase, { children: [
1540
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_themes27.Box, { pl: "5" }),
1541
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StartingContentSkeleton, {})
1390
1542
  ] });
1391
1543
  };
1392
1544
 
1393
1545
  // src/components/messages/Messages/index.tsx
1394
- var import_jsx_runtime36 = require("react/jsx-runtime");
1546
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1395
1547
  var Messages = ({
1396
- messagesQueryOptions,
1397
- runsQueryOptions,
1398
- createRunMutationOptions,
1399
- handleActionMutationOptions,
1400
- children
1548
+ children,
1549
+ ...args
1401
1550
  }) => {
1402
1551
  const {
1403
1552
  messages: messages2,
1404
1553
  isFetchingNextPage,
1405
1554
  hasNextPage,
1406
1555
  fetchNextPage
1407
- } = useMessages({
1408
- messagesQueryOptions
1409
- });
1410
- useThreadLifecycles({
1411
- messagesQueryOptions,
1412
- runsQueryOptions,
1413
- createRunMutationOptions,
1414
- handleActionMutationOptions
1415
- });
1556
+ } = useMessages(args);
1557
+ useThreadLifecycles(args);
1416
1558
  const { containerRef, loaderRef } = useInfiniteScroll({
1417
1559
  isFetchingNextPage,
1418
1560
  hasNextPage,
1419
1561
  fetchNextPage
1420
1562
  });
1421
- const { isRunActive: isRunActive2 } = useIsRunActive({
1422
- messagesQueryOptions,
1423
- runsQueryOptions
1424
- });
1425
- const { latestMessage } = useLatestMessage({
1426
- messagesQueryOptions
1427
- });
1428
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
1429
- import_themes29.Flex,
1563
+ const { isRunActive: isRunActive2 } = useIsRunActive(args);
1564
+ const { latestMessage } = useLatestMessage(args);
1565
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
1566
+ import_themes28.Flex,
1430
1567
  {
1431
1568
  ref: containerRef,
1432
1569
  direction: "column-reverse",
@@ -1434,14 +1571,14 @@ var Messages = ({
1434
1571
  grow: "1",
1435
1572
  p: "2",
1436
1573
  children: [
1437
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1438
- import_themes29.Flex,
1574
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1575
+ import_themes28.Flex,
1439
1576
  {
1440
1577
  shrink: "0",
1441
1578
  height: "1"
1442
1579
  }
1443
1580
  ),
1444
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1581
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1445
1582
  ProgressMessage,
1446
1583
  {
1447
1584
  latestMessage,
@@ -1449,20 +1586,20 @@ var Messages = ({
1449
1586
  }
1450
1587
  ),
1451
1588
  children,
1452
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1589
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1453
1590
  Content3,
1454
1591
  {
1455
1592
  messages: messages2
1456
1593
  }
1457
1594
  ),
1458
- hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1595
+ hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1459
1596
  MessagesSkeleton,
1460
1597
  {
1461
1598
  ref: loaderRef
1462
1599
  }
1463
1600
  ),
1464
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1465
- import_themes29.Flex,
1601
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1602
+ import_themes28.Flex,
1466
1603
  {
1467
1604
  shrink: "0",
1468
1605
  grow: "1"
@@ -1473,20 +1610,150 @@ var Messages = ({
1473
1610
  );
1474
1611
  };
1475
1612
 
1613
+ // src/components/suggestions/Suggestions/index.tsx
1614
+ var import_react26 = require("react");
1615
+ var import_themes30 = require("@radix-ui/themes");
1616
+
1617
+ // src/components/suggestions/Suggestions/Suggestion/index.tsx
1618
+ var import_react_icons5 = require("@radix-ui/react-icons");
1619
+ var import_themes29 = require("@radix-ui/themes");
1620
+
1621
+ // src/hooks/messages/useCreateMessage/index.ts
1622
+ var import_react_query7 = require("@tanstack/react-query");
1623
+ var useCreateMessage = (args = () => {
1624
+ }) => {
1625
+ const superinterfaceContext = useSuperinterfaceContext();
1626
+ const { meta } = useMeta();
1627
+ const props = (0, import_react_query7.useMutation)(extendOptions({
1628
+ defaultOptions: superinterfaceContext.mutationOptions.createMessage,
1629
+ args,
1630
+ meta
1631
+ }));
1632
+ return {
1633
+ ...props,
1634
+ createMessage: props.mutateAsync
1635
+ };
1636
+ };
1637
+
1638
+ // src/components/suggestions/Suggestions/Suggestion/index.tsx
1639
+ var import_jsx_runtime35 = require("react/jsx-runtime");
1640
+ var Suggestion = ({
1641
+ suggestion,
1642
+ ...args
1643
+ }) => {
1644
+ const {
1645
+ createMessage
1646
+ // @ts-ignore-next-line
1647
+ } = useCreateMessage(args);
1648
+ const { isRunActive: isRunActive2 } = useIsRunActive(args);
1649
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
1650
+ import_themes29.Button,
1651
+ {
1652
+ variant: "soft",
1653
+ style: {
1654
+ justifyContent: "space-between"
1655
+ },
1656
+ onClick: () => {
1657
+ createMessage({
1658
+ content: suggestion,
1659
+ ...args
1660
+ });
1661
+ },
1662
+ disabled: isRunActive2,
1663
+ children: [
1664
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1665
+ import_themes29.Text,
1666
+ {
1667
+ size: "1",
1668
+ weight: "regular",
1669
+ children: suggestion
1670
+ }
1671
+ ),
1672
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_icons5.ArrowUpIcon, {})
1673
+ ]
1674
+ }
1675
+ );
1676
+ };
1677
+
1678
+ // src/components/suggestions/Suggestions/index.tsx
1679
+ var import_jsx_runtime36 = require("react/jsx-runtime");
1680
+ var Suggestions = ({
1681
+ emptyStateSuggestions = [],
1682
+ suggestions = [],
1683
+ ...args
1684
+ }) => {
1685
+ const latestMessageProps = useLatestMessage(args);
1686
+ const isRunActiveProps = useIsRunActive(args);
1687
+ const isDisabled = (0, import_react26.useMemo)(() => {
1688
+ var _a, _b;
1689
+ return (
1690
+ // @ts-ignore-next-line
1691
+ ((_b = (_a = latestMessageProps.latestMessage) == null ? void 0 : _a.metadata) == null ? void 0 : _b.isBlocking) || isRunActiveProps.isRunActive
1692
+ );
1693
+ }, [latestMessageProps, isRunActiveProps]);
1694
+ if (latestMessageProps.isLoading)
1695
+ return null;
1696
+ if (isDisabled)
1697
+ return null;
1698
+ if (!latestMessageProps.latestMessage && emptyStateSuggestions.length > 0) {
1699
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1700
+ import_themes30.Grid,
1701
+ {
1702
+ columns: {
1703
+ initial: "1",
1704
+ md: "2"
1705
+ },
1706
+ gap: "2",
1707
+ py: "2",
1708
+ children: emptyStateSuggestions.map((suggestion) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1709
+ Suggestion,
1710
+ {
1711
+ suggestion,
1712
+ ...args
1713
+ },
1714
+ suggestion
1715
+ ))
1716
+ }
1717
+ );
1718
+ }
1719
+ if (latestMessageProps.latestMessage.role === "assistant") {
1720
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1721
+ import_themes30.Grid,
1722
+ {
1723
+ columns: {
1724
+ initial: "3",
1725
+ md: "4"
1726
+ },
1727
+ gap: "2",
1728
+ py: "2",
1729
+ children: suggestions.map((suggestion) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1730
+ Suggestion,
1731
+ {
1732
+ suggestion,
1733
+ ...args
1734
+ },
1735
+ suggestion
1736
+ ))
1737
+ }
1738
+ );
1739
+ }
1740
+ return null;
1741
+ };
1742
+
1476
1743
  // src/components/messages/Form/index.tsx
1477
- var import_themes31 = require("@radix-ui/themes");
1478
- var import_react24 = require("react");
1744
+ var import_themes32 = require("@radix-ui/themes");
1745
+ var import_react28 = require("react");
1479
1746
  var import_react_hook_form = require("react-hook-form");
1480
1747
  var import_zod = require("zod");
1481
1748
  var import_zod2 = require("@hookform/resolvers/zod");
1482
1749
  var import_react_use2 = require("react-use");
1483
1750
 
1484
1751
  // src/components/textareas/TextareaBase/index.tsx
1485
- var import_react23 = require("react");
1752
+ var import_react27 = require("react");
1486
1753
  var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"));
1487
1754
  var import_jsx_runtime37 = require("react/jsx-runtime");
1488
1755
  var UPSCALE_RATIO = 16 / 14;
1489
- var TextareaBase = (0, import_react23.forwardRef)(function TextareaBase2(props, ref) {
1756
+ var TextareaBase = (0, import_react27.forwardRef)(function TextareaBase2(props, ref) {
1490
1757
  return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1491
1758
  import_react_textarea_autosize.default,
1492
1759
  {
@@ -1508,142 +1775,9 @@ var TextareaBase = (0, import_react23.forwardRef)(function TextareaBase2(props,
1508
1775
  );
1509
1776
  });
1510
1777
 
1511
- // src/hooks/messages/useCreateMessage/index.ts
1512
- var import_react_query7 = require("@tanstack/react-query");
1513
-
1514
- // src/lib/optimistic/optimisticId.ts
1515
- var import_radash3 = require("radash");
1516
- var optimisticId = () => `-${(0, import_radash3.uid)(24)}`;
1517
-
1518
- // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.ts
1519
- var data = ({
1520
- newMessage
1521
- }) => (prevData) => {
1522
- const message = {
1523
- id: optimisticId(),
1524
- role: "user",
1525
- created_at: +/* @__PURE__ */ new Date(),
1526
- object: "thread.message",
1527
- content: [
1528
- {
1529
- type: "text",
1530
- text: {
1531
- annotations: [],
1532
- value: newMessage.content
1533
- }
1534
- }
1535
- ],
1536
- run_id: null,
1537
- assistant_id: null,
1538
- thread_id: null,
1539
- file_ids: [],
1540
- metadata: {},
1541
- runSteps: []
1542
- };
1543
- if (!prevData) {
1544
- return {
1545
- pageParams: [],
1546
- pages: [
1547
- {
1548
- data: [message],
1549
- hasNextPage: false,
1550
- lastId: message.id
1551
- }
1552
- ]
1553
- };
1554
- }
1555
- const [latestPage, ...pagesRest] = prevData.pages;
1556
- return {
1557
- ...prevData,
1558
- pages: [
1559
- {
1560
- ...latestPage,
1561
- data: [
1562
- message,
1563
- ...latestPage.data
1564
- ]
1565
- },
1566
- ...pagesRest
1567
- ]
1568
- };
1569
- };
1570
-
1571
- // src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.ts
1572
- var onMutate = ({
1573
- queryClient
1574
- }) => async (newMessage) => {
1575
- await queryClient.cancelQueries(queryKey());
1576
- const prevMessages = queryClient.getQueryData(queryKey());
1577
- queryClient.setQueryData(
1578
- queryKey(),
1579
- data({ newMessage })
1580
- );
1581
- return {
1582
- prevMessages,
1583
- newMessage
1584
- };
1585
- };
1586
-
1587
- // src/hooks/messages/useCreateMessage/lib/mutationOptions/onError.ts
1588
- var onError = ({
1589
- queryClient
1590
- }) => async (_error, newMessage, context) => {
1591
- if (!context) {
1592
- return;
1593
- }
1594
- queryClient.setQueryData(
1595
- queryKey(),
1596
- context.prevMessages
1597
- );
1598
- };
1599
-
1600
- // src/hooks/messages/useCreateMessage/lib/mutationOptions/onSettled.ts
1601
- var onSettled3 = ({
1602
- queryClient
1603
- }) => async (response) => {
1604
- if (!response)
1605
- return;
1606
- await queryClient.invalidateQueries({
1607
- queryKey: queryKey()
1608
- });
1609
- };
1610
-
1611
- // src/hooks/messages/useCreateMessage/lib/mutationOptions/index.ts
1612
- var mutationOptions3 = ({
1613
- queryClient
1614
- }) => ({
1615
- // mutationFn,
1616
- onMutate: onMutate({
1617
- queryClient
1618
- }),
1619
- onError: onError({
1620
- queryClient
1621
- }),
1622
- onSettled: onSettled3({
1623
- queryClient
1624
- })
1625
- });
1626
-
1627
- // src/hooks/messages/useCreateMessage/index.ts
1628
- var useCreateMessage = ({
1629
- createMessageMutationOptions
1630
- }) => {
1631
- const queryClient = (0, import_react_query7.useQueryClient)();
1632
- const mutationProps = (0, import_react_query7.useMutation)({
1633
- ...mutationOptions3({
1634
- queryClient
1635
- }),
1636
- ...createMessageMutationOptions
1637
- });
1638
- return {
1639
- ...mutationProps,
1640
- createMessage: mutationProps.mutateAsync
1641
- };
1642
- };
1643
-
1644
1778
  // src/components/messages/Form/Submit/index.tsx
1645
- var import_react_icons5 = require("@radix-ui/react-icons");
1646
- var import_themes30 = require("@radix-ui/themes");
1779
+ var import_react_icons6 = require("@radix-ui/react-icons");
1780
+ var import_themes31 = require("@radix-ui/themes");
1647
1781
 
1648
1782
  // src/components/spinners/Spinner/index.tsx
1649
1783
  var import_jsx_runtime38 = require("react/jsx-runtime");
@@ -1671,14 +1805,14 @@ var Submit = ({
1671
1805
  isLoading,
1672
1806
  isDisabled
1673
1807
  }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
1674
- import_themes30.Button,
1808
+ import_themes31.Button,
1675
1809
  {
1676
1810
  type: "submit",
1677
1811
  color: "gray",
1678
1812
  highContrast: true,
1679
1813
  radius: "large",
1680
1814
  disabled: isLoading || isDisabled,
1681
- children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Spinner, {}) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_icons5.ArrowUpIcon, {})
1815
+ children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Spinner, {}) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_icons6.ArrowUpIcon, {})
1682
1816
  }
1683
1817
  );
1684
1818
 
@@ -1688,10 +1822,9 @@ var schema = import_zod.z.object({
1688
1822
  content: import_zod.z.string().min(1).max(300)
1689
1823
  });
1690
1824
  var Form = ({
1691
- messagesQueryOptions,
1692
- runsQueryOptions,
1693
- createMessageMutationOptions
1694
- }) => {
1825
+ children,
1826
+ ...args
1827
+ } = {}) => {
1695
1828
  const {
1696
1829
  register,
1697
1830
  handleSubmit,
@@ -1700,40 +1833,35 @@ var Form = ({
1700
1833
  } = (0, import_react_hook_form.useForm)({
1701
1834
  resolver: (0, import_zod2.zodResolver)(schema)
1702
1835
  });
1703
- const { isRunActive: isRunActive2 } = useIsRunActive({
1704
- messagesQueryOptions,
1705
- runsQueryOptions
1706
- });
1707
- const isLoading = (0, import_react24.useMemo)(() => isRunActive2 || isSubmitting, [
1836
+ const { isRunActive: isRunActive2 } = useIsRunActive(args);
1837
+ const isLoading = (0, import_react28.useMemo)(() => isRunActive2 || isSubmitting, [
1708
1838
  isRunActive2,
1709
1839
  isSubmitting
1710
1840
  ]);
1711
1841
  const {
1712
1842
  createMessage
1713
- } = useCreateMessage({
1714
- createMessageMutationOptions
1715
- });
1843
+ // @ts-ignore-next-line
1844
+ } = useCreateMessage(args);
1716
1845
  const onSubmit = async (data2) => {
1717
1846
  reset();
1718
1847
  await createMessage({
1719
- content: data2.content
1848
+ content: data2.content,
1849
+ ...args
1720
1850
  });
1721
1851
  };
1722
- const { latestMessage } = useLatestMessage({
1723
- messagesQueryOptions
1724
- });
1725
- const isDisabled = (0, import_react24.useMemo)(() => {
1852
+ const { latestMessage } = useLatestMessage(args);
1853
+ const isDisabled = (0, import_react28.useMemo)(() => {
1726
1854
  var _a;
1727
1855
  return (
1728
1856
  // @ts-ignore-next-line
1729
1857
  (_a = latestMessage == null ? void 0 : latestMessage.metadata) == null ? void 0 : _a.isBlocking
1730
1858
  );
1731
1859
  }, [latestMessage, isLoading]);
1732
- const isInputDisabled = (0, import_react24.useMemo)(() => isLoading || isDisabled || false, [isLoading, isDisabled]);
1860
+ const isInputDisabled = (0, import_react28.useMemo)(() => isLoading || isDisabled || false, [isLoading, isDisabled]);
1733
1861
  const isInputDisabledPrevious = (0, import_react_use2.usePrevious)(isInputDisabled);
1734
- const textareaRef = (0, import_react24.useRef)(null);
1862
+ const textareaRef = (0, import_react28.useRef)(null);
1735
1863
  const textareaProps = register("content");
1736
- (0, import_react24.useEffect)(() => {
1864
+ (0, import_react28.useEffect)(() => {
1737
1865
  if (isInputDisabled)
1738
1866
  return;
1739
1867
  if (!isInputDisabledPrevious)
@@ -1742,111 +1870,173 @@ var Form = ({
1742
1870
  return;
1743
1871
  textareaRef.current.focus();
1744
1872
  }, [isInputDisabled, isInputDisabledPrevious, textareaProps]);
1745
- const assistantNameContext = (0, import_react24.useContext)(AssistantNameContext);
1746
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1747
- import_themes31.Container,
1873
+ const assistantNameContext = (0, import_react28.useContext)(AssistantNameContext);
1874
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
1875
+ import_themes32.Container,
1748
1876
  {
1749
1877
  size: "2",
1750
1878
  px: "2",
1751
1879
  grow: "0",
1752
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1753
- import_themes31.Flex,
1754
- {
1755
- direction: "column",
1756
- shrink: "0",
1757
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1758
- import_themes31.Flex,
1759
- {
1760
- direction: "column",
1761
- shrink: "0",
1762
- className: "bg-gray-1",
1763
- pb: "4",
1764
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1765
- "form",
1766
- {
1767
- onSubmit: handleSubmit(onSubmit),
1768
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
1769
- import_themes31.Flex,
1770
- {
1771
- className: `rounded-3 border-gray-5 border border-solid ${errors.content ? "border-red-9 bg-red-2" : ""}`,
1772
- p: "2",
1773
- pl: "4",
1774
- children: [
1775
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1776
- import_themes31.Text,
1777
- {
1778
- size: "2",
1779
- className: "grow",
1780
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1781
- import_themes31.Flex,
1782
- {
1783
- grow: "1",
1784
- direction: "column",
1785
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1786
- TextareaBase,
1787
- {
1788
- minRows: 1,
1789
- placeholder: `Message ${assistantNameContext}...`,
1790
- disabled: isLoading || isDisabled,
1791
- onKeyDown: (e) => {
1792
- if (e.key === "Enter" && !e.shiftKey) {
1793
- e.preventDefault();
1794
- handleSubmit(onSubmit)();
1880
+ children: [
1881
+ children,
1882
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1883
+ import_themes32.Flex,
1884
+ {
1885
+ direction: "column",
1886
+ shrink: "0",
1887
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1888
+ import_themes32.Flex,
1889
+ {
1890
+ direction: "column",
1891
+ shrink: "0",
1892
+ className: "bg-gray-1",
1893
+ pb: "4",
1894
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1895
+ "form",
1896
+ {
1897
+ onSubmit: handleSubmit(onSubmit),
1898
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
1899
+ import_themes32.Flex,
1900
+ {
1901
+ className: `rounded-3 border-gray-5 border border-solid ${errors.content ? "border-red-9 bg-red-2" : ""}`,
1902
+ p: "2",
1903
+ pl: "4",
1904
+ children: [
1905
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1906
+ import_themes32.Text,
1907
+ {
1908
+ size: "2",
1909
+ className: "grow",
1910
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1911
+ import_themes32.Flex,
1912
+ {
1913
+ grow: "1",
1914
+ direction: "column",
1915
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1916
+ TextareaBase,
1917
+ {
1918
+ minRows: 1,
1919
+ placeholder: `Message ${assistantNameContext}...`,
1920
+ disabled: isLoading || isDisabled,
1921
+ onKeyDown: (e) => {
1922
+ if (e.key === "Enter" && !e.shiftKey) {
1923
+ e.preventDefault();
1924
+ handleSubmit(onSubmit)();
1925
+ }
1926
+ },
1927
+ autoFocus: true,
1928
+ ...textareaProps,
1929
+ ref: (e) => {
1930
+ textareaProps.ref(e);
1931
+ textareaRef.current = e;
1795
1932
  }
1796
- },
1797
- autoFocus: true,
1798
- ...textareaProps,
1799
- ref: (e) => {
1800
- textareaProps.ref(e);
1801
- textareaRef.current = e;
1802
1933
  }
1803
- }
1804
- )
1805
- }
1806
- )
1807
- }
1808
- ),
1809
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1810
- import_themes31.Flex,
1811
- {
1812
- shrink: "0",
1813
- align: "end",
1814
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1815
- Submit,
1816
- {
1817
- isLoading,
1818
- isDisabled
1819
- }
1820
- )
1821
- }
1822
- )
1823
- ]
1824
- }
1825
- )
1826
- }
1827
- )
1828
- }
1829
- )
1830
- }
1831
- )
1934
+ )
1935
+ }
1936
+ )
1937
+ }
1938
+ ),
1939
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1940
+ import_themes32.Flex,
1941
+ {
1942
+ shrink: "0",
1943
+ align: "end",
1944
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
1945
+ Submit,
1946
+ {
1947
+ isLoading,
1948
+ isDisabled
1949
+ }
1950
+ )
1951
+ }
1952
+ )
1953
+ ]
1954
+ }
1955
+ )
1956
+ }
1957
+ )
1958
+ }
1959
+ )
1960
+ }
1961
+ )
1962
+ ]
1832
1963
  }
1833
1964
  );
1834
1965
  };
1835
1966
 
1836
- // src/index.ts
1967
+ // src/components/core/SuperinterfaceProvider/index.tsx
1968
+ var import_react29 = require("react");
1969
+
1970
+ // src/lib/misc/merge/index.ts
1971
+ var import_lodash7 = __toESM(require("lodash"));
1972
+
1973
+ // src/lib/misc/merge/customizer.ts
1974
+ var import_lodash6 = __toESM(require("lodash"));
1975
+ var customizer = (objectValue, srcValue) => {
1976
+ if (!import_lodash6.default.isArray(objectValue))
1977
+ return;
1978
+ return srcValue;
1979
+ };
1980
+
1981
+ // src/lib/misc/merge/index.ts
1982
+ var merge2 = (obj, ...sources) => import_lodash7.default.mergeWith(import_lodash7.default.cloneDeep(obj), ...sources, customizer);
1983
+
1984
+ // src/components/core/SuperinterfaceProvider/index.tsx
1837
1985
  var import_react_query8 = require("@tanstack/react-query");
1986
+ var import_jsx_runtime41 = require("react/jsx-runtime");
1987
+ var SuperinterfaceProvider = ({
1988
+ children,
1989
+ ...rest
1990
+ }) => {
1991
+ const [queryClient] = (0, import_react29.useState)(
1992
+ () => new import_react_query8.QueryClient({
1993
+ defaultOptions: {
1994
+ queries: {
1995
+ retry: false,
1996
+ // With SSR, we usually want to set some default staleTime
1997
+ // above 0 to avoid refetching immediately on the client
1998
+ staleTime: 1e4
1999
+ },
2000
+ mutations: {
2001
+ retry: false
2002
+ }
2003
+ }
2004
+ })
2005
+ );
2006
+ const superinterfaceContext = useSuperinterfaceContext();
2007
+ const value = merge2(
2008
+ superinterfaceContext,
2009
+ // @ts-ignore-next-line
2010
+ rest
2011
+ );
2012
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
2013
+ SuperinterfaceContext.Provider,
2014
+ {
2015
+ value,
2016
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_react_query8.QueryClientProvider, { client: queryClient, children })
2017
+ }
2018
+ );
2019
+ };
2020
+
2021
+ // src/hooks/markdown/useMarkdownContext/index.ts
2022
+ var import_react30 = require("react");
2023
+ var useMarkdownContext = () => (0, import_react30.useContext)(MarkdownContext);
1838
2024
  // Annotate the CommonJS export names for ESM import in node:
1839
2025
  0 && (module.exports = {
2026
+ AssistantAvatarContext,
2027
+ AssistantNameContext,
1840
2028
  Form,
2029
+ FunctionBase,
2030
+ FunctionComponentsContext,
2031
+ MarkdownContext,
1841
2032
  Messages,
1842
- QueryClient,
1843
- QueryClientProvider,
2033
+ Suggestions,
2034
+ SuperinterfaceProvider,
1844
2035
  useCreateMessage,
1845
2036
  useIsRunActive,
1846
2037
  useLatestMessage,
2038
+ useMarkdownContext,
1847
2039
  useMessages,
1848
- useQuery,
1849
- useQueryClient,
1850
2040
  useThreadLifecycles
1851
2041
  });
1852
2042
  //# sourceMappingURL=index.js.map