@superinterface/react 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/dist/chunk-DP5XKPRM.mjs +8 -0
  2. package/dist/chunk-DP5XKPRM.mjs.map +1 -0
  3. package/dist/chunk-E4KDALPU.mjs +11 -0
  4. package/dist/chunk-E4KDALPU.mjs.map +1 -0
  5. package/dist/chunk-QPW4QQ26.mjs +49 -0
  6. package/dist/chunk-QPW4QQ26.mjs.map +1 -0
  7. package/dist/index.d.mts +561 -0
  8. package/dist/index.d.ts +561 -8
  9. package/dist/index.js +1850 -21
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.mjs +1899 -0
  12. package/dist/index.mjs.map +1 -0
  13. package/dist/lib/index.d.mts +3 -0
  14. package/dist/lib/index.d.ts +3 -1
  15. package/dist/lib/index.js +32 -4
  16. package/dist/lib/index.js.map +1 -1
  17. package/dist/lib/index.mjs +7 -0
  18. package/dist/lib/index.mjs.map +1 -0
  19. package/dist/mutationFns.d.mts +31 -0
  20. package/dist/mutationFns.d.ts +31 -3
  21. package/dist/mutationFns.js +160 -8
  22. package/dist/mutationFns.js.map +1 -1
  23. package/dist/mutationFns.mjs +84 -0
  24. package/dist/mutationFns.mjs.map +1 -0
  25. package/dist/queryFns.d.mts +15 -0
  26. package/dist/queryFns.d.ts +15 -2
  27. package/dist/queryFns.js +202 -6
  28. package/dist/queryFns.js.map +1 -1
  29. package/dist/queryFns.mjs +126 -0
  30. package/dist/queryFns.mjs.map +1 -0
  31. package/dist/queryKeys.d.mts +5 -0
  32. package/dist/queryKeys.d.ts +5 -2
  33. package/dist/queryKeys.js +36 -6
  34. package/dist/queryKeys.js.map +1 -1
  35. package/dist/queryKeys.mjs +9 -0
  36. package/dist/queryKeys.mjs.map +1 -0
  37. package/dist/types/index.d.mts +33 -0
  38. package/dist/types/index.d.ts +10 -8
  39. package/dist/types/index.js +17 -1
  40. package/dist/types/index.js.map +1 -1
  41. package/dist/types/index.mjs +1 -0
  42. package/dist/types/index.mjs.map +1 -0
  43. package/package.json +9 -2
  44. package/dist/components/examples/Examples/Example/index.d.ts +0 -12
  45. package/dist/components/examples/Examples/Example/index.js +0 -27
  46. package/dist/components/examples/Examples/Example/index.js.map +0 -1
  47. package/dist/components/examples/Examples/index.d.ts +0 -13
  48. package/dist/components/examples/Examples/index.js +0 -32
  49. package/dist/components/examples/Examples/index.js.map +0 -1
  50. package/dist/components/messageGroups/MessagesGroupBase/AssistantAvatar.d.ts +0 -1
  51. package/dist/components/messageGroups/MessagesGroupBase/AssistantAvatar.js +0 -13
  52. package/dist/components/messageGroups/MessagesGroupBase/AssistantAvatar.js.map +0 -1
  53. package/dist/components/messageGroups/MessagesGroupBase/Name.d.ts +0 -6
  54. package/dist/components/messageGroups/MessagesGroupBase/Name.js +0 -8
  55. package/dist/components/messageGroups/MessagesGroupBase/Name.js.map +0 -1
  56. package/dist/components/messageGroups/MessagesGroupBase/index.d.ts +0 -6
  57. package/dist/components/messageGroups/MessagesGroupBase/index.js +0 -14
  58. package/dist/components/messageGroups/MessagesGroupBase/index.js.map +0 -1
  59. package/dist/components/messages/Form/Submit/index.d.ts +0 -6
  60. package/dist/components/messages/Form/Submit/index.js +0 -10
  61. package/dist/components/messages/Form/Submit/index.js.map +0 -1
  62. package/dist/components/messages/Form/index.d.ts +0 -19
  63. package/dist/components/messages/Form/index.js +0 -77
  64. package/dist/components/messages/Form/index.js.map +0 -1
  65. package/dist/components/messages/Message/TextContent/index.d.ts +0 -6
  66. package/dist/components/messages/Message/TextContent/index.js +0 -16
  67. package/dist/components/messages/Message/TextContent/index.js.map +0 -1
  68. package/dist/components/messages/Message/index.d.ts +0 -6
  69. package/dist/components/messages/Message/index.js +0 -36
  70. package/dist/components/messages/Message/index.js.map +0 -1
  71. package/dist/components/messages/Messages/Content/MessageGroup/Content/index.d.ts +0 -6
  72. package/dist/components/messages/Messages/Content/MessageGroup/Content/index.js +0 -9
  73. package/dist/components/messages/Messages/Content/MessageGroup/Content/index.js.map +0 -1
  74. package/dist/components/messages/Messages/Content/MessageGroup/index.d.ts +0 -6
  75. package/dist/components/messages/Messages/Content/MessageGroup/index.js +0 -18
  76. package/dist/components/messages/Messages/Content/MessageGroup/index.js.map +0 -1
  77. package/dist/components/messages/Messages/Content/index.d.ts +0 -6
  78. package/dist/components/messages/Messages/Content/index.js +0 -14
  79. package/dist/components/messages/Messages/Content/index.js.map +0 -1
  80. package/dist/components/messages/Messages/ProgressMessage/index.d.ts +0 -7
  81. package/dist/components/messages/Messages/ProgressMessage/index.js +0 -20
  82. package/dist/components/messages/Messages/ProgressMessage/index.js.map +0 -1
  83. package/dist/components/messages/Messages/index.d.ts +0 -16
  84. package/dist/components/messages/Messages/index.js +0 -40
  85. package/dist/components/messages/Messages/index.js.map +0 -1
  86. package/dist/components/runSteps/RunStep/ToolCalls/Starting/index.d.ts +0 -1
  87. package/dist/components/runSteps/RunStep/ToolCalls/Starting/index.js +0 -11
  88. package/dist/components/runSteps/RunStep/ToolCalls/Starting/index.js.map +0 -1
  89. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/CodeInterpreter/index.d.ts +0 -7
  90. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/CodeInterpreter/index.js +0 -8
  91. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/CodeInterpreter/index.js.map +0 -1
  92. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Availabilities/Title.d.ts +0 -6
  93. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Availabilities/Title.js +0 -17
  94. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Availabilities/Title.js.map +0 -1
  95. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Availabilities/index.d.ts +0 -7
  96. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Availabilities/index.js +0 -13
  97. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Availabilities/index.js.map +0 -1
  98. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Content/index.d.ts +0 -6
  99. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Content/index.js +0 -37
  100. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Content/index.js.map +0 -1
  101. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Icon.d.ts +0 -6
  102. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Icon.js +0 -18
  103. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Icon.js.map +0 -1
  104. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Scores/Title.d.ts +0 -6
  105. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Scores/Title.js +0 -17
  106. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Scores/Title.js.map +0 -1
  107. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Scores/index.d.ts +0 -7
  108. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Scores/index.js +0 -13
  109. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Scores/index.js.map +0 -1
  110. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.d.ts +0 -7
  111. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.js +0 -17
  112. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.js.map +0 -1
  113. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/index.d.ts +0 -8
  114. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/index.js +0 -18
  115. package/dist/components/runSteps/RunStep/ToolCalls/ToolCall/index.js.map +0 -1
  116. package/dist/components/runSteps/RunStep/ToolCalls/index.d.ts +0 -7
  117. package/dist/components/runSteps/RunStep/ToolCalls/index.js +0 -10
  118. package/dist/components/runSteps/RunStep/ToolCalls/index.js.map +0 -1
  119. package/dist/components/runSteps/RunStep/index.d.ts +0 -6
  120. package/dist/components/runSteps/RunStep/index.js +0 -13
  121. package/dist/components/runSteps/RunStep/index.js.map +0 -1
  122. package/dist/components/runSteps/RunSteps/index.d.ts +0 -6
  123. package/dist/components/runSteps/RunSteps/index.js +0 -9
  124. package/dist/components/runSteps/RunSteps/index.js.map +0 -1
  125. package/dist/components/skeletons/MessagesSkeleton/index.d.ts +0 -2
  126. package/dist/components/skeletons/MessagesSkeleton/index.js +0 -17
  127. package/dist/components/skeletons/MessagesSkeleton/index.js.map +0 -1
  128. package/dist/components/skeletons/RunSkeleton/index.d.ts +0 -1
  129. package/dist/components/skeletons/RunSkeleton/index.js +0 -12
  130. package/dist/components/skeletons/RunSkeleton/index.js.map +0 -1
  131. package/dist/components/skeletons/Skeleton/index.d.ts +0 -6
  132. package/dist/components/skeletons/Skeleton/index.js +0 -10
  133. package/dist/components/skeletons/Skeleton/index.js.map +0 -1
  134. package/dist/components/skeletons/StartingContentSkeleton/index.d.ts +0 -1
  135. package/dist/components/skeletons/StartingContentSkeleton/index.js +0 -8
  136. package/dist/components/skeletons/StartingContentSkeleton/index.js.map +0 -1
  137. package/dist/components/skeletons/StartingSkeleton/index.d.ts +0 -6
  138. package/dist/components/skeletons/StartingSkeleton/index.js +0 -17
  139. package/dist/components/skeletons/StartingSkeleton/index.js.map +0 -1
  140. package/dist/components/spinners/Spinner/index.d.ts +0 -1
  141. package/dist/components/spinners/Spinner/index.js +0 -7
  142. package/dist/components/spinners/Spinner/index.js.map +0 -1
  143. package/dist/components/textareas/TextareaBase/index.d.ts +0 -2
  144. package/dist/components/textareas/TextareaBase/index.js +0 -28
  145. package/dist/components/textareas/TextareaBase/index.js.map +0 -1
  146. package/dist/components/toolCalls/ToolCallBase/ToolCallTitle.d.ts +0 -6
  147. package/dist/components/toolCalls/ToolCallBase/ToolCallTitle.js +0 -8
  148. package/dist/components/toolCalls/ToolCallBase/ToolCallTitle.js.map +0 -1
  149. package/dist/components/toolCalls/ToolCallBase/index.d.ts +0 -6
  150. package/dist/components/toolCalls/ToolCallBase/index.js +0 -12
  151. package/dist/components/toolCalls/ToolCallBase/index.js.map +0 -1
  152. package/dist/contexts/assistants/AssistantNameContext/index.d.ts +0 -2
  153. package/dist/contexts/assistants/AssistantNameContext/index.js +0 -6
  154. package/dist/contexts/assistants/AssistantNameContext/index.js.map +0 -1
  155. package/dist/contexts/avatars/AssistantAvatarContext/index.d.ts +0 -2
  156. package/dist/contexts/avatars/AssistantAvatarContext/index.js +0 -9
  157. package/dist/contexts/avatars/AssistantAvatarContext/index.js.map +0 -1
  158. package/dist/contexts/markdown/MarkdownContext/index.d.ts +0 -5
  159. package/dist/contexts/markdown/MarkdownContext/index.js +0 -10
  160. package/dist/contexts/markdown/MarkdownContext/index.js.map +0 -1
  161. package/dist/contexts/markdown/MarkdownContext/lib/components/Link.d.ts +0 -4
  162. package/dist/contexts/markdown/MarkdownContext/lib/components/Link.js +0 -8
  163. package/dist/contexts/markdown/MarkdownContext/lib/components/Link.js.map +0 -1
  164. package/dist/contexts/markdown/MarkdownContext/lib/components/ListItem.d.ts +0 -2
  165. package/dist/contexts/markdown/MarkdownContext/lib/components/ListItem.js +0 -8
  166. package/dist/contexts/markdown/MarkdownContext/lib/components/ListItem.js.map +0 -1
  167. package/dist/contexts/markdown/MarkdownContext/lib/components/OrderedList.d.ts +0 -2
  168. package/dist/contexts/markdown/MarkdownContext/lib/components/OrderedList.js +0 -8
  169. package/dist/contexts/markdown/MarkdownContext/lib/components/OrderedList.js.map +0 -1
  170. package/dist/contexts/markdown/MarkdownContext/lib/components/Paragraph.d.ts +0 -2
  171. package/dist/contexts/markdown/MarkdownContext/lib/components/Paragraph.js +0 -8
  172. package/dist/contexts/markdown/MarkdownContext/lib/components/Paragraph.js.map +0 -1
  173. package/dist/contexts/markdown/MarkdownContext/lib/components/Strong.d.ts +0 -2
  174. package/dist/contexts/markdown/MarkdownContext/lib/components/Strong.js +0 -8
  175. package/dist/contexts/markdown/MarkdownContext/lib/components/Strong.js.map +0 -1
  176. package/dist/contexts/markdown/MarkdownContext/lib/components/UnorderedList.d.ts +0 -2
  177. package/dist/contexts/markdown/MarkdownContext/lib/components/UnorderedList.js +0 -8
  178. package/dist/contexts/markdown/MarkdownContext/lib/components/UnorderedList.js.map +0 -1
  179. package/dist/contexts/markdown/MarkdownContext/lib/components/index.d.ts +0 -2
  180. package/dist/contexts/markdown/MarkdownContext/lib/components/index.js +0 -18
  181. package/dist/contexts/markdown/MarkdownContext/lib/components/index.js.map +0 -1
  182. package/dist/hooks/actions/useHandleAction/index.d.ts +0 -107
  183. package/dist/hooks/actions/useHandleAction/index.js +0 -21
  184. package/dist/hooks/actions/useHandleAction/index.js.map +0 -1
  185. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/index.d.ts +0 -8
  186. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/index.js +0 -11
  187. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/index.js.map +0 -1
  188. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn/index.d.ts +0 -10
  189. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn/index.js +0 -25
  190. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn/index.js.map +0 -1
  191. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn/toolOutput/index.d.ts +0 -12
  192. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn/toolOutput/index.js +0 -19
  193. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn/toolOutput/index.js.map +0 -1
  194. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/onSettled.d.ts +0 -6
  195. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/onSettled.js +0 -18
  196. package/dist/hooks/actions/useHandleAction/lib/mutationOptions/onSettled.js.map +0 -1
  197. package/dist/hooks/actions/useManageActions/index.d.ts +0 -10
  198. package/dist/hooks/actions/useManageActions/index.js +0 -32
  199. package/dist/hooks/actions/useManageActions/index.js.map +0 -1
  200. package/dist/hooks/messageGroups/useMessageGroups/index.d.ts +0 -8
  201. package/dist/hooks/messageGroups/useMessageGroups/index.js +0 -10
  202. package/dist/hooks/messageGroups/useMessageGroups/index.js.map +0 -1
  203. package/dist/hooks/messageGroups/useMessageGroups/lib/messageGroups/index.d.ts +0 -6
  204. package/dist/hooks/messageGroups/useMessageGroups/lib/messageGroups/index.js +0 -30
  205. package/dist/hooks/messageGroups/useMessageGroups/lib/messageGroups/index.js.map +0 -1
  206. package/dist/hooks/messageGroups/useMessageGroups/lib/messageGroups/newGroup/index.d.ts +0 -7
  207. package/dist/hooks/messageGroups/useMessageGroups/lib/messageGroups/newGroup/index.js +0 -12
  208. package/dist/hooks/messageGroups/useMessageGroups/lib/messageGroups/newGroup/index.js.map +0 -1
  209. package/dist/hooks/messageGroups/useMessageGroups/lib/messageGroups/newGroup/newGroupItem.d.ts +0 -11
  210. package/dist/hooks/messageGroups/useMessageGroups/lib/messageGroups/newGroup/newGroupItem.js +0 -11
  211. package/dist/hooks/messageGroups/useMessageGroups/lib/messageGroups/newGroup/newGroupItem.js.map +0 -1
  212. package/dist/hooks/messages/useCreateMessage/index.d.ts +0 -107
  213. package/dist/hooks/messages/useCreateMessage/index.js +0 -21
  214. package/dist/hooks/messages/useCreateMessage/index.js.map +0 -1
  215. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/index.d.ts +0 -15
  216. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/index.js +0 -21
  217. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/index.js.map +0 -1
  218. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn.d.ts +0 -9
  219. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn.js +0 -18
  220. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn.js.map +0 -1
  221. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onError.d.ts +0 -9
  222. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onError.js +0 -12
  223. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onError.js.map +0 -1
  224. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.d.ts +0 -6
  225. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.js +0 -55
  226. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.js.map +0 -1
  227. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.d.ts +0 -9
  228. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.js +0 -16
  229. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.js.map +0 -1
  230. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onSettled.d.ts +0 -6
  231. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onSettled.js +0 -13
  232. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onSettled.js.map +0 -1
  233. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onSuccess.d.ts +0 -7
  234. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onSuccess.js +0 -37
  235. package/dist/hooks/messages/useCreateMessage/lib/mutationOptions/onSuccess.js.map +0 -1
  236. package/dist/hooks/messages/useLatestMessage/index.d.ts +0 -139
  237. package/dist/hooks/messages/useLatestMessage/index.js +0 -14
  238. package/dist/hooks/messages/useLatestMessage/index.js.map +0 -1
  239. package/dist/hooks/messages/useMessages/index.d.ts +0 -135
  240. package/dist/hooks/messages/useMessages/index.js +0 -23
  241. package/dist/hooks/messages/useMessages/index.js.map +0 -1
  242. package/dist/hooks/messages/useMessages/lib/queryOptions/index.d.ts +0 -6
  243. package/dist/hooks/messages/useMessages/lib/queryOptions/index.js +0 -22
  244. package/dist/hooks/messages/useMessages/lib/queryOptions/index.js.map +0 -1
  245. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/data/index.d.ts +0 -18
  246. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/data/index.js +0 -26
  247. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/data/index.js.map +0 -1
  248. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/data/runMessages/getLatestRun.d.ts +0 -5
  249. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/data/runMessages/getLatestRun.js +0 -12
  250. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/data/runMessages/getLatestRun.js.map +0 -1
  251. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/data/runMessages/index.d.ts +0 -20
  252. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/data/runMessages/index.js +0 -34
  253. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/data/runMessages/index.js.map +0 -1
  254. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/hasNextPage.d.ts +0 -4
  255. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/hasNextPage.js +0 -11
  256. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/hasNextPage.js.map +0 -1
  257. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/index.d.ts +0 -7
  258. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/index.js +0 -25
  259. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/index.js.map +0 -1
  260. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/messagesLimit.d.ts +0 -1
  261. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/messagesLimit.js +0 -5
  262. package/dist/hooks/messages/useMessages/lib/queryOptions/queryFn/messagesLimit.js.map +0 -1
  263. package/dist/hooks/messages/useMessages/lib/queryOptions/queryKey.d.ts +0 -1
  264. package/dist/hooks/messages/useMessages/lib/queryOptions/queryKey.js +0 -6
  265. package/dist/hooks/messages/useMessages/lib/queryOptions/queryKey.js.map +0 -1
  266. package/dist/hooks/misc/useInfiniteScroll/index.d.ts +0 -12
  267. package/dist/hooks/misc/useInfiniteScroll/index.js +0 -31
  268. package/dist/hooks/misc/useInfiniteScroll/index.js.map +0 -1
  269. package/dist/hooks/misc/useThrottledEffect/index.d.ts +0 -1
  270. package/dist/hooks/misc/useThrottledEffect/index.js +0 -22
  271. package/dist/hooks/misc/useThrottledEffect/index.js.map +0 -1
  272. package/dist/hooks/runs/useCreateRun/index.d.ts +0 -107
  273. package/dist/hooks/runs/useCreateRun/index.js +0 -21
  274. package/dist/hooks/runs/useCreateRun/index.js.map +0 -1
  275. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/index.d.ts +0 -9
  276. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/index.js +0 -13
  277. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/index.js.map +0 -1
  278. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/mutationFn.d.ts +0 -10
  279. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/mutationFn.js +0 -20
  280. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/mutationFn.js.map +0 -1
  281. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/onSettled.d.ts +0 -6
  282. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/onSettled.js +0 -18
  283. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/onSettled.js.map +0 -1
  284. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/onSuccess.d.ts +0 -6
  285. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/onSuccess.js +0 -34
  286. package/dist/hooks/runs/useCreateRun/lib/mutationOptions/onSuccess.js.map +0 -1
  287. package/dist/hooks/runs/useIsRunActive/index.d.ts +0 -144
  288. package/dist/hooks/runs/useIsRunActive/index.js +0 -47
  289. package/dist/hooks/runs/useIsRunActive/index.js.map +0 -1
  290. package/dist/hooks/runs/useLatestRun/index.d.ts +0 -139
  291. package/dist/hooks/runs/useLatestRun/index.js +0 -14
  292. package/dist/hooks/runs/useLatestRun/index.js.map +0 -1
  293. package/dist/hooks/runs/useManageRuns/index.d.ts +0 -11
  294. package/dist/hooks/runs/useManageRuns/index.js +0 -43
  295. package/dist/hooks/runs/useManageRuns/index.js.map +0 -1
  296. package/dist/hooks/runs/usePolling/index.d.ts +0 -8
  297. package/dist/hooks/runs/usePolling/index.js +0 -24
  298. package/dist/hooks/runs/usePolling/index.js.map +0 -1
  299. package/dist/hooks/runs/usePolling/lib/refetch.d.ts +0 -7
  300. package/dist/hooks/runs/usePolling/lib/refetch.js +0 -15
  301. package/dist/hooks/runs/usePolling/lib/refetch.js.map +0 -1
  302. package/dist/hooks/runs/useRuns/index.d.ts +0 -135
  303. package/dist/hooks/runs/useRuns/index.js +0 -19
  304. package/dist/hooks/runs/useRuns/index.js.map +0 -1
  305. package/dist/hooks/runs/useRuns/lib/getRuns.d.ts +0 -7
  306. package/dist/hooks/runs/useRuns/lib/getRuns.js +0 -10
  307. package/dist/hooks/runs/useRuns/lib/getRuns.js.map +0 -1
  308. package/dist/hooks/runs/useRuns/lib/queryOptions/index.d.ts +0 -7
  309. package/dist/hooks/runs/useRuns/lib/queryOptions/index.js +0 -22
  310. package/dist/hooks/runs/useRuns/lib/queryOptions/index.js.map +0 -1
  311. package/dist/hooks/runs/useRuns/lib/queryOptions/queryFn.d.ts +0 -6
  312. package/dist/hooks/runs/useRuns/lib/queryOptions/queryFn.js +0 -18
  313. package/dist/hooks/runs/useRuns/lib/queryOptions/queryFn.js.map +0 -1
  314. package/dist/hooks/runs/useRuns/lib/queryOptions/queryKey.d.ts +0 -1
  315. package/dist/hooks/runs/useRuns/lib/queryOptions/queryKey.js +0 -6
  316. package/dist/hooks/runs/useRuns/lib/queryOptions/queryKey.js.map +0 -1
  317. package/dist/hooks/threads/useThreadLifecycles/index.d.ts +0 -14
  318. package/dist/hooks/threads/useThreadLifecycles/index.js +0 -24
  319. package/dist/hooks/threads/useThreadLifecycles/index.js.map +0 -1
  320. package/dist/lib/ai/index.d.ts +0 -3
  321. package/dist/lib/ai/index.js +0 -18
  322. package/dist/lib/ai/index.js.map +0 -1
  323. package/dist/lib/messages/extendMessage.d.ts +0 -18
  324. package/dist/lib/messages/extendMessage.js +0 -21
  325. package/dist/lib/messages/extendMessage.js.map +0 -1
  326. package/dist/lib/messages/order.d.ts +0 -6
  327. package/dist/lib/messages/order.js +0 -7
  328. package/dist/lib/messages/order.js.map +0 -1
  329. package/dist/lib/optimistic/isOptimistic.d.ts +0 -5
  330. package/dist/lib/optimistic/isOptimistic.js +0 -10
  331. package/dist/lib/optimistic/isOptimistic.js.map +0 -1
  332. package/dist/lib/optimistic/optimisticId.d.ts +0 -1
  333. package/dist/lib/optimistic/optimisticId.js +0 -7
  334. package/dist/lib/optimistic/optimisticId.js.map +0 -1
  335. package/dist/lib/runSteps/getRunSteps/index.d.ts +0 -6
  336. package/dist/lib/runSteps/getRunSteps/index.js +0 -10
  337. package/dist/lib/runSteps/getRunSteps/index.js.map +0 -1
  338. package/dist/lib/runs/isRunEditingMessage/index.d.ts +0 -6
  339. package/dist/lib/runs/isRunEditingMessage/index.js +0 -23
  340. package/dist/lib/runs/isRunEditingMessage/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/messages/Messages/index.tsx","../src/hooks/misc/useInfiniteScroll/index.tsx","../src/hooks/misc/useThrottledEffect/index.tsx","../src/components/skeletons/MessagesSkeleton/index.tsx","../src/components/skeletons/Skeleton/index.tsx","../src/components/messageGroups/MessagesGroupBase/index.tsx","../src/components/messageGroups/MessagesGroupBase/Name.tsx","../src/hooks/messages/useMessages/index.tsx","../src/hooks/messages/useMessages/lib/queryOptions/index.ts","../src/hooks/runs/useManageRuns/index.tsx","../src/hooks/messages/useLatestMessage/index.ts","../src/hooks/runs/useLatestRun/index.ts","../src/hooks/runs/useRuns/index.tsx","../src/hooks/runs/useRuns/lib/queryOptions/index.ts","../src/hooks/runs/useRuns/lib/getRuns.ts","../src/hooks/runs/useCreateRun/index.ts","../src/hooks/runs/useCreateRun/lib/mutationOptions/onSuccess.ts","../src/hooks/runs/useCreateRun/lib/mutationOptions/onSettled.ts","../src/hooks/runs/useCreateRun/lib/mutationOptions/index.ts","../src/lib/optimistic/isOptimistic.ts","../src/hooks/runs/usePolling/index.tsx","../src/hooks/runs/useIsRunActive/index.tsx","../src/lib/runs/isRunEditingMessage/index.ts","../src/hooks/runs/usePolling/lib/refetch.ts","../src/hooks/actions/useManageActions/index.tsx","../src/hooks/actions/useHandleAction/index.tsx","../src/hooks/actions/useHandleAction/lib/mutationOptions/onSettled.ts","../src/hooks/actions/useHandleAction/lib/mutationOptions/index.ts","../src/hooks/threads/useThreadLifecycles/index.tsx","../src/hooks/messageGroups/useMessageGroups/index.ts","../src/hooks/messageGroups/useMessageGroups/lib/messageGroups/index.ts","../src/lib/messages/order.ts","../src/hooks/messageGroups/useMessageGroups/lib/messageGroups/newGroup/newGroupItem.ts","../src/hooks/messageGroups/useMessageGroups/lib/messageGroups/newGroup/index.ts","../src/components/messages/Messages/Content/MessageGroup/index.tsx","../src/components/messageGroups/MessagesGroupBase/AssistantAvatar.tsx","../src/contexts/avatars/AssistantAvatarContext/index.tsx","../src/contexts/assistants/AssistantNameContext/index.tsx","../src/components/messages/Messages/Content/MessageGroup/Content/index.tsx","../src/components/messages/Message/index.tsx","../src/components/runSteps/RunSteps/index.tsx","../src/components/runSteps/RunStep/ToolCalls/index.tsx","../src/components/runSteps/RunStep/ToolCalls/ToolCall/index.tsx","../src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Availabilities/index.tsx","../src/components/toolCalls/ToolCallBase/index.tsx","../src/components/toolCalls/ToolCallBase/ToolCallTitle.tsx","../src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Icon.tsx","../src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Content/index.tsx","../src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Availabilities/Title.tsx","../src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Scores/index.tsx","../src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/Scores/Title.tsx","../src/components/runSteps/RunStep/ToolCalls/ToolCall/Fn/index.tsx","../src/components/runSteps/RunStep/ToolCalls/ToolCall/CodeInterpreter/index.tsx","../src/components/runSteps/RunStep/ToolCalls/Starting/index.tsx","../src/components/runSteps/RunStep/index.tsx","../src/components/messages/Message/TextContent/index.tsx","../src/contexts/markdown/MarkdownContext/index.ts","../src/contexts/markdown/MarkdownContext/lib/components/Paragraph.tsx","../src/contexts/markdown/MarkdownContext/lib/components/Link.tsx","../src/contexts/markdown/MarkdownContext/lib/components/UnorderedList.tsx","../src/contexts/markdown/MarkdownContext/lib/components/OrderedList.tsx","../src/contexts/markdown/MarkdownContext/lib/components/ListItem.tsx","../src/contexts/markdown/MarkdownContext/lib/components/Strong.tsx","../src/contexts/markdown/MarkdownContext/lib/components/index.tsx","../src/components/messages/Messages/Content/index.tsx","../src/components/messages/Messages/ProgressMessage/index.tsx","../src/components/skeletons/StartingContentSkeleton/index.tsx","../src/components/skeletons/StartingSkeleton/index.tsx","../src/components/messages/Form/index.tsx","../src/components/textareas/TextareaBase/index.tsx","../src/hooks/messages/useCreateMessage/index.ts","../src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/data.ts","../src/hooks/messages/useCreateMessage/lib/mutationOptions/onMutate/index.ts","../src/hooks/messages/useCreateMessage/lib/mutationOptions/onError.ts","../src/hooks/messages/useCreateMessage/lib/mutationOptions/onSettled.ts","../src/hooks/messages/useCreateMessage/lib/mutationOptions/index.ts","../src/components/messages/Form/Submit/index.tsx","../src/components/spinners/Spinner/index.tsx","../src/index.ts"],"sourcesContent":["'use client'\nimport {\n UseInfiniteQueryOptions,\n UseMutationOptions,\n InfiniteData,\n} from '@tanstack/react-query'\nimport {\n Flex,\n} from '@radix-ui/themes'\nimport { useInfiniteScroll } from '@/hooks/misc/useInfiniteScroll'\nimport { MessagesSkeleton } from '@/components/skeletons/MessagesSkeleton'\nimport { useMessages } from '@/hooks/messages/useMessages'\nimport { useThreadLifecycles } from '@/hooks/threads/useThreadLifecycles'\nimport { useLatestMessage } from '@/hooks/messages/useLatestMessage'\nimport { useIsRunActive } from '@/hooks/runs/useIsRunActive'\nimport { Content } from './Content'\nimport { ProgressMessage } from './ProgressMessage'\nimport { MessagesPage, RunsPage, Run } from '@/types'\n\ntype Args = {\n messagesQueryOptions: UseInfiniteQueryOptions<InfiniteData<MessagesPage>>\n runsQueryOptions: UseInfiniteQueryOptions<InfiniteData<RunsPage>>\n createRunMutationOptions: UseMutationOptions<{ run: Run }>\n handleActionMutationOptions: UseMutationOptions<{ run: Run }>\n children?: React.ReactNode\n}\n\nexport const Messages = ({\n messagesQueryOptions,\n runsQueryOptions,\n createRunMutationOptions,\n handleActionMutationOptions,\n children,\n}: Args) => {\n const {\n messages,\n isFetchingNextPage,\n hasNextPage,\n fetchNextPage,\n } = useMessages({\n messagesQueryOptions,\n })\n\n useThreadLifecycles({\n messagesQueryOptions,\n runsQueryOptions,\n createRunMutationOptions,\n handleActionMutationOptions,\n })\n\n const { containerRef, loaderRef } = useInfiniteScroll({\n isFetchingNextPage,\n hasNextPage,\n fetchNextPage,\n })\n\n const { isRunActive } = useIsRunActive({\n messagesQueryOptions,\n runsQueryOptions,\n })\n\n const { latestMessage } = useLatestMessage({\n messagesQueryOptions,\n })\n\n return (\n <Flex\n ref={containerRef}\n direction=\"column-reverse\"\n className=\"overflow-auto\"\n grow=\"1\"\n p=\"2\"\n >\n <Flex\n shrink=\"0\"\n height=\"1\"\n />\n\n <ProgressMessage\n latestMessage={latestMessage}\n isRunActive={isRunActive}\n />\n\n {children}\n\n <Content\n messages={messages}\n />\n\n {hasNextPage && (\n <MessagesSkeleton\n ref={loaderRef}\n />\n )}\n\n <Flex\n shrink=\"0\"\n grow=\"1\"\n />\n </Flex>\n )\n}\n","import { useRef } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport { useThrottledEffect } from '@/hooks/misc/useThrottledEffect'\n\ntype Args = {\n isFetchingNextPage: boolean\n hasNextPage: boolean\n fetchNextPage: () => void\n}\n\nexport const useInfiniteScroll = ({\n isFetchingNextPage,\n hasNextPage,\n fetchNextPage,\n}: Args) => {\n const containerRef = useRef(null)\n\n const { ref: loaderRef, inView } = useInView({\n root: containerRef.current,\n rootMargin: '0px',\n threshold: 0.1,\n })\n\n useThrottledEffect(\n () => {\n if (isFetchingNextPage) return\n if (!inView) return\n if (!hasNextPage) return\n\n console.log('Fetching next page')\n fetchNextPage()\n },\n 500,\n [inView, isFetchingNextPage, hasNextPage, fetchNextPage]\n )\n\n return {\n containerRef,\n loaderRef,\n inView,\n }\n}\n","import _ from 'lodash'\nimport { useRef, useEffect, useCallback } from 'react'\n\nexport const useThrottledEffect = (cb: Function, delay: number, additionalDeps: any[]) => {\n const cbRef = useRef(cb)\n\n const throttledCb = useCallback(\n _.throttle((...args: any[]) => cbRef.current(...args), delay, {\n leading: true,\n trailing: true,\n }),\n [delay]\n )\n useEffect(() => {\n cbRef.current = cb\n })\n // set additionalDeps to execute effect, when other values change (not only on delay change)\n useEffect(throttledCb, [throttledCb, ...additionalDeps])\n}\n","import { forwardRef } from 'react'\nimport {\n Flex,\n Avatar,\n Box,\n} from '@radix-ui/themes'\nimport { Skeleton } from '@/components/skeletons/Skeleton'\nimport { MessagesGroupBase } from '@/components/messageGroups/MessagesGroupBase'\nimport { Name } from '@/components/messageGroups/MessagesGroupBase/Name'\n\nexport const MessagesSkeleton = forwardRef(function MessagesSkeleton(_props, ref) {\n return (\n <MessagesGroupBase\n // @ts-ignore-next-line\n ref={ref}\n >\n <Avatar\n fallback={<Flex />}\n size=\"1\"\n className=\"animate-pulse\"\n />\n\n <Box\n pb=\"3\"\n >\n <Name>\n <Skeleton\n height=\"1\"\n className=\"w-[128px]\"\n />\n </Name>\n\n <Skeleton\n height=\"2\"\n className=\"w-[256px]\"\n />\n\n <Skeleton\n height=\"2\"\n className=\"w-[256px] mt-2\"\n />\n\n <Skeleton\n height=\"2\"\n className=\"w-[256px] mt-2\"\n />\n </Box>\n </MessagesGroupBase>\n )\n})\n","import { Flex } from '@radix-ui/themes'\n\ntype Props = {\n height: string\n className: string\n}\n\nexport const Skeleton = ({\n className,\n ...rest\n}: Props) => (\n // @ts-ignore-next-line\n <Flex\n className={`animate-pulse rounded-3 bg-gray-5 ${className}`}\n {...rest}\n />\n)\n","import { forwardRef } from 'react'\nimport {\n Flex,\n Container,\n} from '@radix-ui/themes'\n\ntype Args = {\n children: React.ReactNode\n}\n\nexport const MessagesGroupBase = forwardRef(function MessagesGroupBase({\n children,\n}: Args, ref) {\n return (\n <Container\n // @ts-ignore-next-line\n ref={ref}\n size=\"2\"\n grow=\"0\"\n >\n <Flex\n shrink=\"0\"\n gap=\"3\"\n >\n {children}\n </Flex>\n </Container>\n )\n})\n","import {\n Flex,\n Text,\n} from '@radix-ui/themes'\n\ntype Args = {\n children: React.ReactNode\n}\n\nexport const Name = ({\n children,\n}: Args) => (\n <Flex\n height=\"5\"\n align=\"center\"\n >\n <Text\n size=\"2\"\n weight=\"bold\"\n >\n {children}\n </Text>\n </Flex>\n)\n","import { useMemo } from 'react'\nimport {\n useInfiniteQuery,\n InfiniteData,\n UseInfiniteQueryOptions,\n} from '@tanstack/react-query'\nimport { Message, MessagesPage } from '@/types'\nimport { queryOptions as defaultQueryOptions } from './lib/queryOptions'\n\ntype Args = {\n messagesQueryOptions: UseInfiniteQueryOptions<InfiniteData<MessagesPage>>\n}\n\nconst messages = ({\n props,\n}: {\n props: {\n data: InfiniteData<MessagesPage> | undefined\n },\n}) => {\n if (!props.data) return []\n\n return props.data.pages.reduce<Message[]>((acc, page) => (\n acc.concat(page.data)\n ), [])\n}\n\n\nexport const useMessages = ({\n messagesQueryOptions,\n}: Args) => {\n const props = useInfiniteQuery({\n ...defaultQueryOptions,\n ...messagesQueryOptions,\n })\n\n return useMemo(() => ({\n ...props,\n messages: messages({ props }),\n }), [props])\n}\n","import { MessagesPage } from '@/types'\n// import { queryFn } from './queryFn'\nimport { queryKey } from './queryKey'\n\nexport const queryOptions = {\n queryKey: queryKey(),\n // queryFn: ({\n // pageParam,\n // }: { pageParam?: string }) => (\n // queryFn({\n // ...(pageParam ? { cursor: pageParam } : {}),\n // })\n // ),\n initialPageParam: undefined,\n getNextPageParam: (lastPage: MessagesPage) => {\n if (!lastPage.hasNextPage) return null\n\n return lastPage.lastId\n },\n}\n","import {\n UseInfiniteQueryOptions,\n UseMutationOptions,\n InfiniteData,\n} from '@tanstack/react-query'\nimport { useEffect } from 'react'\nimport { useLatestMessage } from '@/hooks/messages/useLatestMessage'\nimport { useLatestRun } from '@/hooks/runs/useLatestRun'\nimport { useCreateRun } from '@/hooks/runs/useCreateRun'\nimport { isOptimistic } from '@/lib/optimistic/isOptimistic'\nimport { MessagesPage, RunsPage, Run } from '@/types'\n\ntype Args = {\n messagesQueryOptions: UseInfiniteQueryOptions<InfiniteData<MessagesPage>>\n runsQueryOptions: UseInfiniteQueryOptions<InfiniteData<RunsPage>>\n createRunMutationOptions: UseMutationOptions<{ run: Run }>\n}\n\nexport const useManageRuns = ({\n messagesQueryOptions,\n runsQueryOptions,\n createRunMutationOptions,\n}: Args) => {\n const latestRunProps = useLatestRun({\n runsQueryOptions,\n })\n\n const latestMessageProps = useLatestMessage({\n messagesQueryOptions,\n })\n\n const createRunProps = useCreateRun({\n createRunMutationOptions,\n })\n\n useEffect(() => {\n if (createRunProps.isPending) return\n if (latestRunProps.isFetching) return\n if (latestMessageProps.isFetching) return\n\n if (!latestMessageProps.latestMessage) return\n if (latestMessageProps.latestMessage.role !== 'user') return\n if (isOptimistic({ id: latestMessageProps.latestMessage.id })) return\n\n if (!latestRunProps.latestRun || (latestMessageProps.latestMessage.created_at > latestRunProps.latestRun.created_at)) {\n createRunProps.createRun()\n }\n }, [\n createRunProps,\n latestRunProps,\n latestMessageProps,\n ])\n\n return null\n}\n","import {\n UseInfiniteQueryOptions,\n InfiniteData,\n} from '@tanstack/react-query'\nimport { useMemo } from 'react'\nimport { useMessages } from '@/hooks/messages/useMessages'\nimport { MessagesPage } from '@/types'\n\ntype Args = {\n messagesQueryOptions: UseInfiniteQueryOptions<InfiniteData<MessagesPage>>\n}\n\nexport const useLatestMessage = (args: Args) => {\n const props = useMessages(args)\n\n return useMemo(() => ({\n ...props,\n latestMessage: props.messages[0] || null,\n }), [props])\n}\n","import {\n UseInfiniteQueryOptions,\n InfiniteData,\n} from '@tanstack/react-query'\nimport { useMemo } from 'react'\nimport { useRuns } from '@/hooks/runs/useRuns'\nimport { RunsPage } from '@/types'\n\ntype Args = {\n runsQueryOptions: UseInfiniteQueryOptions<InfiniteData<RunsPage>>\n}\n\nexport const useLatestRun = (args: Args) => {\n const props = useRuns(args)\n\n return useMemo(() => ({\n ...props,\n latestRun: props.runs[0],\n }), [props])\n}\n","import { useMemo } from 'react'\nimport {\n useInfiniteQuery,\n UseInfiniteQueryOptions,\n InfiniteData,\n} from '@tanstack/react-query'\nimport { queryOptions as defaultQueryOptions } from './lib/queryOptions'\nimport { getRuns } from './lib/getRuns'\nimport { RunsPage } from '@/types'\n\ntype Args = {\n runsQueryOptions: UseInfiniteQueryOptions<InfiniteData<RunsPage>>\n}\n\nexport const useRuns = ({\n runsQueryOptions,\n}: Args) => {\n const props = useInfiniteQuery({\n ...defaultQueryOptions,\n ...runsQueryOptions,\n })\n\n return useMemo(() => ({\n ...props,\n runs: getRuns({ data: props.data }),\n }), [props])\n}\n","import _ from 'lodash'\nimport { RunsPage } from '@/types'\nimport { queryKey } from './queryKey'\n\nexport const queryOptions = {\n queryKey: queryKey(),\n // queryFn: ({\n // pageParam,\n // }: { pageParam?: string }) => (\n // queryFn({\n // assistantConversationId,\n // })\n // ),\n initialPageParam: undefined,\n getNextPageParam: (lastPage: RunsPage) => {\n if (!lastPage.hasNextPage) return null\n\n return lastPage.lastId\n },\n limit: 10,\n}\n","import { InfiniteData } from '@tanstack/react-query'\nimport { RunsPage, Run } from '@/types'\n\ntype Args = {\n data: InfiniteData<RunsPage> | undefined\n}\n\nexport const getRuns = ({\n data,\n}: Args) => {\n if (!data) return []\n\n return data.pages.reduce<Run[]>((acc, page) => (\n acc.concat(page.data)\n ), [])\n}\n","import {\n useMutation,\n useQueryClient,\n UseMutationOptions,\n} from '@tanstack/react-query'\nimport { mutationOptions } from './lib/mutationOptions'\nimport { Run } from '@/types'\n\ntype Args = {\n createRunMutationOptions: UseMutationOptions<{ run: Run }>\n}\n\nexport const useCreateRun = ({\n createRunMutationOptions,\n}: Args) => {\n const queryClient = useQueryClient()\n\n // @ts-ignore-next-line\n const mutationProps = useMutation({\n ...mutationOptions({\n queryClient,\n }),\n ...createRunMutationOptions,\n })\n\n return {\n ...mutationProps,\n createRun: mutationProps.mutate,\n }\n}\n","import { queryKey as runsQueryKey } from '@/hooks/runs/useRuns/lib/queryOptions/queryKey'\nimport { Response } from './mutationFn'\n\ntype Args = {\n queryClient: any\n}\n\nexport const onSuccess = ({\n queryClient,\n}: Args) => (response: Response) => (\n queryClient.setQueryData(\n runsQueryKey(),\n (prevData: any) => {\n if (!prevData) {\n return {\n pageParams: [],\n pages: [\n {\n data: [response.run],\n hasNextPage: false,\n lastId: response.run.id,\n },\n ],\n }\n }\n\n const [latestPage, ...pagesRest] = prevData.pages\n\n return {\n ...prevData,\n pages: [\n {\n ...latestPage,\n data: [\n response.run,\n ...latestPage.data,\n ],\n },\n ...pagesRest,\n ],\n }\n }\n )\n)\n","import { queryKey as messagesQueryKey } from '@/hooks/messages/useMessages/lib/queryOptions/queryKey'\nimport { queryKey as runsQueryKey } from '@/hooks/runs/useRuns/lib/queryOptions/queryKey'\nimport { Response } from './mutationFn'\n\ntype Args = {\n queryClient: any\n}\n\nexport const onSettled = ({\n queryClient,\n}: Args) => (response: Response | undefined) => {\n if (!response) {\n throw new Error('useCreateRun onSettled: response is undefined')\n }\n\n queryClient.invalidateQueries({\n queryKey: messagesQueryKey(),\n })\n queryClient.invalidateQueries({\n queryKey: runsQueryKey(),\n })\n}\n","import { QueryClient } from '@tanstack/react-query'\n// import { mutationFn } from './mutationFn'\nimport { onSuccess } from './onSuccess'\nimport { onSettled } from './onSettled'\n\ntype Args = {\n queryClient: QueryClient\n}\n\nexport const mutationOptions = ({\n queryClient,\n}: Args) => ({\n // mutationFn,\n onSuccess: onSuccess({ queryClient }),\n onSettled: onSettled({ queryClient }),\n})\n","import _ from 'lodash'\n\ntype Args = {\n id: string\n}\n\nexport const isOptimistic = ({\n id,\n}: Args) => (\n _.startsWith(id, '-')\n)\n","import {\n useQueryClient,\n UseInfiniteQueryOptions,\n InfiniteData,\n} from '@tanstack/react-query'\nimport { useIsRunActive } from '@/hooks/runs/useIsRunActive'\nimport { useInterval } from 'react-use'\nimport { refetch } from './lib/refetch'\nimport { MessagesPage, RunsPage } from '@/types'\n\ntype Args = {\n messagesQueryOptions: UseInfiniteQueryOptions<InfiniteData<MessagesPage>>\n runsQueryOptions: UseInfiniteQueryOptions<InfiniteData<RunsPage>>\n}\n\nexport const usePolling = ({\n messagesQueryOptions,\n runsQueryOptions,\n}: Args) => {\n const queryClient = useQueryClient()\n\n const isRunActiveProps = useIsRunActive({\n messagesQueryOptions,\n runsQueryOptions,\n })\n\n useInterval(() => {\n refetch({\n queryClient,\n latestRun: isRunActiveProps.latestRun,\n })\n\n console.log('poll refetched')\n },\n isRunActiveProps.isRunActive ? 3000 : null\n )\n\n return null\n}\n","import {\n UseInfiniteQueryOptions,\n InfiniteData,\n} from '@tanstack/react-query'\nimport { useMemo } from 'react'\nimport { useIsMutating } from '@tanstack/react-query'\nimport { useLatestRun } from '@/hooks/runs/useLatestRun'\nimport { useLatestMessage } from '@/hooks/messages/useLatestMessage'\nimport { isRunEditingMessage } from '@/lib/runs/isRunEditingMessage'\nimport { MessagesPage, RunsPage } from '@/types'\n\ntype Args = {\n messagesQueryOptions: UseInfiniteQueryOptions<InfiniteData<MessagesPage>>\n runsQueryOptions: UseInfiniteQueryOptions<InfiniteData<RunsPage>>\n}\n\nconst statuses = [\n 'queued',\n // 'completed',\n 'in_progress',\n 'cancelling',\n 'requires_action',\n]\n\nconst isRunActive = ({\n latestRunProps,\n latestMessageProps,\n isMutating,\n}: {\n latestRunProps: ReturnType<typeof useLatestRun>,\n latestMessageProps: ReturnType<typeof useLatestMessage>,\n isMutating: number,\n}) => {\n // @ts-ignore-next-line\n if (latestMessageProps.latestMessage?.metadata?.isBlocking) return false\n if (isMutating > 0) return true\n if (!latestRunProps.latestRun) return false\n if (statuses.includes(latestRunProps.latestRun.status)) return true\n\n return isRunEditingMessage({ message: latestMessageProps.latestMessage })\n}\n\nexport const useIsRunActive = ({\n messagesQueryOptions,\n runsQueryOptions,\n}: Args) => {\n const latestRunProps = useLatestRun({\n runsQueryOptions,\n })\n\n const latestMessageProps = useLatestMessage({\n messagesQueryOptions,\n })\n\n const isMutating = useIsMutating()\n\n return useMemo(() => ({\n ...latestRunProps,\n isRunActive: isRunActive({\n latestRunProps,\n latestMessageProps,\n isMutating,\n }),\n }), [latestRunProps, latestMessageProps, isMutating])\n}\n","import OpenAI from 'openai'\nimport _ from 'lodash'\n\ntype Args = {\n message: OpenAI.Beta.Threads.ThreadMessage\n}\n\nexport const isRunEditingMessage = ({\n message,\n}: Args) => {\n if (!message) return false\n if (message.role === 'user') return false\n if (!message.run_id) return false\n\n const hasContent = _.some(message.content, (content) => (\n content.type !== 'text' ||\n (content.type === 'text' && content.text?.value !== '')\n ))\n\n return !hasContent\n}\n","import { Run } from '@/types'\nimport { queryKey as messagesQueryKey } from '@/hooks/messages/useMessages/lib/queryOptions/queryKey'\nimport { queryKey as runsQueryKey } from '@/hooks/runs/useRuns/lib/queryOptions/queryKey'\n\ntype Args = {\n queryClient: any\n latestRun: Run\n}\n\nexport const refetch = async ({\n queryClient,\n latestRun,\n}: Args) => {\n await queryClient.invalidateQueries({\n queryKey: messagesQueryKey(),\n })\n await queryClient.invalidateQueries({\n queryKey: runsQueryKey(),\n })\n}\n","import {\n UseInfiniteQueryOptions,\n InfiniteData,\n UseMutationOptions,\n} from '@tanstack/react-query'\nimport { useEffect } from 'react'\nimport { useLatestRun } from '@/hooks/runs/useLatestRun'\nimport { useHandleAction } from '@/hooks/actions/useHandleAction'\nimport { RunsPage, Run } from '@/types'\n\ntype Args = {\n runsQueryOptions: UseInfiniteQueryOptions<InfiniteData<RunsPage>>\n handleActionMutationOptions: UseMutationOptions<{ run: Run }>\n}\n\nexport const useManageActions = ({\n runsQueryOptions,\n handleActionMutationOptions,\n}: Args) => {\n const latestRunProps = useLatestRun({\n runsQueryOptions,\n })\n\n const handleActionProps = useHandleAction({\n handleActionMutationOptions,\n })\n\n useEffect(() => {\n if (handleActionProps.isPending) return\n if (latestRunProps.isFetching) return\n if (!latestRunProps.latestRun) return\n if (latestRunProps.latestRun.status !== 'requires_action') return\n\n console.log('requires action', {\n latestRunProps,\n })\n\n // @ts-ignore-next-line\n handleActionProps.handleAction({ latestRun: latestRunProps.latestRun })\n }, [handleActionProps, latestRunProps])\n\n return null\n}\n","import {\n useMutation,\n useQueryClient,\n UseMutationOptions,\n} from '@tanstack/react-query'\nimport { mutationOptions } from './lib/mutationOptions'\nimport { Run } from '@/types'\n\ntype Args = {\n handleActionMutationOptions: UseMutationOptions<{ run: Run }>\n}\n\nexport const useHandleAction = ({\n handleActionMutationOptions,\n}: Args) => {\n const queryClient = useQueryClient()\n\n // @ts-ignore-next-line\n const mutationProps = useMutation({\n ...mutationOptions({\n queryClient,\n }),\n ...handleActionMutationOptions,\n })\n\n return {\n ...mutationProps,\n handleAction: mutationProps.mutate,\n }\n}\n","import { queryKey as messagesQueryKey } from '@/hooks/messages/useMessages/lib/queryOptions/queryKey'\nimport { queryKey as runsQueryKey } from '@/hooks/runs/useRuns/lib/queryOptions/queryKey'\nimport { Response } from './mutationFn'\n\ntype Args = {\n queryClient: any\n}\n\nexport const onSettled = ({\n queryClient,\n}: Args) => (response: Response | undefined) => {\n if (!response) {\n throw new Error('useHandleAction onSettled: response is undefined')\n }\n\n queryClient.invalidateQueries({\n queryKey: messagesQueryKey(),\n })\n queryClient.invalidateQueries({\n queryKey: runsQueryKey(),\n })\n}\n","import { QueryClient } from '@tanstack/react-query'\n// import { mutationFn } from './mutationFn'\nimport { onSettled } from './onSettled'\n\ntype Args = {\n queryClient: QueryClient\n}\n\nexport const mutationOptions = ({\n queryClient,\n}: Args) => ({\n // mutationFn,\n onSettled: onSettled({ queryClient }),\n})\n","import {\n UseInfiniteQueryOptions,\n UseMutationOptions,\n InfiniteData,\n} from '@tanstack/react-query'\nimport { useManageRuns } from '@/hooks/runs/useManageRuns'\nimport { usePolling } from '@/hooks/runs/usePolling'\nimport { useManageActions } from '@/hooks/actions/useManageActions'\nimport { MessagesPage, RunsPage, Run } from '@/types'\n\ntype Args = {\n messagesQueryOptions: UseInfiniteQueryOptions<InfiniteData<MessagesPage>>\n runsQueryOptions: UseInfiniteQueryOptions<InfiniteData<RunsPage>>\n createRunMutationOptions: UseMutationOptions<{ run: Run }>\n handleActionMutationOptions: UseMutationOptions<{ run: Run }>\n}\n\nexport const useThreadLifecycles = ({\n messagesQueryOptions,\n runsQueryOptions,\n createRunMutationOptions,\n handleActionMutationOptions,\n}: Args) => {\n useManageRuns({\n messagesQueryOptions,\n runsQueryOptions,\n createRunMutationOptions,\n })\n\n useManageActions({\n runsQueryOptions,\n handleActionMutationOptions,\n })\n\n usePolling({\n messagesQueryOptions,\n runsQueryOptions,\n })\n\n return null\n}\n","import { useMemo } from 'react'\nimport { messageGroups as getMessageGroups } from './lib/messageGroups'\nimport { Message } from '@/types'\n\ntype Args = {\n messages: Message[]\n}\n\nexport const useMessageGroups = ({\n messages,\n}: Args) => (\n useMemo(\n () => ({\n messageGroups: getMessageGroups({ messages }),\n }),\n [messages]\n )\n)\n","import _ from 'lodash'\nimport { last } from 'radash'\nimport { Message, MessageGroup } from '@/types'\nimport { order } from '@/lib/messages/order'\nimport { newGroup } from './newGroup'\n\ntype Args = {\n messages: Message[]\n}\n\nexport const messageGroups = ({\n messages,\n}: Args) =>\n _.reduce(\n order({ messages }),\n (groups: MessageGroup[], message: Message) => {\n const group = last(groups)\n\n if (!group) return newGroup({ groups, message })\n\n if (group.role !== message.role) {\n return newGroup({\n groups,\n message,\n })\n }\n\n return [\n ..._.dropRight(groups),\n {\n ...group,\n messages: [...group.messages, message],\n },\n ]\n },\n []\n )\n","import { sort } from 'radash'\nimport { Message } from '@/types'\n\ntype Args = {\n messages: Message[]\n}\n\nexport const order = ({ messages }: Args) =>\n sort(messages, m => m.created_at, true)\n","import { Message } from '@/types'\n\ntype Args = {\n message: Message\n}\n\nexport const newGroupItem = ({ message }: Args) => ({\n id: message.id,\n role: message.role,\n createdAt: message.created_at,\n messages: [message],\n})\n","import { Message, MessageGroup } from '@/types'\nimport { newGroupItem } from './newGroupItem'\n\ntype Args = {\n groups: MessageGroup[]\n message: Message\n}\n\nexport const newGroup = ({ groups, message }: Args) => [\n ...groups,\n newGroupItem({\n message,\n }),\n]\n","import { useContext } from 'react'\nimport {\n Box,\n Avatar,\n} from '@radix-ui/themes'\nimport {\n PersonIcon,\n} from '@radix-ui/react-icons'\nimport { MessagesGroupBase } from '@/components/messageGroups/MessagesGroupBase'\nimport { Name } from '@/components/messageGroups/MessagesGroupBase/Name'\nimport { AssistantAvatar } from '@/components/messageGroups/MessagesGroupBase/AssistantAvatar'\nimport { AssistantNameContext } from '@/contexts/assistants/AssistantNameContext'\nimport { MessageGroup as MessageGroupType } from '@/types'\nimport { Content } from './Content'\n\ntype Args = {\n messageGroup: MessageGroupType\n}\n\nexport const MessageGroup = ({\n messageGroup,\n}: Args) => {\n const assistantNameContext = useContext(AssistantNameContext)\n\n return (\n <MessagesGroupBase>\n {messageGroup.role === 'user' ? (\n <Avatar\n fallback={<PersonIcon />}\n size=\"1\"\n />\n ) : (\n <AssistantAvatar />\n )}\n\n <Box>\n <Name>\n {messageGroup.role === 'user' ? 'You' : assistantNameContext}\n </Name>\n\n <Content\n messageGroup={messageGroup}\n />\n </Box>\n </MessagesGroupBase>\n )\n}\n","import { useContext } from 'react'\nimport {\n Flex,\n} from '@radix-ui/themes'\nimport { AssistantAvatarContext } from '@/contexts/avatars/AssistantAvatarContext'\n\nexport const AssistantAvatar = () => {\n const AssistantAvatarContextValue = useContext(AssistantAvatarContext)\n\n return (\n <Flex\n shrink=\"0\"\n className=\"rounded-3 overflow-hidden h-[24px] w-[24px]\"\n >\n {AssistantAvatarContextValue}\n </Flex>\n )\n}\n","import { createContext } from 'react'\nimport {\n Avatar,\n} from '@radix-ui/themes'\nimport {\n LightningBoltIcon,\n} from '@radix-ui/react-icons'\n\nexport const AssistantAvatarContext = createContext(\n <Avatar\n fallback={<LightningBoltIcon />}\n size=\"1\"\n />\n)\n","import { createContext } from 'react'\n\nexport const AssistantNameContext = createContext('Assistant')\n","import { Flex } from '@radix-ui/themes'\nimport { MessageGroup } from '@/types'\nimport { Message } from '@/components/messages/Message'\n\ntype Args = {\n messageGroup: MessageGroup\n}\n\nexport const Content = ({\n messageGroup,\n}: Args) => (\n <Flex\n direction=\"column-reverse\"\n >\n {messageGroup.messages.map((message) => (\n <Message\n key={message.id}\n message={message}\n />\n ))}\n </Flex>\n)\n","import _ from 'lodash'\nimport { useMemo } from 'react'\nimport {\n Box,\n} from '@radix-ui/themes'\nimport { Message as MessageType } from '@/types'\nimport { RunSteps } from '@/components/runSteps/RunSteps'\nimport { TextContent } from './TextContent'\n\ntype Args = {\n message: MessageType\n}\n\nexport const Message = ({\n message,\n}: Args) => {\n const [olderRunSteps, laterRunSteps] = useMemo(() => {\n if (!message.runSteps.length) return [[], []]\n\n const messageCreationRunStepIndex = message.runSteps.findIndex((runStep) => {\n if (runStep.step_details.type !== 'message_creation') return\n\n return runStep.step_details.message_creation.message_id === message.id\n })\n\n let nextRunStepIndex = message.runSteps.slice(0, messageCreationRunStepIndex).findLastIndex((runStep) => (\n runStep.step_details.type === 'message_creation'\n ))\n if (nextRunStepIndex === -1) {\n nextRunStepIndex = 0\n }\n const laterRunSteps = message.runSteps.slice(nextRunStepIndex, messageCreationRunStepIndex)\n\n const prevRunStepIndex = message.runSteps.slice(messageCreationRunStepIndex + 1).findIndex((runStep) => (\n runStep.step_details.type === 'message_creation'\n ))\n\n let olderRunSteps\n\n if (prevRunStepIndex === -1) {\n olderRunSteps = message.runSteps.slice(messageCreationRunStepIndex + 1)\n } else {\n olderRunSteps = message.runSteps.slice(messageCreationRunStepIndex + 1, messageCreationRunStepIndex + prevRunStepIndex)\n }\n\n return [olderRunSteps, laterRunSteps]\n\n }, [message])\n\n return (\n <Box>\n <RunSteps\n runSteps={olderRunSteps}\n />\n\n {message.content.map((content, index) => (\n <Box\n key={index}\n >\n {content.type === 'text' && (\n <TextContent content={content} />\n )}\n </Box>\n ))}\n\n <RunSteps\n runSteps={laterRunSteps}\n />\n </Box>\n )\n}\n","import OpenAI from 'openai'\nimport { Flex } from '@radix-ui/themes'\nimport { RunStep } from '@/components/runSteps/RunStep'\n\ntype Args = {\n runSteps: OpenAI.Beta.Threads.Runs.RunStep[]\n}\n\nexport const RunSteps = ({\n runSteps,\n}: Args) => (\n <Flex\n direction=\"column-reverse\"\n >\n {runSteps.map((runStep) => (\n <RunStep\n key={runStep.id}\n runStep={runStep}\n />\n ))}\n </Flex>\n)\n","import OpenAI from 'openai'\nimport {\n Flex,\n} from '@radix-ui/themes'\nimport { ToolCall } from './ToolCall'\nimport { Starting } from './Starting'\n\ntype Args = {\n stepDetails: OpenAI.Beta.Threads.Runs.ToolCallsStepDetails\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}\n\nexport const ToolCalls = ({\n stepDetails,\n runStep,\n}: Args) => (\n <Flex\n direction=\"column\"\n >\n {!stepDetails.tool_calls.length && (\n <Starting />\n )}\n {stepDetails.tool_calls.map((toolCall) => (\n <ToolCall\n key={toolCall.id}\n toolCall={toolCall}\n runStep={runStep}\n />\n ))}\n </Flex>\n)\n","import OpenAI from 'openai'\nimport {\n Flex,\n} from '@radix-ui/themes'\nimport { Fn } from './Fn'\nimport { CodeInterpreter } from './CodeInterpreter'\n\ntype ToolCall = OpenAI.Beta.Threads.Runs.CodeToolCall\n | OpenAI.Beta.Threads.Runs.RetrievalToolCall\n | OpenAI.Beta.Threads.Runs.FunctionToolCall\n\ntype Args = {\n toolCall: ToolCall\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}\n\nexport const ToolCall = ({\n toolCall,\n runStep,\n}: Args) => {\n if (toolCall.type === 'function') {\n return (\n <Fn\n fn={toolCall.function}\n runStep={runStep}\n />\n )\n }\n\n if (toolCall.type === 'code_interpreter') {\n return (\n <CodeInterpreter\n codeInterpreter={toolCall.code_interpreter}\n runStep={runStep}\n />\n )\n }\n\n return (\n <Flex>\n {toolCall.type}\n </Flex>\n )\n}\n","import OpenAI from 'openai'\nimport {\n PopoverRoot,\n PopoverContent,\n} from '@radix-ui/themes'\nimport { ToolCallBase } from '@/components/toolCalls/ToolCallBase'\nimport { ToolCallTitle } from '@/components/toolCalls/ToolCallBase/ToolCallTitle'\nimport { Icon } from '../Icon'\nimport { Content } from '../Content'\nimport { Title } from './Title'\n\ntype Args = {\n fn: OpenAI.Beta.Threads.Runs.FunctionToolCall.Function\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}\n\nexport const Availabilities = ({\n fn,\n runStep,\n}: Args) => (\n <PopoverRoot>\n <ToolCallBase>\n <Icon runStep={runStep} />\n <ToolCallTitle>\n <Title runStep={runStep} />\n </ToolCallTitle>\n </ToolCallBase>\n <PopoverContent\n className=\"max-h-[500px]\"\n >\n <Content fn={fn} />\n </PopoverContent>\n </PopoverRoot>\n)\n","import { forwardRef } from 'react'\nimport {\n Flex,\n Button,\n PopoverTrigger\n} from '@radix-ui/themes'\n\ntype Args = {\n children: React.ReactNode\n}\n\nexport const ToolCallBase = forwardRef(function ToolCallBase({\n children,\n}: Args, ref) {\n return (\n <Flex\n py=\"1\"\n ml=\"-2\"\n >\n <PopoverTrigger>\n <Button\n size=\"1\"\n color=\"gold\"\n variant=\"outline\"\n style={{\n boxShadow: 'none',\n }}\n >\n {children}\n </Button>\n </PopoverTrigger>\n </Flex>\n )\n})\n","import {\n Text,\n} from '@radix-ui/themes'\n\ntype Args = {\n children: React.ReactNode\n}\n\nexport const ToolCallTitle = ({\n children,\n}: Args) => (\n <Text\n weight=\"regular\"\n >\n {children}\n </Text>\n)\n","import OpenAI from 'openai'\nimport {\n CircleIcon,\n CircleBackslashIcon,\n CheckCircledIcon,\n} from '@radix-ui/react-icons'\n\ntype Args = {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}\n\nexport const Icon = ({\n runStep,\n}: Args) => {\n if (runStep.completed_at) {\n return (\n <CheckCircledIcon />\n )\n } else if (runStep.cancelled_at) {\n return (\n <CircleBackslashIcon />\n )\n } else {\n return (\n <CircleIcon />\n )\n }\n}\n","import { useMemo } from 'react'\nimport { Code, Box } from '@radix-ui/themes'\nimport OpenAI from 'openai'\n\ntype Args = {\n fn: OpenAI.Beta.Threads.Runs.FunctionToolCall.Function\n}\n\nexport const Content = ({\n fn,\n}: Args) => {\n const args = useMemo(() => {\n let result = null\n\n try {\n result = JSON.parse(fn.arguments)\n } catch (error) {\n console.error(error)\n }\n\n return result\n }, [fn])\n\n const output = useMemo(() => {\n if (!fn.output) {\n return null\n }\n\n let result = null\n\n try {\n result = JSON.parse(fn.output)\n } catch (error) {\n console.error(error)\n }\n\n return result\n }, [fn])\n\n if (!args) {\n return null\n }\n\n return (\n <Code\n variant=\"ghost\"\n color=\"gold\"\n className=\"whitespace-pre break-words\"\n >\n <Box>\n {args && JSON.stringify(args, null, 2)}\n </Box>\n <Box>\n {output && JSON.stringify(output, null, 2)}\n </Box>\n </Code>\n )\n}\n","import OpenAI from 'openai'\n\ntype Args = {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}\n\nexport const Title = ({\n runStep,\n}: Args) => {\n if (runStep.completed_at) {\n return (\n <>\n Finished getting domains availability\n </>\n )\n } else if (runStep.cancelled_at) {\n return (\n <>\n Cancelled getting domains availability\n </>\n )\n } else {\n return (\n <>\n Getting domains availability\n </>\n )\n }\n}\n","import OpenAI from 'openai'\nimport {\n PopoverRoot,\n PopoverContent,\n} from '@radix-ui/themes'\nimport { ToolCallBase } from '@/components/toolCalls/ToolCallBase'\nimport { ToolCallTitle } from '@/components/toolCalls/ToolCallBase/ToolCallTitle'\nimport { Icon } from '../Icon'\nimport { Content } from '../Content'\nimport { Title } from './Title'\n\ntype Args = {\n fn: OpenAI.Beta.Threads.Runs.FunctionToolCall.Function\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}\n\nexport const Scores = ({\n fn,\n runStep,\n}: Args) => (\n <PopoverRoot>\n <ToolCallBase>\n <Icon runStep={runStep} />\n <ToolCallTitle>\n <Title runStep={runStep} />\n </ToolCallTitle>\n </ToolCallBase>\n <PopoverContent\n className=\"max-h-[500px]\"\n >\n <Content fn={fn} />\n </PopoverContent>\n </PopoverRoot>\n)\n","import OpenAI from 'openai'\n\ntype Args = {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}\n\nexport const Title = ({\n runStep,\n}: Args) => {\n if (runStep.completed_at) {\n return (\n <>\n Finished getting domains scores\n </>\n )\n } else if (runStep.cancelled_at) {\n return (\n <>\n Cancelled getting domains scores\n </>\n )\n } else {\n return (\n <>\n Getting domains scores\n </>\n )\n }\n}\n","import OpenAI from 'openai'\nimport { Availabilities } from './Availabilities'\nimport { Scores } from './Scores'\n\ntype Args = {\n fn: OpenAI.Beta.Threads.Runs.FunctionToolCall.Function\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}\n\nexport const Fn = ({\n fn,\n runStep,\n}: Args) => {\n if (fn.name === 'getAvailabilities') {\n return (\n <Availabilities\n fn={fn}\n runStep={runStep}\n />\n )\n } else if (fn.name === 'getScores') {\n return (\n <Scores\n fn={fn}\n runStep={runStep}\n />\n )\n }\n\n return null\n}\n","import OpenAI from 'openai'\nimport {\n Flex,\n} from '@radix-ui/themes'\n\ntype Args = {\n codeInterpreter: OpenAI.Beta.Threads.Runs.CodeToolCall.CodeInterpreter\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}\n\nexport const CodeInterpreter = ({\n codeInterpreter,\n}: Args) => (\n <Flex>\n {codeInterpreter.input}\n </Flex>\n)\n","import {\n PopoverRoot,\n PopoverContent,\n Text,\n} from '@radix-ui/themes'\nimport {\n CircleIcon,\n} from '@radix-ui/react-icons'\nimport { ToolCallBase } from '@/components/toolCalls/ToolCallBase'\nimport { ToolCallTitle } from '@/components/toolCalls/ToolCallBase/ToolCallTitle'\n\nexport const Starting = () => (\n <PopoverRoot>\n <ToolCallBase>\n <CircleIcon />\n <ToolCallTitle>\n Starting actions\n </ToolCallTitle>\n </ToolCallBase>\n <PopoverContent\n className=\"max-h-[500px]\"\n >\n <Text>\n Getting ready to connect to domain API\n </Text>\n </PopoverContent>\n </PopoverRoot>\n)\n","import OpenAI from 'openai'\nimport { ToolCalls } from './ToolCalls'\n\ntype Args = {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}\n\nexport const RunStep = ({\n runStep,\n}: Args) => {\n if (runStep.step_details.type === 'tool_calls') {\n return (\n <ToolCalls\n stepDetails={runStep.step_details}\n runStep={runStep}\n />\n )\n }\n\n return null\n}\n","import { useContext } from 'react'\nimport OpenAI from 'openai'\nimport Markdown from 'react-markdown'\nimport { MarkdownContext } from '@/contexts/markdown/MarkdownContext'\n\ntype Args = {\n content: OpenAI.Beta.Threads.Messages.MessageContentText\n}\n\nexport const TextContent = ({\n content,\n}: Args) => {\n const markdownContext = useContext(MarkdownContext)\n\n return (\n <Markdown\n {...markdownContext}\n >\n {content.text.value}\n </Markdown>\n )\n}\n","import { createContext } from 'react'\nimport { components } from './lib/components'\n\nexport const MarkdownContext = createContext({\n remarkPlugins: [] as any[],\n components,\n})\n","import {\n Box,\n Text,\n} from '@radix-ui/themes'\n\nexport const Paragraph = ({ children }: JSX.IntrinsicElements['p']) => (\n <Box\n pb=\"3\"\n >\n <Text\n size=\"3\"\n className=\"whitespace-pre-line break-words\"\n >\n {children}\n </Text>\n </Box>\n)\n","import {\n Link as RadixLink,\n} from '@radix-ui/themes'\n\ntype Args = JSX.IntrinsicElements['a']\n\nexport const Link = ({ children, href }: Args) => (\n <RadixLink\n href={href}\n >\n {children}\n </RadixLink>\n)\n","import {\n Box,\n} from '@radix-ui/themes'\n\nexport const UnorderedList = ({ children }: JSX.IntrinsicElements['ul']) => (\n <Box\n pb=\"3\"\n asChild\n >\n <ul\n className=\"list-inside\"\n >\n {children}\n </ul>\n </Box>\n)\n","import {\n Box,\n} from '@radix-ui/themes'\n\nexport const OrderedList = ({ children }: JSX.IntrinsicElements['ul']) => (\n <Box\n pb=\"3\"\n asChild\n >\n <ol\n className=\"list-inside\"\n >\n {children}\n </ol>\n </Box>\n)\n","import {\n Box,\n} from '@radix-ui/themes'\n\nexport const ListItem = ({ children }: JSX.IntrinsicElements['li']) => (\n <Box\n pb=\"1\"\n >\n <li>\n {children}\n </li>\n </Box>\n)\n","import {\n Strong as RadixStrong,\n} from '@radix-ui/themes'\n\nexport const Strong = ({ children }: JSX.IntrinsicElements['strong']) => (\n <RadixStrong>\n {children}\n </RadixStrong>\n)\n","import { Components } from 'react-markdown'\nimport { Paragraph } from './Paragraph'\nimport { Link } from './Link'\nimport { UnorderedList } from './UnorderedList'\nimport { OrderedList } from './OrderedList'\nimport { ListItem } from './ListItem'\nimport { Strong } from './Strong'\n\nexport const components: Components = {\n p: Paragraph,\n a: Link,\n strong: Strong,\n ul: UnorderedList,\n ol: OrderedList,\n li: ListItem,\n}\n","import { useMessageGroups } from '@/hooks/messageGroups/useMessageGroups'\nimport { Message } from '@/types'\nimport { MessageGroup } from './MessageGroup'\n\ntype Args = {\n messages: Message[]\n}\n\nexport const Content = ({\n messages,\n}: Args) => {\n const { messageGroups } = useMessageGroups({\n messages,\n })\n\n return (\n <>\n {messageGroups.map((messageGroup) => (\n <MessageGroup\n key={messageGroup.id}\n messageGroup={messageGroup}\n />\n ))}\n </>\n )\n}\n","import { Box } from '@radix-ui/themes'\nimport { MessagesGroupBase } from '@/components/messageGroups/MessagesGroupBase'\nimport { StartingContentSkeleton } from '@/components/skeletons/StartingContentSkeleton'\nimport { StartingSkeleton } from '@/components/skeletons/StartingSkeleton'\nimport { Message } from '@/types'\n\ntype Args = {\n latestMessage: Message | null\n isRunActive: boolean\n}\n\nexport const ProgressMessage = ({\n latestMessage,\n isRunActive,\n}: Args) => {\n if (!latestMessage) return null\n if (!isRunActive) return null\n\n if (latestMessage.role === 'user') {\n return (\n <StartingSkeleton />\n )\n }\n\n return (\n <MessagesGroupBase>\n <Box pl=\"5\" />\n <StartingContentSkeleton />\n </MessagesGroupBase>\n )\n}\n","import {\n Box,\n} from '@radix-ui/themes'\n\nexport const StartingContentSkeleton = () => (\n <Box\n height=\"4\"\n width=\"4\"\n shrink=\"0\"\n mt=\"1\"\n className=\"animate-pulse bg-gray-12 rounded-3\"\n />\n)\n","import { useContext } from 'react'\nimport { Box } from '@radix-ui/themes'\nimport { StartingContentSkeleton } from '@/components/skeletons/StartingContentSkeleton'\nimport { MessagesGroupBase } from '@/components/messageGroups/MessagesGroupBase'\nimport { Name } from '@/components/messageGroups/MessagesGroupBase/Name'\nimport { AssistantAvatar } from '@/components/messageGroups/MessagesGroupBase/AssistantAvatar'\nimport { AssistantNameContext } from '@/contexts/assistants/AssistantNameContext'\n\ntype Args = {\n children?: React.ReactNode\n}\n\nexport const StartingSkeleton = ({\n children,\n}: Args) => {\n const assistantNameContext = useContext(AssistantNameContext)\n\n return (\n <MessagesGroupBase>\n <AssistantAvatar />\n\n <Box>\n <Name>\n {assistantNameContext}\n </Name>\n\n {children}\n\n <StartingContentSkeleton />\n </Box>\n </MessagesGroupBase>\n )\n}\n","import {\n UseInfiniteQueryOptions,\n UseMutationOptions,\n InfiniteData,\n} from '@tanstack/react-query'\nimport {\n Container,\n Flex,\n Text,\n} from '@radix-ui/themes'\nimport { useRef, useEffect, useMemo, useContext } from 'react'\nimport { useForm, SubmitHandler } from 'react-hook-form'\nimport { z } from 'zod'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { usePrevious } from 'react-use'\nimport { useIsRunActive } from '@/hooks/runs/useIsRunActive'\nimport { TextareaBase } from '@/components/textareas/TextareaBase'\nimport { useLatestMessage } from '@/hooks/messages/useLatestMessage'\nimport { useCreateMessage } from '@/hooks/messages/useCreateMessage'\nimport { AssistantNameContext } from '@/contexts/assistants/AssistantNameContext'\nimport { MessagesPage, RunsPage, Message } from '@/types'\nimport { Submit } from './Submit'\n\nexport const schema = z.object({\n content: z.string().min(1).max(300),\n})\n\ntype Args = {\n messagesQueryOptions: UseInfiniteQueryOptions<InfiniteData<MessagesPage>>\n runsQueryOptions: UseInfiniteQueryOptions<InfiniteData<RunsPage>>\n createMessageMutationOptions: UseMutationOptions<{ message: Message }>\n}\n\ntype Inputs = {\n content: string\n}\n\nexport const Form = ({\n messagesQueryOptions,\n runsQueryOptions,\n createMessageMutationOptions,\n}: Args) => {\n const {\n register,\n handleSubmit,\n formState: { errors, isSubmitting },\n reset,\n } = useForm<Inputs>({\n resolver: zodResolver(schema),\n })\n\n const { isRunActive } = useIsRunActive({\n messagesQueryOptions,\n runsQueryOptions,\n })\n\n const isLoading = useMemo(() => (\n isRunActive || isSubmitting\n ), [\n isRunActive,\n isSubmitting,\n ])\n\n const {\n createMessage,\n } = useCreateMessage({\n createMessageMutationOptions,\n })\n\n const onSubmit: SubmitHandler<Inputs> = async (data) => {\n reset()\n // @ts-ignore-next-line\n await createMessage({\n content: data.content,\n })\n }\n\n const { latestMessage } = useLatestMessage({\n messagesQueryOptions,\n })\n\n const isDisabled = useMemo(() => (\n // @ts-ignore-next-line\n latestMessage?.metadata?.isBlocking\n ), [latestMessage, isLoading])\n\n const isInputDisabled = useMemo(() => (\n isLoading || isDisabled || false\n ), [isLoading, isDisabled])\n\n const isInputDisabledPrevious = usePrevious(isInputDisabled)\n\n const textareaRef = useRef<HTMLTextAreaElement>(null)\n const textareaProps = register('content')\n\n useEffect(() => {\n if (isInputDisabled) return\n if (!isInputDisabledPrevious) return\n if (!textareaRef.current) return\n\n textareaRef.current.focus()\n }, [isInputDisabled, isInputDisabledPrevious, textareaProps])\n\n const assistantNameContext = useContext(AssistantNameContext)\n\n return (\n <Container\n size=\"2\"\n px=\"2\"\n grow=\"0\"\n >\n <Flex\n direction=\"column\"\n shrink=\"0\"\n >\n <Flex\n direction=\"column\"\n shrink=\"0\"\n className=\"bg-gray-1\"\n pb=\"4\"\n >\n <form\n onSubmit={handleSubmit(onSubmit)}\n >\n <Flex\n className={`rounded-3 border-gray-5 border border-solid ${errors.content ? 'border-red-9 bg-red-2' : ''}`}\n p=\"2\"\n pl=\"4\"\n >\n <Text\n size=\"2\"\n className=\"grow\"\n >\n <Flex\n grow=\"1\"\n direction=\"column\"\n >\n <TextareaBase\n minRows={1}\n placeholder={`Message ${assistantNameContext}...`}\n disabled={isLoading || isDisabled}\n onKeyDown={(e: any) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n handleSubmit(onSubmit)()\n }\n }}\n autoFocus\n {...textareaProps}\n ref={(e: any) => {\n textareaProps.ref(e)\n // @ts-ignore-next-line\n textareaRef.current = e\n }}\n />\n </Flex>\n </Text>\n\n <Flex\n shrink=\"0\"\n align=\"end\"\n >\n <Submit\n isLoading={isLoading}\n isDisabled={isDisabled}\n />\n </Flex>\n </Flex>\n </form>\n </Flex>\n </Flex>\n </Container>\n )\n}\n","import { forwardRef } from 'react'\nimport TextareaAutosize from 'react-textarea-autosize'\n\nconst UPSCALE_RATIO = 16 / 14\n\ntype Props = React.ComponentProps<typeof TextareaAutosize>\n\nexport const TextareaBase = forwardRef(function TextareaBase(props: Props, ref) {\n return (\n <TextareaAutosize\n // @ts-ignore-next-line\n ref={ref}\n className=\"textarea-base\"\n style={{\n resize: 'none',\n fontSize: `${14 * UPSCALE_RATIO}px`,\n lineHeight: `${24 * UPSCALE_RATIO}px`,\n transform: `scale(${1 / UPSCALE_RATIO})`,\n margin: `0 ${(-100 * UPSCALE_RATIO + 100) / 2}%`,\n width: `${100 * UPSCALE_RATIO}%`,\n maxWidth: `${100 * UPSCALE_RATIO}%`,\n flexGrow: 1,\n display: 'flex',\n }}\n {...props}\n />\n )\n})\n","import {\n useMutation,\n useQueryClient,\n UseMutationOptions,\n} from '@tanstack/react-query'\nimport { mutationOptions } from './lib/mutationOptions'\nimport { Message } from '@/types'\n\ntype Args = {\n createMessageMutationOptions: UseMutationOptions<{ message: Message }>\n}\n\nexport const useCreateMessage = ({\n createMessageMutationOptions,\n}: Args) => {\n const queryClient = useQueryClient()\n\n // @ts-ignore-next-line\n const mutationProps = useMutation({\n ...mutationOptions({\n queryClient,\n }),\n ...createMessageMutationOptions,\n })\n\n return {\n ...mutationProps,\n createMessage: mutationProps.mutateAsync,\n }\n}\n","import OpenAI from 'openai'\nimport { optimisticId } from '@/lib/optimistic/optimisticId'\nimport { Args as NewMessageArgs } from '../mutationFn'\n\ntype Args = {\n newMessage: NewMessageArgs\n}\n\nexport const data = ({\n newMessage,\n}: Args) => (prevData: any) => {\n const message = {\n id: optimisticId(),\n role: 'user' as OpenAI.Beta.Threads.Messages.ThreadMessage['role'],\n created_at: +new Date(),\n object: 'thread.message' as OpenAI.Beta.Threads.Messages.ThreadMessage['object'],\n content: [\n {\n type: 'text',\n text: {\n annotations: [],\n value: newMessage.content,\n },\n } as OpenAI.Beta.Threads.Messages.MessageContentText,\n ],\n run_id: null,\n assistant_id: null,\n thread_id: null,\n file_ids: [],\n metadata: {},\n runSteps: [],\n }\n\n if (!prevData) {\n return {\n pageParams: [],\n pages: [\n {\n data: [message],\n hasNextPage: false,\n lastId: message.id,\n },\n ],\n }\n }\n\n const [latestPage, ...pagesRest] = prevData.pages\n\n return {\n ...prevData,\n pages: [\n {\n ...latestPage,\n data: [\n message,\n ...latestPage.data,\n ],\n },\n ...pagesRest,\n ],\n }\n}\n","import { queryKey as messagesQueryKey } from '@/hooks/messages/useMessages/lib/queryOptions/queryKey'\nimport { Args as NewMessageArgs } from '../mutationFn'\nimport { data } from './data'\n\ntype Args = {\n queryClient: any\n}\n\nexport const onMutate = ({\n queryClient,\n}: Args) => async (newMessage: NewMessageArgs) => {\n await queryClient.cancelQueries(messagesQueryKey())\n\n const prevMessages = queryClient.getQueryData(messagesQueryKey())\n\n queryClient.setQueryData(\n messagesQueryKey(),\n data({ newMessage })\n )\n\n return {\n prevMessages,\n newMessage,\n }\n}\n","import { queryKey as messagesQueryKey } from '@/hooks/messages/useMessages/lib/queryOptions/queryKey'\nimport { Args as NewMessageArgs } from './mutationFn'\n\ntype Args = {\n queryClient: any\n}\n\ntype Context = {\n prevMessages: any\n} | undefined\n\nexport const onError = ({\n queryClient,\n}: Args) => async (\n _error: any,\n newMessage: NewMessageArgs,\n context: Context\n) => {\n if (!context) {\n return\n }\n\n queryClient.setQueryData(\n messagesQueryKey(),\n context.prevMessages,\n )\n}\n","import { queryKey as messagesQueryKey } from '@/hooks/messages/useMessages/lib/queryOptions/queryKey'\nimport { Response } from './mutationFn'\n\ntype Args = {\n queryClient: any\n}\n\nexport const onSettled = ({\n queryClient,\n}: Args) => async (response: Response | undefined) => {\n if (!response) return\n\n await queryClient.invalidateQueries({\n queryKey: messagesQueryKey(),\n })\n}\n","import { QueryClient } from '@tanstack/react-query'\n// import { mutationFn } from './mutationFn'\nimport { onMutate } from './onMutate'\nimport { onError } from './onError'\nimport { onSettled } from './onSettled'\n\ntype Args = {\n queryClient: QueryClient\n}\n\nexport const mutationOptions = ({\n queryClient,\n}: Args) => ({\n // mutationFn,\n onMutate: onMutate({\n queryClient,\n }),\n onError: onError({\n queryClient,\n }),\n onSettled: onSettled({\n queryClient,\n }),\n})\n","import {\n ArrowUpIcon,\n} from '@radix-ui/react-icons'\nimport {\n Button,\n} from '@radix-ui/themes'\nimport {\n Spinner,\n} from '@/components/spinners/Spinner'\n\ntype Args = {\n isLoading: boolean\n isDisabled: boolean\n}\n\nexport const Submit = ({\n isLoading,\n isDisabled\n}: Args) => (\n <Button\n type=\"submit\"\n color=\"gray\"\n highContrast\n radius=\"large\"\n disabled={isLoading || isDisabled}\n >\n {isLoading ? <Spinner /> : <ArrowUpIcon />}\n </Button>\n)\n","export const Spinner = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-4 w-4 animate-spin\"\n {...props}\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n)\n","export { Messages } from '@/components/messages/Messages'\nexport { Form } from '@/components/messages/Form'\nexport {\n QueryClient,\n QueryClientProvider,\n useQueryClient,\n useQuery,\n} from '@tanstack/react-query'\nexport { useThreadLifecycles } from '@/hooks/threads/useThreadLifecycles'\nexport { useMessages } from '@/hooks/messages/useMessages'\nexport { useLatestMessage } from '@/hooks/messages/useLatestMessage'\nexport { useCreateMessage } from '@/hooks/messages/useCreateMessage'\nexport { useIsRunActive } from '@/hooks/runs/useIsRunActive'\n"],"mappings":"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","names":["Flex","useRef","useRef","forwardRef","Flex","Flex","jsx","MessagesGroupBase","Flex","jsx","jsx","forwardRef","MessagesSkeleton","Flex","useEffect","useMemo","useMemo","useMemo","useMemo","useInfiniteQuery","queryOptions","queryKey","data","useInfiniteQuery","queryOptions","useMemo","useMemo","queryKey","queryKey","_","useEffect","useQueryClient","useMemo","_","useMemo","queryKey","useQueryClient","useEffect","useMutation","useQueryClient","onSettled","queryKey","mutationOptions","onSettled","useQueryClient","useMutation","mutationOptions","useEffect","useMemo","_","messages","messages","_","messages","useMemo","useContext","Box","Avatar","Flex","Avatar","jsx","jsx","Flex","createContext","Flex","useMemo","Box","Flex","Flex","Flex","forwardRef","Flex","jsx","ToolCallBase","Text","jsx","jsx","useMemo","Box","jsx","jsxs","jsx","jsx","jsxs","PopoverRoot","PopoverContent","Fragment","jsx","Title","jsx","jsxs","PopoverRoot","Title","PopoverContent","jsx","Flex","jsx","jsx","Flex","PopoverRoot","PopoverContent","Text","CircleIcon","jsx","jsxs","PopoverRoot","CircleIcon","PopoverContent","Text","jsx","jsxs","Flex","jsx","jsx","Flex","useContext","createContext","Box","Text","jsx","jsx","Box","jsx","Box","jsx","Box","jsx","jsx","createContext","jsx","useContext","jsx","jsxs","useMemo","laterRunSteps","olderRunSteps","Box","jsx","Content","Flex","jsx","jsxs","useContext","Avatar","Box","Content","Fragment","jsx","Content","messages","messageGroups","Box","Box","jsx","useContext","Box","jsx","jsxs","useContext","Box","jsx","jsxs","isRunActive","Box","jsx","jsxs","messages","isRunActive","Flex","Content","Container","Flex","Text","useRef","useEffect","useMemo","useContext","forwardRef","jsx","TextareaBase","useMutation","useQueryClient","onSettled","mutationOptions","onSettled","useQueryClient","useMutation","mutationOptions","Button","jsx","jsx","Button","jsx","jsxs","isRunActive","useMemo","data","useRef","useEffect","useContext","Container","Flex","Text","useQueryClient"]}
@@ -0,0 +1,3 @@
1
+ declare const optimisticId: () => string;
2
+
3
+ export { optimisticId };
@@ -1 +1,3 @@
1
- export { optimisticId } from './optimistic/optimisticId';
1
+ declare const optimisticId: () => string;
2
+
3
+ export { optimisticId };
package/dist/lib/index.js CHANGED
@@ -1,6 +1,34 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.optimisticId = void 0;
4
- var optimisticId_1 = require("./optimistic/optimisticId");
5
- Object.defineProperty(exports, "optimisticId", { enumerable: true, get: function () { return optimisticId_1.optimisticId; } });
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/index.ts
21
+ var lib_exports = {};
22
+ __export(lib_exports, {
23
+ optimisticId: () => optimisticId
24
+ });
25
+ module.exports = __toCommonJS(lib_exports);
26
+
27
+ // src/lib/optimistic/optimisticId.ts
28
+ var import_radash = require("radash");
29
+ var optimisticId = () => `-${(0, import_radash.uid)(24)}`;
30
+ // Annotate the CommonJS export names for ESM import in node:
31
+ 0 && (module.exports = {
32
+ optimisticId
33
+ });
6
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,8DAA4D;AAAnD,4GAAA,YAAY,OAAA"}
1
+ {"version":3,"sources":["../../src/lib/index.ts","../../src/lib/optimistic/optimisticId.ts"],"sourcesContent":["export { optimisticId } from '@/lib/optimistic/optimisticId'\n","import { uid } from 'radash'\n\nexport const optimisticId = () => (\n `-${uid(24)}`\n)\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAoB;AAEb,IAAM,eAAe,MAC1B,QAAI,mBAAI,EAAE,CAAC;","names":[]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ optimisticId
3
+ } from "../chunk-DP5XKPRM.mjs";
4
+ export {
5
+ optimisticId
6
+ };
7
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,31 @@
1
+ import { Message, Run, Functions } from './types/index.mjs';
2
+ import 'openai';
3
+
4
+ type Args$2 = {
5
+ content: string;
6
+ threadId: string;
7
+ };
8
+ type Response$2 = {
9
+ message: Message;
10
+ };
11
+ declare const mutationFn$2: ({ content, threadId }: Args$2) => Promise<Response$2>;
12
+
13
+ type Args$1 = {
14
+ latestRun: Run;
15
+ functions?: Functions;
16
+ };
17
+ type Response$1 = {
18
+ run: Run;
19
+ };
20
+ declare const mutationFn$1: ({ latestRun, functions, }: Args$1) => Promise<Response$1>;
21
+
22
+ type Args = {
23
+ threadId: string;
24
+ assistantId: string;
25
+ };
26
+ type Response = {
27
+ run: Run;
28
+ };
29
+ declare const mutationFn: ({ threadId, assistantId, }: Args) => Promise<Response>;
30
+
31
+ export { mutationFn$2 as createMessageMutationFn, mutationFn as createRunMutationFn, mutationFn$1 as handleActionMutationFn };
@@ -1,3 +1,31 @@
1
- export { mutationFn as createMessageMutationFn } from './hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn';
2
- export { mutationFn as handleActionMutationFn } from './hooks/actions/useHandleAction/lib/mutationOptions/mutationFn';
3
- export { mutationFn as createRunMutationFn } from './hooks/runs/useCreateRun/lib/mutationOptions/mutationFn';
1
+ import { Message, Run, Functions } from './types/index.js';
2
+ import 'openai';
3
+
4
+ type Args$2 = {
5
+ content: string;
6
+ threadId: string;
7
+ };
8
+ type Response$2 = {
9
+ message: Message;
10
+ };
11
+ declare const mutationFn$2: ({ content, threadId }: Args$2) => Promise<Response$2>;
12
+
13
+ type Args$1 = {
14
+ latestRun: Run;
15
+ functions?: Functions;
16
+ };
17
+ type Response$1 = {
18
+ run: Run;
19
+ };
20
+ declare const mutationFn$1: ({ latestRun, functions, }: Args$1) => Promise<Response$1>;
21
+
22
+ type Args = {
23
+ threadId: string;
24
+ assistantId: string;
25
+ };
26
+ type Response = {
27
+ run: Run;
28
+ };
29
+ declare const mutationFn: ({ threadId, assistantId, }: Args) => Promise<Response>;
30
+
31
+ export { mutationFn$2 as createMessageMutationFn, mutationFn as createRunMutationFn, mutationFn$1 as handleActionMutationFn };
@@ -1,10 +1,162 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRunMutationFn = exports.handleActionMutationFn = exports.createMessageMutationFn = void 0;
4
- var mutationFn_1 = require("./hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn");
5
- Object.defineProperty(exports, "createMessageMutationFn", { enumerable: true, get: function () { return mutationFn_1.mutationFn; } });
6
- var mutationFn_2 = require("./hooks/actions/useHandleAction/lib/mutationOptions/mutationFn");
7
- Object.defineProperty(exports, "handleActionMutationFn", { enumerable: true, get: function () { return mutationFn_2.mutationFn; } });
8
- var mutationFn_3 = require("./hooks/runs/useCreateRun/lib/mutationOptions/mutationFn");
9
- Object.defineProperty(exports, "createRunMutationFn", { enumerable: true, get: function () { return mutationFn_3.mutationFn; } });
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/mutationFns.ts
31
+ var mutationFns_exports = {};
32
+ __export(mutationFns_exports, {
33
+ createMessageMutationFn: () => mutationFn,
34
+ createRunMutationFn: () => mutationFn3,
35
+ handleActionMutationFn: () => mutationFn2
36
+ });
37
+ module.exports = __toCommonJS(mutationFns_exports);
38
+
39
+ // src/lib/ai/index.ts
40
+ var import_openai = __toESM(require("openai"));
41
+ var clientOptions = {
42
+ apiKey: process.env.OPENAI_API_KEY,
43
+ // @ts-ignore-next-line
44
+ fetch: (url, init) => fetch(url, {
45
+ ...init || {},
46
+ // @ts-ignore-next-line
47
+ cache: "no-store"
48
+ })
49
+ };
50
+ var client = new import_openai.default(clientOptions);
51
+
52
+ // src/lib/runSteps/getRunSteps/index.ts
53
+ var getRunSteps = async ({
54
+ threadId,
55
+ runId
56
+ }) => {
57
+ const runStepsResponse = await client.beta.threads.runs.steps.list(
58
+ threadId,
59
+ runId
60
+ );
61
+ return runStepsResponse.data;
62
+ };
63
+
64
+ // src/lib/messages/extendMessage.ts
65
+ var extendMessage = async ({
66
+ message
67
+ }) => {
68
+ if (!message.run_id) {
69
+ return {
70
+ ...message,
71
+ runSteps: []
72
+ };
73
+ }
74
+ return {
75
+ ...message,
76
+ runSteps: await getRunSteps({
77
+ threadId: message.thread_id,
78
+ runId: message.run_id
79
+ })
80
+ };
81
+ };
82
+
83
+ // src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn.ts
84
+ var mutationFn = async ({ content, threadId }) => {
85
+ const message = await client.beta.threads.messages.create(threadId, {
86
+ content,
87
+ role: "user"
88
+ });
89
+ return {
90
+ message: await extendMessage({
91
+ message
92
+ })
93
+ };
94
+ };
95
+
96
+ // src/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn/index.ts
97
+ var import_p_map = __toESM(require("p-map"));
98
+
99
+ // src/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn/toolOutput/index.ts
100
+ var toolOutput = async ({
101
+ toolCall,
102
+ latestRun,
103
+ functions
104
+ }) => {
105
+ const fn = functions[toolCall.function.name];
106
+ if (!fn) {
107
+ console.log({ toolCall });
108
+ throw new Error(`No function for ${toolCall.function.name}`);
109
+ }
110
+ return {
111
+ tool_call_id: toolCall.id,
112
+ output: await fn({
113
+ toolCall,
114
+ latestRun
115
+ })
116
+ };
117
+ };
118
+
119
+ // src/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn/index.ts
120
+ var mutationFn2 = async ({
121
+ latestRun,
122
+ functions = {}
123
+ }) => {
124
+ if (!latestRun.required_action) {
125
+ throw new Error("No required_action for run ${latestRun.id} with status ${latestRun.status}");
126
+ }
127
+ console.log("handleActions", { latestRun });
128
+ const toolCalls = latestRun.required_action.submit_tool_outputs.tool_calls;
129
+ const run = await client.beta.threads.runs.submitToolOutputs(
130
+ latestRun.thread_id,
131
+ latestRun.id,
132
+ {
133
+ tool_outputs: await (0, import_p_map.default)(toolCalls, (toolCall) => toolOutput({ toolCall, latestRun, functions }))
134
+ }
135
+ );
136
+ return {
137
+ // @ts-ignore-next-line
138
+ run
139
+ };
140
+ };
141
+
142
+ // src/hooks/runs/useCreateRun/lib/mutationOptions/mutationFn.ts
143
+ var mutationFn3 = async ({
144
+ threadId,
145
+ assistantId
146
+ }) => {
147
+ const run = await client.beta.threads.runs.create(threadId, {
148
+ assistant_id: assistantId
149
+ // model: 'gpt-3.5-turbo-1106',
150
+ });
151
+ return {
152
+ // @ts-ignore-next-line
153
+ run
154
+ };
155
+ };
156
+ // Annotate the CommonJS export names for ESM import in node:
157
+ 0 && (module.exports = {
158
+ createMessageMutationFn,
159
+ createRunMutationFn,
160
+ handleActionMutationFn
161
+ });
10
162
  //# sourceMappingURL=mutationFns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutationFns.js","sourceRoot":"","sources":["../src/mutationFns.ts"],"names":[],"mappings":";;;AAAA,+FAAwH;AAA/G,qHAAA,UAAU,OAA2B;AAC9C,6FAAqH;AAA5G,oHAAA,UAAU,OAA0B;AAC7C,uFAA4G;AAAnG,iHAAA,UAAU,OAAuB"}
1
+ {"version":3,"sources":["../src/mutationFns.ts","../src/lib/ai/index.ts","../src/lib/runSteps/getRunSteps/index.ts","../src/lib/messages/extendMessage.ts","../src/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn.ts","../src/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn/index.ts","../src/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn/toolOutput/index.ts","../src/hooks/runs/useCreateRun/lib/mutationOptions/mutationFn.ts"],"sourcesContent":["export { mutationFn as createMessageMutationFn } from '@/hooks/messages/useCreateMessage/lib/mutationOptions/mutationFn'\nexport { mutationFn as handleActionMutationFn } from '@/hooks/actions/useHandleAction/lib/mutationOptions/mutationFn'\nexport { mutationFn as createRunMutationFn } from '@/hooks/runs/useCreateRun/lib/mutationOptions/mutationFn'\n","import OpenAI, { ClientOptions } from 'openai'\n\nexport const clientOptions: ClientOptions = {\n apiKey: process.env.OPENAI_API_KEY!,\n // @ts-ignore-next-line\n fetch: (url: RequestInfo, init?: RequestInit): Promise<Response> => (\n fetch(url, {\n ...(init || {}),\n // @ts-ignore-next-line\n cache: 'no-store',\n })\n )\n}\n\nexport const client = new OpenAI(clientOptions)\n","import { client } from '@/lib/ai'\n\ntype Args = {\n threadId: string\n runId: string\n}\n\nexport const getRunSteps = async ({\n threadId,\n runId,\n}: Args) => {\n const runStepsResponse = await client.beta.threads.runs.steps.list(\n threadId,\n runId,\n )\n\n return runStepsResponse.data\n}\n","import OpenAI from 'openai'\nimport { getRunSteps } from '@/lib/runSteps/getRunSteps'\n\ntype Args = {\n message: OpenAI.Beta.Threads.Messages.ThreadMessage\n}\n\nexport const extendMessage = async ({\n message,\n}: Args) => {\n if (!message.run_id) {\n return {\n ...message,\n runSteps: [],\n }\n }\n\n return {\n ...message,\n runSteps: await getRunSteps({\n threadId: message.thread_id,\n runId: message.run_id,\n }),\n }\n}\n","import { client } from '@/lib/ai'\nimport { Message } from '@/types'\nimport { extendMessage } from '@/lib/messages/extendMessage'\n\nexport type Args = {\n content: string\n threadId: string\n}\n\nexport type Response = {\n message: Message\n}\n\nexport const mutationFn = async ({ content, threadId }: Args): Promise<Response> => {\n const message = await client.beta.threads.messages.create(threadId, {\n content: content,\n role: 'user',\n })\n\n return {\n message: await extendMessage({\n message,\n }),\n }\n}\n","import { Run, Functions } from '@/types'\nimport pMap from 'p-map'\nimport { client } from '@/lib/ai'\nimport { toolOutput } from './toolOutput'\n\ntype Args = {\n latestRun: Run\n functions?: Functions\n}\n\nexport type Response = {\n run: Run\n}\n\nexport const mutationFn = async ({\n latestRun,\n functions = {},\n}: Args): Promise<Response> => {\n if (!latestRun.required_action) {\n throw new Error('No required_action for run ${latestRun.id} with status ${latestRun.status}')\n }\n\n console.log('handleActions', { latestRun })\n\n const toolCalls = latestRun.required_action.submit_tool_outputs.tool_calls\n\n const run = await client.beta.threads.runs.submitToolOutputs(\n latestRun.thread_id,\n latestRun.id,\n {\n tool_outputs: await pMap(toolCalls, (toolCall) => toolOutput({ toolCall, latestRun, functions })),\n },\n )\n\n return {\n // @ts-ignore-next-line\n run,\n }\n}\n","import OpenAI from 'openai'\nimport { Functions } from '@/types'\n\ntype Args = {\n toolCall: OpenAI.Beta.Threads.Runs.RequiredActionFunctionToolCall\n latestRun: OpenAI.Beta.Threads.Runs.Run\n functions: Functions\n}\n\nexport const toolOutput = async ({\n toolCall,\n latestRun,\n functions,\n}: Args) => {\n const fn = functions[toolCall.function.name]\n\n if (!fn) {\n console.log({ toolCall })\n throw new Error(`No function for ${toolCall.function.name}`)\n }\n\n return {\n tool_call_id: toolCall.id,\n output: await fn({\n toolCall,\n latestRun,\n }),\n }\n}\n","import { Run } from '@/types'\nimport { client } from '@/lib/ai'\n\ntype Args = {\n threadId: string\n assistantId: string\n}\n\nexport type Response = {\n run: Run\n}\n\nexport const mutationFn = async ({\n threadId,\n assistantId,\n}: Args): Promise<Response> => {\n const run = await client.beta.threads.runs.create(threadId, {\n assistant_id: assistantId,\n // model: 'gpt-3.5-turbo-1106',\n })\n\n return {\n // @ts-ignore-next-line\n run,\n }\n // ...run,\n // assistantConversationId,\n // },\n // }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,6BAAAA;AAAA,EAAA,8BAAAA;AAAA;AAAA;;;ACAA,oBAAsC;AAE/B,IAAM,gBAA+B;AAAA,EAC1C,QAAQ,QAAQ,IAAI;AAAA;AAAA,EAEpB,OAAO,CAAC,KAAkB,SACxB,MAAM,KAAK;AAAA,IACT,GAAI,QAAQ,CAAC;AAAA;AAAA,IAEb,OAAO;AAAA,EACT,CAAC;AAEL;AAEO,IAAM,SAAS,IAAI,cAAAC,QAAO,aAAa;;;ACPvC,IAAM,cAAc,OAAO;AAAA,EAChC;AAAA,EACA;AACF,MAAY;AACV,QAAM,mBAAmB,MAAM,OAAO,KAAK,QAAQ,KAAK,MAAM;AAAA,IAC5D;AAAA,IACA;AAAA,EACF;AAEA,SAAO,iBAAiB;AAC1B;;;ACVO,IAAM,gBAAgB,OAAO;AAAA,EAClC;AACF,MAAY;AACV,MAAI,CAAC,QAAQ,QAAQ;AACnB,WAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU,CAAC;AAAA,IACb;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,UAAU,MAAM,YAAY;AAAA,MAC1B,UAAU,QAAQ;AAAA,MAClB,OAAO,QAAQ;AAAA,IACjB,CAAC;AAAA,EACH;AACF;;;ACXO,IAAM,aAAa,OAAO,EAAE,SAAS,SAAS,MAA+B;AAClF,QAAM,UAAU,MAAM,OAAO,KAAK,QAAQ,SAAS,OAAO,UAAU;AAAA,IAClE;AAAA,IACA,MAAM;AAAA,EACR,CAAC;AAED,SAAO;AAAA,IACL,SAAS,MAAM,cAAc;AAAA,MAC3B;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;ACvBA,mBAAiB;;;ACQV,IAAM,aAAa,OAAO;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,MAAY;AACV,QAAM,KAAK,UAAU,SAAS,SAAS,IAAI;AAE3C,MAAI,CAAC,IAAI;AACP,YAAQ,IAAI,EAAE,SAAS,CAAC;AACxB,UAAM,IAAI,MAAM,mBAAmB,SAAS,SAAS,IAAI,EAAE;AAAA,EAC7D;AAEA,SAAO;AAAA,IACL,cAAc,SAAS;AAAA,IACvB,QAAQ,MAAM,GAAG;AAAA,MACf;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;ADdO,IAAMC,cAAa,OAAO;AAAA,EAC/B;AAAA,EACA,YAAY,CAAC;AACf,MAA+B;AAC7B,MAAI,CAAC,UAAU,iBAAiB;AAC9B,UAAM,IAAI,MAAM,4EAA4E;AAAA,EAC9F;AAEA,UAAQ,IAAI,iBAAiB,EAAE,UAAU,CAAC;AAE1C,QAAM,YAAY,UAAU,gBAAgB,oBAAoB;AAEhE,QAAM,MAAM,MAAM,OAAO,KAAK,QAAQ,KAAK;AAAA,IACzC,UAAU;AAAA,IACV,UAAU;AAAA,IACV;AAAA,MACE,cAAc,UAAM,aAAAC,SAAK,WAAW,CAAC,aAAa,WAAW,EAAE,UAAU,WAAW,UAAU,CAAC,CAAC;AAAA,IAClG;AAAA,EACF;AAEA,SAAO;AAAA;AAAA,IAEL;AAAA,EACF;AACF;;;AE1BO,IAAMC,cAAa,OAAO;AAAA,EAC/B;AAAA,EACA;AACF,MAA+B;AAC7B,QAAM,MAAM,MAAM,OAAO,KAAK,QAAQ,KAAK,OAAO,UAAU;AAAA,IAC1D,cAAc;AAAA;AAAA,EAEhB,CAAC;AAED,SAAO;AAAA;AAAA,IAEL;AAAA,EACF;AAKF;","names":["mutationFn","OpenAI","mutationFn","pMap","mutationFn"]}