@assistant-ui/react 0.10.0 → 0.10.2

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 (826) hide show
  1. package/dist/api/AssistantRuntime.d.ts +64 -0
  2. package/dist/api/AssistantRuntime.d.ts.map +1 -0
  3. package/dist/api/AssistantRuntime.js +5 -4
  4. package/dist/api/AssistantRuntime.js.map +1 -1
  5. package/dist/api/AttachmentRuntime.d.ts +63 -0
  6. package/dist/api/AttachmentRuntime.d.ts.map +1 -0
  7. package/dist/api/AttachmentRuntime.js +11 -10
  8. package/dist/api/AttachmentRuntime.js.map +1 -1
  9. package/dist/api/ComposerRuntime.d.ts +114 -0
  10. package/dist/api/ComposerRuntime.d.ts.map +1 -0
  11. package/dist/api/ComposerRuntime.js +16 -15
  12. package/dist/api/ComposerRuntime.js.map +1 -1
  13. package/dist/api/ContentPartRuntime.d.ts +33 -0
  14. package/dist/api/ContentPartRuntime.d.ts.map +1 -0
  15. package/dist/api/ContentPartRuntime.js +3 -2
  16. package/dist/api/ContentPartRuntime.js.map +1 -1
  17. package/dist/api/MessageRuntime.d.ts +80 -0
  18. package/dist/api/MessageRuntime.d.ts.map +1 -0
  19. package/dist/api/MessageRuntime.js +14 -13
  20. package/dist/api/MessageRuntime.js.map +1 -1
  21. package/dist/api/RuntimePathTypes.d.ts +64 -0
  22. package/dist/api/RuntimePathTypes.d.ts.map +1 -0
  23. package/dist/api/ThreadListItemRuntime.d.ts +55 -0
  24. package/dist/api/ThreadListItemRuntime.d.ts.map +1 -0
  25. package/dist/api/ThreadListItemRuntime.js +3 -2
  26. package/dist/api/ThreadListItemRuntime.js.map +1 -1
  27. package/dist/api/ThreadListRuntime.d.ts +42 -0
  28. package/dist/api/ThreadListRuntime.d.ts.map +1 -0
  29. package/dist/api/ThreadListRuntime.js +11 -10
  30. package/dist/api/ThreadListRuntime.js.map +1 -1
  31. package/dist/api/ThreadRuntime.d.ts +216 -0
  32. package/dist/api/ThreadRuntime.d.ts.map +1 -0
  33. package/dist/api/ThreadRuntime.js +14 -13
  34. package/dist/api/ThreadRuntime.js.map +1 -1
  35. package/dist/api/index.d.ts +9 -0
  36. package/dist/api/index.d.ts.map +1 -0
  37. package/dist/api/subscribable/BaseSubject.d.ts +11 -0
  38. package/dist/api/subscribable/BaseSubject.d.ts.map +1 -0
  39. package/dist/api/subscribable/BaseSubject.js +3 -2
  40. package/dist/api/subscribable/BaseSubject.js.map +1 -1
  41. package/dist/api/subscribable/EventSubscriptionSubject.d.ts +13 -0
  42. package/dist/api/subscribable/EventSubscriptionSubject.d.ts.map +1 -0
  43. package/dist/api/subscribable/EventSubscriptionSubject.js +4 -3
  44. package/dist/api/subscribable/EventSubscriptionSubject.js.map +1 -1
  45. package/dist/api/subscribable/LazyMemoizeSubject.d.ts +13 -0
  46. package/dist/api/subscribable/LazyMemoizeSubject.d.ts.map +1 -0
  47. package/dist/api/subscribable/LazyMemoizeSubject.js +5 -4
  48. package/dist/api/subscribable/LazyMemoizeSubject.js.map +1 -1
  49. package/dist/api/subscribable/NestedSubscriptionSubject.d.ts +12 -0
  50. package/dist/api/subscribable/NestedSubscriptionSubject.d.ts.map +1 -0
  51. package/dist/api/subscribable/NestedSubscriptionSubject.js +4 -3
  52. package/dist/api/subscribable/NestedSubscriptionSubject.js.map +1 -1
  53. package/dist/api/subscribable/SKIP_UPDATE.d.ts +3 -0
  54. package/dist/api/subscribable/SKIP_UPDATE.d.ts.map +1 -0
  55. package/dist/api/subscribable/SKIP_UPDATE.js +2 -1
  56. package/dist/api/subscribable/SKIP_UPDATE.js.map +1 -1
  57. package/dist/api/subscribable/ShallowMemoizeSubject.d.ts +13 -0
  58. package/dist/api/subscribable/ShallowMemoizeSubject.d.ts.map +1 -0
  59. package/dist/api/subscribable/ShallowMemoizeSubject.js +6 -5
  60. package/dist/api/subscribable/ShallowMemoizeSubject.js.map +1 -1
  61. package/dist/api/subscribable/Subscribable.d.ts +16 -0
  62. package/dist/api/subscribable/Subscribable.d.ts.map +1 -0
  63. package/dist/api/subscribable/shallowEqual.d.ts +2 -0
  64. package/dist/api/subscribable/shallowEqual.d.ts.map +1 -0
  65. package/dist/api/subscribable/shallowEqual.js +1 -0
  66. package/dist/api/subscribable/shallowEqual.js.map +1 -1
  67. package/dist/cloud/AssistantCloud.d.ts +13 -0
  68. package/dist/cloud/AssistantCloud.d.ts.map +1 -0
  69. package/dist/cloud/AssistantCloud.js +7 -6
  70. package/dist/cloud/AssistantCloud.js.map +1 -1
  71. package/dist/cloud/AssistantCloudAPI.d.ts +27 -0
  72. package/dist/cloud/AssistantCloudAPI.d.ts.map +1 -0
  73. package/dist/cloud/AssistantCloudAPI.js +6 -5
  74. package/dist/cloud/AssistantCloudAPI.js.map +1 -1
  75. package/dist/cloud/AssistantCloudAuthStrategy.d.ts +30 -0
  76. package/dist/cloud/AssistantCloudAuthStrategy.d.ts.map +1 -0
  77. package/dist/cloud/AssistantCloudAuthStrategy.js +9 -8
  78. package/dist/cloud/AssistantCloudAuthStrategy.js.map +1 -1
  79. package/dist/cloud/AssistantCloudAuthTokens.d.ts +11 -0
  80. package/dist/cloud/AssistantCloudAuthTokens.d.ts.map +1 -0
  81. package/dist/cloud/AssistantCloudAuthTokens.js +3 -2
  82. package/dist/cloud/AssistantCloudAuthTokens.js.map +1 -1
  83. package/dist/cloud/AssistantCloudRuns.d.ts +15 -0
  84. package/dist/cloud/AssistantCloudRuns.d.ts.map +1 -0
  85. package/dist/cloud/AssistantCloudRuns.js +3 -2
  86. package/dist/cloud/AssistantCloudRuns.js.map +1 -1
  87. package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -0
  88. package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -0
  89. package/dist/cloud/AssistantCloudThreadHistoryAdapter.js +6 -5
  90. package/dist/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  91. package/dist/cloud/AssistantCloudThreadMessages.d.ts +30 -0
  92. package/dist/cloud/AssistantCloudThreadMessages.d.ts.map +1 -0
  93. package/dist/cloud/AssistantCloudThreadMessages.js +3 -2
  94. package/dist/cloud/AssistantCloudThreadMessages.js.map +1 -1
  95. package/dist/cloud/AssistantCloudThreads.d.ts +48 -0
  96. package/dist/cloud/AssistantCloudThreads.d.ts.map +1 -0
  97. package/dist/cloud/AssistantCloudThreads.js +4 -3
  98. package/dist/cloud/AssistantCloudThreads.js.map +1 -1
  99. package/dist/cloud/auiV0.d.ts +54 -0
  100. package/dist/cloud/auiV0.d.ts.map +1 -0
  101. package/dist/cloud/auiV0.js +5 -4
  102. package/dist/cloud/auiV0.js.map +1 -1
  103. package/dist/cloud/index.d.ts +3 -0
  104. package/dist/cloud/index.d.ts.map +1 -0
  105. package/dist/cloud/index.js +3 -2
  106. package/dist/cloud/index.js.map +1 -1
  107. package/dist/cloud/useCloudThreadListRuntime.d.ts +14 -0
  108. package/dist/cloud/useCloudThreadListRuntime.d.ts.map +1 -0
  109. package/dist/cloud/useCloudThreadListRuntime.js +5 -3
  110. package/dist/cloud/useCloudThreadListRuntime.js.map +1 -1
  111. package/dist/context/ReadonlyStore.d.ts +4 -0
  112. package/dist/context/ReadonlyStore.d.ts.map +1 -0
  113. package/dist/context/ReadonlyStore.js +2 -1
  114. package/dist/context/ReadonlyStore.js.map +1 -1
  115. package/dist/context/index.d.ts +4 -0
  116. package/dist/context/index.d.ts.map +1 -0
  117. package/dist/context/index.js +4 -3
  118. package/dist/context/index.js.map +1 -1
  119. package/dist/context/providers/AssistantRuntimeProvider.d.ts +13 -0
  120. package/dist/context/providers/AssistantRuntimeProvider.d.ts.map +1 -0
  121. package/dist/context/providers/AssistantRuntimeProvider.js +13 -11
  122. package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
  123. package/dist/context/providers/AttachmentRuntimeProvider.d.ts +9 -0
  124. package/dist/context/providers/AttachmentRuntimeProvider.d.ts.map +1 -0
  125. package/dist/context/providers/AttachmentRuntimeProvider.js +8 -6
  126. package/dist/context/providers/AttachmentRuntimeProvider.js.map +1 -1
  127. package/dist/context/providers/ContentPartRuntimeProvider.d.ts +9 -0
  128. package/dist/context/providers/ContentPartRuntimeProvider.d.ts.map +1 -0
  129. package/dist/context/providers/ContentPartRuntimeProvider.js +8 -6
  130. package/dist/context/providers/ContentPartRuntimeProvider.js.map +1 -1
  131. package/dist/context/providers/MessageRuntimeProvider.d.ts +9 -0
  132. package/dist/context/providers/MessageRuntimeProvider.d.ts.map +1 -0
  133. package/dist/context/providers/MessageRuntimeProvider.js +10 -8
  134. package/dist/context/providers/MessageRuntimeProvider.js.map +1 -1
  135. package/dist/context/providers/TextContentPartProvider.d.ts +9 -0
  136. package/dist/context/providers/TextContentPartProvider.d.ts.map +1 -0
  137. package/dist/context/providers/TextContentPartProvider.js +10 -8
  138. package/dist/context/providers/TextContentPartProvider.js.map +1 -1
  139. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts +9 -0
  140. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -0
  141. package/dist/context/providers/ThreadListItemRuntimeProvider.js +8 -6
  142. package/dist/context/providers/ThreadListItemRuntimeProvider.js.map +1 -1
  143. package/dist/context/providers/ThreadRuntimeProvider.d.ts +10 -0
  144. package/dist/context/providers/ThreadRuntimeProvider.d.ts.map +1 -0
  145. package/dist/context/providers/ThreadRuntimeProvider.js +10 -8
  146. package/dist/context/providers/ThreadRuntimeProvider.js.map +1 -1
  147. package/dist/context/providers/ThreadViewportProvider.d.ts +3 -0
  148. package/dist/context/providers/ThreadViewportProvider.d.ts.map +1 -0
  149. package/dist/context/providers/ThreadViewportProvider.js +8 -6
  150. package/dist/context/providers/ThreadViewportProvider.js.map +1 -1
  151. package/dist/context/providers/index.d.ts +3 -0
  152. package/dist/context/providers/index.d.ts.map +1 -0
  153. package/dist/context/providers/index.js +3 -2
  154. package/dist/context/providers/index.js.map +1 -1
  155. package/dist/context/react/AssistantContext.d.ts +62 -0
  156. package/dist/context/react/AssistantContext.d.ts.map +1 -0
  157. package/dist/context/react/AssistantContext.js +10 -8
  158. package/dist/context/react/AssistantContext.js.map +1 -1
  159. package/dist/context/react/AttachmentContext.d.ts +836 -0
  160. package/dist/context/react/AttachmentContext.d.ts.map +1 -0
  161. package/dist/context/react/AttachmentContext.js +10 -8
  162. package/dist/context/react/AttachmentContext.js.map +1 -1
  163. package/dist/context/react/ComposerContext.d.ts +35 -0
  164. package/dist/context/react/ComposerContext.d.ts.map +1 -0
  165. package/dist/context/react/ComposerContext.js +6 -4
  166. package/dist/context/react/ComposerContext.js.map +1 -1
  167. package/dist/context/react/ContentPartContext.d.ts +41 -0
  168. package/dist/context/react/ContentPartContext.d.ts.map +1 -0
  169. package/dist/context/react/ContentPartContext.js +7 -5
  170. package/dist/context/react/ContentPartContext.js.map +1 -1
  171. package/dist/context/react/MessageContext.d.ts +86 -0
  172. package/dist/context/react/MessageContext.d.ts.map +1 -0
  173. package/dist/context/react/MessageContext.js +11 -9
  174. package/dist/context/react/MessageContext.js.map +1 -1
  175. package/dist/context/react/ThreadContext.d.ts +75 -0
  176. package/dist/context/react/ThreadContext.d.ts.map +1 -0
  177. package/dist/context/react/ThreadContext.js +9 -7
  178. package/dist/context/react/ThreadContext.js.map +1 -1
  179. package/dist/context/react/ThreadListItemContext.d.ts +41 -0
  180. package/dist/context/react/ThreadListItemContext.d.ts.map +1 -0
  181. package/dist/context/react/ThreadListItemContext.js +7 -5
  182. package/dist/context/react/ThreadListItemContext.js.map +1 -1
  183. package/dist/context/react/ThreadViewportContext.d.ts +24 -0
  184. package/dist/context/react/ThreadViewportContext.d.ts.map +1 -0
  185. package/dist/context/react/ThreadViewportContext.js +7 -5
  186. package/dist/context/react/ThreadViewportContext.js.map +1 -1
  187. package/dist/context/react/index.d.ts +14 -0
  188. package/dist/context/react/index.d.ts.map +1 -0
  189. package/dist/context/react/index.js +11 -9
  190. package/dist/context/react/index.js.map +1 -1
  191. package/dist/context/react/utils/createContextHook.d.ts +11 -0
  192. package/dist/context/react/utils/createContextHook.d.ts.map +1 -0
  193. package/dist/context/react/utils/createContextHook.js +2 -0
  194. package/dist/context/react/utils/createContextHook.js.map +1 -1
  195. package/dist/context/react/utils/createContextStoreHook.d.ts +26 -0
  196. package/dist/context/react/utils/createContextStoreHook.d.ts.map +1 -0
  197. package/dist/context/react/utils/createContextStoreHook.js +1 -0
  198. package/dist/context/react/utils/createContextStoreHook.js.map +1 -1
  199. package/dist/context/react/utils/createStateHookForRuntime.d.ts +31 -0
  200. package/dist/context/react/utils/createStateHookForRuntime.d.ts.map +1 -0
  201. package/dist/context/react/utils/createStateHookForRuntime.js +2 -1
  202. package/dist/context/react/utils/createStateHookForRuntime.js.map +1 -1
  203. package/dist/context/react/utils/ensureBinding.d.ts +2 -0
  204. package/dist/context/react/utils/ensureBinding.d.ts.map +1 -0
  205. package/dist/context/react/utils/ensureBinding.js +2 -21
  206. package/dist/context/react/utils/ensureBinding.js.map +1 -1
  207. package/dist/context/react/utils/useRuntimeState.d.ts +10 -0
  208. package/dist/context/react/utils/useRuntimeState.d.ts.map +1 -0
  209. package/dist/context/react/utils/useRuntimeState.js +3 -2
  210. package/dist/context/react/utils/useRuntimeState.js.map +1 -1
  211. package/dist/context/stores/AssistantToolUIs.d.ts +14 -0
  212. package/dist/context/stores/AssistantToolUIs.d.ts.map +1 -0
  213. package/dist/context/stores/AssistantToolUIs.js +2 -1
  214. package/dist/context/stores/AssistantToolUIs.js.map +1 -1
  215. package/dist/context/stores/MessageUtils.d.ts +8 -0
  216. package/dist/context/stores/MessageUtils.d.ts.map +1 -0
  217. package/dist/context/stores/MessageUtils.js +2 -1
  218. package/dist/context/stores/MessageUtils.js.map +1 -1
  219. package/dist/context/stores/ThreadViewport.d.ts +8 -0
  220. package/dist/context/stores/ThreadViewport.d.ts.map +1 -0
  221. package/dist/context/stores/ThreadViewport.js +3 -1
  222. package/dist/context/stores/ThreadViewport.js.map +1 -1
  223. package/dist/context/stores/index.d.ts +4 -0
  224. package/dist/context/stores/index.d.ts.map +1 -0
  225. package/dist/index.d.ts +9 -0
  226. package/dist/index.d.ts.map +1 -0
  227. package/dist/index.js +9 -8
  228. package/dist/index.js.map +1 -1
  229. package/dist/internal.d.ts +14 -0
  230. package/dist/internal.d.ts.map +1 -0
  231. package/dist/internal.js +12 -11
  232. package/dist/internal.js.map +1 -1
  233. package/dist/model-context/ModelContextTypes.d.ts +29 -0
  234. package/dist/model-context/ModelContextTypes.d.ts.map +1 -0
  235. package/dist/model-context/ModelContextTypes.js +2 -1
  236. package/dist/model-context/ModelContextTypes.js.map +1 -1
  237. package/dist/model-context/index.d.ts +23 -0
  238. package/dist/model-context/index.d.ts.map +1 -0
  239. package/dist/model-context/index.js +10 -9
  240. package/dist/model-context/index.js.map +1 -1
  241. package/dist/model-context/makeAssistantTool.d.ts +7 -0
  242. package/dist/model-context/makeAssistantTool.d.ts.map +1 -0
  243. package/dist/model-context/makeAssistantTool.js +4 -2
  244. package/dist/model-context/makeAssistantTool.js.map +1 -1
  245. package/dist/model-context/makeAssistantToolUI.d.ts +7 -0
  246. package/dist/model-context/makeAssistantToolUI.d.ts.map +1 -0
  247. package/dist/model-context/makeAssistantToolUI.js +4 -2
  248. package/dist/model-context/makeAssistantToolUI.js.map +1 -1
  249. package/dist/model-context/makeAssistantVisible.d.ts +7 -0
  250. package/dist/model-context/makeAssistantVisible.d.ts.map +1 -0
  251. package/dist/model-context/makeAssistantVisible.js +9 -7
  252. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  253. package/dist/model-context/tool.d.ts +12 -0
  254. package/dist/model-context/tool.d.ts.map +1 -0
  255. package/dist/model-context/tool.js +1 -0
  256. package/dist/model-context/tool.js.map +1 -1
  257. package/dist/model-context/useAssistantInstructions.d.ts +7 -0
  258. package/dist/model-context/useAssistantInstructions.d.ts.map +1 -0
  259. package/dist/model-context/useAssistantInstructions.js +5 -3
  260. package/dist/model-context/useAssistantInstructions.js.map +1 -1
  261. package/dist/model-context/useAssistantTool.d.ts +9 -0
  262. package/dist/model-context/useAssistantTool.d.ts.map +1 -0
  263. package/dist/model-context/useAssistantTool.js +4 -2
  264. package/dist/model-context/useAssistantTool.js.map +1 -1
  265. package/dist/model-context/useAssistantToolUI.d.ts +7 -0
  266. package/dist/model-context/useAssistantToolUI.d.ts.map +1 -0
  267. package/dist/model-context/useAssistantToolUI.js +4 -2
  268. package/dist/model-context/useAssistantToolUI.js.map +1 -1
  269. package/dist/model-context/useInlineRender.d.ts +4 -0
  270. package/dist/model-context/useInlineRender.d.ts.map +1 -0
  271. package/dist/model-context/useInlineRender.js +3 -1
  272. package/dist/model-context/useInlineRender.js.map +1 -1
  273. package/dist/primitives/actionBar/ActionBarCopy.d.ts +15 -0
  274. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -0
  275. package/dist/primitives/actionBar/ActionBarCopy.js +8 -6
  276. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  277. package/dist/primitives/actionBar/ActionBarEdit.d.ts +11 -0
  278. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -0
  279. package/dist/primitives/actionBar/ActionBarEdit.js +6 -4
  280. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  281. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +11 -0
  282. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -0
  283. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +7 -5
  284. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  285. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +11 -0
  286. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -0
  287. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +6 -4
  288. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  289. package/dist/primitives/actionBar/ActionBarReload.d.ts +11 -0
  290. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -0
  291. package/dist/primitives/actionBar/ActionBarReload.js +8 -6
  292. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  293. package/dist/primitives/actionBar/ActionBarRoot.d.ts +20 -0
  294. package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -0
  295. package/dist/primitives/actionBar/ActionBarRoot.js +5 -3
  296. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
  297. package/dist/primitives/actionBar/ActionBarSpeak.d.ts +11 -0
  298. package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -0
  299. package/dist/primitives/actionBar/ActionBarSpeak.js +6 -4
  300. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
  301. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +11 -0
  302. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -0
  303. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +6 -4
  304. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
  305. package/dist/primitives/actionBar/index.d.ts +9 -0
  306. package/dist/primitives/actionBar/index.d.ts.map +1 -0
  307. package/dist/primitives/actionBar/index.js +9 -8
  308. package/dist/primitives/actionBar/index.js.map +1 -1
  309. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts +12 -0
  310. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -0
  311. package/dist/primitives/actionBar/useActionBarFloatStatus.js +6 -4
  312. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
  313. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts +8 -0
  314. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts.map +1 -0
  315. package/dist/primitives/assistantModal/AssistantModalAnchor.js +5 -3
  316. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  317. package/dist/primitives/assistantModal/AssistantModalContent.d.ts +12 -0
  318. package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -0
  319. package/dist/primitives/assistantModal/AssistantModalContent.js +5 -3
  320. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  321. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts +9 -0
  322. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -0
  323. package/dist/primitives/assistantModal/AssistantModalRoot.js +7 -5
  324. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  325. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts +8 -0
  326. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -0
  327. package/dist/primitives/assistantModal/AssistantModalTrigger.js +4 -3
  328. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  329. package/dist/primitives/assistantModal/index.d.ts +5 -0
  330. package/dist/primitives/assistantModal/index.d.ts.map +1 -0
  331. package/dist/primitives/assistantModal/index.js +5 -4
  332. package/dist/primitives/assistantModal/index.js.map +1 -1
  333. package/dist/primitives/assistantModal/scope.d.ts +8 -0
  334. package/dist/primitives/assistantModal/scope.d.ts.map +1 -0
  335. package/dist/primitives/assistantModal/scope.js +2 -1
  336. package/dist/primitives/assistantModal/scope.js.map +1 -1
  337. package/dist/primitives/attachment/AttachmentName.d.ts +6 -0
  338. package/dist/primitives/attachment/AttachmentName.d.ts.map +1 -0
  339. package/dist/primitives/attachment/AttachmentName.js +4 -2
  340. package/dist/primitives/attachment/AttachmentName.js.map +1 -1
  341. package/dist/primitives/attachment/AttachmentRemove.d.ts +11 -0
  342. package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -0
  343. package/dist/primitives/attachment/AttachmentRemove.js +6 -4
  344. package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
  345. package/dist/primitives/attachment/AttachmentRoot.d.ts +12 -0
  346. package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -0
  347. package/dist/primitives/attachment/AttachmentRoot.js +3 -2
  348. package/dist/primitives/attachment/AttachmentRoot.js.map +1 -1
  349. package/dist/primitives/attachment/AttachmentThumb.d.ts +12 -0
  350. package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -0
  351. package/dist/primitives/attachment/AttachmentThumb.js +5 -3
  352. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
  353. package/dist/primitives/attachment/index.d.ts +5 -0
  354. package/dist/primitives/attachment/index.d.ts.map +1 -0
  355. package/dist/primitives/attachment/index.js +5 -4
  356. package/dist/primitives/attachment/index.js.map +1 -1
  357. package/dist/primitives/branchPicker/BranchPickerCount.d.ts +6 -0
  358. package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -0
  359. package/dist/primitives/branchPicker/BranchPickerCount.js +5 -3
  360. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
  361. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +11 -0
  362. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -0
  363. package/dist/primitives/branchPicker/BranchPickerNext.js +6 -4
  364. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  365. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts +6 -0
  366. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts.map +1 -0
  367. package/dist/primitives/branchPicker/BranchPickerNumber.js +5 -3
  368. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
  369. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +11 -0
  370. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -0
  371. package/dist/primitives/branchPicker/BranchPickerPrevious.js +6 -4
  372. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  373. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +14 -0
  374. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -0
  375. package/dist/primitives/branchPicker/BranchPickerRoot.js +4 -3
  376. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  377. package/dist/primitives/branchPicker/index.d.ts +6 -0
  378. package/dist/primitives/branchPicker/index.d.ts.map +1 -0
  379. package/dist/primitives/branchPicker/index.js +6 -5
  380. package/dist/primitives/branchPicker/index.js.map +1 -1
  381. package/dist/primitives/composer/ComposerAddAttachment.d.ts +17 -0
  382. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -0
  383. package/dist/primitives/composer/ComposerAddAttachment.js +6 -4
  384. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  385. package/dist/primitives/composer/ComposerAttachments.d.ts +13 -0
  386. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -0
  387. package/dist/primitives/composer/ComposerAttachments.js +11 -9
  388. package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
  389. package/dist/primitives/composer/ComposerCancel.d.ts +11 -0
  390. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -0
  391. package/dist/primitives/composer/ComposerCancel.js +6 -4
  392. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  393. package/dist/primitives/composer/ComposerIf.d.ts +12 -0
  394. package/dist/primitives/composer/ComposerIf.d.ts.map +1 -0
  395. package/dist/primitives/composer/ComposerIf.js +5 -3
  396. package/dist/primitives/composer/ComposerIf.js.map +1 -1
  397. package/dist/primitives/composer/ComposerInput.d.ts +21 -0
  398. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -0
  399. package/dist/primitives/composer/ComposerInput.js +8 -6
  400. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  401. package/dist/primitives/composer/ComposerRoot.d.ts +10 -0
  402. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -0
  403. package/dist/primitives/composer/ComposerRoot.js +5 -3
  404. package/dist/primitives/composer/ComposerRoot.js.map +1 -1
  405. package/dist/primitives/composer/ComposerSend.d.ts +10 -0
  406. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -0
  407. package/dist/primitives/composer/ComposerSend.js +8 -6
  408. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  409. package/dist/primitives/composer/index.d.ts +8 -0
  410. package/dist/primitives/composer/index.d.ts.map +1 -0
  411. package/dist/primitives/composer/index.js +8 -7
  412. package/dist/primitives/composer/index.js.map +1 -1
  413. package/dist/primitives/contentPart/ContentPartImage.d.ts +10 -0
  414. package/dist/primitives/contentPart/ContentPartImage.d.ts.map +1 -0
  415. package/dist/primitives/contentPart/ContentPartImage.js +5 -3
  416. package/dist/primitives/contentPart/ContentPartImage.js.map +1 -1
  417. package/dist/primitives/contentPart/ContentPartInProgress.d.ts +6 -0
  418. package/dist/primitives/contentPart/ContentPartInProgress.d.ts.map +1 -0
  419. package/dist/primitives/contentPart/ContentPartInProgress.js +4 -2
  420. package/dist/primitives/contentPart/ContentPartInProgress.js.map +1 -1
  421. package/dist/primitives/contentPart/ContentPartText.d.ts +16 -0
  422. package/dist/primitives/contentPart/ContentPartText.d.ts.map +1 -0
  423. package/dist/primitives/contentPart/ContentPartText.js +6 -4
  424. package/dist/primitives/contentPart/ContentPartText.js.map +1 -1
  425. package/dist/primitives/contentPart/index.d.ts +4 -0
  426. package/dist/primitives/contentPart/index.d.ts.map +1 -0
  427. package/dist/primitives/contentPart/index.js +4 -3
  428. package/dist/primitives/contentPart/index.js.map +1 -1
  429. package/dist/primitives/contentPart/useContentPartFile.d.ts +5 -0
  430. package/dist/primitives/contentPart/useContentPartFile.d.ts.map +1 -0
  431. package/dist/primitives/contentPart/useContentPartFile.js +4 -2
  432. package/dist/primitives/contentPart/useContentPartFile.js.map +1 -1
  433. package/dist/primitives/contentPart/useContentPartImage.d.ts +5 -0
  434. package/dist/primitives/contentPart/useContentPartImage.d.ts.map +1 -0
  435. package/dist/primitives/contentPart/useContentPartImage.js +4 -2
  436. package/dist/primitives/contentPart/useContentPartImage.js.map +1 -1
  437. package/dist/primitives/contentPart/useContentPartReasoning.d.ts +5 -0
  438. package/dist/primitives/contentPart/useContentPartReasoning.d.ts.map +1 -0
  439. package/dist/primitives/contentPart/useContentPartReasoning.js +4 -2
  440. package/dist/primitives/contentPart/useContentPartReasoning.js.map +1 -1
  441. package/dist/primitives/contentPart/useContentPartSource.d.ts +5 -0
  442. package/dist/primitives/contentPart/useContentPartSource.d.ts.map +1 -0
  443. package/dist/primitives/contentPart/useContentPartSource.js +4 -2
  444. package/dist/primitives/contentPart/useContentPartSource.js.map +1 -1
  445. package/dist/primitives/contentPart/useContentPartText.d.ts +7 -0
  446. package/dist/primitives/contentPart/useContentPartText.d.ts.map +1 -0
  447. package/dist/primitives/contentPart/useContentPartText.js +4 -2
  448. package/dist/primitives/contentPart/useContentPartText.js.map +1 -1
  449. package/dist/primitives/index.d.ts +17 -0
  450. package/dist/primitives/index.d.ts.map +1 -0
  451. package/dist/primitives/index.js +17 -16
  452. package/dist/primitives/index.js.map +1 -1
  453. package/dist/primitives/message/MessageAttachments.d.ts +13 -0
  454. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -0
  455. package/dist/primitives/message/MessageAttachments.js +11 -9
  456. package/dist/primitives/message/MessageAttachments.js.map +1 -1
  457. package/dist/primitives/message/MessageContent.d.ts +23 -0
  458. package/dist/primitives/message/MessageContent.d.ts.map +1 -0
  459. package/dist/primitives/message/MessageContent.js +19 -17
  460. package/dist/primitives/message/MessageContent.js.map +1 -1
  461. package/dist/primitives/message/MessageIf.d.ts +21 -0
  462. package/dist/primitives/message/MessageIf.d.ts.map +1 -0
  463. package/dist/primitives/message/MessageIf.js +6 -4
  464. package/dist/primitives/message/MessageIf.js.map +1 -1
  465. package/dist/primitives/message/MessageRoot.d.ts +10 -0
  466. package/dist/primitives/message/MessageRoot.d.ts.map +1 -0
  467. package/dist/primitives/message/MessageRoot.js +7 -5
  468. package/dist/primitives/message/MessageRoot.js.map +1 -1
  469. package/dist/primitives/message/index.d.ts +5 -0
  470. package/dist/primitives/message/index.d.ts.map +1 -0
  471. package/dist/primitives/message/index.js +5 -4
  472. package/dist/primitives/message/index.js.map +1 -1
  473. package/dist/primitives/thread/ThreadEmpty.d.ts +6 -0
  474. package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -0
  475. package/dist/primitives/thread/ThreadEmpty.js +4 -2
  476. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  477. package/dist/primitives/thread/ThreadIf.d.ts +14 -0
  478. package/dist/primitives/thread/ThreadIf.d.ts.map +1 -0
  479. package/dist/primitives/thread/ThreadIf.js +5 -3
  480. package/dist/primitives/thread/ThreadIf.js.map +1 -1
  481. package/dist/primitives/thread/ThreadMessages.d.ts +27 -0
  482. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -0
  483. package/dist/primitives/thread/ThreadMessages.js +14 -12
  484. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  485. package/dist/primitives/thread/ThreadRoot.d.ts +10 -0
  486. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -0
  487. package/dist/primitives/thread/ThreadRoot.js +3 -2
  488. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  489. package/dist/primitives/thread/ThreadScrollToBottom.d.ts +11 -0
  490. package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -0
  491. package/dist/primitives/thread/ThreadScrollToBottom.js +6 -4
  492. package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -1
  493. package/dist/primitives/thread/ThreadSuggestion.d.ts +19 -0
  494. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -0
  495. package/dist/primitives/thread/ThreadSuggestion.js +7 -5
  496. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  497. package/dist/primitives/thread/ThreadViewport.d.ts +14 -0
  498. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -0
  499. package/dist/primitives/thread/ThreadViewport.js +7 -5
  500. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  501. package/dist/primitives/thread/index.d.ts +8 -0
  502. package/dist/primitives/thread/index.d.ts.map +1 -0
  503. package/dist/primitives/thread/index.js +8 -7
  504. package/dist/primitives/thread/index.js.map +1 -1
  505. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts +8 -0
  506. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -0
  507. package/dist/primitives/thread/useThreadViewportAutoScroll.js +9 -7
  508. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  509. package/dist/primitives/threadList/ThreadListItems.d.ts +11 -0
  510. package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -0
  511. package/dist/primitives/threadList/ThreadListItems.js +8 -6
  512. package/dist/primitives/threadList/ThreadListItems.js.map +1 -1
  513. package/dist/primitives/threadList/ThreadListNew.d.ts +11 -0
  514. package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -0
  515. package/dist/primitives/threadList/ThreadListNew.js +6 -4
  516. package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
  517. package/dist/primitives/threadList/ThreadListRoot.d.ts +12 -0
  518. package/dist/primitives/threadList/ThreadListRoot.d.ts.map +1 -0
  519. package/dist/primitives/threadList/ThreadListRoot.js +3 -2
  520. package/dist/primitives/threadList/ThreadListRoot.js.map +1 -1
  521. package/dist/primitives/threadList/index.d.ts +4 -0
  522. package/dist/primitives/threadList/index.d.ts.map +1 -0
  523. package/dist/primitives/threadList/index.js +4 -3
  524. package/dist/primitives/threadList/index.js.map +1 -1
  525. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +11 -0
  526. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -0
  527. package/dist/primitives/threadListItem/ThreadListItemArchive.js +6 -4
  528. package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
  529. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +11 -0
  530. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -0
  531. package/dist/primitives/threadListItem/ThreadListItemDelete.js +6 -4
  532. package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -1
  533. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +12 -0
  534. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -0
  535. package/dist/primitives/threadListItem/ThreadListItemRoot.js +5 -3
  536. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  537. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts +8 -0
  538. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -0
  539. package/dist/primitives/threadListItem/ThreadListItemTitle.js +4 -2
  540. package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
  541. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +11 -0
  542. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -0
  543. package/dist/primitives/threadListItem/ThreadListItemTrigger.js +6 -4
  544. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
  545. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +11 -0
  546. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -0
  547. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js +6 -4
  548. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -1
  549. package/dist/primitives/threadListItem/index.d.ts +7 -0
  550. package/dist/primitives/threadListItem/index.d.ts.map +1 -0
  551. package/dist/primitives/threadListItem/index.js +7 -6
  552. package/dist/primitives/threadListItem/index.js.map +1 -1
  553. package/dist/runtimes/adapters/RuntimeAdapterProvider.d.ts +17 -0
  554. package/dist/runtimes/adapters/RuntimeAdapterProvider.d.ts.map +1 -0
  555. package/dist/runtimes/adapters/RuntimeAdapterProvider.js +5 -4
  556. package/dist/runtimes/adapters/RuntimeAdapterProvider.js.map +1 -1
  557. package/dist/runtimes/adapters/attachment/AttachmentAdapter.d.ts +10 -0
  558. package/dist/runtimes/adapters/attachment/AttachmentAdapter.d.ts.map +1 -0
  559. package/dist/runtimes/adapters/attachment/CompositeAttachmentAdapter.d.ts +13 -0
  560. package/dist/runtimes/adapters/attachment/CompositeAttachmentAdapter.d.ts.map +1 -0
  561. package/dist/runtimes/adapters/attachment/CompositeAttachmentAdapter.js +3 -2
  562. package/dist/runtimes/adapters/attachment/CompositeAttachmentAdapter.js.map +1 -1
  563. package/dist/runtimes/adapters/attachment/SimpleImageAttachmentAdapter.d.ts +11 -0
  564. package/dist/runtimes/adapters/attachment/SimpleImageAttachmentAdapter.d.ts.map +1 -0
  565. package/dist/runtimes/adapters/attachment/SimpleImageAttachmentAdapter.js +4 -3
  566. package/dist/runtimes/adapters/attachment/SimpleImageAttachmentAdapter.js.map +1 -1
  567. package/dist/runtimes/adapters/attachment/SimpleTextAttachmentAdapter.d.ts +11 -0
  568. package/dist/runtimes/adapters/attachment/SimpleTextAttachmentAdapter.d.ts.map +1 -0
  569. package/dist/runtimes/adapters/attachment/SimpleTextAttachmentAdapter.js +4 -3
  570. package/dist/runtimes/adapters/attachment/SimpleTextAttachmentAdapter.js.map +1 -1
  571. package/dist/runtimes/adapters/attachment/index.d.ts +5 -0
  572. package/dist/runtimes/adapters/attachment/index.d.ts.map +1 -0
  573. package/dist/runtimes/adapters/attachment/index.js +4 -3
  574. package/dist/runtimes/adapters/attachment/index.js.map +1 -1
  575. package/dist/runtimes/adapters/feedback/FeedbackAdapter.d.ts +10 -0
  576. package/dist/runtimes/adapters/feedback/FeedbackAdapter.d.ts.map +1 -0
  577. package/dist/runtimes/adapters/feedback/index.d.ts +2 -0
  578. package/dist/runtimes/adapters/feedback/index.d.ts.map +1 -0
  579. package/dist/runtimes/adapters/index.d.ts +5 -0
  580. package/dist/runtimes/adapters/index.d.ts.map +1 -0
  581. package/dist/runtimes/adapters/index.js +5 -4
  582. package/dist/runtimes/adapters/index.js.map +1 -1
  583. package/dist/runtimes/adapters/speech/SpeechAdapterTypes.d.ts +41 -0
  584. package/dist/runtimes/adapters/speech/SpeechAdapterTypes.d.ts.map +1 -0
  585. package/dist/runtimes/adapters/speech/WebSpeechSynthesisAdapter.d.ts +5 -0
  586. package/dist/runtimes/adapters/speech/WebSpeechSynthesisAdapter.d.ts.map +1 -0
  587. package/dist/runtimes/adapters/speech/WebSpeechSynthesisAdapter.js +3 -2
  588. package/dist/runtimes/adapters/speech/WebSpeechSynthesisAdapter.js.map +1 -1
  589. package/dist/runtimes/adapters/speech/index.d.ts +3 -0
  590. package/dist/runtimes/adapters/speech/index.d.ts.map +1 -0
  591. package/dist/runtimes/adapters/speech/index.js +2 -1
  592. package/dist/runtimes/adapters/speech/index.js.map +1 -1
  593. package/dist/runtimes/adapters/suggestion/SuggestionAdapter.d.ts +10 -0
  594. package/dist/runtimes/adapters/suggestion/SuggestionAdapter.d.ts.map +1 -0
  595. package/dist/runtimes/adapters/suggestion/index.d.ts +2 -0
  596. package/dist/runtimes/adapters/suggestion/index.d.ts.map +1 -0
  597. package/dist/runtimes/adapters/thread-history/ThreadHistoryAdapter.d.ts +10 -0
  598. package/dist/runtimes/adapters/thread-history/ThreadHistoryAdapter.d.ts.map +1 -0
  599. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts +39 -0
  600. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts.map +1 -0
  601. package/dist/runtimes/composer/BaseComposerRuntimeCore.js +5 -4
  602. package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
  603. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.d.ts +25 -0
  604. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.d.ts.map +1 -0
  605. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.js +5 -4
  606. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.js.map +1 -1
  607. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.d.ts +21 -0
  608. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.d.ts.map +1 -0
  609. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.js +4 -3
  610. package/dist/runtimes/composer/DefaultThreadComposerRuntimeCore.js.map +1 -1
  611. package/dist/runtimes/core/AssistantRuntimeCore.d.ts +16 -0
  612. package/dist/runtimes/core/AssistantRuntimeCore.d.ts.map +1 -0
  613. package/dist/runtimes/core/BaseAssistantRuntimeCore.d.ts +11 -0
  614. package/dist/runtimes/core/BaseAssistantRuntimeCore.d.ts.map +1 -0
  615. package/dist/runtimes/core/BaseAssistantRuntimeCore.js +4 -3
  616. package/dist/runtimes/core/BaseAssistantRuntimeCore.js.map +1 -1
  617. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts +60 -0
  618. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts.map +1 -0
  619. package/dist/runtimes/core/BaseThreadRuntimeCore.js +7 -6
  620. package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
  621. package/dist/runtimes/core/ComposerRuntimeCore.d.ts +28 -0
  622. package/dist/runtimes/core/ComposerRuntimeCore.d.ts.map +1 -0
  623. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts +34 -0
  624. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts.map +1 -0
  625. package/dist/runtimes/core/ThreadRuntimeCore.d.ts +79 -0
  626. package/dist/runtimes/core/ThreadRuntimeCore.d.ts.map +1 -0
  627. package/dist/runtimes/core/index.d.ts +2 -0
  628. package/dist/runtimes/core/index.d.ts.map +1 -0
  629. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +64 -0
  630. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +1 -0
  631. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts +9 -0
  632. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts.map +1 -0
  633. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js +7 -6
  634. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js.map +1 -1
  635. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts +35 -0
  636. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -0
  637. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js +8 -7
  638. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
  639. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts +36 -0
  640. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -0
  641. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +11 -10
  642. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  643. package/dist/runtimes/external-store/ThreadMessageConverter.d.ts +7 -0
  644. package/dist/runtimes/external-store/ThreadMessageConverter.d.ts.map +1 -0
  645. package/dist/runtimes/external-store/ThreadMessageConverter.js +3 -2
  646. package/dist/runtimes/external-store/ThreadMessageConverter.js.map +1 -1
  647. package/dist/runtimes/external-store/ThreadMessageLike.d.ts +28 -0
  648. package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -0
  649. package/dist/runtimes/external-store/ThreadMessageLike.js +3 -2
  650. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  651. package/dist/runtimes/external-store/auto-status.d.ts +9 -0
  652. package/dist/runtimes/external-store/auto-status.d.ts.map +1 -0
  653. package/dist/runtimes/external-store/auto-status.js +5 -4
  654. package/dist/runtimes/external-store/auto-status.js.map +1 -1
  655. package/dist/runtimes/external-store/createMessageConverter.d.ts +16 -0
  656. package/dist/runtimes/external-store/createMessageConverter.d.ts.map +1 -0
  657. package/dist/runtimes/external-store/createMessageConverter.js +6 -4
  658. package/dist/runtimes/external-store/createMessageConverter.js.map +1 -1
  659. package/dist/runtimes/external-store/external-message-converter.d.ts +22 -0
  660. package/dist/runtimes/external-store/external-message-converter.d.ts.map +1 -0
  661. package/dist/runtimes/external-store/external-message-converter.js +11 -9
  662. package/dist/runtimes/external-store/external-message-converter.js.map +1 -1
  663. package/dist/runtimes/external-store/getExternalStoreMessage.d.ts +9 -0
  664. package/dist/runtimes/external-store/getExternalStoreMessage.d.ts.map +1 -0
  665. package/dist/runtimes/external-store/getExternalStoreMessage.js +6 -5
  666. package/dist/runtimes/external-store/getExternalStoreMessage.js.map +1 -1
  667. package/dist/runtimes/external-store/index.d.ts +7 -0
  668. package/dist/runtimes/external-store/index.d.ts.map +1 -0
  669. package/dist/runtimes/external-store/index.js +5 -4
  670. package/dist/runtimes/external-store/index.js.map +1 -1
  671. package/dist/runtimes/external-store/useExternalStoreRuntime.d.ts +4 -0
  672. package/dist/runtimes/external-store/useExternalStoreRuntime.d.ts.map +1 -0
  673. package/dist/runtimes/external-store/useExternalStoreRuntime.js +8 -4
  674. package/dist/runtimes/external-store/useExternalStoreRuntime.js.map +1 -1
  675. package/dist/runtimes/index.d.ts +7 -0
  676. package/dist/runtimes/index.d.ts.map +1 -0
  677. package/dist/runtimes/index.js +7 -6
  678. package/dist/runtimes/index.js.map +1 -1
  679. package/dist/runtimes/local/ChatModelAdapter.d.ts +36 -0
  680. package/dist/runtimes/local/ChatModelAdapter.d.ts.map +1 -0
  681. package/dist/runtimes/local/LocalRuntimeCore.d.ts +11 -0
  682. package/dist/runtimes/local/LocalRuntimeCore.d.ts.map +1 -0
  683. package/dist/runtimes/local/LocalRuntimeCore.js +7 -6
  684. package/dist/runtimes/local/LocalRuntimeCore.js.map +1 -1
  685. package/dist/runtimes/local/LocalRuntimeOptions.d.ts +46 -0
  686. package/dist/runtimes/local/LocalRuntimeOptions.d.ts.map +1 -0
  687. package/dist/runtimes/local/LocalRuntimeOptions.js +2 -1
  688. package/dist/runtimes/local/LocalRuntimeOptions.js.map +1 -1
  689. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts +32 -0
  690. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts.map +1 -0
  691. package/dist/runtimes/local/LocalThreadListRuntimeCore.js +5 -4
  692. package/dist/runtimes/local/LocalThreadListRuntimeCore.js.map +1 -1
  693. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +45 -0
  694. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -0
  695. package/dist/runtimes/local/LocalThreadRuntimeCore.js +6 -5
  696. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  697. package/dist/runtimes/local/index.d.ts +4 -0
  698. package/dist/runtimes/local/index.d.ts.map +1 -0
  699. package/dist/runtimes/local/index.js +2 -1
  700. package/dist/runtimes/local/index.js.map +1 -1
  701. package/dist/runtimes/local/shouldContinue.d.ts +3 -0
  702. package/dist/runtimes/local/shouldContinue.d.ts.map +1 -0
  703. package/dist/runtimes/local/shouldContinue.js +2 -1
  704. package/dist/runtimes/local/shouldContinue.js.map +1 -1
  705. package/dist/runtimes/local/useLocalRuntime.d.ts +5 -0
  706. package/dist/runtimes/local/useLocalRuntime.d.ts.map +1 -0
  707. package/dist/runtimes/local/useLocalRuntime.js +9 -7
  708. package/dist/runtimes/local/useLocalRuntime.js.map +1 -1
  709. package/dist/runtimes/remote-thread-list/BaseSubscribable.d.ts +8 -0
  710. package/dist/runtimes/remote-thread-list/BaseSubscribable.d.ts.map +1 -0
  711. package/dist/runtimes/remote-thread-list/BaseSubscribable.js +3 -2
  712. package/dist/runtimes/remote-thread-list/BaseSubscribable.js.map +1 -1
  713. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.d.ts +3 -0
  714. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -0
  715. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js +3 -2
  716. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -1
  717. package/dist/runtimes/remote-thread-list/OptimisticState.d.ts +23 -0
  718. package/dist/runtimes/remote-thread-list/OptimisticState.d.ts.map +1 -0
  719. package/dist/runtimes/remote-thread-list/OptimisticState.js +5 -4
  720. package/dist/runtimes/remote-thread-list/OptimisticState.js.map +1 -1
  721. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts +81 -0
  722. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -0
  723. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js +9 -7
  724. package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js.map +1 -1
  725. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +119 -0
  726. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -0
  727. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +13 -11
  728. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  729. package/dist/runtimes/remote-thread-list/adapter/cloud.d.ts +13 -0
  730. package/dist/runtimes/remote-thread-list/adapter/cloud.d.ts.map +1 -0
  731. package/dist/runtimes/remote-thread-list/adapter/cloud.js +9 -8
  732. package/dist/runtimes/remote-thread-list/adapter/cloud.js.map +1 -1
  733. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +12 -0
  734. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -0
  735. package/dist/runtimes/remote-thread-list/adapter/in-memory.js +3 -2
  736. package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
  737. package/dist/runtimes/remote-thread-list/index.d.ts +4 -0
  738. package/dist/runtimes/remote-thread-list/index.d.ts.map +1 -0
  739. package/dist/runtimes/remote-thread-list/index.js +3 -2
  740. package/dist/runtimes/remote-thread-list/index.js.map +1 -1
  741. package/dist/runtimes/remote-thread-list/types.d.ts +32 -0
  742. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -0
  743. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.d.ts +4 -0
  744. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.d.ts.map +1 -0
  745. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js +8 -6
  746. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js.map +1 -1
  747. package/dist/runtimes/utils/MessageRepository.d.ts +151 -0
  748. package/dist/runtimes/utils/MessageRepository.d.ts.map +1 -0
  749. package/dist/runtimes/utils/MessageRepository.js +10 -9
  750. package/dist/runtimes/utils/MessageRepository.js.map +1 -1
  751. package/dist/tests/setup.d.ts +2 -0
  752. package/dist/tests/setup.d.ts.map +1 -0
  753. package/dist/tests/setup.js +2971 -3
  754. package/dist/tests/setup.js.map +1 -1
  755. package/dist/types/AssistantTypes.d.ts +132 -0
  756. package/dist/types/AssistantTypes.d.ts.map +1 -0
  757. package/dist/types/AttachmentTypes.d.ts +35 -0
  758. package/dist/types/AttachmentTypes.d.ts.map +1 -0
  759. package/dist/types/ContentPartComponentTypes.d.ts +24 -0
  760. package/dist/types/ContentPartComponentTypes.d.ts.map +1 -0
  761. package/dist/types/Unsubscribe.d.ts +2 -0
  762. package/dist/types/Unsubscribe.d.ts.map +1 -0
  763. package/dist/types/index.d.ts +5 -0
  764. package/dist/types/index.d.ts.map +1 -0
  765. package/dist/utils/CompositeContextProvider.d.ts +10 -0
  766. package/dist/utils/CompositeContextProvider.d.ts.map +1 -0
  767. package/dist/utils/CompositeContextProvider.js +4 -3
  768. package/dist/utils/CompositeContextProvider.js.map +1 -1
  769. package/dist/utils/RequireAtLeastOne.d.ts +4 -0
  770. package/dist/utils/RequireAtLeastOne.d.ts.map +1 -0
  771. package/dist/utils/combined/createCombinedStore.d.ts +8 -0
  772. package/dist/utils/combined/createCombinedStore.d.ts.map +1 -0
  773. package/dist/utils/combined/createCombinedStore.js +3 -1
  774. package/dist/utils/combined/createCombinedStore.js.map +1 -1
  775. package/dist/utils/combined/useCombinedStore.d.ts +3 -0
  776. package/dist/utils/combined/useCombinedStore.d.ts.map +1 -0
  777. package/dist/utils/combined/useCombinedStore.js +4 -2
  778. package/dist/utils/combined/useCombinedStore.js.map +1 -1
  779. package/dist/utils/createActionButton.d.ts +11 -0
  780. package/dist/utils/createActionButton.d.ts.map +1 -0
  781. package/dist/utils/createActionButton.js +3 -2
  782. package/dist/utils/createActionButton.js.map +1 -1
  783. package/dist/utils/getThreadMessageText.d.ts +3 -0
  784. package/dist/utils/getThreadMessageText.d.ts.map +1 -0
  785. package/dist/utils/getThreadMessageText.js +2 -1
  786. package/dist/utils/getThreadMessageText.js.map +1 -1
  787. package/dist/utils/hooks/useManagedRef.d.ts +2 -0
  788. package/dist/utils/hooks/useManagedRef.d.ts.map +1 -0
  789. package/dist/utils/hooks/useManagedRef.js +2 -1
  790. package/dist/utils/hooks/useManagedRef.js.map +1 -1
  791. package/dist/utils/hooks/useOnResizeContent.d.ts +2 -0
  792. package/dist/utils/hooks/useOnResizeContent.d.ts.map +1 -0
  793. package/dist/utils/hooks/useOnResizeContent.js +3 -2
  794. package/dist/utils/hooks/useOnResizeContent.js.map +1 -1
  795. package/dist/utils/hooks/useOnScrollToBottom.d.ts +2 -0
  796. package/dist/utils/hooks/useOnScrollToBottom.d.ts.map +1 -0
  797. package/dist/utils/hooks/useOnScrollToBottom.js +4 -2
  798. package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -1
  799. package/dist/utils/idUtils.d.ts +4 -0
  800. package/dist/utils/idUtils.d.ts.map +1 -0
  801. package/dist/utils/idUtils.js +5 -4
  802. package/dist/utils/idUtils.js.map +1 -1
  803. package/dist/utils/json/is-json.d.ts +5 -0
  804. package/dist/utils/json/is-json.d.ts.map +1 -0
  805. package/dist/utils/json/is-json.js +1 -0
  806. package/dist/utils/json/is-json.js.map +1 -1
  807. package/dist/utils/json/json-value.d.ts +6 -0
  808. package/dist/utils/json/json-value.d.ts.map +1 -0
  809. package/dist/utils/smooth/SmoothContext.d.ts +87 -0
  810. package/dist/utils/smooth/SmoothContext.d.ts.map +1 -0
  811. package/dist/utils/smooth/SmoothContext.js +10 -8
  812. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  813. package/dist/utils/smooth/index.d.ts +3 -0
  814. package/dist/utils/smooth/index.d.ts.map +1 -0
  815. package/dist/utils/smooth/index.js +4 -2
  816. package/dist/utils/smooth/index.js.map +1 -1
  817. package/dist/utils/smooth/useSmooth.d.ts +4 -0
  818. package/dist/utils/smooth/useSmooth.d.ts.map +1 -0
  819. package/dist/utils/smooth/useSmooth.js +9 -7
  820. package/dist/utils/smooth/useSmooth.js.map +1 -1
  821. package/dist/utils/useToolArgsFieldStatus.d.ts +12 -0
  822. package/dist/utils/useToolArgsFieldStatus.d.ts.map +1 -0
  823. package/dist/utils/useToolArgsFieldStatus.js +4 -3
  824. package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
  825. package/package.json +3 -18
  826. package/src/runtimes/external-store/useExternalStoreRuntime.tsx +7 -2
@@ -0,0 +1,45 @@
1
+ import type { AppendMessage } from "../../types";
2
+ import type { ChatModelAdapter } from "./ChatModelAdapter";
3
+ import { LocalRuntimeOptionsBase } from "./LocalRuntimeOptions";
4
+ import { AddToolResultOptions, ThreadSuggestion, ThreadRuntimeCore, StartRunConfig, ResumeRunConfig } from "../core/ThreadRuntimeCore";
5
+ import { BaseThreadRuntimeCore } from "../core/BaseThreadRuntimeCore";
6
+ import { ModelContextProvider } from "../../model-context";
7
+ export declare class LocalThreadRuntimeCore extends BaseThreadRuntimeCore implements ThreadRuntimeCore {
8
+ readonly capabilities: {
9
+ switchToBranch: boolean;
10
+ edit: boolean;
11
+ reload: boolean;
12
+ cancel: boolean;
13
+ unstable_copy: boolean;
14
+ speech: boolean;
15
+ attachments: boolean;
16
+ feedback: boolean;
17
+ };
18
+ private abortController;
19
+ readonly isDisabled = false;
20
+ private _suggestions;
21
+ private _suggestionsController;
22
+ get suggestions(): readonly ThreadSuggestion[];
23
+ get adapters(): {
24
+ chatModel: ChatModelAdapter;
25
+ history?: import("../adapters/thread-history/ThreadHistoryAdapter").ThreadHistoryAdapter | undefined;
26
+ attachments?: import("..").AttachmentAdapter | undefined;
27
+ speech?: import("..").SpeechSynthesisAdapter | undefined;
28
+ feedback?: import("..").FeedbackAdapter | undefined;
29
+ suggestion?: import("..").SuggestionAdapter | undefined;
30
+ };
31
+ constructor(contextProvider: ModelContextProvider, options: LocalRuntimeOptionsBase);
32
+ private _options;
33
+ private _lastRunConfig;
34
+ get extras(): undefined;
35
+ __internal_setOptions(options: LocalRuntimeOptionsBase): void;
36
+ private _loadPromise;
37
+ __internal_load(): Promise<void>;
38
+ append(message: AppendMessage): Promise<void>;
39
+ resumeRun({ stream, ...startConfig }: ResumeRunConfig): Promise<void>;
40
+ startRun({ parentId, runConfig }: StartRunConfig, runCallback?: ChatModelAdapter["run"]): Promise<void>;
41
+ private performRoundtrip;
42
+ cancelRun(): void;
43
+ addToolResult({ messageId, toolCallId, result, }: AddToolResultOptions): void;
44
+ }
45
+ //# sourceMappingURL=LocalThreadRuntimeCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalThreadRuntimeCore.d.ts","sourceRoot":"","sources":["../../../src/runtimes/local/LocalThreadRuntimeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAA0B,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,oBAAoB,CAAC;AAE/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,qBAAa,sBACX,SAAQ,qBACR,YAAW,iBAAiB;IAE5B,SAAgB,YAAY;;;;;;;;;MAS1B;IAEF,OAAO,CAAC,eAAe,CAAgC;IAEvD,SAAgB,UAAU,SAAS;IAEnC,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,sBAAsB,CAAgC;IAC9D,IAAW,WAAW,IAAI,SAAS,gBAAgB,EAAE,CAEpD;IAED,IAAW,QAAQ;;;;;;;MAElB;gBAGC,eAAe,EAAE,oBAAoB,EACrC,OAAO,EAAE,uBAAuB;IAMlC,OAAO,CAAC,QAAQ,CAA2B;IAE3C,OAAO,CAAC,cAAc,CAAiB;IAEvC,IAAW,MAAM,cAEhB;IAEM,qBAAqB,CAAC,OAAO,EAAE,uBAAuB;IA4B7D,OAAO,CAAC,YAAY,CAA4B;IACzC,eAAe;IA0BT,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BnD,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,QAAQ,CACnB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,EACvC,WAAW,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC;YAgEF,gBAAgB;IA4JvB,SAAS;IAKT,aAAa,CAAC,EACnB,SAAS,EACT,UAAU,EACV,MAAM,GACP,EAAE,oBAAoB;CAqCxB"}
@@ -1,7 +1,8 @@
1
- import { fromThreadMessageLike, generateId } from "../../internal";
2
- import { shouldContinue } from "./shouldContinue";
3
- import { BaseThreadRuntimeCore } from "../core/BaseThreadRuntimeCore";
4
- class LocalThreadRuntimeCore extends BaseThreadRuntimeCore {
1
+ // src/runtimes/local/LocalThreadRuntimeCore.tsx
2
+ import { fromThreadMessageLike, generateId } from "../../internal.js";
3
+ import { shouldContinue } from "./shouldContinue.js";
4
+ import { BaseThreadRuntimeCore } from "../core/BaseThreadRuntimeCore.js";
5
+ var LocalThreadRuntimeCore = class extends BaseThreadRuntimeCore {
5
6
  capabilities = {
6
7
  switchToBranch: true,
7
8
  edit: true,
@@ -301,7 +302,7 @@ class LocalThreadRuntimeCore extends BaseThreadRuntimeCore {
301
302
  this.performRoundtrip(parentId, message, this._lastRunConfig);
302
303
  }
303
304
  }
304
- }
305
+ };
305
306
  export {
306
307
  LocalThreadRuntimeCore
307
308
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/local/LocalThreadRuntimeCore.tsx"],"sourcesContent":["import { fromThreadMessageLike, generateId } from \"../../internal\";\nimport type { AppendMessage, ThreadAssistantMessage } from \"../../types\";\nimport type { ChatModelAdapter, ChatModelRunResult } from \"./ChatModelAdapter\";\nimport { shouldContinue } from \"./shouldContinue\";\nimport { LocalRuntimeOptionsBase } from \"./LocalRuntimeOptions\";\nimport {\n AddToolResultOptions,\n ThreadSuggestion,\n ThreadRuntimeCore,\n StartRunConfig,\n ResumeRunConfig,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\nimport { RunConfig } from \"../../types/AssistantTypes\";\nimport { ModelContextProvider } from \"../../model-context\";\n\nexport class LocalThreadRuntimeCore\n extends BaseThreadRuntimeCore\n implements ThreadRuntimeCore\n{\n public readonly capabilities = {\n switchToBranch: true,\n edit: true,\n reload: true,\n cancel: true,\n unstable_copy: true,\n speech: false,\n attachments: false,\n feedback: false,\n };\n\n private abortController: AbortController | null = null;\n\n public readonly isDisabled = false;\n\n private _suggestions: readonly ThreadSuggestion[] = [];\n private _suggestionsController: AbortController | null = null;\n public get suggestions(): readonly ThreadSuggestion[] {\n return this._suggestions;\n }\n\n public get adapters() {\n return this._options.adapters;\n }\n\n constructor(\n contextProvider: ModelContextProvider,\n options: LocalRuntimeOptionsBase,\n ) {\n super(contextProvider);\n this.__internal_setOptions(options);\n }\n\n private _options!: LocalRuntimeOptionsBase;\n\n private _lastRunConfig: RunConfig = {};\n\n public get extras() {\n return undefined;\n }\n\n public __internal_setOptions(options: LocalRuntimeOptionsBase) {\n if (this._options === options) return;\n\n this._options = options;\n\n let hasUpdates = false;\n\n const canSpeak = options.adapters?.speech !== undefined;\n if (this.capabilities.speech !== canSpeak) {\n this.capabilities.speech = canSpeak;\n hasUpdates = true;\n }\n\n const canAttach = options.adapters?.attachments !== undefined;\n if (this.capabilities.attachments !== canAttach) {\n this.capabilities.attachments = canAttach;\n hasUpdates = true;\n }\n\n const canFeedback = options.adapters?.feedback !== undefined;\n if (this.capabilities.feedback !== canFeedback) {\n this.capabilities.feedback = canFeedback;\n hasUpdates = true;\n }\n\n if (hasUpdates) this._notifySubscribers();\n }\n\n private _loadPromise: Promise<void> | undefined;\n public __internal_load() {\n if (this._loadPromise) return this._loadPromise;\n\n const promise = this.adapters.history?.load() ?? Promise.resolve(null);\n\n this._loadPromise = promise.then((repo) => {\n if (!repo) return;\n this.repository.import(repo);\n this._notifySubscribers();\n\n const resume = this.adapters.history?.resume?.bind(this.adapters.history);\n if (repo.unstable_resume && resume) {\n this.startRun(\n {\n parentId: this.repository.headId,\n sourceId: this.repository.headId,\n runConfig: this._lastRunConfig,\n },\n resume,\n );\n }\n });\n\n return this._loadPromise;\n }\n\n public async append(message: AppendMessage): Promise<void> {\n this.ensureInitialized();\n\n const newMessage = fromThreadMessageLike(message, generateId(), {\n type: \"complete\",\n reason: \"unknown\",\n });\n this.repository.addOrUpdateMessage(message.parentId, newMessage);\n this._options.adapters.history?.append({\n parentId: message.parentId,\n message: newMessage,\n });\n\n const startRun = message.startRun ?? message.role === \"user\";\n if (startRun) {\n await this.startRun({\n parentId: newMessage.id,\n sourceId: message.sourceId,\n runConfig: message.runConfig ?? {},\n });\n } else {\n this.repository.resetHead(newMessage.id);\n this._notifySubscribers();\n }\n }\n\n public resumeRun({ stream, ...startConfig }: ResumeRunConfig): Promise<void> {\n return this.startRun(startConfig, stream);\n }\n\n public async startRun(\n { parentId, runConfig }: StartRunConfig,\n runCallback?: ChatModelAdapter[\"run\"],\n ): Promise<void> {\n this.ensureInitialized();\n\n this.repository.resetHead(parentId);\n\n // add assistant message\n const id = generateId();\n let message: ThreadAssistantMessage = {\n id,\n role: \"assistant\",\n status: { type: \"running\" },\n content: [],\n metadata: {\n unstable_annotations: [],\n unstable_data: [],\n steps: [],\n custom: {},\n },\n createdAt: new Date(),\n };\n\n this._notifyEventSubscribers(\"run-start\");\n\n try {\n this._suggestions = [];\n this._suggestionsController?.abort();\n this._suggestionsController = null;\n\n do {\n message = await this.performRoundtrip(\n parentId,\n message,\n runConfig,\n runCallback,\n );\n runCallback = undefined;\n } while (shouldContinue(message, this._options.unstable_humanToolNames));\n } finally {\n this._notifyEventSubscribers(\"run-end\");\n }\n\n this._suggestionsController = new AbortController();\n const signal = this._suggestionsController.signal;\n if (\n this.adapters.suggestion &&\n message.status?.type !== \"requires-action\"\n ) {\n const promiseOrGenerator = this.adapters.suggestion?.generate({\n messages: this.messages,\n });\n\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n if (signal.aborted) break;\n this._suggestions = r;\n }\n } else {\n const result = await promiseOrGenerator;\n if (signal.aborted) return;\n this._suggestions = result;\n }\n }\n }\n\n private async performRoundtrip(\n parentId: string | null,\n message: ThreadAssistantMessage,\n runConfig: RunConfig | undefined,\n runCallback?: ChatModelAdapter[\"run\"],\n ) {\n const messages = this.repository.getMessages();\n\n // abort existing run\n this.abortController?.abort();\n this.abortController = new AbortController();\n\n const initialContent = message.content;\n const initialAnnotations = message.metadata?.unstable_annotations;\n const initialData = message.metadata?.unstable_data;\n const initialSteps = message.metadata?.steps;\n const initalCustom = message.metadata?.custom;\n const updateMessage = (m: Partial<ChatModelRunResult>) => {\n const newSteps = m.metadata?.steps;\n const steps = newSteps\n ? [...(initialSteps ?? []), ...newSteps]\n : undefined;\n\n const newAnnotations = m.metadata?.unstable_annotations;\n const newData = m.metadata?.unstable_data;\n const annotations = newAnnotations\n ? [...(initialAnnotations ?? []), ...newAnnotations]\n : undefined;\n const data = newData ? [...(initialData ?? []), ...newData] : undefined;\n\n message = {\n ...message,\n ...(m.content\n ? { content: [...initialContent, ...(m.content ?? [])] }\n : undefined),\n status: m.status ?? message.status,\n ...(m.metadata\n ? {\n metadata: {\n ...message.metadata,\n ...(annotations\n ? { unstable_annotations: annotations }\n : undefined),\n ...(data ? { unstable_data: data } : undefined),\n ...(steps ? { steps } : undefined),\n ...(m.metadata?.custom\n ? {\n custom: { ...(initalCustom ?? {}), ...m.metadata.custom },\n }\n : undefined),\n },\n }\n : undefined),\n };\n this.repository.addOrUpdateMessage(parentId, message);\n this._notifySubscribers();\n };\n\n const maxSteps = this._options.maxSteps ?? 2;\n\n const steps = message.metadata?.steps?.length ?? 0;\n if (steps >= maxSteps) {\n // reached max tool steps\n updateMessage({\n status: {\n type: \"incomplete\",\n reason: \"tool-calls\",\n },\n });\n return message;\n } else {\n updateMessage({\n status: {\n type: \"running\",\n },\n });\n }\n\n try {\n this._lastRunConfig = runConfig ?? {};\n const context = this.getModelContext();\n\n runCallback =\n runCallback ??\n this.adapters.chatModel.run.bind(this.adapters.chatModel);\n\n const abortSignal = this.abortController.signal;\n const promiseOrGenerator = runCallback({\n messages,\n runConfig: this._lastRunConfig,\n abortSignal,\n context,\n config: context,\n unstable_assistantMessageId: message.id,\n unstable_getMessage() {\n return message;\n },\n });\n\n // handle async iterator for streaming results\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n if (abortSignal.aborted) {\n updateMessage({\n status: { type: \"incomplete\", reason: \"cancelled\" },\n });\n break;\n }\n\n updateMessage(r);\n }\n } else {\n updateMessage(await promiseOrGenerator);\n }\n\n if (message.status.type === \"running\") {\n updateMessage({\n status: { type: \"complete\", reason: \"unknown\" },\n });\n }\n } catch (e) {\n // TODO this should be handled by the run result stream\n if (e instanceof Error && e.name === \"AbortError\") {\n updateMessage({\n status: { type: \"incomplete\", reason: \"cancelled\" },\n });\n } else {\n updateMessage({\n status: {\n type: \"incomplete\",\n reason: \"error\",\n error:\n e instanceof Error\n ? e.message\n : `[${typeof e}] ${new String(e).toString()}`,\n },\n });\n\n throw e;\n }\n } finally {\n this.abortController = null;\n\n if (\n message.status.type === \"complete\" ||\n message.status.type === \"incomplete\"\n ) {\n await this._options.adapters.history?.append({\n parentId,\n message: message,\n });\n }\n }\n return message;\n }\n\n public cancelRun() {\n this.abortController?.abort();\n this.abortController = null;\n }\n\n public addToolResult({\n messageId,\n toolCallId,\n result,\n }: AddToolResultOptions) {\n const messageData = this.repository.getMessage(messageId);\n const { parentId } = messageData;\n let { message } = messageData;\n\n if (message.role !== \"assistant\")\n throw new Error(\"Tried to add tool result to non-assistant message\");\n\n let added = false;\n let found = false;\n const newContent = message.content.map((c) => {\n if (c.type !== \"tool-call\") return c;\n if (c.toolCallId !== toolCallId) return c;\n found = true;\n if (!c.result) added = true;\n return {\n ...c,\n result,\n };\n });\n\n if (!found)\n throw new Error(\"Tried to add tool result to non-existing tool call\");\n\n message = {\n ...message,\n content: newContent,\n };\n this.repository.addOrUpdateMessage(parentId, message);\n\n if (\n added &&\n shouldContinue(message, this._options.unstable_humanToolNames)\n ) {\n this.performRoundtrip(parentId, message, this._lastRunConfig);\n }\n }\n}\n"],"mappings":"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","names":["steps"]}
1
+ {"version":3,"sources":["../../../src/runtimes/local/LocalThreadRuntimeCore.tsx"],"sourcesContent":["import { fromThreadMessageLike, generateId } from \"../../internal\";\nimport type { AppendMessage, ThreadAssistantMessage } from \"../../types\";\nimport type { ChatModelAdapter, ChatModelRunResult } from \"./ChatModelAdapter\";\nimport { shouldContinue } from \"./shouldContinue\";\nimport { LocalRuntimeOptionsBase } from \"./LocalRuntimeOptions\";\nimport {\n AddToolResultOptions,\n ThreadSuggestion,\n ThreadRuntimeCore,\n StartRunConfig,\n ResumeRunConfig,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\nimport { RunConfig } from \"../../types/AssistantTypes\";\nimport { ModelContextProvider } from \"../../model-context\";\n\nexport class LocalThreadRuntimeCore\n extends BaseThreadRuntimeCore\n implements ThreadRuntimeCore\n{\n public readonly capabilities = {\n switchToBranch: true,\n edit: true,\n reload: true,\n cancel: true,\n unstable_copy: true,\n speech: false,\n attachments: false,\n feedback: false,\n };\n\n private abortController: AbortController | null = null;\n\n public readonly isDisabled = false;\n\n private _suggestions: readonly ThreadSuggestion[] = [];\n private _suggestionsController: AbortController | null = null;\n public get suggestions(): readonly ThreadSuggestion[] {\n return this._suggestions;\n }\n\n public get adapters() {\n return this._options.adapters;\n }\n\n constructor(\n contextProvider: ModelContextProvider,\n options: LocalRuntimeOptionsBase,\n ) {\n super(contextProvider);\n this.__internal_setOptions(options);\n }\n\n private _options!: LocalRuntimeOptionsBase;\n\n private _lastRunConfig: RunConfig = {};\n\n public get extras() {\n return undefined;\n }\n\n public __internal_setOptions(options: LocalRuntimeOptionsBase) {\n if (this._options === options) return;\n\n this._options = options;\n\n let hasUpdates = false;\n\n const canSpeak = options.adapters?.speech !== undefined;\n if (this.capabilities.speech !== canSpeak) {\n this.capabilities.speech = canSpeak;\n hasUpdates = true;\n }\n\n const canAttach = options.adapters?.attachments !== undefined;\n if (this.capabilities.attachments !== canAttach) {\n this.capabilities.attachments = canAttach;\n hasUpdates = true;\n }\n\n const canFeedback = options.adapters?.feedback !== undefined;\n if (this.capabilities.feedback !== canFeedback) {\n this.capabilities.feedback = canFeedback;\n hasUpdates = true;\n }\n\n if (hasUpdates) this._notifySubscribers();\n }\n\n private _loadPromise: Promise<void> | undefined;\n public __internal_load() {\n if (this._loadPromise) return this._loadPromise;\n\n const promise = this.adapters.history?.load() ?? Promise.resolve(null);\n\n this._loadPromise = promise.then((repo) => {\n if (!repo) return;\n this.repository.import(repo);\n this._notifySubscribers();\n\n const resume = this.adapters.history?.resume?.bind(this.adapters.history);\n if (repo.unstable_resume && resume) {\n this.startRun(\n {\n parentId: this.repository.headId,\n sourceId: this.repository.headId,\n runConfig: this._lastRunConfig,\n },\n resume,\n );\n }\n });\n\n return this._loadPromise;\n }\n\n public async append(message: AppendMessage): Promise<void> {\n this.ensureInitialized();\n\n const newMessage = fromThreadMessageLike(message, generateId(), {\n type: \"complete\",\n reason: \"unknown\",\n });\n this.repository.addOrUpdateMessage(message.parentId, newMessage);\n this._options.adapters.history?.append({\n parentId: message.parentId,\n message: newMessage,\n });\n\n const startRun = message.startRun ?? message.role === \"user\";\n if (startRun) {\n await this.startRun({\n parentId: newMessage.id,\n sourceId: message.sourceId,\n runConfig: message.runConfig ?? {},\n });\n } else {\n this.repository.resetHead(newMessage.id);\n this._notifySubscribers();\n }\n }\n\n public resumeRun({ stream, ...startConfig }: ResumeRunConfig): Promise<void> {\n return this.startRun(startConfig, stream);\n }\n\n public async startRun(\n { parentId, runConfig }: StartRunConfig,\n runCallback?: ChatModelAdapter[\"run\"],\n ): Promise<void> {\n this.ensureInitialized();\n\n this.repository.resetHead(parentId);\n\n // add assistant message\n const id = generateId();\n let message: ThreadAssistantMessage = {\n id,\n role: \"assistant\",\n status: { type: \"running\" },\n content: [],\n metadata: {\n unstable_annotations: [],\n unstable_data: [],\n steps: [],\n custom: {},\n },\n createdAt: new Date(),\n };\n\n this._notifyEventSubscribers(\"run-start\");\n\n try {\n this._suggestions = [];\n this._suggestionsController?.abort();\n this._suggestionsController = null;\n\n do {\n message = await this.performRoundtrip(\n parentId,\n message,\n runConfig,\n runCallback,\n );\n runCallback = undefined;\n } while (shouldContinue(message, this._options.unstable_humanToolNames));\n } finally {\n this._notifyEventSubscribers(\"run-end\");\n }\n\n this._suggestionsController = new AbortController();\n const signal = this._suggestionsController.signal;\n if (\n this.adapters.suggestion &&\n message.status?.type !== \"requires-action\"\n ) {\n const promiseOrGenerator = this.adapters.suggestion?.generate({\n messages: this.messages,\n });\n\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n if (signal.aborted) break;\n this._suggestions = r;\n }\n } else {\n const result = await promiseOrGenerator;\n if (signal.aborted) return;\n this._suggestions = result;\n }\n }\n }\n\n private async performRoundtrip(\n parentId: string | null,\n message: ThreadAssistantMessage,\n runConfig: RunConfig | undefined,\n runCallback?: ChatModelAdapter[\"run\"],\n ) {\n const messages = this.repository.getMessages();\n\n // abort existing run\n this.abortController?.abort();\n this.abortController = new AbortController();\n\n const initialContent = message.content;\n const initialAnnotations = message.metadata?.unstable_annotations;\n const initialData = message.metadata?.unstable_data;\n const initialSteps = message.metadata?.steps;\n const initalCustom = message.metadata?.custom;\n const updateMessage = (m: Partial<ChatModelRunResult>) => {\n const newSteps = m.metadata?.steps;\n const steps = newSteps\n ? [...(initialSteps ?? []), ...newSteps]\n : undefined;\n\n const newAnnotations = m.metadata?.unstable_annotations;\n const newData = m.metadata?.unstable_data;\n const annotations = newAnnotations\n ? [...(initialAnnotations ?? []), ...newAnnotations]\n : undefined;\n const data = newData ? [...(initialData ?? []), ...newData] : undefined;\n\n message = {\n ...message,\n ...(m.content\n ? { content: [...initialContent, ...(m.content ?? [])] }\n : undefined),\n status: m.status ?? message.status,\n ...(m.metadata\n ? {\n metadata: {\n ...message.metadata,\n ...(annotations\n ? { unstable_annotations: annotations }\n : undefined),\n ...(data ? { unstable_data: data } : undefined),\n ...(steps ? { steps } : undefined),\n ...(m.metadata?.custom\n ? {\n custom: { ...(initalCustom ?? {}), ...m.metadata.custom },\n }\n : undefined),\n },\n }\n : undefined),\n };\n this.repository.addOrUpdateMessage(parentId, message);\n this._notifySubscribers();\n };\n\n const maxSteps = this._options.maxSteps ?? 2;\n\n const steps = message.metadata?.steps?.length ?? 0;\n if (steps >= maxSteps) {\n // reached max tool steps\n updateMessage({\n status: {\n type: \"incomplete\",\n reason: \"tool-calls\",\n },\n });\n return message;\n } else {\n updateMessage({\n status: {\n type: \"running\",\n },\n });\n }\n\n try {\n this._lastRunConfig = runConfig ?? {};\n const context = this.getModelContext();\n\n runCallback =\n runCallback ??\n this.adapters.chatModel.run.bind(this.adapters.chatModel);\n\n const abortSignal = this.abortController.signal;\n const promiseOrGenerator = runCallback({\n messages,\n runConfig: this._lastRunConfig,\n abortSignal,\n context,\n config: context,\n unstable_assistantMessageId: message.id,\n unstable_getMessage() {\n return message;\n },\n });\n\n // handle async iterator for streaming results\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n if (abortSignal.aborted) {\n updateMessage({\n status: { type: \"incomplete\", reason: \"cancelled\" },\n });\n break;\n }\n\n updateMessage(r);\n }\n } else {\n updateMessage(await promiseOrGenerator);\n }\n\n if (message.status.type === \"running\") {\n updateMessage({\n status: { type: \"complete\", reason: \"unknown\" },\n });\n }\n } catch (e) {\n // TODO this should be handled by the run result stream\n if (e instanceof Error && e.name === \"AbortError\") {\n updateMessage({\n status: { type: \"incomplete\", reason: \"cancelled\" },\n });\n } else {\n updateMessage({\n status: {\n type: \"incomplete\",\n reason: \"error\",\n error:\n e instanceof Error\n ? e.message\n : `[${typeof e}] ${new String(e).toString()}`,\n },\n });\n\n throw e;\n }\n } finally {\n this.abortController = null;\n\n if (\n message.status.type === \"complete\" ||\n message.status.type === \"incomplete\"\n ) {\n await this._options.adapters.history?.append({\n parentId,\n message: message,\n });\n }\n }\n return message;\n }\n\n public cancelRun() {\n this.abortController?.abort();\n this.abortController = null;\n }\n\n public addToolResult({\n messageId,\n toolCallId,\n result,\n }: AddToolResultOptions) {\n const messageData = this.repository.getMessage(messageId);\n const { parentId } = messageData;\n let { message } = messageData;\n\n if (message.role !== \"assistant\")\n throw new Error(\"Tried to add tool result to non-assistant message\");\n\n let added = false;\n let found = false;\n const newContent = message.content.map((c) => {\n if (c.type !== \"tool-call\") return c;\n if (c.toolCallId !== toolCallId) return c;\n found = true;\n if (!c.result) added = true;\n return {\n ...c,\n result,\n };\n });\n\n if (!found)\n throw new Error(\"Tried to add tool result to non-existing tool call\");\n\n message = {\n ...message,\n content: newContent,\n };\n this.repository.addOrUpdateMessage(parentId, message);\n\n if (\n added &&\n shouldContinue(message, this._options.unstable_humanToolNames)\n ) {\n this.performRoundtrip(parentId, message, this._lastRunConfig);\n }\n }\n}\n"],"mappings":";AAAA,SAAS,uBAAuB,kBAAkB;AAGlD,SAAS,sBAAsB;AAS/B,SAAS,6BAA6B;AAI/B,IAAM,yBAAN,cACG,sBAEV;AAAA,EACkB,eAAe;AAAA,IAC7B,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EAEQ,kBAA0C;AAAA,EAElC,aAAa;AAAA,EAErB,eAA4C,CAAC;AAAA,EAC7C,yBAAiD;AAAA,EACzD,IAAW,cAA2C;AACpD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAW,WAAW;AACpB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,YACE,iBACA,SACA;AACA,UAAM,eAAe;AACrB,SAAK,sBAAsB,OAAO;AAAA,EACpC;AAAA,EAEQ;AAAA,EAEA,iBAA4B,CAAC;AAAA,EAErC,IAAW,SAAS;AAClB,WAAO;AAAA,EACT;AAAA,EAEO,sBAAsB,SAAkC;AAC7D,QAAI,KAAK,aAAa,QAAS;AAE/B,SAAK,WAAW;AAEhB,QAAI,aAAa;AAEjB,UAAM,WAAW,QAAQ,UAAU,WAAW;AAC9C,QAAI,KAAK,aAAa,WAAW,UAAU;AACzC,WAAK,aAAa,SAAS;AAC3B,mBAAa;AAAA,IACf;AAEA,UAAM,YAAY,QAAQ,UAAU,gBAAgB;AACpD,QAAI,KAAK,aAAa,gBAAgB,WAAW;AAC/C,WAAK,aAAa,cAAc;AAChC,mBAAa;AAAA,IACf;AAEA,UAAM,cAAc,QAAQ,UAAU,aAAa;AACnD,QAAI,KAAK,aAAa,aAAa,aAAa;AAC9C,WAAK,aAAa,WAAW;AAC7B,mBAAa;AAAA,IACf;AAEA,QAAI,WAAY,MAAK,mBAAmB;AAAA,EAC1C;AAAA,EAEQ;AAAA,EACD,kBAAkB;AACvB,QAAI,KAAK,aAAc,QAAO,KAAK;AAEnC,UAAM,UAAU,KAAK,SAAS,SAAS,KAAK,KAAK,QAAQ,QAAQ,IAAI;AAErE,SAAK,eAAe,QAAQ,KAAK,CAAC,SAAS;AACzC,UAAI,CAAC,KAAM;AACX,WAAK,WAAW,OAAO,IAAI;AAC3B,WAAK,mBAAmB;AAExB,YAAM,SAAS,KAAK,SAAS,SAAS,QAAQ,KAAK,KAAK,SAAS,OAAO;AACxE,UAAI,KAAK,mBAAmB,QAAQ;AAClC,aAAK;AAAA,UACH;AAAA,YACE,UAAU,KAAK,WAAW;AAAA,YAC1B,UAAU,KAAK,WAAW;AAAA,YAC1B,WAAW,KAAK;AAAA,UAClB;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAED,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAa,OAAO,SAAuC;AACzD,SAAK,kBAAkB;AAEvB,UAAM,aAAa,sBAAsB,SAAS,WAAW,GAAG;AAAA,MAC9D,MAAM;AAAA,MACN,QAAQ;AAAA,IACV,CAAC;AACD,SAAK,WAAW,mBAAmB,QAAQ,UAAU,UAAU;AAC/D,SAAK,SAAS,SAAS,SAAS,OAAO;AAAA,MACrC,UAAU,QAAQ;AAAA,MAClB,SAAS;AAAA,IACX,CAAC;AAED,UAAM,WAAW,QAAQ,YAAY,QAAQ,SAAS;AACtD,QAAI,UAAU;AACZ,YAAM,KAAK,SAAS;AAAA,QAClB,UAAU,WAAW;AAAA,QACrB,UAAU,QAAQ;AAAA,QAClB,WAAW,QAAQ,aAAa,CAAC;AAAA,MACnC,CAAC;AAAA,IACH,OAAO;AACL,WAAK,WAAW,UAAU,WAAW,EAAE;AACvC,WAAK,mBAAmB;AAAA,IAC1B;AAAA,EACF;AAAA,EAEO,UAAU,EAAE,QAAQ,GAAG,YAAY,GAAmC;AAC3E,WAAO,KAAK,SAAS,aAAa,MAAM;AAAA,EAC1C;AAAA,EAEA,MAAa,SACX,EAAE,UAAU,UAAU,GACtB,aACe;AACf,SAAK,kBAAkB;AAEvB,SAAK,WAAW,UAAU,QAAQ;AAGlC,UAAM,KAAK,WAAW;AACtB,QAAI,UAAkC;AAAA,MACpC;AAAA,MACA,MAAM;AAAA,MACN,QAAQ,EAAE,MAAM,UAAU;AAAA,MAC1B,SAAS,CAAC;AAAA,MACV,UAAU;AAAA,QACR,sBAAsB,CAAC;AAAA,QACvB,eAAe,CAAC;AAAA,QAChB,OAAO,CAAC;AAAA,QACR,QAAQ,CAAC;AAAA,MACX;AAAA,MACA,WAAW,oBAAI,KAAK;AAAA,IACtB;AAEA,SAAK,wBAAwB,WAAW;AAExC,QAAI;AACF,WAAK,eAAe,CAAC;AACrB,WAAK,wBAAwB,MAAM;AACnC,WAAK,yBAAyB;AAE9B,SAAG;AACD,kBAAU,MAAM,KAAK;AAAA,UACnB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AACA,sBAAc;AAAA,MAChB,SAAS,eAAe,SAAS,KAAK,SAAS,uBAAuB;AAAA,IACxE,UAAE;AACA,WAAK,wBAAwB,SAAS;AAAA,IACxC;AAEA,SAAK,yBAAyB,IAAI,gBAAgB;AAClD,UAAM,SAAS,KAAK,uBAAuB;AAC3C,QACE,KAAK,SAAS,cACd,QAAQ,QAAQ,SAAS,mBACzB;AACA,YAAM,qBAAqB,KAAK,SAAS,YAAY,SAAS;AAAA,QAC5D,UAAU,KAAK;AAAA,MACjB,CAAC;AAED,UAAI,OAAO,iBAAiB,oBAAoB;AAC9C,yBAAiB,KAAK,oBAAoB;AACxC,cAAI,OAAO,QAAS;AACpB,eAAK,eAAe;AAAA,QACtB;AAAA,MACF,OAAO;AACL,cAAM,SAAS,MAAM;AACrB,YAAI,OAAO,QAAS;AACpB,aAAK,eAAe;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAc,iBACZ,UACA,SACA,WACA,aACA;AACA,UAAM,WAAW,KAAK,WAAW,YAAY;AAG7C,SAAK,iBAAiB,MAAM;AAC5B,SAAK,kBAAkB,IAAI,gBAAgB;AAE3C,UAAM,iBAAiB,QAAQ;AAC/B,UAAM,qBAAqB,QAAQ,UAAU;AAC7C,UAAM,cAAc,QAAQ,UAAU;AACtC,UAAM,eAAe,QAAQ,UAAU;AACvC,UAAM,eAAe,QAAQ,UAAU;AACvC,UAAM,gBAAgB,CAAC,MAAmC;AACxD,YAAM,WAAW,EAAE,UAAU;AAC7B,YAAMA,SAAQ,WACV,CAAC,GAAI,gBAAgB,CAAC,GAAI,GAAG,QAAQ,IACrC;AAEJ,YAAM,iBAAiB,EAAE,UAAU;AACnC,YAAM,UAAU,EAAE,UAAU;AAC5B,YAAM,cAAc,iBAChB,CAAC,GAAI,sBAAsB,CAAC,GAAI,GAAG,cAAc,IACjD;AACJ,YAAM,OAAO,UAAU,CAAC,GAAI,eAAe,CAAC,GAAI,GAAG,OAAO,IAAI;AAE9D,gBAAU;AAAA,QACR,GAAG;AAAA,QACH,GAAI,EAAE,UACF,EAAE,SAAS,CAAC,GAAG,gBAAgB,GAAI,EAAE,WAAW,CAAC,CAAE,EAAE,IACrD;AAAA,QACJ,QAAQ,EAAE,UAAU,QAAQ;AAAA,QAC5B,GAAI,EAAE,WACF;AAAA,UACE,UAAU;AAAA,YACR,GAAG,QAAQ;AAAA,YACX,GAAI,cACA,EAAE,sBAAsB,YAAY,IACpC;AAAA,YACJ,GAAI,OAAO,EAAE,eAAe,KAAK,IAAI;AAAA,YACrC,GAAIA,SAAQ,EAAE,OAAAA,OAAM,IAAI;AAAA,YACxB,GAAI,EAAE,UAAU,SACZ;AAAA,cACE,QAAQ,EAAE,GAAI,gBAAgB,CAAC,GAAI,GAAG,EAAE,SAAS,OAAO;AAAA,YAC1D,IACA;AAAA,UACN;AAAA,QACF,IACA;AAAA,MACN;AACA,WAAK,WAAW,mBAAmB,UAAU,OAAO;AACpD,WAAK,mBAAmB;AAAA,IAC1B;AAEA,UAAM,WAAW,KAAK,SAAS,YAAY;AAE3C,UAAM,QAAQ,QAAQ,UAAU,OAAO,UAAU;AACjD,QAAI,SAAS,UAAU;AAErB,oBAAc;AAAA,QACZ,QAAQ;AAAA,UACN,MAAM;AAAA,UACN,QAAQ;AAAA,QACV;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT,OAAO;AACL,oBAAc;AAAA,QACZ,QAAQ;AAAA,UACN,MAAM;AAAA,QACR;AAAA,MACF,CAAC;AAAA,IACH;AAEA,QAAI;AACF,WAAK,iBAAiB,aAAa,CAAC;AACpC,YAAM,UAAU,KAAK,gBAAgB;AAErC,oBACE,eACA,KAAK,SAAS,UAAU,IAAI,KAAK,KAAK,SAAS,SAAS;AAE1D,YAAM,cAAc,KAAK,gBAAgB;AACzC,YAAM,qBAAqB,YAAY;AAAA,QACrC;AAAA,QACA,WAAW,KAAK;AAAA,QAChB;AAAA,QACA;AAAA,QACA,QAAQ;AAAA,QACR,6BAA6B,QAAQ;AAAA,QACrC,sBAAsB;AACpB,iBAAO;AAAA,QACT;AAAA,MACF,CAAC;AAGD,UAAI,OAAO,iBAAiB,oBAAoB;AAC9C,yBAAiB,KAAK,oBAAoB;AACxC,cAAI,YAAY,SAAS;AACvB,0BAAc;AAAA,cACZ,QAAQ,EAAE,MAAM,cAAc,QAAQ,YAAY;AAAA,YACpD,CAAC;AACD;AAAA,UACF;AAEA,wBAAc,CAAC;AAAA,QACjB;AAAA,MACF,OAAO;AACL,sBAAc,MAAM,kBAAkB;AAAA,MACxC;AAEA,UAAI,QAAQ,OAAO,SAAS,WAAW;AACrC,sBAAc;AAAA,UACZ,QAAQ,EAAE,MAAM,YAAY,QAAQ,UAAU;AAAA,QAChD,CAAC;AAAA,MACH;AAAA,IACF,SAAS,GAAG;AAEV,UAAI,aAAa,SAAS,EAAE,SAAS,cAAc;AACjD,sBAAc;AAAA,UACZ,QAAQ,EAAE,MAAM,cAAc,QAAQ,YAAY;AAAA,QACpD,CAAC;AAAA,MACH,OAAO;AACL,sBAAc;AAAA,UACZ,QAAQ;AAAA,YACN,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,OACE,aAAa,QACT,EAAE,UACF,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE,SAAS,CAAC;AAAA,UACjD;AAAA,QACF,CAAC;AAED,cAAM;AAAA,MACR;AAAA,IACF,UAAE;AACA,WAAK,kBAAkB;AAEvB,UACE,QAAQ,OAAO,SAAS,cACxB,QAAQ,OAAO,SAAS,cACxB;AACA,cAAM,KAAK,SAAS,SAAS,SAAS,OAAO;AAAA,UAC3C;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEO,YAAY;AACjB,SAAK,iBAAiB,MAAM;AAC5B,SAAK,kBAAkB;AAAA,EACzB;AAAA,EAEO,cAAc;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAyB;AACvB,UAAM,cAAc,KAAK,WAAW,WAAW,SAAS;AACxD,UAAM,EAAE,SAAS,IAAI;AACrB,QAAI,EAAE,QAAQ,IAAI;AAElB,QAAI,QAAQ,SAAS;AACnB,YAAM,IAAI,MAAM,mDAAmD;AAErE,QAAI,QAAQ;AACZ,QAAI,QAAQ;AACZ,UAAM,aAAa,QAAQ,QAAQ,IAAI,CAAC,MAAM;AAC5C,UAAI,EAAE,SAAS,YAAa,QAAO;AACnC,UAAI,EAAE,eAAe,WAAY,QAAO;AACxC,cAAQ;AACR,UAAI,CAAC,EAAE,OAAQ,SAAQ;AACvB,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,MACF;AAAA,IACF,CAAC;AAED,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,oDAAoD;AAEtE,cAAU;AAAA,MACR,GAAG;AAAA,MACH,SAAS;AAAA,IACX;AACA,SAAK,WAAW,mBAAmB,UAAU,OAAO;AAEpD,QACE,SACA,eAAe,SAAS,KAAK,SAAS,uBAAuB,GAC7D;AACA,WAAK,iBAAiB,UAAU,SAAS,KAAK,cAAc;AAAA,IAC9D;AAAA,EACF;AACF;","names":["steps"]}
@@ -0,0 +1,4 @@
1
+ export { useLocalRuntime } from "./useLocalRuntime";
2
+ export type { LocalRuntimeOptions } from "./LocalRuntimeOptions";
3
+ export type { ChatModelAdapter, ChatModelRunOptions, ChatModelRunResult, ChatModelRunUpdate, } from "./ChatModelAdapter";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
@@ -1,4 +1,5 @@
1
- import { useLocalRuntime } from "./useLocalRuntime";
1
+ // src/runtimes/local/index.ts
2
+ import { useLocalRuntime } from "./useLocalRuntime.js";
2
3
  export {
3
4
  useLocalRuntime
4
5
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/local/index.ts"],"sourcesContent":["export { useLocalRuntime } from \"./useLocalRuntime\";\nexport type { LocalRuntimeOptions } from \"./LocalRuntimeOptions\";\nexport type {\n ChatModelAdapter,\n ChatModelRunOptions,\n ChatModelRunResult,\n ChatModelRunUpdate,\n} from \"./ChatModelAdapter\";\n"],"mappings":"AAAA,SAAS,uBAAuB;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/local/index.ts"],"sourcesContent":["export { useLocalRuntime } from \"./useLocalRuntime\";\nexport type { LocalRuntimeOptions } from \"./LocalRuntimeOptions\";\nexport type {\n ChatModelAdapter,\n ChatModelRunOptions,\n ChatModelRunResult,\n ChatModelRunUpdate,\n} from \"./ChatModelAdapter\";\n"],"mappings":";AAAA,SAAS,uBAAuB;","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { ThreadAssistantMessage } from "../../types";
2
+ export declare const shouldContinue: (result: ThreadAssistantMessage, humanToolNames: string[] | undefined) => boolean;
3
+ //# sourceMappingURL=shouldContinue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shouldContinue.d.ts","sourceRoot":"","sources":["../../../src/runtimes/local/shouldContinue.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,eAAO,MAAM,cAAc,GACzB,QAAQ,sBAAsB,EAC9B,gBAAgB,MAAM,EAAE,GAAG,SAAS,YAqBrC,CAAC"}
@@ -1,4 +1,5 @@
1
- const shouldContinue = (result, humanToolNames) => {
1
+ // src/runtimes/local/shouldContinue.tsx
2
+ var shouldContinue = (result, humanToolNames) => {
2
3
  if (humanToolNames === void 0) {
3
4
  return result.status?.type === "requires-action" && result.status.reason === "tool-calls" && result.content.every((c) => c.type !== "tool-call" || !!c.result);
4
5
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/local/shouldContinue.tsx"],"sourcesContent":["import type { ThreadAssistantMessage } from \"../../types\";\n\nexport const shouldContinue = (\n result: ThreadAssistantMessage,\n humanToolNames: string[] | undefined,\n) => {\n // TODO legacy behavior -- make specifying human tool names required\n if (humanToolNames === undefined) {\n return (\n result.status?.type === \"requires-action\" &&\n result.status.reason === \"tool-calls\" &&\n result.content.every((c) => c.type !== \"tool-call\" || !!c.result)\n );\n }\n\n return (\n result.status?.type === \"requires-action\" &&\n result.status.reason === \"tool-calls\" &&\n result.content.every(\n (c) =>\n c.type !== \"tool-call\" ||\n !!c.result ||\n !humanToolNames.includes(c.toolName),\n )\n );\n};\n"],"mappings":"AAEO,MAAM,iBAAiB,CAC5B,QACA,mBACG;AAEH,MAAI,mBAAmB,QAAW;AAChC,WACE,OAAO,QAAQ,SAAS,qBACxB,OAAO,OAAO,WAAW,gBACzB,OAAO,QAAQ,MAAM,CAAC,MAAM,EAAE,SAAS,eAAe,CAAC,CAAC,EAAE,MAAM;AAAA,EAEpE;AAEA,SACE,OAAO,QAAQ,SAAS,qBACxB,OAAO,OAAO,WAAW,gBACzB,OAAO,QAAQ;AAAA,IACb,CAAC,MACC,EAAE,SAAS,eACX,CAAC,CAAC,EAAE,UACJ,CAAC,eAAe,SAAS,EAAE,QAAQ;AAAA,EACvC;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/local/shouldContinue.tsx"],"sourcesContent":["import type { ThreadAssistantMessage } from \"../../types\";\n\nexport const shouldContinue = (\n result: ThreadAssistantMessage,\n humanToolNames: string[] | undefined,\n) => {\n // TODO legacy behavior -- make specifying human tool names required\n if (humanToolNames === undefined) {\n return (\n result.status?.type === \"requires-action\" &&\n result.status.reason === \"tool-calls\" &&\n result.content.every((c) => c.type !== \"tool-call\" || !!c.result)\n );\n }\n\n return (\n result.status?.type === \"requires-action\" &&\n result.status.reason === \"tool-calls\" &&\n result.content.every(\n (c) =>\n c.type !== \"tool-call\" ||\n !!c.result ||\n !humanToolNames.includes(c.toolName),\n )\n );\n};\n"],"mappings":";AAEO,IAAM,iBAAiB,CAC5B,QACA,mBACG;AAEH,MAAI,mBAAmB,QAAW;AAChC,WACE,OAAO,QAAQ,SAAS,qBACxB,OAAO,OAAO,WAAW,gBACzB,OAAO,QAAQ,MAAM,CAAC,MAAM,EAAE,SAAS,eAAe,CAAC,CAAC,EAAE,MAAM;AAAA,EAEpE;AAEA,SACE,OAAO,QAAQ,SAAS,qBACxB,OAAO,OAAO,WAAW,gBACzB,OAAO,QAAQ;AAAA,IACb,CAAC,MACC,EAAE,SAAS,eACX,CAAC,CAAC,EAAE,UACJ,CAAC,eAAe,SAAS,EAAE,QAAQ;AAAA,EACvC;AAEJ;","names":[]}
@@ -0,0 +1,5 @@
1
+ import type { ChatModelAdapter } from "./ChatModelAdapter";
2
+ import { LocalRuntimeOptions } from "./LocalRuntimeOptions";
3
+ import { AssistantRuntimeImpl } from "../../internal";
4
+ export declare const useLocalRuntime: (adapter: ChatModelAdapter, { cloud, ...options }?: LocalRuntimeOptions) => AssistantRuntimeImpl;
5
+ //# sourceMappingURL=useLocalRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocalRuntime.d.ts","sourceRoot":"","sources":["../../../src/runtimes/local/useLocalRuntime.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAkCtD,eAAO,MAAM,eAAe,GAC1B,SAAS,gBAAgB,EACzB,wBAAuB,mBAAwB,yBAShD,CAAC"}
@@ -1,11 +1,13 @@
1
1
  "use client";
2
+
3
+ // src/runtimes/local/useLocalRuntime.tsx
2
4
  import { useEffect, useMemo, useState } from "react";
3
- import { LocalRuntimeCore } from "./LocalRuntimeCore";
4
- import { useRuntimeAdapters } from "../adapters/RuntimeAdapterProvider";
5
- import { useRemoteThreadListRuntime } from "../remote-thread-list/useRemoteThreadListRuntime";
6
- import { useCloudThreadListAdapter } from "../remote-thread-list/adapter/cloud";
7
- import { AssistantRuntimeImpl } from "../../internal";
8
- const useLocalThreadRuntime = (adapter, { initialMessages, ...options }) => {
5
+ import { LocalRuntimeCore } from "./LocalRuntimeCore.js";
6
+ import { useRuntimeAdapters } from "../adapters/RuntimeAdapterProvider.js";
7
+ import { useRemoteThreadListRuntime } from "../remote-thread-list/useRemoteThreadListRuntime.js";
8
+ import { useCloudThreadListAdapter } from "../remote-thread-list/adapter/cloud.js";
9
+ import { AssistantRuntimeImpl } from "../../internal.js";
10
+ var useLocalThreadRuntime = (adapter, { initialMessages, ...options }) => {
9
11
  const { modelContext, ...threadListAdapters } = useRuntimeAdapters() ?? {};
10
12
  const opt = useMemo(
11
13
  () => ({
@@ -29,7 +31,7 @@ const useLocalThreadRuntime = (adapter, { initialMessages, ...options }) => {
29
31
  }, [modelContext, runtime]);
30
32
  return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);
31
33
  };
32
- const useLocalRuntime = (adapter, { cloud, ...options } = {}) => {
34
+ var useLocalRuntime = (adapter, { cloud, ...options } = {}) => {
33
35
  const cloudAdapter = useCloudThreadListAdapter({ cloud });
34
36
  return useRemoteThreadListRuntime({
35
37
  runtimeHook: function RuntimeHook() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/local/useLocalRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useMemo, useState } from \"react\";\nimport type { ChatModelAdapter } from \"./ChatModelAdapter\";\nimport { LocalRuntimeCore } from \"./LocalRuntimeCore\";\nimport { LocalRuntimeOptions } from \"./LocalRuntimeOptions\";\nimport { useRuntimeAdapters } from \"../adapters/RuntimeAdapterProvider\";\nimport { useRemoteThreadListRuntime } from \"../remote-thread-list/useRemoteThreadListRuntime\";\nimport { useCloudThreadListAdapter } from \"../remote-thread-list/adapter/cloud\";\nimport { AssistantRuntimeImpl } from \"../../internal\";\n\nconst useLocalThreadRuntime = (\n adapter: ChatModelAdapter,\n { initialMessages, ...options }: LocalRuntimeOptions,\n) => {\n const { modelContext, ...threadListAdapters } = useRuntimeAdapters() ?? {};\n const opt = useMemo(\n () => ({\n ...options,\n adapters: {\n ...threadListAdapters,\n ...options.adapters,\n chatModel: adapter,\n },\n }),\n [adapter, options, threadListAdapters],\n );\n\n const [runtime] = useState(() => new LocalRuntimeCore(opt, initialMessages));\n\n useEffect(() => {\n runtime.threads.getMainThreadRuntimeCore().__internal_setOptions(opt);\n runtime.threads.getMainThreadRuntimeCore().__internal_load();\n }, [runtime, opt]);\n\n useEffect(() => {\n if (!modelContext) return undefined;\n return runtime.registerModelContextProvider(modelContext);\n }, [modelContext, runtime]);\n\n return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);\n};\n\nexport const useLocalRuntime = (\n adapter: ChatModelAdapter,\n { cloud, ...options }: LocalRuntimeOptions = {},\n) => {\n const cloudAdapter = useCloudThreadListAdapter({ cloud });\n return useRemoteThreadListRuntime({\n runtimeHook: function RuntimeHook() {\n return useLocalThreadRuntime(adapter, options);\n },\n adapter: cloudAdapter,\n });\n};\n"],"mappings":";AAEA,SAAS,WAAW,SAAS,gBAAgB;AAE7C,SAAS,wBAAwB;AAEjC,SAAS,0BAA0B;AACnC,SAAS,kCAAkC;AAC3C,SAAS,iCAAiC;AAC1C,SAAS,4BAA4B;AAErC,MAAM,wBAAwB,CAC5B,SACA,EAAE,iBAAiB,GAAG,QAAQ,MAC3B;AACH,QAAM,EAAE,cAAc,GAAG,mBAAmB,IAAI,mBAAmB,KAAK,CAAC;AACzE,QAAM,MAAM;AAAA,IACV,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU;AAAA,QACR,GAAG;AAAA,QACH,GAAG,QAAQ;AAAA,QACX,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,CAAC,SAAS,SAAS,kBAAkB;AAAA,EACvC;AAEA,QAAM,CAAC,OAAO,IAAI,SAAS,MAAM,IAAI,iBAAiB,KAAK,eAAe,CAAC;AAE3E,YAAU,MAAM;AACd,YAAQ,QAAQ,yBAAyB,EAAE,sBAAsB,GAAG;AACpE,YAAQ,QAAQ,yBAAyB,EAAE,gBAAgB;AAAA,EAC7D,GAAG,CAAC,SAAS,GAAG,CAAC;AAEjB,YAAU,MAAM;AACd,QAAI,CAAC,aAAc,QAAO;AAC1B,WAAO,QAAQ,6BAA6B,YAAY;AAAA,EAC1D,GAAG,CAAC,cAAc,OAAO,CAAC;AAE1B,SAAO,QAAQ,MAAM,IAAI,qBAAqB,OAAO,GAAG,CAAC,OAAO,CAAC;AACnE;AAEO,MAAM,kBAAkB,CAC7B,SACA,EAAE,OAAO,GAAG,QAAQ,IAAyB,CAAC,MAC3C;AACH,QAAM,eAAe,0BAA0B,EAAE,MAAM,CAAC;AACxD,SAAO,2BAA2B;AAAA,IAChC,aAAa,SAAS,cAAc;AAClC,aAAO,sBAAsB,SAAS,OAAO;AAAA,IAC/C;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/local/useLocalRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useMemo, useState } from \"react\";\nimport type { ChatModelAdapter } from \"./ChatModelAdapter\";\nimport { LocalRuntimeCore } from \"./LocalRuntimeCore\";\nimport { LocalRuntimeOptions } from \"./LocalRuntimeOptions\";\nimport { useRuntimeAdapters } from \"../adapters/RuntimeAdapterProvider\";\nimport { useRemoteThreadListRuntime } from \"../remote-thread-list/useRemoteThreadListRuntime\";\nimport { useCloudThreadListAdapter } from \"../remote-thread-list/adapter/cloud\";\nimport { AssistantRuntimeImpl } from \"../../internal\";\n\nconst useLocalThreadRuntime = (\n adapter: ChatModelAdapter,\n { initialMessages, ...options }: LocalRuntimeOptions,\n) => {\n const { modelContext, ...threadListAdapters } = useRuntimeAdapters() ?? {};\n const opt = useMemo(\n () => ({\n ...options,\n adapters: {\n ...threadListAdapters,\n ...options.adapters,\n chatModel: adapter,\n },\n }),\n [adapter, options, threadListAdapters],\n );\n\n const [runtime] = useState(() => new LocalRuntimeCore(opt, initialMessages));\n\n useEffect(() => {\n runtime.threads.getMainThreadRuntimeCore().__internal_setOptions(opt);\n runtime.threads.getMainThreadRuntimeCore().__internal_load();\n }, [runtime, opt]);\n\n useEffect(() => {\n if (!modelContext) return undefined;\n return runtime.registerModelContextProvider(modelContext);\n }, [modelContext, runtime]);\n\n return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);\n};\n\nexport const useLocalRuntime = (\n adapter: ChatModelAdapter,\n { cloud, ...options }: LocalRuntimeOptions = {},\n) => {\n const cloudAdapter = useCloudThreadListAdapter({ cloud });\n return useRemoteThreadListRuntime({\n runtimeHook: function RuntimeHook() {\n return useLocalThreadRuntime(adapter, options);\n },\n adapter: cloudAdapter,\n });\n};\n"],"mappings":";;;AAEA,SAAS,WAAW,SAAS,gBAAgB;AAE7C,SAAS,wBAAwB;AAEjC,SAAS,0BAA0B;AACnC,SAAS,kCAAkC;AAC3C,SAAS,iCAAiC;AAC1C,SAAS,4BAA4B;AAErC,IAAM,wBAAwB,CAC5B,SACA,EAAE,iBAAiB,GAAG,QAAQ,MAC3B;AACH,QAAM,EAAE,cAAc,GAAG,mBAAmB,IAAI,mBAAmB,KAAK,CAAC;AACzE,QAAM,MAAM;AAAA,IACV,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU;AAAA,QACR,GAAG;AAAA,QACH,GAAG,QAAQ;AAAA,QACX,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA,CAAC,SAAS,SAAS,kBAAkB;AAAA,EACvC;AAEA,QAAM,CAAC,OAAO,IAAI,SAAS,MAAM,IAAI,iBAAiB,KAAK,eAAe,CAAC;AAE3E,YAAU,MAAM;AACd,YAAQ,QAAQ,yBAAyB,EAAE,sBAAsB,GAAG;AACpE,YAAQ,QAAQ,yBAAyB,EAAE,gBAAgB;AAAA,EAC7D,GAAG,CAAC,SAAS,GAAG,CAAC;AAEjB,YAAU,MAAM;AACd,QAAI,CAAC,aAAc,QAAO;AAC1B,WAAO,QAAQ,6BAA6B,YAAY;AAAA,EAC1D,GAAG,CAAC,cAAc,OAAO,CAAC;AAE1B,SAAO,QAAQ,MAAM,IAAI,qBAAqB,OAAO,GAAG,CAAC,OAAO,CAAC;AACnE;AAEO,IAAM,kBAAkB,CAC7B,SACA,EAAE,OAAO,GAAG,QAAQ,IAAyB,CAAC,MAC3C;AACH,QAAM,eAAe,0BAA0B,EAAE,MAAM,CAAC;AACxD,SAAO,2BAA2B;AAAA,IAChC,aAAa,SAAS,cAAc;AAClC,aAAO,sBAAsB,SAAS,OAAO;AAAA,IAC/C;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACH;","names":[]}
@@ -0,0 +1,8 @@
1
+ import { Unsubscribe } from "../../types";
2
+ export declare class BaseSubscribable {
3
+ private _subscribers;
4
+ subscribe(callback: () => void): Unsubscribe;
5
+ waitForUpdate(): Promise<void>;
6
+ protected _notifySubscribers(): void;
7
+ }
8
+ //# sourceMappingURL=BaseSubscribable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSubscribable.d.ts","sourceRoot":"","sources":["../../../src/runtimes/remote-thread-list/BaseSubscribable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAyB;IAEtC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW;IAK5C,aAAa;IASpB,SAAS,CAAC,kBAAkB;CAkB7B"}
@@ -1,4 +1,5 @@
1
- class BaseSubscribable {
1
+ // src/runtimes/remote-thread-list/BaseSubscribable.tsx
2
+ var BaseSubscribable = class {
2
3
  _subscribers = /* @__PURE__ */ new Set();
3
4
  subscribe(callback) {
4
5
  this._subscribers.add(callback);
@@ -29,7 +30,7 @@ class BaseSubscribable {
29
30
  }
30
31
  }
31
32
  }
32
- }
33
+ };
33
34
  export {
34
35
  BaseSubscribable
35
36
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/remote-thread-list/BaseSubscribable.tsx"],"sourcesContent":["import { Unsubscribe } from \"../../types\";\n\nexport class BaseSubscribable {\n private _subscribers = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscribers.add(callback);\n return () => this._subscribers.delete(callback);\n }\n\n public waitForUpdate() {\n return new Promise<void>((resolve) => {\n const unsubscribe = this.subscribe(() => {\n unsubscribe();\n resolve();\n });\n });\n }\n\n protected _notifySubscribers() {\n const errors = [];\n for (const callback of this._subscribers) {\n try {\n callback();\n } catch (error) {\n errors.push(error);\n }\n }\n\n if (errors.length > 0) {\n if (errors.length === 1) {\n throw errors[0];\n } else {\n throw new AggregateError(errors);\n }\n }\n }\n}\n"],"mappings":"AAEO,MAAM,iBAAiB;AAAA,EACpB,eAAe,oBAAI,IAAgB;AAAA,EAEpC,UAAU,UAAmC;AAClD,SAAK,aAAa,IAAI,QAAQ;AAC9B,WAAO,MAAM,KAAK,aAAa,OAAO,QAAQ;AAAA,EAChD;AAAA,EAEO,gBAAgB;AACrB,WAAO,IAAI,QAAc,CAAC,YAAY;AACpC,YAAM,cAAc,KAAK,UAAU,MAAM;AACvC,oBAAY;AACZ,gBAAQ;AAAA,MACV,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEU,qBAAqB;AAC7B,UAAM,SAAS,CAAC;AAChB,eAAW,YAAY,KAAK,cAAc;AACxC,UAAI;AACF,iBAAS;AAAA,MACX,SAAS,OAAO;AACd,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA,IACF;AAEA,QAAI,OAAO,SAAS,GAAG;AACrB,UAAI,OAAO,WAAW,GAAG;AACvB,cAAM,OAAO,CAAC;AAAA,MAChB,OAAO;AACL,cAAM,IAAI,eAAe,MAAM;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/remote-thread-list/BaseSubscribable.tsx"],"sourcesContent":["import { Unsubscribe } from \"../../types\";\n\nexport class BaseSubscribable {\n private _subscribers = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscribers.add(callback);\n return () => this._subscribers.delete(callback);\n }\n\n public waitForUpdate() {\n return new Promise<void>((resolve) => {\n const unsubscribe = this.subscribe(() => {\n unsubscribe();\n resolve();\n });\n });\n }\n\n protected _notifySubscribers() {\n const errors = [];\n for (const callback of this._subscribers) {\n try {\n callback();\n } catch (error) {\n errors.push(error);\n }\n }\n\n if (errors.length > 0) {\n if (errors.length === 1) {\n throw errors[0];\n } else {\n throw new AggregateError(errors);\n }\n }\n }\n}\n"],"mappings":";AAEO,IAAM,mBAAN,MAAuB;AAAA,EACpB,eAAe,oBAAI,IAAgB;AAAA,EAEpC,UAAU,UAAmC;AAClD,SAAK,aAAa,IAAI,QAAQ;AAC9B,WAAO,MAAM,KAAK,aAAa,OAAO,QAAQ;AAAA,EAChD;AAAA,EAEO,gBAAgB;AACrB,WAAO,IAAI,QAAc,CAAC,YAAY;AACpC,YAAM,cAAc,KAAK,UAAU,MAAM;AACvC,oBAAY;AACZ,gBAAQ;AAAA,MACV,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEU,qBAAqB;AAC7B,UAAM,SAAS,CAAC;AAChB,eAAW,YAAY,KAAK,cAAc;AACxC,UAAI;AACF,iBAAS;AAAA,MACX,SAAS,OAAO;AACd,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA,IACF;AAEA,QAAI,OAAO,SAAS,GAAG;AACrB,UAAI,OAAO,WAAW,GAAG;AACvB,cAAM,OAAO,CAAC;AAAA,MAChB,OAAO;AACL,cAAM,IAAI,eAAe,MAAM;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ import { ThreadRuntimeCore } from "../../internal";
2
+ export declare const EMPTY_THREAD_CORE: ThreadRuntimeCore;
3
+ //# sourceMappingURL=EMPTY_THREAD_CORE.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EMPTY_THREAD_CORE.d.ts","sourceRoot":"","sources":["../../../src/runtimes/remote-thread-list/EMPTY_THREAD_CORE.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKnD,eAAO,MAAM,iBAAiB,EAAE,iBAgK/B,CAAC"}
@@ -1,7 +1,8 @@
1
- const EMPTY_THREAD_ERROR = new Error(
1
+ // src/runtimes/remote-thread-list/EMPTY_THREAD_CORE.tsx
2
+ var EMPTY_THREAD_ERROR = new Error(
2
3
  "This is the empty thread, a placeholder for the main thread. You cannot perform any actions on this thread instance. This error is probably because you tried to call a thread method in your render function. Call the method inside a `useEffect` hook instead."
3
4
  );
4
- const EMPTY_THREAD_CORE = {
5
+ var EMPTY_THREAD_CORE = {
5
6
  getMessageById() {
6
7
  return void 0;
7
8
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/remote-thread-list/EMPTY_THREAD_CORE.tsx"],"sourcesContent":["import { ThreadRuntimeCore } from \"../../internal\";\n\nconst EMPTY_THREAD_ERROR = new Error(\n \"This is the empty thread, a placeholder for the main thread. You cannot perform any actions on this thread instance. This error is probably because you tried to call a thread method in your render function. Call the method inside a `useEffect` hook instead.\",\n);\nexport const EMPTY_THREAD_CORE: ThreadRuntimeCore = {\n getMessageById() {\n return undefined;\n },\n\n getBranches() {\n return [];\n },\n\n switchToBranch() {\n throw EMPTY_THREAD_ERROR;\n },\n\n append() {\n throw EMPTY_THREAD_ERROR;\n },\n\n startRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n resumeRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n cancelRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n addToolResult() {\n throw EMPTY_THREAD_ERROR;\n },\n\n speak() {\n throw EMPTY_THREAD_ERROR;\n },\n\n stopSpeaking() {\n throw EMPTY_THREAD_ERROR;\n },\n\n getSubmittedFeedback() {\n return undefined;\n },\n\n submitFeedback() {\n throw EMPTY_THREAD_ERROR;\n },\n\n getModelContext() {\n return {};\n },\n\n composer: {\n attachments: [],\n\n getAttachmentAccept() {\n return \"*\";\n },\n\n async addAttachment() {\n throw EMPTY_THREAD_ERROR;\n },\n\n async removeAttachment() {\n throw EMPTY_THREAD_ERROR;\n },\n\n isEditing: false,\n\n canCancel: false,\n isEmpty: true,\n\n text: \"\",\n\n setText() {\n throw EMPTY_THREAD_ERROR;\n },\n\n role: \"user\",\n\n setRole() {\n throw EMPTY_THREAD_ERROR;\n },\n\n runConfig: {},\n\n setRunConfig() {\n throw EMPTY_THREAD_ERROR;\n },\n\n async reset() {\n // noop\n },\n\n async clearAttachments() {\n // noop\n },\n\n send() {\n throw EMPTY_THREAD_ERROR;\n },\n\n cancel() {\n // noop\n },\n\n subscribe() {\n return () => {};\n },\n\n unstable_on() {\n return () => {};\n },\n },\n\n getEditComposer() {\n return undefined;\n },\n\n beginEdit() {\n throw EMPTY_THREAD_ERROR;\n },\n\n speech: undefined,\n\n capabilities: {\n switchToBranch: false,\n edit: false,\n reload: false,\n cancel: false,\n unstable_copy: false,\n speech: false,\n attachments: false,\n feedback: false,\n },\n\n isDisabled: true,\n\n messages: [],\n\n suggestions: [],\n\n extras: undefined,\n\n subscribe() {\n return () => {};\n },\n\n import() {\n throw EMPTY_THREAD_ERROR;\n },\n\n export() {\n return { messages: [] };\n },\n\n unstable_on() {\n return () => {};\n },\n};\n"],"mappings":"AAEA,MAAM,qBAAqB,IAAI;AAAA,EAC7B;AACF;AACO,MAAM,oBAAuC;AAAA,EAClD,iBAAiB;AACf,WAAO;AAAA,EACT;AAAA,EAEA,cAAc;AACZ,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,iBAAiB;AACf,UAAM;AAAA,EACR;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,EACR;AAAA,EAEA,WAAW;AACT,UAAM;AAAA,EACR;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,gBAAgB;AACd,UAAM;AAAA,EACR;AAAA,EAEA,QAAQ;AACN,UAAM;AAAA,EACR;AAAA,EAEA,eAAe;AACb,UAAM;AAAA,EACR;AAAA,EAEA,uBAAuB;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AACf,UAAM;AAAA,EACR;AAAA,EAEA,kBAAkB;AAChB,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,UAAU;AAAA,IACR,aAAa,CAAC;AAAA,IAEd,sBAAsB;AACpB,aAAO;AAAA,IACT;AAAA,IAEA,MAAM,gBAAgB;AACpB,YAAM;AAAA,IACR;AAAA,IAEA,MAAM,mBAAmB;AACvB,YAAM;AAAA,IACR;AAAA,IAEA,WAAW;AAAA,IAEX,WAAW;AAAA,IACX,SAAS;AAAA,IAET,MAAM;AAAA,IAEN,UAAU;AACR,YAAM;AAAA,IACR;AAAA,IAEA,MAAM;AAAA,IAEN,UAAU;AACR,YAAM;AAAA,IACR;AAAA,IAEA,WAAW,CAAC;AAAA,IAEZ,eAAe;AACb,YAAM;AAAA,IACR;AAAA,IAEA,MAAM,QAAQ;AAAA,IAEd;AAAA,IAEA,MAAM,mBAAmB;AAAA,IAEzB;AAAA,IAEA,OAAO;AACL,YAAM;AAAA,IACR;AAAA,IAEA,SAAS;AAAA,IAET;AAAA,IAEA,YAAY;AACV,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAAA,IAEA,cAAc;AACZ,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,kBAAkB;AAChB,WAAO;AAAA,EACT;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,QAAQ;AAAA,EAER,cAAc;AAAA,IACZ,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EAEA,YAAY;AAAA,EAEZ,UAAU,CAAC;AAAA,EAEX,aAAa,CAAC;AAAA,EAEd,QAAQ;AAAA,EAER,YAAY;AACV,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,EACR;AAAA,EAEA,SAAS;AACP,WAAO,EAAE,UAAU,CAAC,EAAE;AAAA,EACxB;AAAA,EAEA,cAAc;AACZ,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/remote-thread-list/EMPTY_THREAD_CORE.tsx"],"sourcesContent":["import { ThreadRuntimeCore } from \"../../internal\";\n\nconst EMPTY_THREAD_ERROR = new Error(\n \"This is the empty thread, a placeholder for the main thread. You cannot perform any actions on this thread instance. This error is probably because you tried to call a thread method in your render function. Call the method inside a `useEffect` hook instead.\",\n);\nexport const EMPTY_THREAD_CORE: ThreadRuntimeCore = {\n getMessageById() {\n return undefined;\n },\n\n getBranches() {\n return [];\n },\n\n switchToBranch() {\n throw EMPTY_THREAD_ERROR;\n },\n\n append() {\n throw EMPTY_THREAD_ERROR;\n },\n\n startRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n resumeRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n cancelRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n addToolResult() {\n throw EMPTY_THREAD_ERROR;\n },\n\n speak() {\n throw EMPTY_THREAD_ERROR;\n },\n\n stopSpeaking() {\n throw EMPTY_THREAD_ERROR;\n },\n\n getSubmittedFeedback() {\n return undefined;\n },\n\n submitFeedback() {\n throw EMPTY_THREAD_ERROR;\n },\n\n getModelContext() {\n return {};\n },\n\n composer: {\n attachments: [],\n\n getAttachmentAccept() {\n return \"*\";\n },\n\n async addAttachment() {\n throw EMPTY_THREAD_ERROR;\n },\n\n async removeAttachment() {\n throw EMPTY_THREAD_ERROR;\n },\n\n isEditing: false,\n\n canCancel: false,\n isEmpty: true,\n\n text: \"\",\n\n setText() {\n throw EMPTY_THREAD_ERROR;\n },\n\n role: \"user\",\n\n setRole() {\n throw EMPTY_THREAD_ERROR;\n },\n\n runConfig: {},\n\n setRunConfig() {\n throw EMPTY_THREAD_ERROR;\n },\n\n async reset() {\n // noop\n },\n\n async clearAttachments() {\n // noop\n },\n\n send() {\n throw EMPTY_THREAD_ERROR;\n },\n\n cancel() {\n // noop\n },\n\n subscribe() {\n return () => {};\n },\n\n unstable_on() {\n return () => {};\n },\n },\n\n getEditComposer() {\n return undefined;\n },\n\n beginEdit() {\n throw EMPTY_THREAD_ERROR;\n },\n\n speech: undefined,\n\n capabilities: {\n switchToBranch: false,\n edit: false,\n reload: false,\n cancel: false,\n unstable_copy: false,\n speech: false,\n attachments: false,\n feedback: false,\n },\n\n isDisabled: true,\n\n messages: [],\n\n suggestions: [],\n\n extras: undefined,\n\n subscribe() {\n return () => {};\n },\n\n import() {\n throw EMPTY_THREAD_ERROR;\n },\n\n export() {\n return { messages: [] };\n },\n\n unstable_on() {\n return () => {};\n },\n};\n"],"mappings":";AAEA,IAAM,qBAAqB,IAAI;AAAA,EAC7B;AACF;AACO,IAAM,oBAAuC;AAAA,EAClD,iBAAiB;AACf,WAAO;AAAA,EACT;AAAA,EAEA,cAAc;AACZ,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,iBAAiB;AACf,UAAM;AAAA,EACR;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,EACR;AAAA,EAEA,WAAW;AACT,UAAM;AAAA,EACR;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,gBAAgB;AACd,UAAM;AAAA,EACR;AAAA,EAEA,QAAQ;AACN,UAAM;AAAA,EACR;AAAA,EAEA,eAAe;AACb,UAAM;AAAA,EACR;AAAA,EAEA,uBAAuB;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AACf,UAAM;AAAA,EACR;AAAA,EAEA,kBAAkB;AAChB,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,UAAU;AAAA,IACR,aAAa,CAAC;AAAA,IAEd,sBAAsB;AACpB,aAAO;AAAA,IACT;AAAA,IAEA,MAAM,gBAAgB;AACpB,YAAM;AAAA,IACR;AAAA,IAEA,MAAM,mBAAmB;AACvB,YAAM;AAAA,IACR;AAAA,IAEA,WAAW;AAAA,IAEX,WAAW;AAAA,IACX,SAAS;AAAA,IAET,MAAM;AAAA,IAEN,UAAU;AACR,YAAM;AAAA,IACR;AAAA,IAEA,MAAM;AAAA,IAEN,UAAU;AACR,YAAM;AAAA,IACR;AAAA,IAEA,WAAW,CAAC;AAAA,IAEZ,eAAe;AACb,YAAM;AAAA,IACR;AAAA,IAEA,MAAM,QAAQ;AAAA,IAEd;AAAA,IAEA,MAAM,mBAAmB;AAAA,IAEzB;AAAA,IAEA,OAAO;AACL,YAAM;AAAA,IACR;AAAA,IAEA,SAAS;AAAA,IAET;AAAA,IAEA,YAAY;AACV,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAAA,IAEA,cAAc;AACZ,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,kBAAkB;AAChB,WAAO;AAAA,EACT;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,QAAQ;AAAA,EAER,cAAc;AAAA,IACZ,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EAEA,YAAY;AAAA,EAEZ,UAAU,CAAC;AAAA,EAEX,aAAa,CAAC;AAAA,EAEd,QAAQ;AAAA,EAER,YAAY;AACV,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,EACR;AAAA,EAEA,SAAS;AACP,WAAO,EAAE,UAAU,CAAC,EAAE;AAAA,EACxB;AAAA,EAEA,cAAc;AACZ,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AACF;","names":[]}
@@ -0,0 +1,23 @@
1
+ import { BaseSubscribable } from "./BaseSubscribable";
2
+ type Transform<TState, TResult> = {
3
+ execute: () => Promise<TResult>;
4
+ /** transform the state after the promise resolves */
5
+ then?: (state: TState, result: TResult) => TState;
6
+ /** transform the state during resolution and afterwards */
7
+ optimistic?: (state: TState) => TState;
8
+ /** transform the state only while loading */
9
+ loading?: (state: TState, task: Promise<TResult>) => TState;
10
+ };
11
+ export declare class OptimisticState<TState> extends BaseSubscribable {
12
+ private readonly _pendingTransforms;
13
+ private _baseValue;
14
+ private _cachedValue;
15
+ constructor(initialState: TState);
16
+ private _updateState;
17
+ get baseValue(): TState;
18
+ get value(): TState;
19
+ update(state: TState): void;
20
+ optimisticUpdate<TResult>(transform: Transform<TState, TResult>): Promise<TResult>;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=OptimisticState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptimisticState.d.ts","sourceRoot":"","sources":["../../../src/runtimes/remote-thread-list/OptimisticState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,KAAK,SAAS,CAAC,MAAM,EAAE,OAAO,IAAI;IAChC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC,qDAAqD;IACrD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;IAElD,2DAA2D;IAC3D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAEvC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC;CAC7D,CAAC;AAgBF,qBAAa,eAAe,CAAC,MAAM,CAAE,SAAQ,gBAAgB;IAC3D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAC9B;IACL,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;gBAEV,YAAY,EAAE,MAAM;IAMvC,OAAO,CAAC,YAAY;IAWpB,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IAEM,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKrB,gBAAgB,CAAC,OAAO,EACnC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,OAAO,CAAC,OAAO,CAAC;CAqBpB"}
@@ -1,10 +1,11 @@
1
- import { BaseSubscribable } from "./BaseSubscribable";
2
- const pipeTransforms = (initialState, extraParam, transforms) => {
1
+ // src/runtimes/remote-thread-list/OptimisticState.ts
2
+ import { BaseSubscribable } from "./BaseSubscribable.js";
3
+ var pipeTransforms = (initialState, extraParam, transforms) => {
3
4
  return transforms.reduce((state, transform) => {
4
5
  return transform?.(state, extraParam) ?? state;
5
6
  }, initialState);
6
7
  };
7
- class OptimisticState extends BaseSubscribable {
8
+ var OptimisticState = class extends BaseSubscribable {
8
9
  _pendingTransforms = [];
9
10
  _baseValue;
10
11
  _cachedValue;
@@ -52,7 +53,7 @@ class OptimisticState extends BaseSubscribable {
52
53
  this._updateState();
53
54
  }
54
55
  }
55
- }
56
+ };
56
57
  export {
57
58
  OptimisticState
58
59
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/remote-thread-list/OptimisticState.ts"],"sourcesContent":["import { BaseSubscribable } from \"./BaseSubscribable\";\n\ntype Transform<TState, TResult> = {\n execute: () => Promise<TResult>;\n\n /** transform the state after the promise resolves */\n then?: (state: TState, result: TResult) => TState;\n\n /** transform the state during resolution and afterwards */\n optimistic?: (state: TState) => TState;\n\n /** transform the state only while loading */\n loading?: (state: TState, task: Promise<TResult>) => TState;\n};\n\ntype PendingTransform<TState, TResult> = Transform<TState, TResult> & {\n task: Promise<TResult>;\n};\n\nconst pipeTransforms = <TState, TExtra>(\n initialState: TState,\n extraParam: TExtra,\n transforms: (((state: TState, extra: TExtra) => TState) | undefined)[],\n): TState => {\n return transforms.reduce((state, transform) => {\n return transform?.(state, extraParam) ?? state;\n }, initialState);\n};\n\nexport class OptimisticState<TState> extends BaseSubscribable {\n private readonly _pendingTransforms: Array<PendingTransform<TState, any>> =\n [];\n private _baseValue: TState;\n private _cachedValue: TState;\n\n public constructor(initialState: TState) {\n super();\n this._baseValue = initialState;\n this._cachedValue = initialState;\n }\n\n private _updateState(): void {\n this._cachedValue = this._pendingTransforms.reduce((state, transform) => {\n return pipeTransforms(state, transform.task, [\n transform.loading,\n transform.optimistic,\n ]);\n }, this._baseValue);\n\n this._notifySubscribers();\n }\n\n public get baseValue(): TState {\n return this._baseValue;\n }\n\n public get value(): TState {\n return this._cachedValue;\n }\n\n public update(state: TState): void {\n this._baseValue = state;\n this._updateState();\n }\n\n public async optimisticUpdate<TResult>(\n transform: Transform<TState, TResult>,\n ): Promise<TResult> {\n const task = transform.execute();\n const pendingTransform = { ...transform, task };\n try {\n this._pendingTransforms.push(pendingTransform);\n this._updateState();\n\n const result = await task;\n this._baseValue = pipeTransforms(this._baseValue, result, [\n transform.optimistic,\n transform.then,\n ]);\n return result;\n } finally {\n const index = this._pendingTransforms.indexOf(pendingTransform);\n if (index > -1) {\n this._pendingTransforms.splice(index, 1);\n }\n this._updateState();\n }\n }\n}\n"],"mappings":"AAAA,SAAS,wBAAwB;AAmBjC,MAAM,iBAAiB,CACrB,cACA,YACA,eACW;AACX,SAAO,WAAW,OAAO,CAAC,OAAO,cAAc;AAC7C,WAAO,YAAY,OAAO,UAAU,KAAK;AAAA,EAC3C,GAAG,YAAY;AACjB;AAEO,MAAM,wBAAgC,iBAAiB;AAAA,EAC3C,qBACf,CAAC;AAAA,EACK;AAAA,EACA;AAAA,EAED,YAAY,cAAsB;AACvC,UAAM;AACN,SAAK,aAAa;AAClB,SAAK,eAAe;AAAA,EACtB;AAAA,EAEQ,eAAqB;AAC3B,SAAK,eAAe,KAAK,mBAAmB,OAAO,CAAC,OAAO,cAAc;AACvE,aAAO,eAAe,OAAO,UAAU,MAAM;AAAA,QAC3C,UAAU;AAAA,QACV,UAAU;AAAA,MACZ,CAAC;AAAA,IACH,GAAG,KAAK,UAAU;AAElB,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEA,IAAW,YAAoB;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAW,QAAgB;AACzB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,OAAO,OAAqB;AACjC,SAAK,aAAa;AAClB,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,MAAa,iBACX,WACkB;AAClB,UAAM,OAAO,UAAU,QAAQ;AAC/B,UAAM,mBAAmB,EAAE,GAAG,WAAW,KAAK;AAC9C,QAAI;AACF,WAAK,mBAAmB,KAAK,gBAAgB;AAC7C,WAAK,aAAa;AAElB,YAAM,SAAS,MAAM;AACrB,WAAK,aAAa,eAAe,KAAK,YAAY,QAAQ;AAAA,QACxD,UAAU;AAAA,QACV,UAAU;AAAA,MACZ,CAAC;AACD,aAAO;AAAA,IACT,UAAE;AACA,YAAM,QAAQ,KAAK,mBAAmB,QAAQ,gBAAgB;AAC9D,UAAI,QAAQ,IAAI;AACd,aAAK,mBAAmB,OAAO,OAAO,CAAC;AAAA,MACzC;AACA,WAAK,aAAa;AAAA,IACpB;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/remote-thread-list/OptimisticState.ts"],"sourcesContent":["import { BaseSubscribable } from \"./BaseSubscribable\";\n\ntype Transform<TState, TResult> = {\n execute: () => Promise<TResult>;\n\n /** transform the state after the promise resolves */\n then?: (state: TState, result: TResult) => TState;\n\n /** transform the state during resolution and afterwards */\n optimistic?: (state: TState) => TState;\n\n /** transform the state only while loading */\n loading?: (state: TState, task: Promise<TResult>) => TState;\n};\n\ntype PendingTransform<TState, TResult> = Transform<TState, TResult> & {\n task: Promise<TResult>;\n};\n\nconst pipeTransforms = <TState, TExtra>(\n initialState: TState,\n extraParam: TExtra,\n transforms: (((state: TState, extra: TExtra) => TState) | undefined)[],\n): TState => {\n return transforms.reduce((state, transform) => {\n return transform?.(state, extraParam) ?? state;\n }, initialState);\n};\n\nexport class OptimisticState<TState> extends BaseSubscribable {\n private readonly _pendingTransforms: Array<PendingTransform<TState, any>> =\n [];\n private _baseValue: TState;\n private _cachedValue: TState;\n\n public constructor(initialState: TState) {\n super();\n this._baseValue = initialState;\n this._cachedValue = initialState;\n }\n\n private _updateState(): void {\n this._cachedValue = this._pendingTransforms.reduce((state, transform) => {\n return pipeTransforms(state, transform.task, [\n transform.loading,\n transform.optimistic,\n ]);\n }, this._baseValue);\n\n this._notifySubscribers();\n }\n\n public get baseValue(): TState {\n return this._baseValue;\n }\n\n public get value(): TState {\n return this._cachedValue;\n }\n\n public update(state: TState): void {\n this._baseValue = state;\n this._updateState();\n }\n\n public async optimisticUpdate<TResult>(\n transform: Transform<TState, TResult>,\n ): Promise<TResult> {\n const task = transform.execute();\n const pendingTransform = { ...transform, task };\n try {\n this._pendingTransforms.push(pendingTransform);\n this._updateState();\n\n const result = await task;\n this._baseValue = pipeTransforms(this._baseValue, result, [\n transform.optimistic,\n transform.then,\n ]);\n return result;\n } finally {\n const index = this._pendingTransforms.indexOf(pendingTransform);\n if (index > -1) {\n this._pendingTransforms.splice(index, 1);\n }\n this._updateState();\n }\n }\n}\n"],"mappings":";AAAA,SAAS,wBAAwB;AAmBjC,IAAM,iBAAiB,CACrB,cACA,YACA,eACW;AACX,SAAO,WAAW,OAAO,CAAC,OAAO,cAAc;AAC7C,WAAO,YAAY,OAAO,UAAU,KAAK;AAAA,EAC3C,GAAG,YAAY;AACjB;AAEO,IAAM,kBAAN,cAAsC,iBAAiB;AAAA,EAC3C,qBACf,CAAC;AAAA,EACK;AAAA,EACA;AAAA,EAED,YAAY,cAAsB;AACvC,UAAM;AACN,SAAK,aAAa;AAClB,SAAK,eAAe;AAAA,EACtB;AAAA,EAEQ,eAAqB;AAC3B,SAAK,eAAe,KAAK,mBAAmB,OAAO,CAAC,OAAO,cAAc;AACvE,aAAO,eAAe,OAAO,UAAU,MAAM;AAAA,QAC3C,UAAU;AAAA,QACV,UAAU;AAAA,MACZ,CAAC;AAAA,IACH,GAAG,KAAK,UAAU;AAElB,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEA,IAAW,YAAoB;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAW,QAAgB;AACzB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,OAAO,OAAqB;AACjC,SAAK,aAAa;AAClB,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,MAAa,iBACX,WACkB;AAClB,UAAM,OAAO,UAAU,QAAQ;AAC/B,UAAM,mBAAmB,EAAE,GAAG,WAAW,KAAK;AAC9C,QAAI;AACF,WAAK,mBAAmB,KAAK,gBAAgB;AAC7C,WAAK,aAAa;AAElB,YAAM,SAAS,MAAM;AACrB,WAAK,aAAa,eAAe,KAAK,YAAY,QAAQ;AAAA,QACxD,UAAU;AAAA,QACV,UAAU;AAAA,MACZ,CAAC;AACD,aAAO;AAAA,IACT,UAAE;AACA,YAAM,QAAQ,KAAK,mBAAmB,QAAQ,gBAAgB;AAC9D,UAAI,QAAQ,IAAI;AACd,aAAK,mBAAmB,OAAO,OAAO,CAAC;AAAA,MACzC;AACA,WAAK,aAAa;AAAA,IACpB;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,81 @@
1
+ import { FC, PropsWithChildren, ComponentType } from "react";
2
+ import { BaseSubscribable } from "./BaseSubscribable";
3
+ import { AssistantRuntime } from "../../api";
4
+ type RemoteThreadListHook = () => AssistantRuntime;
5
+ export declare class RemoteThreadListHookInstanceManager extends BaseSubscribable {
6
+ private useRuntimeHook;
7
+ private instances;
8
+ private useAliveThreadsKeysChanged;
9
+ constructor(runtimeHook: RemoteThreadListHook);
10
+ startThreadRuntime(threadId: string): Promise<Readonly<{
11
+ getMessageById: (messageId: string) => {
12
+ parentId: string | null;
13
+ message: import("../..").ThreadMessage;
14
+ } | undefined;
15
+ getBranches: (messageId: string) => readonly string[];
16
+ switchToBranch: (branchId: string) => void;
17
+ append: (message: import("../..").AppendMessage) => void;
18
+ startRun: (config: import("../core/ThreadRuntimeCore").StartRunConfig) => void;
19
+ resumeRun: (config: import("../core/ThreadRuntimeCore").ResumeRunConfig) => void;
20
+ cancelRun: () => void;
21
+ addToolResult: (options: import("..").AddToolResultOptions) => void;
22
+ speak: (messageId: string) => void;
23
+ stopSpeaking: () => void;
24
+ getSubmittedFeedback: (messageId: string) => import("../core/ThreadRuntimeCore").SubmittedFeedback | undefined;
25
+ submitFeedback: (feedback: import("..").SubmitFeedbackOptions) => void;
26
+ getModelContext: () => import("../..").AssistantConfig;
27
+ composer: import("../core/ComposerRuntimeCore").ThreadComposerRuntimeCore;
28
+ getEditComposer: (messageId: string) => import("../core/ComposerRuntimeCore").ComposerRuntimeCore | undefined;
29
+ beginEdit: (messageId: string) => void;
30
+ speech: import("../core/ThreadRuntimeCore").SpeechState | undefined;
31
+ capabilities: Readonly<import("../core/ThreadRuntimeCore").RuntimeCapabilities>;
32
+ isDisabled: boolean;
33
+ messages: readonly import("../..").ThreadMessage[];
34
+ suggestions: readonly import("..").ThreadSuggestion[];
35
+ extras: unknown;
36
+ subscribe: (callback: () => void) => import("../..").Unsubscribe;
37
+ import(repository: import("..").ExportedMessageRepository): void;
38
+ export(): import("..").ExportedMessageRepository;
39
+ unstable_on(event: import("../core/ThreadRuntimeCore").ThreadRuntimeEventType, callback: () => void): import("../..").Unsubscribe;
40
+ }>>;
41
+ getThreadRuntimeCore(threadId: string): Readonly<{
42
+ getMessageById: (messageId: string) => {
43
+ parentId: string | null;
44
+ message: import("../..").ThreadMessage;
45
+ } | undefined;
46
+ getBranches: (messageId: string) => readonly string[];
47
+ switchToBranch: (branchId: string) => void;
48
+ append: (message: import("../..").AppendMessage) => void;
49
+ startRun: (config: import("../core/ThreadRuntimeCore").StartRunConfig) => void;
50
+ resumeRun: (config: import("../core/ThreadRuntimeCore").ResumeRunConfig) => void;
51
+ cancelRun: () => void;
52
+ addToolResult: (options: import("..").AddToolResultOptions) => void;
53
+ speak: (messageId: string) => void;
54
+ stopSpeaking: () => void;
55
+ getSubmittedFeedback: (messageId: string) => import("../core/ThreadRuntimeCore").SubmittedFeedback | undefined;
56
+ submitFeedback: (feedback: import("..").SubmitFeedbackOptions) => void;
57
+ getModelContext: () => import("../..").AssistantConfig;
58
+ composer: import("../core/ComposerRuntimeCore").ThreadComposerRuntimeCore;
59
+ getEditComposer: (messageId: string) => import("../core/ComposerRuntimeCore").ComposerRuntimeCore | undefined;
60
+ beginEdit: (messageId: string) => void;
61
+ speech: import("../core/ThreadRuntimeCore").SpeechState | undefined;
62
+ capabilities: Readonly<import("../core/ThreadRuntimeCore").RuntimeCapabilities>;
63
+ isDisabled: boolean;
64
+ messages: readonly import("../..").ThreadMessage[];
65
+ suggestions: readonly import("..").ThreadSuggestion[];
66
+ extras: unknown;
67
+ subscribe: (callback: () => void) => import("../..").Unsubscribe;
68
+ import(repository: import("..").ExportedMessageRepository): void;
69
+ export(): import("..").ExportedMessageRepository;
70
+ unstable_on(event: import("../core/ThreadRuntimeCore").ThreadRuntimeEventType, callback: () => void): import("../..").Unsubscribe;
71
+ }> | undefined;
72
+ stopThreadRuntime(threadId: string): void;
73
+ setRuntimeHook(newRuntimeHook: RemoteThreadListHook): void;
74
+ private _InnerActiveThreadProvider;
75
+ private _OuterActiveThreadProvider;
76
+ __internal_RenderThreadRuntimes: FC<{
77
+ provider: ComponentType<PropsWithChildren>;
78
+ }>;
79
+ }
80
+ export {};
81
+ //# sourceMappingURL=RemoteThreadListHookInstanceManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteThreadListHookInstanceManager.d.ts","sourceRoot":"","sources":["../../../src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,EAAE,EAMF,iBAAiB,EACjB,aAAa,EACd,MAAM,OAAO,CAAC;AASf,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,KAAK,oBAAoB,GAAG,MAAM,gBAAgB,CAAC;AAKnD,qBAAa,mCAAoC,SAAQ,gBAAgB;IACvE,OAAO,CAAC,cAAc,CAEpB;IACF,OAAO,CAAC,SAAS,CAAmD;IACpE,OAAO,CAAC,0BAA0B,CAAsB;gBAE5C,WAAW,EAAE,oBAAoB;IAKtC,kBAAkB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwBnC,oBAAoB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASrC,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAKlC,cAAc,CAAC,cAAc,EAAE,oBAAoB;IAO1D,OAAO,CAAC,0BAA0B,CAkDhC;IAEF,OAAO,CAAC,0BAA0B,CAiB/B;IAEI,+BAA+B,EAAE,EAAE,CAAC;QACzC,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;KAC5C,CAAC,CAUA;CACH"}
@@ -1,5 +1,6 @@
1
1
  "use client";
2
- import { jsx } from "react/jsx-runtime";
2
+
3
+ // src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx
3
4
  import {
4
5
  useCallback,
5
6
  useRef,
@@ -8,14 +9,15 @@ import {
8
9
  useMemo
9
10
  } from "react";
10
11
  import { create } from "zustand";
11
- import { useAssistantRuntime } from "../../context";
12
- import { ThreadListItemRuntimeProvider } from "../../context/providers/ThreadListItemRuntimeProvider";
12
+ import { useAssistantRuntime } from "../../context/index.js";
13
+ import { ThreadListItemRuntimeProvider } from "../../context/providers/ThreadListItemRuntimeProvider.js";
13
14
  import {
14
15
  useThreadListItem,
15
16
  useThreadListItemRuntime
16
- } from "../../context/react/ThreadListItemContext";
17
- import { BaseSubscribable } from "./BaseSubscribable";
18
- class RemoteThreadListHookInstanceManager extends BaseSubscribable {
17
+ } from "../../context/react/ThreadListItemContext.js";
18
+ import { BaseSubscribable } from "./BaseSubscribable.js";
19
+ import { jsx } from "react/jsx-runtime";
20
+ var RemoteThreadListHookInstanceManager = class extends BaseSubscribable {
19
21
  useRuntimeHook;
20
22
  instances = /* @__PURE__ */ new Map();
21
23
  useAliveThreadsKeysChanged = create(() => ({}));
@@ -119,7 +121,7 @@ class RemoteThreadListHookInstanceManager extends BaseSubscribable {
119
121
  threadId
120
122
  ));
121
123
  };
122
- }
124
+ };
123
125
  export {
124
126
  RemoteThreadListHookInstanceManager
125
127
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n FC,\n useCallback,\n useRef,\n useEffect,\n memo,\n useMemo,\n PropsWithChildren,\n ComponentType,\n} from \"react\";\nimport { UseBoundStore, StoreApi, create } from \"zustand\";\nimport { useAssistantRuntime } from \"../../context\";\nimport { ThreadListItemRuntimeProvider } from \"../../context/providers/ThreadListItemRuntimeProvider\";\nimport {\n useThreadListItem,\n useThreadListItemRuntime,\n} from \"../../context/react/ThreadListItemContext\";\nimport { ThreadRuntimeCore, ThreadRuntimeImpl } from \"../../internal\";\nimport { BaseSubscribable } from \"./BaseSubscribable\";\nimport { AssistantRuntime } from \"../../api\";\n\ntype RemoteThreadListHook = () => AssistantRuntime;\n\ntype RemoteThreadListHookInstance = {\n runtime?: ThreadRuntimeCore;\n};\nexport class RemoteThreadListHookInstanceManager extends BaseSubscribable {\n private useRuntimeHook: UseBoundStore<\n StoreApi<{ useRuntime: RemoteThreadListHook }>\n >;\n private instances = new Map<string, RemoteThreadListHookInstance>();\n private useAliveThreadsKeysChanged = create(() => ({}));\n\n constructor(runtimeHook: RemoteThreadListHook) {\n super();\n this.useRuntimeHook = create(() => ({ useRuntime: runtimeHook }));\n }\n\n public startThreadRuntime(threadId: string) {\n if (!this.instances.has(threadId)) {\n this.instances.set(threadId, {});\n this.useAliveThreadsKeysChanged.setState({}, true);\n }\n\n return new Promise<ThreadRuntimeCore>((resolve, reject) => {\n const callback = () => {\n const instance = this.instances.get(threadId);\n if (!instance) {\n dispose();\n reject(new Error(\"Thread was deleted before runtime was started\"));\n } else if (!instance.runtime) {\n return; // misc update\n } else {\n dispose();\n resolve(instance.runtime);\n }\n };\n const dispose = this.subscribe(callback);\n callback();\n });\n }\n\n public getThreadRuntimeCore(threadId: string) {\n const instance = this.instances.get(threadId);\n if (!instance)\n throw new Error(\n \"getThreadRuntimeCore not found. This is a bug in assistant-ui.\",\n );\n return instance.runtime;\n }\n\n public stopThreadRuntime(threadId: string) {\n this.instances.delete(threadId);\n this.useAliveThreadsKeysChanged.setState({}, true);\n }\n\n public setRuntimeHook(newRuntimeHook: RemoteThreadListHook) {\n const prevRuntimeHook = this.useRuntimeHook.getState().useRuntime;\n if (prevRuntimeHook !== newRuntimeHook) {\n this.useRuntimeHook.setState({ useRuntime: newRuntimeHook }, true);\n }\n }\n\n private _InnerActiveThreadProvider: FC = () => {\n const { id } = useThreadListItem();\n\n const { useRuntime } = this.useRuntimeHook();\n const runtime = useRuntime();\n\n const threadBinding = (runtime.thread as ThreadRuntimeImpl)\n .__internal_threadBinding;\n\n const updateRuntime = useCallback(() => {\n const aliveThread = this.instances.get(id);\n if (!aliveThread)\n throw new Error(\"Thread not found. This is a bug in assistant-ui.\");\n\n aliveThread.runtime = threadBinding.getState();\n\n if (isMounted) {\n this._notifySubscribers();\n }\n }, [id, threadBinding]);\n\n const isMounted = useRef(false);\n if (!isMounted.current) {\n updateRuntime();\n }\n\n useEffect(() => {\n isMounted.current = true;\n updateRuntime();\n return threadBinding.outerSubscribe(updateRuntime);\n }, [threadBinding, updateRuntime]);\n\n // auto initialize thread\n const threadListItemRuntime = useThreadListItemRuntime();\n useEffect(() => {\n return runtime.threads.main.unstable_on(\"initialize\", () => {\n if (threadListItemRuntime.getState().status === \"new\") {\n threadListItemRuntime.initialize();\n\n // auto generate a title after first run\n const dispose = runtime.thread.unstable_on(\"run-end\", () => {\n dispose();\n\n threadListItemRuntime.generateTitle();\n });\n }\n });\n }, [runtime, threadListItemRuntime]);\n\n return null;\n };\n\n private _OuterActiveThreadProvider: FC<{\n threadId: string;\n provider: ComponentType<PropsWithChildren>;\n }> = memo(({ threadId, provider: Provider }) => {\n const assistantRuntime = useAssistantRuntime();\n const threadListItemRuntime = useMemo(\n () => assistantRuntime.threads.getItemById(threadId),\n [assistantRuntime, threadId],\n );\n\n return (\n <ThreadListItemRuntimeProvider runtime={threadListItemRuntime}>\n <Provider>\n <this._InnerActiveThreadProvider />\n </Provider>\n </ThreadListItemRuntimeProvider>\n );\n });\n\n public __internal_RenderThreadRuntimes: FC<{\n provider: ComponentType<PropsWithChildren>;\n }> = ({ provider }) => {\n this.useAliveThreadsKeysChanged(); // trigger re-render on alive threads change\n\n return Array.from(this.instances.keys()).map((threadId) => (\n <this._OuterActiveThreadProvider\n key={threadId}\n threadId={threadId}\n provider={provider}\n />\n ));\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n FC,\n useCallback,\n useRef,\n useEffect,\n memo,\n useMemo,\n PropsWithChildren,\n ComponentType,\n} from \"react\";\nimport { UseBoundStore, StoreApi, create } from \"zustand\";\nimport { useAssistantRuntime } from \"../../context\";\nimport { ThreadListItemRuntimeProvider } from \"../../context/providers/ThreadListItemRuntimeProvider\";\nimport {\n useThreadListItem,\n useThreadListItemRuntime,\n} from \"../../context/react/ThreadListItemContext\";\nimport { ThreadRuntimeCore, ThreadRuntimeImpl } from \"../../internal\";\nimport { BaseSubscribable } from \"./BaseSubscribable\";\nimport { AssistantRuntime } from \"../../api\";\n\ntype RemoteThreadListHook = () => AssistantRuntime;\n\ntype RemoteThreadListHookInstance = {\n runtime?: ThreadRuntimeCore;\n};\nexport class RemoteThreadListHookInstanceManager extends BaseSubscribable {\n private useRuntimeHook: UseBoundStore<\n StoreApi<{ useRuntime: RemoteThreadListHook }>\n >;\n private instances = new Map<string, RemoteThreadListHookInstance>();\n private useAliveThreadsKeysChanged = create(() => ({}));\n\n constructor(runtimeHook: RemoteThreadListHook) {\n super();\n this.useRuntimeHook = create(() => ({ useRuntime: runtimeHook }));\n }\n\n public startThreadRuntime(threadId: string) {\n if (!this.instances.has(threadId)) {\n this.instances.set(threadId, {});\n this.useAliveThreadsKeysChanged.setState({}, true);\n }\n\n return new Promise<ThreadRuntimeCore>((resolve, reject) => {\n const callback = () => {\n const instance = this.instances.get(threadId);\n if (!instance) {\n dispose();\n reject(new Error(\"Thread was deleted before runtime was started\"));\n } else if (!instance.runtime) {\n return; // misc update\n } else {\n dispose();\n resolve(instance.runtime);\n }\n };\n const dispose = this.subscribe(callback);\n callback();\n });\n }\n\n public getThreadRuntimeCore(threadId: string) {\n const instance = this.instances.get(threadId);\n if (!instance)\n throw new Error(\n \"getThreadRuntimeCore not found. This is a bug in assistant-ui.\",\n );\n return instance.runtime;\n }\n\n public stopThreadRuntime(threadId: string) {\n this.instances.delete(threadId);\n this.useAliveThreadsKeysChanged.setState({}, true);\n }\n\n public setRuntimeHook(newRuntimeHook: RemoteThreadListHook) {\n const prevRuntimeHook = this.useRuntimeHook.getState().useRuntime;\n if (prevRuntimeHook !== newRuntimeHook) {\n this.useRuntimeHook.setState({ useRuntime: newRuntimeHook }, true);\n }\n }\n\n private _InnerActiveThreadProvider: FC = () => {\n const { id } = useThreadListItem();\n\n const { useRuntime } = this.useRuntimeHook();\n const runtime = useRuntime();\n\n const threadBinding = (runtime.thread as ThreadRuntimeImpl)\n .__internal_threadBinding;\n\n const updateRuntime = useCallback(() => {\n const aliveThread = this.instances.get(id);\n if (!aliveThread)\n throw new Error(\"Thread not found. This is a bug in assistant-ui.\");\n\n aliveThread.runtime = threadBinding.getState();\n\n if (isMounted) {\n this._notifySubscribers();\n }\n }, [id, threadBinding]);\n\n const isMounted = useRef(false);\n if (!isMounted.current) {\n updateRuntime();\n }\n\n useEffect(() => {\n isMounted.current = true;\n updateRuntime();\n return threadBinding.outerSubscribe(updateRuntime);\n }, [threadBinding, updateRuntime]);\n\n // auto initialize thread\n const threadListItemRuntime = useThreadListItemRuntime();\n useEffect(() => {\n return runtime.threads.main.unstable_on(\"initialize\", () => {\n if (threadListItemRuntime.getState().status === \"new\") {\n threadListItemRuntime.initialize();\n\n // auto generate a title after first run\n const dispose = runtime.thread.unstable_on(\"run-end\", () => {\n dispose();\n\n threadListItemRuntime.generateTitle();\n });\n }\n });\n }, [runtime, threadListItemRuntime]);\n\n return null;\n };\n\n private _OuterActiveThreadProvider: FC<{\n threadId: string;\n provider: ComponentType<PropsWithChildren>;\n }> = memo(({ threadId, provider: Provider }) => {\n const assistantRuntime = useAssistantRuntime();\n const threadListItemRuntime = useMemo(\n () => assistantRuntime.threads.getItemById(threadId),\n [assistantRuntime, threadId],\n );\n\n return (\n <ThreadListItemRuntimeProvider runtime={threadListItemRuntime}>\n <Provider>\n <this._InnerActiveThreadProvider />\n </Provider>\n </ThreadListItemRuntimeProvider>\n );\n });\n\n public __internal_RenderThreadRuntimes: FC<{\n provider: ComponentType<PropsWithChildren>;\n }> = ({ provider }) => {\n this.useAliveThreadsKeysChanged(); // trigger re-render on alive threads change\n\n return Array.from(this.instances.keys()).map((threadId) => (\n <this._OuterActiveThreadProvider\n key={threadId}\n threadId={threadId}\n provider={provider}\n />\n ));\n };\n}\n"],"mappings":"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","names":[]}