@assistant-ui/react 0.5.100 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (709) hide show
  1. package/dist/api/AssistantRuntime.d.ts +2 -52
  2. package/dist/api/AssistantRuntime.d.ts.map +1 -1
  3. package/dist/api/AssistantRuntime.js +0 -8
  4. package/dist/api/AssistantRuntime.js.map +1 -1
  5. package/dist/api/AssistantRuntime.mjs +0 -8
  6. package/dist/api/AssistantRuntime.mjs.map +1 -1
  7. package/dist/api/AttachmentRuntime.d.ts +0 -12
  8. package/dist/api/AttachmentRuntime.d.ts.map +1 -1
  9. package/dist/api/AttachmentRuntime.js.map +1 -1
  10. package/dist/api/AttachmentRuntime.mjs.map +1 -1
  11. package/dist/api/ComposerRuntime.d.ts +5 -121
  12. package/dist/api/ComposerRuntime.d.ts.map +1 -1
  13. package/dist/api/ComposerRuntime.js +4 -84
  14. package/dist/api/ComposerRuntime.js.map +1 -1
  15. package/dist/api/ComposerRuntime.mjs +4 -84
  16. package/dist/api/ComposerRuntime.mjs.map +1 -1
  17. package/dist/api/ContentPartRuntime.d.ts +0 -4
  18. package/dist/api/ContentPartRuntime.d.ts.map +1 -1
  19. package/dist/api/ContentPartRuntime.js.map +1 -1
  20. package/dist/api/ContentPartRuntime.mjs.map +1 -1
  21. package/dist/api/MessageRuntime.d.ts +1 -12
  22. package/dist/api/MessageRuntime.d.ts.map +1 -1
  23. package/dist/api/MessageRuntime.js +9 -5
  24. package/dist/api/MessageRuntime.js.map +1 -1
  25. package/dist/api/MessageRuntime.mjs +8 -4
  26. package/dist/api/MessageRuntime.mjs.map +1 -1
  27. package/dist/api/ThreadListItemRuntime.d.ts +9 -5
  28. package/dist/api/ThreadListItemRuntime.d.ts.map +1 -1
  29. package/dist/api/ThreadListItemRuntime.js +10 -6
  30. package/dist/api/ThreadListItemRuntime.js.map +1 -1
  31. package/dist/api/ThreadListItemRuntime.mjs +10 -6
  32. package/dist/api/ThreadListItemRuntime.mjs.map +1 -1
  33. package/dist/api/ThreadListRuntime.d.ts +5 -23
  34. package/dist/api/ThreadListRuntime.d.ts.map +1 -1
  35. package/dist/api/ThreadListRuntime.js +23 -26
  36. package/dist/api/ThreadListRuntime.js.map +1 -1
  37. package/dist/api/ThreadListRuntime.mjs +23 -26
  38. package/dist/api/ThreadListRuntime.mjs.map +1 -1
  39. package/dist/api/ThreadRuntime.d.ts +17 -164
  40. package/dist/api/ThreadRuntime.d.ts.map +1 -1
  41. package/dist/api/ThreadRuntime.js +2 -94
  42. package/dist/api/ThreadRuntime.js.map +1 -1
  43. package/dist/api/ThreadRuntime.mjs +2 -94
  44. package/dist/api/ThreadRuntime.mjs.map +1 -1
  45. package/dist/context/providers/AssistantRuntimeProvider.d.ts.map +1 -1
  46. package/dist/context/providers/AssistantRuntimeProvider.js +0 -1
  47. package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
  48. package/dist/context/providers/AssistantRuntimeProvider.mjs +0 -1
  49. package/dist/context/providers/AssistantRuntimeProvider.mjs.map +1 -1
  50. package/dist/context/providers/TextContentPartProvider.d.ts.map +1 -1
  51. package/dist/context/providers/TextContentPartProvider.js +0 -2
  52. package/dist/context/providers/TextContentPartProvider.js.map +1 -1
  53. package/dist/context/providers/TextContentPartProvider.mjs +0 -2
  54. package/dist/context/providers/TextContentPartProvider.mjs.map +1 -1
  55. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts +1 -4
  56. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  57. package/dist/context/providers/ThreadRuntimeProvider.d.ts.map +1 -1
  58. package/dist/context/providers/ThreadRuntimeProvider.js +1 -13
  59. package/dist/context/providers/ThreadRuntimeProvider.js.map +1 -1
  60. package/dist/context/providers/ThreadRuntimeProvider.mjs +1 -13
  61. package/dist/context/providers/ThreadRuntimeProvider.mjs.map +1 -1
  62. package/dist/context/react/AssistantContext.d.ts +16 -88
  63. package/dist/context/react/AssistantContext.d.ts.map +1 -1
  64. package/dist/context/react/AssistantContext.js +0 -15
  65. package/dist/context/react/AssistantContext.js.map +1 -1
  66. package/dist/context/react/AssistantContext.mjs +0 -11
  67. package/dist/context/react/AssistantContext.mjs.map +1 -1
  68. package/dist/context/react/AttachmentContext.d.ts +16 -32
  69. package/dist/context/react/AttachmentContext.d.ts.map +1 -1
  70. package/dist/context/react/ComposerContext.d.ts +0 -5
  71. package/dist/context/react/ComposerContext.d.ts.map +1 -1
  72. package/dist/context/react/ComposerContext.js +3 -5
  73. package/dist/context/react/ComposerContext.js.map +1 -1
  74. package/dist/context/react/ComposerContext.mjs +2 -3
  75. package/dist/context/react/ComposerContext.mjs.map +1 -1
  76. package/dist/context/react/ContentPartContext.d.ts +0 -5
  77. package/dist/context/react/ContentPartContext.d.ts.map +1 -1
  78. package/dist/context/react/ContentPartContext.js +3 -5
  79. package/dist/context/react/ContentPartContext.js.map +1 -1
  80. package/dist/context/react/ContentPartContext.mjs +2 -3
  81. package/dist/context/react/ContentPartContext.mjs.map +1 -1
  82. package/dist/context/react/MessageContext.d.ts +0 -10
  83. package/dist/context/react/MessageContext.d.ts.map +1 -1
  84. package/dist/context/react/MessageContext.js +2 -6
  85. package/dist/context/react/MessageContext.js.map +1 -1
  86. package/dist/context/react/MessageContext.mjs +2 -4
  87. package/dist/context/react/MessageContext.mjs.map +1 -1
  88. package/dist/context/react/ThreadContext.d.ts +25 -1635
  89. package/dist/context/react/ThreadContext.d.ts.map +1 -1
  90. package/dist/context/react/ThreadContext.js +4 -30
  91. package/dist/context/react/ThreadContext.js.map +1 -1
  92. package/dist/context/react/ThreadContext.mjs +4 -22
  93. package/dist/context/react/ThreadContext.mjs.map +1 -1
  94. package/dist/context/react/ThreadListItemContext.d.ts +6 -24
  95. package/dist/context/react/ThreadListItemContext.d.ts.map +1 -1
  96. package/dist/context/react/index.d.ts +5 -101
  97. package/dist/context/react/index.d.ts.map +1 -1
  98. package/dist/context/react/index.js +0 -38
  99. package/dist/context/react/index.js.map +1 -1
  100. package/dist/context/react/index.mjs +5 -49
  101. package/dist/context/react/index.mjs.map +1 -1
  102. package/dist/index.d.ts +0 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +0 -2
  105. package/dist/index.js.map +1 -1
  106. package/dist/index.mjs +0 -1
  107. package/dist/index.mjs.map +1 -1
  108. package/dist/internal.d.ts +1 -0
  109. package/dist/internal.d.ts.map +1 -1
  110. package/dist/internal.js +3 -0
  111. package/dist/internal.js.map +1 -1
  112. package/dist/internal.mjs +2 -0
  113. package/dist/internal.mjs.map +1 -1
  114. package/dist/model-config/useAssistantToolUI.d.ts.map +1 -1
  115. package/dist/model-config/useAssistantToolUI.js.map +1 -1
  116. package/dist/model-config/useAssistantToolUI.mjs.map +1 -1
  117. package/dist/primitive-hooks/contentPart/useContentPartDisplay.d.ts +0 -3
  118. package/dist/primitive-hooks/contentPart/useContentPartDisplay.d.ts.map +1 -1
  119. package/dist/primitive-hooks/contentPart/useContentPartDisplay.js.map +1 -1
  120. package/dist/primitive-hooks/contentPart/useContentPartDisplay.mjs.map +1 -1
  121. package/dist/primitive-hooks/contentPart/useContentPartImage.d.ts +0 -3
  122. package/dist/primitive-hooks/contentPart/useContentPartImage.d.ts.map +1 -1
  123. package/dist/primitive-hooks/contentPart/useContentPartImage.js.map +1 -1
  124. package/dist/primitive-hooks/contentPart/useContentPartImage.mjs.map +1 -1
  125. package/dist/primitive-hooks/contentPart/useContentPartText.d.ts +0 -3
  126. package/dist/primitive-hooks/contentPart/useContentPartText.d.ts.map +1 -1
  127. package/dist/primitive-hooks/contentPart/useContentPartText.js.map +1 -1
  128. package/dist/primitive-hooks/contentPart/useContentPartText.mjs.map +1 -1
  129. package/dist/primitive-hooks/index.d.ts +0 -5
  130. package/dist/primitive-hooks/index.d.ts.map +1 -1
  131. package/dist/primitive-hooks/index.js +1 -11
  132. package/dist/primitive-hooks/index.js.map +1 -1
  133. package/dist/primitive-hooks/index.mjs +0 -5
  134. package/dist/primitive-hooks/index.mjs.map +1 -1
  135. package/dist/primitives/actionBar/ActionBarCopy.d.ts +1 -5
  136. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  137. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  138. package/dist/primitives/actionBar/ActionBarCopy.mjs.map +1 -1
  139. package/dist/primitives/actionBar/ActionBarEdit.d.ts +0 -4
  140. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
  141. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  142. package/dist/primitives/actionBar/ActionBarEdit.mjs.map +1 -1
  143. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +0 -4
  144. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
  145. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  146. package/dist/primitives/actionBar/ActionBarFeedbackNegative.mjs.map +1 -1
  147. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +0 -4
  148. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -1
  149. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  150. package/dist/primitives/actionBar/ActionBarFeedbackPositive.mjs.map +1 -1
  151. package/dist/primitives/actionBar/ActionBarReload.d.ts +0 -4
  152. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  153. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  154. package/dist/primitives/actionBar/ActionBarReload.mjs.map +1 -1
  155. package/dist/primitives/actionBar/ActionBarRoot.d.ts +0 -4
  156. package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -1
  157. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
  158. package/dist/primitives/actionBar/ActionBarRoot.mjs.map +1 -1
  159. package/dist/primitives/actionBar/ActionBarSpeak.d.ts +0 -4
  160. package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -1
  161. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
  162. package/dist/primitives/actionBar/ActionBarSpeak.mjs.map +1 -1
  163. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +0 -4
  164. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
  165. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
  166. package/dist/primitives/actionBar/ActionBarStopSpeaking.mjs.map +1 -1
  167. package/dist/primitives/assistantModal/AssistantModalContent.d.ts +0 -4
  168. package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -1
  169. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  170. package/dist/primitives/assistantModal/AssistantModalContent.mjs.map +1 -1
  171. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts +0 -4
  172. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -1
  173. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  174. package/dist/primitives/assistantModal/AssistantModalRoot.mjs.map +1 -1
  175. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts +0 -4
  176. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -1
  177. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  178. package/dist/primitives/assistantModal/AssistantModalTrigger.mjs.map +1 -1
  179. package/dist/primitives/branchPicker/BranchPickerCount.d.ts +0 -4
  180. package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -1
  181. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
  182. package/dist/primitives/branchPicker/BranchPickerCount.mjs.map +1 -1
  183. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +0 -4
  184. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  185. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  186. package/dist/primitives/branchPicker/BranchPickerNext.mjs.map +1 -1
  187. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts +0 -4
  188. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts.map +1 -1
  189. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
  190. package/dist/primitives/branchPicker/BranchPickerNumber.mjs.map +1 -1
  191. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +0 -4
  192. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  193. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  194. package/dist/primitives/branchPicker/BranchPickerPrevious.mjs.map +1 -1
  195. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +0 -4
  196. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -1
  197. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  198. package/dist/primitives/branchPicker/BranchPickerRoot.mjs.map +1 -1
  199. package/dist/primitives/composer/ComposerAddAttachment.d.ts +1 -5
  200. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  201. package/dist/primitives/composer/ComposerAddAttachment.js +2 -2
  202. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  203. package/dist/primitives/composer/ComposerAddAttachment.mjs +1 -1
  204. package/dist/primitives/composer/ComposerAddAttachment.mjs.map +1 -1
  205. package/dist/primitives/composer/ComposerAttachments.d.ts +0 -4
  206. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  207. package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
  208. package/dist/primitives/composer/ComposerAttachments.mjs.map +1 -1
  209. package/dist/primitives/composer/ComposerCancel.d.ts +0 -4
  210. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
  211. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  212. package/dist/primitives/composer/ComposerCancel.mjs.map +1 -1
  213. package/dist/primitives/composer/ComposerIf.d.ts +0 -4
  214. package/dist/primitives/composer/ComposerIf.d.ts.map +1 -1
  215. package/dist/primitives/composer/ComposerIf.js.map +1 -1
  216. package/dist/primitives/composer/ComposerIf.mjs.map +1 -1
  217. package/dist/primitives/composer/ComposerInput.d.ts +0 -4
  218. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  219. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  220. package/dist/primitives/composer/ComposerInput.mjs.map +1 -1
  221. package/dist/primitives/composer/ComposerRoot.d.ts +0 -1
  222. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -1
  223. package/dist/primitives/composer/ComposerRoot.js +2 -2
  224. package/dist/primitives/composer/ComposerRoot.js.map +1 -1
  225. package/dist/primitives/composer/ComposerRoot.mjs +1 -1
  226. package/dist/primitives/composer/ComposerRoot.mjs.map +1 -1
  227. package/dist/primitives/composer/ComposerSend.d.ts +1 -5
  228. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  229. package/dist/primitives/composer/ComposerSend.js +2 -2
  230. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  231. package/dist/primitives/composer/ComposerSend.mjs +1 -1
  232. package/dist/primitives/composer/ComposerSend.mjs.map +1 -1
  233. package/dist/primitives/contentPart/ContentPartDisplay.d.ts +0 -4
  234. package/dist/primitives/contentPart/ContentPartDisplay.d.ts.map +1 -1
  235. package/dist/primitives/contentPart/ContentPartDisplay.js.map +1 -1
  236. package/dist/primitives/contentPart/ContentPartDisplay.mjs.map +1 -1
  237. package/dist/primitives/contentPart/ContentPartImage.d.ts +0 -4
  238. package/dist/primitives/contentPart/ContentPartImage.d.ts.map +1 -1
  239. package/dist/primitives/contentPart/ContentPartImage.js.map +1 -1
  240. package/dist/primitives/contentPart/ContentPartImage.mjs.map +1 -1
  241. package/dist/primitives/contentPart/ContentPartInProgress.d.ts +0 -4
  242. package/dist/primitives/contentPart/ContentPartInProgress.d.ts.map +1 -1
  243. package/dist/primitives/contentPart/ContentPartInProgress.js.map +1 -1
  244. package/dist/primitives/contentPart/ContentPartInProgress.mjs.map +1 -1
  245. package/dist/primitives/contentPart/ContentPartText.d.ts +0 -4
  246. package/dist/primitives/contentPart/ContentPartText.d.ts.map +1 -1
  247. package/dist/primitives/contentPart/ContentPartText.js.map +1 -1
  248. package/dist/primitives/contentPart/ContentPartText.mjs.map +1 -1
  249. package/dist/primitives/index.d.ts +0 -7
  250. package/dist/primitives/index.d.ts.map +1 -1
  251. package/dist/primitives/index.js.map +1 -1
  252. package/dist/primitives/index.mjs.map +1 -1
  253. package/dist/primitives/message/MessageAttachments.d.ts +0 -4
  254. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -1
  255. package/dist/primitives/message/MessageAttachments.js +2 -4
  256. package/dist/primitives/message/MessageAttachments.js.map +1 -1
  257. package/dist/primitives/message/MessageAttachments.mjs +2 -4
  258. package/dist/primitives/message/MessageAttachments.mjs.map +1 -1
  259. package/dist/primitives/message/MessageContent.d.ts +0 -4
  260. package/dist/primitives/message/MessageContent.d.ts.map +1 -1
  261. package/dist/primitives/message/MessageContent.js +6 -6
  262. package/dist/primitives/message/MessageContent.js.map +1 -1
  263. package/dist/primitives/message/MessageContent.mjs +7 -7
  264. package/dist/primitives/message/MessageContent.mjs.map +1 -1
  265. package/dist/primitives/message/MessageIf.d.ts +0 -4
  266. package/dist/primitives/message/MessageIf.d.ts.map +1 -1
  267. package/dist/primitives/message/MessageIf.js.map +1 -1
  268. package/dist/primitives/message/MessageIf.mjs.map +1 -1
  269. package/dist/primitives/message/MessageRoot.d.ts +0 -4
  270. package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
  271. package/dist/primitives/message/MessageRoot.js.map +1 -1
  272. package/dist/primitives/message/MessageRoot.mjs.map +1 -1
  273. package/dist/primitives/message/index.d.ts +0 -1
  274. package/dist/primitives/message/index.d.ts.map +1 -1
  275. package/dist/primitives/message/index.js +0 -3
  276. package/dist/primitives/message/index.js.map +1 -1
  277. package/dist/primitives/message/index.mjs +0 -2
  278. package/dist/primitives/message/index.mjs.map +1 -1
  279. package/dist/primitives/thread/ThreadEmpty.d.ts +0 -4
  280. package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -1
  281. package/dist/primitives/thread/ThreadEmpty.js +2 -2
  282. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  283. package/dist/primitives/thread/ThreadEmpty.mjs +1 -1
  284. package/dist/primitives/thread/ThreadEmpty.mjs.map +1 -1
  285. package/dist/primitives/thread/ThreadIf.d.ts +0 -4
  286. package/dist/primitives/thread/ThreadIf.d.ts.map +1 -1
  287. package/dist/primitives/thread/ThreadIf.js.map +1 -1
  288. package/dist/primitives/thread/ThreadIf.mjs.map +1 -1
  289. package/dist/primitives/thread/ThreadMessages.d.ts +0 -4
  290. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
  291. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  292. package/dist/primitives/thread/ThreadMessages.mjs.map +1 -1
  293. package/dist/primitives/thread/ThreadRoot.d.ts +0 -4
  294. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  295. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  296. package/dist/primitives/thread/ThreadRoot.mjs.map +1 -1
  297. package/dist/primitives/thread/ThreadScrollToBottom.d.ts +0 -4
  298. package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -1
  299. package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -1
  300. package/dist/primitives/thread/ThreadScrollToBottom.mjs.map +1 -1
  301. package/dist/primitives/thread/ThreadSuggestion.d.ts +0 -4
  302. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  303. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  304. package/dist/primitives/thread/ThreadSuggestion.mjs.map +1 -1
  305. package/dist/primitives/thread/ThreadViewport.d.ts +0 -4
  306. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
  307. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  308. package/dist/primitives/thread/ThreadViewport.mjs.map +1 -1
  309. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -1
  310. package/dist/primitives/threadListItem/ThreadListItemArchive.js +3 -2
  311. package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
  312. package/dist/primitives/threadListItem/ThreadListItemArchive.mjs +3 -2
  313. package/dist/primitives/threadListItem/ThreadListItemArchive.mjs.map +1 -1
  314. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +14 -0
  315. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -0
  316. package/dist/primitives/threadListItem/ThreadListItemRoot.js +47 -0
  317. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -0
  318. package/dist/primitives/threadListItem/ThreadListItemRoot.mjs +23 -0
  319. package/dist/primitives/threadListItem/ThreadListItemRoot.mjs.map +1 -0
  320. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts +8 -0
  321. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -0
  322. package/dist/primitives/{message/MessageInProgress.js → threadListItem/ThreadListItemTitle.js} +13 -10
  323. package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -0
  324. package/dist/primitives/threadListItem/ThreadListItemTitle.mjs +14 -0
  325. package/dist/primitives/threadListItem/ThreadListItemTitle.mjs.map +1 -0
  326. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +13 -0
  327. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -0
  328. package/dist/{runtimes/core/subscribeToMainThread.js → primitives/threadListItem/ThreadListItemTrigger.js} +17 -22
  329. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -0
  330. package/dist/primitives/threadListItem/ThreadListItemTrigger.mjs +21 -0
  331. package/dist/primitives/threadListItem/ThreadListItemTrigger.mjs.map +1 -0
  332. package/dist/primitives/threadListItem/index.d.ts +3 -0
  333. package/dist/primitives/threadListItem/index.d.ts.map +1 -1
  334. package/dist/primitives/threadListItem/index.js +9 -0
  335. package/dist/primitives/threadListItem/index.js.map +1 -1
  336. package/dist/primitives/threadListItem/index.mjs +6 -0
  337. package/dist/primitives/threadListItem/index.mjs.map +1 -1
  338. package/dist/runtimes/attachment/AttachmentAdapter.d.ts +3 -7
  339. package/dist/runtimes/attachment/AttachmentAdapter.d.ts.map +1 -1
  340. package/dist/runtimes/attachment/AttachmentAdapter.js.map +1 -1
  341. package/dist/runtimes/attachment/CompositeAttachmentAdapter.d.ts +2 -6
  342. package/dist/runtimes/attachment/CompositeAttachmentAdapter.d.ts.map +1 -1
  343. package/dist/runtimes/attachment/CompositeAttachmentAdapter.js +1 -2
  344. package/dist/runtimes/attachment/CompositeAttachmentAdapter.js.map +1 -1
  345. package/dist/runtimes/attachment/CompositeAttachmentAdapter.mjs +1 -2
  346. package/dist/runtimes/attachment/CompositeAttachmentAdapter.mjs.map +1 -1
  347. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts.map +1 -1
  348. package/dist/runtimes/composer/BaseComposerRuntimeCore.js +0 -6
  349. package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
  350. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs +0 -6
  351. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs.map +1 -1
  352. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts +5 -4
  353. package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts.map +1 -1
  354. package/dist/runtimes/core/BaseThreadRuntimeCore.js +8 -4
  355. package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
  356. package/dist/runtimes/core/BaseThreadRuntimeCore.mjs +8 -4
  357. package/dist/runtimes/core/BaseThreadRuntimeCore.mjs.map +1 -1
  358. package/dist/runtimes/core/ComposerRuntimeCore.d.ts +0 -3
  359. package/dist/runtimes/core/ComposerRuntimeCore.d.ts.map +1 -1
  360. package/dist/runtimes/core/ComposerRuntimeCore.js.map +1 -1
  361. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts +7 -10
  362. package/dist/runtimes/core/ThreadListRuntimeCore.d.ts.map +1 -1
  363. package/dist/runtimes/core/ThreadListRuntimeCore.js.map +1 -1
  364. package/dist/runtimes/core/ThreadRuntimeCore.d.ts +14 -1
  365. package/dist/runtimes/core/ThreadRuntimeCore.d.ts.map +1 -1
  366. package/dist/runtimes/core/ThreadRuntimeCore.js.map +1 -1
  367. package/dist/runtimes/core/index.d.ts +1 -2
  368. package/dist/runtimes/core/index.d.ts.map +1 -1
  369. package/dist/runtimes/core/index.js +0 -12
  370. package/dist/runtimes/core/index.js.map +1 -1
  371. package/dist/runtimes/core/index.mjs +0 -5
  372. package/dist/runtimes/core/index.mjs.map +1 -1
  373. package/dist/runtimes/edge/converters/toCoreMessages.d.ts +1 -1
  374. package/dist/runtimes/edge/converters/toCoreMessages.d.ts.map +1 -1
  375. package/dist/runtimes/edge/converters/toCoreMessages.js.map +1 -1
  376. package/dist/runtimes/edge/converters/toCoreMessages.mjs.map +1 -1
  377. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts +0 -4
  378. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts.map +1 -1
  379. package/dist/runtimes/edge/createEdgeRuntimeAPI.js +0 -2
  380. package/dist/runtimes/edge/createEdgeRuntimeAPI.js.map +1 -1
  381. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs +0 -2
  382. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs.map +1 -1
  383. package/dist/runtimes/edge/streams/runResultStream.js +0 -2
  384. package/dist/runtimes/edge/streams/runResultStream.js.map +1 -1
  385. package/dist/runtimes/edge/streams/runResultStream.mjs +0 -2
  386. package/dist/runtimes/edge/streams/runResultStream.mjs.map +1 -1
  387. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +3 -16
  388. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +1 -1
  389. package/dist/runtimes/external-store/ExternalStoreAdapter.js.map +1 -1
  390. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts.map +1 -1
  391. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js +0 -3
  392. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js.map +1 -1
  393. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs +0 -3
  394. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs.map +1 -1
  395. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts +9 -11
  396. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -1
  397. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js +29 -7
  398. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
  399. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.mjs +29 -7
  400. package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.mjs.map +1 -1
  401. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts +0 -1
  402. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
  403. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +4 -3
  404. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  405. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs +4 -3
  406. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs.map +1 -1
  407. package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
  408. package/dist/runtimes/external-store/ThreadMessageLike.js +2 -0
  409. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  410. package/dist/runtimes/external-store/ThreadMessageLike.mjs +2 -0
  411. package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
  412. package/dist/runtimes/local/ChatModelAdapter.d.ts +0 -8
  413. package/dist/runtimes/local/ChatModelAdapter.d.ts.map +1 -1
  414. package/dist/runtimes/local/ChatModelAdapter.js.map +1 -1
  415. package/dist/runtimes/local/LocalRuntimeOptions.d.ts +1 -6
  416. package/dist/runtimes/local/LocalRuntimeOptions.d.ts.map +1 -1
  417. package/dist/runtimes/local/LocalRuntimeOptions.js +1 -2
  418. package/dist/runtimes/local/LocalRuntimeOptions.js.map +1 -1
  419. package/dist/runtimes/local/LocalRuntimeOptions.mjs +1 -2
  420. package/dist/runtimes/local/LocalRuntimeOptions.mjs.map +1 -1
  421. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts +16 -20
  422. package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts.map +1 -1
  423. package/dist/runtimes/local/LocalThreadListRuntimeCore.js +112 -72
  424. package/dist/runtimes/local/LocalThreadListRuntimeCore.js.map +1 -1
  425. package/dist/runtimes/local/LocalThreadListRuntimeCore.mjs +112 -72
  426. package/dist/runtimes/local/LocalThreadListRuntimeCore.mjs.map +1 -1
  427. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.d.ts +19 -0
  428. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.d.ts.map +1 -0
  429. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.js +87 -0
  430. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.js.map +1 -0
  431. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.mjs +62 -0
  432. package/dist/runtimes/local/LocalThreadMetadataRuntimeCore.mjs.map +1 -0
  433. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +1 -1
  434. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  435. package/dist/runtimes/local/LocalThreadRuntimeCore.js +15 -11
  436. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  437. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +15 -11
  438. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
  439. package/dist/styles/index.css.map +1 -1
  440. package/dist/types/AssistantTypes.d.ts +1 -18
  441. package/dist/types/AssistantTypes.d.ts.map +1 -1
  442. package/dist/types/AssistantTypes.js.map +1 -1
  443. package/dist/types/AttachmentTypes.d.ts +1 -1
  444. package/dist/types/AttachmentTypes.d.ts.map +1 -1
  445. package/dist/types/AttachmentTypes.js.map +1 -1
  446. package/dist/types/ContentPartComponentTypes.d.ts +4 -28
  447. package/dist/types/ContentPartComponentTypes.d.ts.map +1 -1
  448. package/dist/types/ContentPartComponentTypes.js.map +1 -1
  449. package/dist/ui/assistant-message.d.ts +1 -10
  450. package/dist/ui/assistant-message.d.ts.map +1 -1
  451. package/dist/ui/assistant-message.js.map +1 -1
  452. package/dist/ui/assistant-message.mjs.map +1 -1
  453. package/dist/ui/composer.d.ts +1 -25
  454. package/dist/ui/composer.d.ts.map +1 -1
  455. package/dist/ui/composer.js.map +1 -1
  456. package/dist/ui/composer.mjs.map +1 -1
  457. package/dist/ui/index.d.ts +6 -14
  458. package/dist/ui/index.d.ts.map +1 -1
  459. package/dist/ui/index.js +0 -4
  460. package/dist/ui/index.js.map +1 -1
  461. package/dist/ui/index.mjs +14 -24
  462. package/dist/ui/index.mjs.map +1 -1
  463. package/dist/ui/thread-welcome.d.ts +5 -17
  464. package/dist/ui/thread-welcome.d.ts.map +1 -1
  465. package/dist/ui/thread-welcome.js.map +1 -1
  466. package/dist/ui/thread-welcome.mjs.map +1 -1
  467. package/dist/ui/thread.d.ts +1 -19
  468. package/dist/ui/thread.d.ts.map +1 -1
  469. package/dist/ui/thread.js.map +1 -1
  470. package/dist/ui/thread.mjs.map +1 -1
  471. package/dist/ui/user-message.d.ts +1 -18
  472. package/dist/ui/user-message.d.ts.map +1 -1
  473. package/dist/ui/user-message.js.map +1 -1
  474. package/dist/ui/user-message.mjs.map +1 -1
  475. package/dist/utils/smooth/SmoothContext.js +2 -2
  476. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  477. package/dist/utils/smooth/SmoothContext.mjs +3 -3
  478. package/dist/utils/smooth/SmoothContext.mjs.map +1 -1
  479. package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
  480. package/dist/utils/smooth/useSmooth.js +0 -1
  481. package/dist/utils/smooth/useSmooth.js.map +1 -1
  482. package/dist/utils/smooth/useSmooth.mjs +0 -1
  483. package/dist/utils/smooth/useSmooth.mjs.map +1 -1
  484. package/package.json +5 -5
  485. package/src/api/AssistantRuntime.ts +1 -23
  486. package/src/api/AttachmentRuntime.ts +0 -12
  487. package/src/api/ComposerRuntime.ts +11 -207
  488. package/src/api/ContentPartRuntime.ts +0 -4
  489. package/src/api/MessageRuntime.ts +7 -11
  490. package/src/api/ThreadListItemRuntime.ts +16 -8
  491. package/src/api/ThreadListRuntime.ts +34 -53
  492. package/src/api/ThreadRuntime.ts +11 -203
  493. package/src/context/providers/AssistantRuntimeProvider.tsx +0 -1
  494. package/src/context/providers/TextContentPartProvider.tsx +0 -2
  495. package/src/context/providers/ThreadRuntimeProvider.tsx +1 -17
  496. package/src/context/react/AssistantContext.ts +0 -25
  497. package/src/context/react/ComposerContext.ts +1 -1
  498. package/src/context/react/ContentPartContext.ts +1 -1
  499. package/src/context/react/MessageContext.ts +2 -2
  500. package/src/context/react/ThreadContext.ts +5 -42
  501. package/src/context/react/index.ts +2 -125
  502. package/src/index.ts +0 -1
  503. package/src/internal.ts +1 -0
  504. package/src/model-config/useAssistantToolUI.tsx +0 -1
  505. package/src/primitive-hooks/contentPart/useContentPartDisplay.tsx +1 -1
  506. package/src/primitive-hooks/contentPart/useContentPartImage.tsx +1 -2
  507. package/src/primitive-hooks/contentPart/useContentPartText.tsx +1 -1
  508. package/src/primitive-hooks/index.ts +0 -5
  509. package/src/primitives/actionBar/ActionBarCopy.tsx +0 -5
  510. package/src/primitives/actionBar/ActionBarEdit.tsx +0 -5
  511. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +0 -6
  512. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +0 -6
  513. package/src/primitives/actionBar/ActionBarReload.tsx +0 -5
  514. package/src/primitives/actionBar/ActionBarRoot.tsx +0 -5
  515. package/src/primitives/actionBar/ActionBarSpeak.tsx +0 -5
  516. package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +0 -6
  517. package/src/primitives/assistantModal/AssistantModalContent.tsx +1 -7
  518. package/src/primitives/assistantModal/AssistantModalRoot.tsx +0 -6
  519. package/src/primitives/assistantModal/AssistantModalTrigger.tsx +0 -6
  520. package/src/primitives/branchPicker/BranchPickerCount.tsx +0 -5
  521. package/src/primitives/branchPicker/BranchPickerNext.tsx +0 -6
  522. package/src/primitives/branchPicker/BranchPickerNumber.tsx +0 -5
  523. package/src/primitives/branchPicker/BranchPickerPrevious.tsx +1 -6
  524. package/src/primitives/branchPicker/BranchPickerRoot.tsx +0 -5
  525. package/src/primitives/composer/ComposerAddAttachment.tsx +2 -7
  526. package/src/primitives/composer/ComposerAttachments.tsx +0 -6
  527. package/src/primitives/composer/ComposerCancel.tsx +0 -5
  528. package/src/primitives/composer/ComposerIf.tsx +0 -5
  529. package/src/primitives/composer/ComposerInput.tsx +0 -5
  530. package/src/primitives/composer/ComposerRoot.tsx +1 -3
  531. package/src/primitives/composer/ComposerSend.tsx +2 -7
  532. package/src/primitives/contentPart/ContentPartDisplay.tsx +0 -6
  533. package/src/primitives/contentPart/ContentPartImage.tsx +0 -5
  534. package/src/primitives/contentPart/ContentPartInProgress.tsx +0 -6
  535. package/src/primitives/contentPart/ContentPartText.tsx +0 -5
  536. package/src/primitives/index.ts +0 -8
  537. package/src/primitives/message/MessageAttachments.tsx +2 -10
  538. package/src/primitives/message/MessageContent.tsx +7 -15
  539. package/src/primitives/message/MessageIf.tsx +0 -5
  540. package/src/primitives/message/MessageRoot.tsx +0 -5
  541. package/src/primitives/message/index.ts +0 -1
  542. package/src/primitives/thread/ThreadEmpty.tsx +1 -6
  543. package/src/primitives/thread/ThreadIf.tsx +0 -5
  544. package/src/primitives/thread/ThreadMessages.tsx +0 -5
  545. package/src/primitives/thread/ThreadRoot.tsx +0 -5
  546. package/src/primitives/thread/ThreadScrollToBottom.tsx +0 -6
  547. package/src/primitives/thread/ThreadSuggestion.tsx +0 -5
  548. package/src/primitives/thread/ThreadViewport.tsx +0 -5
  549. package/src/primitives/threadListItem/ThreadListItemArchive.ts +3 -2
  550. package/src/primitives/threadListItem/ThreadListItemRoot.tsx +29 -0
  551. package/src/primitives/threadListItem/ThreadListItemTitle.tsx +19 -0
  552. package/src/primitives/threadListItem/ThreadListItemTrigger.ts +25 -0
  553. package/src/primitives/threadListItem/index.ts +4 -1
  554. package/src/runtimes/attachment/AttachmentAdapter.ts +2 -12
  555. package/src/runtimes/attachment/CompositeAttachmentAdapter.ts +1 -1
  556. package/src/runtimes/composer/BaseComposerRuntimeCore.tsx +0 -8
  557. package/src/runtimes/core/BaseThreadRuntimeCore.tsx +11 -5
  558. package/src/runtimes/core/ComposerRuntimeCore.tsx +0 -3
  559. package/src/runtimes/core/ThreadListRuntimeCore.tsx +7 -11
  560. package/src/runtimes/core/ThreadRuntimeCore.tsx +18 -1
  561. package/src/runtimes/core/index.ts +1 -2
  562. package/src/runtimes/edge/converters/toCoreMessages.ts +1 -1
  563. package/src/runtimes/edge/createEdgeRuntimeAPI.ts +0 -6
  564. package/src/runtimes/edge/streams/runResultStream.ts +0 -2
  565. package/src/runtimes/external-store/ExternalStoreAdapter.tsx +3 -17
  566. package/src/runtimes/external-store/ExternalStoreRuntimeCore.tsx +0 -3
  567. package/src/runtimes/external-store/ExternalStoreThreadListRuntimeCore.tsx +39 -7
  568. package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +4 -3
  569. package/src/runtimes/external-store/ThreadMessageLike.tsx +4 -3
  570. package/src/runtimes/local/ChatModelAdapter.tsx +0 -9
  571. package/src/runtimes/local/LocalRuntimeOptions.tsx +1 -7
  572. package/src/runtimes/local/LocalThreadListRuntimeCore.tsx +140 -96
  573. package/src/runtimes/local/LocalThreadMetadataRuntimeCore.tsx +79 -0
  574. package/src/runtimes/local/LocalThreadRuntimeCore.tsx +16 -11
  575. package/src/types/AssistantTypes.ts +1 -20
  576. package/src/types/AttachmentTypes.ts +1 -2
  577. package/src/types/ContentPartComponentTypes.tsx +4 -31
  578. package/src/ui/assistant-message.tsx +0 -5
  579. package/src/ui/composer.tsx +0 -5
  580. package/src/ui/index.ts +5 -23
  581. package/src/ui/thread-welcome.tsx +6 -9
  582. package/src/ui/thread.tsx +0 -5
  583. package/src/ui/user-message.tsx +2 -12
  584. package/src/utils/smooth/SmoothContext.tsx +3 -3
  585. package/src/utils/smooth/useSmooth.tsx +0 -1
  586. package/dist/hooks/index.d.ts +0 -3
  587. package/dist/hooks/index.d.ts.map +0 -1
  588. package/dist/hooks/index.js +0 -34
  589. package/dist/hooks/index.js.map +0 -1
  590. package/dist/hooks/index.mjs +0 -8
  591. package/dist/hooks/index.mjs.map +0 -1
  592. package/dist/hooks/useAppendMessage.d.ts +0 -6
  593. package/dist/hooks/useAppendMessage.d.ts.map +0 -1
  594. package/dist/hooks/useAppendMessage.js +0 -42
  595. package/dist/hooks/useAppendMessage.js.map +0 -1
  596. package/dist/hooks/useAppendMessage.mjs +0 -17
  597. package/dist/hooks/useAppendMessage.mjs.map +0 -1
  598. package/dist/hooks/useSwitchToNewThread.d.ts +0 -5
  599. package/dist/hooks/useSwitchToNewThread.d.ts.map +0 -1
  600. package/dist/hooks/useSwitchToNewThread.js +0 -39
  601. package/dist/hooks/useSwitchToNewThread.js.map +0 -1
  602. package/dist/hooks/useSwitchToNewThread.mjs +0 -14
  603. package/dist/hooks/useSwitchToNewThread.mjs.map +0 -1
  604. package/dist/primitive-hooks/actionBar/index.d.ts +0 -34
  605. package/dist/primitive-hooks/actionBar/index.d.ts.map +0 -1
  606. package/dist/primitive-hooks/actionBar/index.js +0 -49
  607. package/dist/primitive-hooks/actionBar/index.js.map +0 -1
  608. package/dist/primitive-hooks/actionBar/index.mjs +0 -20
  609. package/dist/primitive-hooks/actionBar/index.mjs.map +0 -1
  610. package/dist/primitive-hooks/branchPicker/index.d.ts +0 -17
  611. package/dist/primitive-hooks/branchPicker/index.d.ts.map +0 -1
  612. package/dist/primitive-hooks/branchPicker/index.js +0 -40
  613. package/dist/primitive-hooks/branchPicker/index.js.map +0 -1
  614. package/dist/primitive-hooks/branchPicker/index.mjs +0 -12
  615. package/dist/primitive-hooks/branchPicker/index.mjs.map +0 -1
  616. package/dist/primitive-hooks/composer/index.d.ts +0 -17
  617. package/dist/primitive-hooks/composer/index.d.ts.map +0 -1
  618. package/dist/primitive-hooks/composer/index.js +0 -40
  619. package/dist/primitive-hooks/composer/index.js.map +0 -1
  620. package/dist/primitive-hooks/composer/index.mjs +0 -12
  621. package/dist/primitive-hooks/composer/index.mjs.map +0 -1
  622. package/dist/primitive-hooks/message/index.d.ts +0 -5
  623. package/dist/primitive-hooks/message/index.d.ts.map +0 -1
  624. package/dist/primitive-hooks/message/index.js +0 -31
  625. package/dist/primitive-hooks/message/index.js.map +0 -1
  626. package/dist/primitive-hooks/message/index.mjs +0 -6
  627. package/dist/primitive-hooks/message/index.mjs.map +0 -1
  628. package/dist/primitive-hooks/thread/index.d.ts +0 -17
  629. package/dist/primitive-hooks/thread/index.d.ts.map +0 -1
  630. package/dist/primitive-hooks/thread/index.js +0 -40
  631. package/dist/primitive-hooks/thread/index.js.map +0 -1
  632. package/dist/primitive-hooks/thread/index.mjs +0 -12
  633. package/dist/primitive-hooks/thread/index.mjs.map +0 -1
  634. package/dist/primitives/actionBar/types.d.ts +0 -9
  635. package/dist/primitives/actionBar/types.d.ts.map +0 -1
  636. package/dist/primitives/actionBar/types.js +0 -19
  637. package/dist/primitives/actionBar/types.js.map +0 -1
  638. package/dist/primitives/actionBar/types.mjs +0 -1
  639. package/dist/primitives/actionBar/types.mjs.map +0 -1
  640. package/dist/primitives/assistantModal/types.d.ts +0 -4
  641. package/dist/primitives/assistantModal/types.d.ts.map +0 -1
  642. package/dist/primitives/assistantModal/types.js +0 -19
  643. package/dist/primitives/assistantModal/types.js.map +0 -1
  644. package/dist/primitives/assistantModal/types.mjs +0 -1
  645. package/dist/primitives/assistantModal/types.mjs.map +0 -1
  646. package/dist/primitives/attachment/types.d.ts +0 -1
  647. package/dist/primitives/attachment/types.d.ts.map +0 -1
  648. package/dist/primitives/attachment/types.js +0 -2
  649. package/dist/primitives/attachment/types.js.map +0 -1
  650. package/dist/primitives/attachment/types.mjs +0 -1
  651. package/dist/primitives/attachment/types.mjs.map +0 -1
  652. package/dist/primitives/branchPicker/types.d.ts +0 -6
  653. package/dist/primitives/branchPicker/types.d.ts.map +0 -1
  654. package/dist/primitives/branchPicker/types.js +0 -19
  655. package/dist/primitives/branchPicker/types.js.map +0 -1
  656. package/dist/primitives/branchPicker/types.mjs +0 -1
  657. package/dist/primitives/branchPicker/types.mjs.map +0 -1
  658. package/dist/primitives/composer/types.d.ts +0 -6
  659. package/dist/primitives/composer/types.d.ts.map +0 -1
  660. package/dist/primitives/composer/types.js +0 -19
  661. package/dist/primitives/composer/types.js.map +0 -1
  662. package/dist/primitives/composer/types.mjs +0 -1
  663. package/dist/primitives/composer/types.mjs.map +0 -1
  664. package/dist/primitives/contentPart/types.d.ts +0 -5
  665. package/dist/primitives/contentPart/types.d.ts.map +0 -1
  666. package/dist/primitives/contentPart/types.js +0 -19
  667. package/dist/primitives/contentPart/types.js.map +0 -1
  668. package/dist/primitives/contentPart/types.mjs +0 -1
  669. package/dist/primitives/contentPart/types.mjs.map +0 -1
  670. package/dist/primitives/message/MessageInProgress.d.ts +0 -13
  671. package/dist/primitives/message/MessageInProgress.d.ts.map +0 -1
  672. package/dist/primitives/message/MessageInProgress.js.map +0 -1
  673. package/dist/primitives/message/MessageInProgress.mjs +0 -11
  674. package/dist/primitives/message/MessageInProgress.mjs.map +0 -1
  675. package/dist/primitives/message/types.d.ts +0 -5
  676. package/dist/primitives/message/types.d.ts.map +0 -1
  677. package/dist/primitives/message/types.js +0 -19
  678. package/dist/primitives/message/types.js.map +0 -1
  679. package/dist/primitives/message/types.mjs +0 -1
  680. package/dist/primitives/message/types.mjs.map +0 -1
  681. package/dist/primitives/thread/types.d.ts +0 -8
  682. package/dist/primitives/thread/types.d.ts.map +0 -1
  683. package/dist/primitives/thread/types.js +0 -19
  684. package/dist/primitives/thread/types.js.map +0 -1
  685. package/dist/primitives/thread/types.mjs +0 -1
  686. package/dist/primitives/thread/types.mjs.map +0 -1
  687. package/dist/runtimes/core/subscribeToMainThread.d.ts +0 -6
  688. package/dist/runtimes/core/subscribeToMainThread.d.ts.map +0 -1
  689. package/dist/runtimes/core/subscribeToMainThread.js.map +0 -1
  690. package/dist/runtimes/core/subscribeToMainThread.mjs +0 -23
  691. package/dist/runtimes/core/subscribeToMainThread.mjs.map +0 -1
  692. package/src/hooks/index.ts +0 -2
  693. package/src/hooks/useAppendMessage.tsx +0 -19
  694. package/src/hooks/useSwitchToNewThread.tsx +0 -14
  695. package/src/primitive-hooks/actionBar/index.ts +0 -39
  696. package/src/primitive-hooks/branchPicker/index.ts +0 -18
  697. package/src/primitive-hooks/composer/index.ts +0 -17
  698. package/src/primitive-hooks/message/index.ts +0 -4
  699. package/src/primitive-hooks/thread/index.ts +0 -16
  700. package/src/primitives/actionBar/types.ts +0 -8
  701. package/src/primitives/assistantModal/types.ts +0 -3
  702. package/src/primitives/attachment/types.ts +0 -0
  703. package/src/primitives/branchPicker/types.ts +0 -5
  704. package/src/primitives/composer/types.ts +0 -5
  705. package/src/primitives/contentPart/types.ts +0 -4
  706. package/src/primitives/message/MessageInProgress.tsx +0 -22
  707. package/src/primitives/message/types.ts +0 -4
  708. package/src/primitives/thread/types.ts +0 -7
  709. package/src/runtimes/core/subscribeToMainThread.ts +0 -30
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/runtimes/local/LocalThreadMetadataRuntimeCore.tsx"],"sourcesContent":["import { ThreadMetadataRuntimeCore } from \"../core/ThreadRuntimeCore\";\n\nexport class LocalThreadMetadataRuntimeCore\n implements ThreadMetadataRuntimeCore\n{\n private _state: \"regular\" | \"archived\" | \"deleted\" | \"new\" = \"new\";\n private _title: string | undefined;\n private _subscribers = new Set<() => void>();\n\n constructor(private _threadId: string) {}\n\n public get threadId() {\n return this._threadId;\n }\n\n public get state() {\n return this._state;\n }\n\n public get title() {\n return this._title;\n }\n\n public rename(newTitle: string) {\n this._title = newTitle;\n this._notifySubscribers();\n\n return Promise.resolve();\n }\n\n public archive() {\n if (this._state === \"new\") throw new Error(\"Thread not created\");\n if (this._state === \"archived\") throw new Error(\"Thread already archived\");\n if (this._state === \"deleted\") throw new Error(\"Thread deleted\");\n\n this._state = \"archived\";\n this._notifySubscribers();\n\n return Promise.resolve();\n }\n\n public unarchive() {\n if (this._state !== \"archived\") throw new Error(\"Thread not archived\");\n\n this._state = \"regular\";\n this._notifySubscribers();\n\n return Promise.resolve();\n }\n\n public delete() {\n if (this._state === \"new\") throw new Error(\"Thread not created\");\n if (this._state === \"deleted\") throw new Error(\"Thread already deleted\");\n\n this._state = \"deleted\";\n this._notifySubscribers();\n\n return Promise.resolve();\n }\n\n public create(title?: string) {\n if (this.state !== \"new\") throw new Error(\"Thread not new\");\n\n this._state = \"regular\";\n this._title = title ?? this._title;\n this._notifySubscribers();\n\n return Promise.resolve();\n }\n\n public subscribe(callback: () => void) {\n this._subscribers.add(callback);\n return () => this._subscribers.delete(callback);\n }\n\n private _notifySubscribers() {\n for (const callback of this._subscribers) callback();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,IAAM,iCAAN,MAEP;AAAA,EAKE,YAAoB,WAAmB;AAAnB;AAAA,EAAoB;AAAA,EAJhC,SAAqD;AAAA,EACrD;AAAA,EACA,eAAe,oBAAI,IAAgB;AAAA,EAI3C,IAAW,WAAW;AACpB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAW,QAAQ;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAW,QAAQ;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,OAAO,UAAkB;AAC9B,SAAK,SAAS;AACd,SAAK,mBAAmB;AAExB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEO,UAAU;AACf,QAAI,KAAK,WAAW,MAAO,OAAM,IAAI,MAAM,oBAAoB;AAC/D,QAAI,KAAK,WAAW,WAAY,OAAM,IAAI,MAAM,yBAAyB;AACzE,QAAI,KAAK,WAAW,UAAW,OAAM,IAAI,MAAM,gBAAgB;AAE/D,SAAK,SAAS;AACd,SAAK,mBAAmB;AAExB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEO,YAAY;AACjB,QAAI,KAAK,WAAW,WAAY,OAAM,IAAI,MAAM,qBAAqB;AAErE,SAAK,SAAS;AACd,SAAK,mBAAmB;AAExB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEO,SAAS;AACd,QAAI,KAAK,WAAW,MAAO,OAAM,IAAI,MAAM,oBAAoB;AAC/D,QAAI,KAAK,WAAW,UAAW,OAAM,IAAI,MAAM,wBAAwB;AAEvE,SAAK,SAAS;AACd,SAAK,mBAAmB;AAExB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEO,OAAO,OAAgB;AAC5B,QAAI,KAAK,UAAU,MAAO,OAAM,IAAI,MAAM,gBAAgB;AAE1D,SAAK,SAAS;AACd,SAAK,SAAS,SAAS,KAAK;AAC5B,SAAK,mBAAmB;AAExB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEO,UAAU,UAAsB;AACrC,SAAK,aAAa,IAAI,QAAQ;AAC9B,WAAO,MAAM,KAAK,aAAa,OAAO,QAAQ;AAAA,EAChD;AAAA,EAEQ,qBAAqB;AAC3B,eAAW,YAAY,KAAK,aAAc,UAAS;AAAA,EACrD;AACF;","names":[]}
@@ -0,0 +1,62 @@
1
+ // src/runtimes/local/LocalThreadMetadataRuntimeCore.tsx
2
+ var LocalThreadMetadataRuntimeCore = class {
3
+ constructor(_threadId) {
4
+ this._threadId = _threadId;
5
+ }
6
+ _state = "new";
7
+ _title;
8
+ _subscribers = /* @__PURE__ */ new Set();
9
+ get threadId() {
10
+ return this._threadId;
11
+ }
12
+ get state() {
13
+ return this._state;
14
+ }
15
+ get title() {
16
+ return this._title;
17
+ }
18
+ rename(newTitle) {
19
+ this._title = newTitle;
20
+ this._notifySubscribers();
21
+ return Promise.resolve();
22
+ }
23
+ archive() {
24
+ if (this._state === "new") throw new Error("Thread not created");
25
+ if (this._state === "archived") throw new Error("Thread already archived");
26
+ if (this._state === "deleted") throw new Error("Thread deleted");
27
+ this._state = "archived";
28
+ this._notifySubscribers();
29
+ return Promise.resolve();
30
+ }
31
+ unarchive() {
32
+ if (this._state !== "archived") throw new Error("Thread not archived");
33
+ this._state = "regular";
34
+ this._notifySubscribers();
35
+ return Promise.resolve();
36
+ }
37
+ delete() {
38
+ if (this._state === "new") throw new Error("Thread not created");
39
+ if (this._state === "deleted") throw new Error("Thread already deleted");
40
+ this._state = "deleted";
41
+ this._notifySubscribers();
42
+ return Promise.resolve();
43
+ }
44
+ create(title) {
45
+ if (this.state !== "new") throw new Error("Thread not new");
46
+ this._state = "regular";
47
+ this._title = title ?? this._title;
48
+ this._notifySubscribers();
49
+ return Promise.resolve();
50
+ }
51
+ subscribe(callback) {
52
+ this._subscribers.add(callback);
53
+ return () => this._subscribers.delete(callback);
54
+ }
55
+ _notifySubscribers() {
56
+ for (const callback of this._subscribers) callback();
57
+ }
58
+ };
59
+ export {
60
+ LocalThreadMetadataRuntimeCore
61
+ };
62
+ //# sourceMappingURL=LocalThreadMetadataRuntimeCore.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/runtimes/local/LocalThreadMetadataRuntimeCore.tsx"],"sourcesContent":["import { ThreadMetadataRuntimeCore } from \"../core/ThreadRuntimeCore\";\n\nexport class LocalThreadMetadataRuntimeCore\n implements ThreadMetadataRuntimeCore\n{\n private _state: \"regular\" | \"archived\" | \"deleted\" | \"new\" = \"new\";\n private _title: string | undefined;\n private _subscribers = new Set<() => void>();\n\n constructor(private _threadId: string) {}\n\n public get threadId() {\n return this._threadId;\n }\n\n public get state() {\n return this._state;\n }\n\n public get title() {\n return this._title;\n }\n\n public rename(newTitle: string) {\n this._title = newTitle;\n this._notifySubscribers();\n\n return Promise.resolve();\n }\n\n public archive() {\n if (this._state === \"new\") throw new Error(\"Thread not created\");\n if (this._state === \"archived\") throw new Error(\"Thread already archived\");\n if (this._state === \"deleted\") throw new Error(\"Thread deleted\");\n\n this._state = \"archived\";\n this._notifySubscribers();\n\n return Promise.resolve();\n }\n\n public unarchive() {\n if (this._state !== \"archived\") throw new Error(\"Thread not archived\");\n\n this._state = \"regular\";\n this._notifySubscribers();\n\n return Promise.resolve();\n }\n\n public delete() {\n if (this._state === \"new\") throw new Error(\"Thread not created\");\n if (this._state === \"deleted\") throw new Error(\"Thread already deleted\");\n\n this._state = \"deleted\";\n this._notifySubscribers();\n\n return Promise.resolve();\n }\n\n public create(title?: string) {\n if (this.state !== \"new\") throw new Error(\"Thread not new\");\n\n this._state = \"regular\";\n this._title = title ?? this._title;\n this._notifySubscribers();\n\n return Promise.resolve();\n }\n\n public subscribe(callback: () => void) {\n this._subscribers.add(callback);\n return () => this._subscribers.delete(callback);\n }\n\n private _notifySubscribers() {\n for (const callback of this._subscribers) callback();\n }\n}\n"],"mappings":";AAEO,IAAM,iCAAN,MAEP;AAAA,EAKE,YAAoB,WAAmB;AAAnB;AAAA,EAAoB;AAAA,EAJhC,SAAqD;AAAA,EACrD;AAAA,EACA,eAAe,oBAAI,IAAgB;AAAA,EAI3C,IAAW,WAAW;AACpB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAW,QAAQ;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAW,QAAQ;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,OAAO,UAAkB;AAC9B,SAAK,SAAS;AACd,SAAK,mBAAmB;AAExB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEO,UAAU;AACf,QAAI,KAAK,WAAW,MAAO,OAAM,IAAI,MAAM,oBAAoB;AAC/D,QAAI,KAAK,WAAW,WAAY,OAAM,IAAI,MAAM,yBAAyB;AACzE,QAAI,KAAK,WAAW,UAAW,OAAM,IAAI,MAAM,gBAAgB;AAE/D,SAAK,SAAS;AACd,SAAK,mBAAmB;AAExB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEO,YAAY;AACjB,QAAI,KAAK,WAAW,WAAY,OAAM,IAAI,MAAM,qBAAqB;AAErE,SAAK,SAAS;AACd,SAAK,mBAAmB;AAExB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEO,SAAS;AACd,QAAI,KAAK,WAAW,MAAO,OAAM,IAAI,MAAM,oBAAoB;AAC/D,QAAI,KAAK,WAAW,UAAW,OAAM,IAAI,MAAM,wBAAwB;AAEvE,SAAK,SAAS;AACd,SAAK,mBAAmB;AAExB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEO,OAAO,OAAgB;AAC5B,QAAI,KAAK,UAAU,MAAO,OAAM,IAAI,MAAM,gBAAgB;AAE1D,SAAK,SAAS;AACd,SAAK,SAAS,SAAS,KAAK;AAC5B,SAAK,mBAAmB;AAExB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEO,UAAU,UAAsB;AACrC,SAAK,aAAa,IAAI,QAAQ;AAC9B,WAAO,MAAM,KAAK,aAAa,OAAO,QAAQ;AAAA,EAChD;AAAA,EAEQ,qBAAqB;AAC3B,eAAW,YAAY,KAAK,aAAc,UAAS;AAAA,EACrD;AACF;","names":[]}
@@ -3,7 +3,6 @@ import { LocalRuntimeOptionsBase } from "./LocalRuntimeOptions";
3
3
  import { AddToolResultOptions, ThreadSuggestion, ThreadRuntimeCore } from "../core/ThreadRuntimeCore";
4
4
  import { BaseThreadRuntimeCore } from "../core/BaseThreadRuntimeCore";
5
5
  export declare class LocalThreadRuntimeCore extends BaseThreadRuntimeCore implements ThreadRuntimeCore {
6
- readonly threadId: string;
7
6
  readonly capabilities: {
8
7
  switchToBranch: boolean;
9
8
  edit: boolean;
@@ -27,6 +26,7 @@ export declare class LocalThreadRuntimeCore extends BaseThreadRuntimeCore implem
27
26
  private _options;
28
27
  get extras(): undefined;
29
28
  setOptions(options: LocalRuntimeOptionsBase): void;
29
+ private _transitionAwayFromNewState;
30
30
  append(message: AppendMessage): Promise<void>;
31
31
  startRun(parentId: string | null): Promise<void>;
32
32
  private performRoundtrip;
@@ -1 +1 @@
1
- {"version":3,"file":"LocalThreadRuntimeCore.d.ts","sourceRoot":"","sources":["../../../src/runtimes/local/LocalThreadRuntimeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EAEd,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,qBAAa,sBACX,SAAQ,qBACR,YAAW,iBAAiB;aAwBV,QAAQ,EAAE,MAAM;IAtBlC,SAAgB,YAAY;;;;;;;;;MAS1B;IAEF,OAAO,CAAC,eAAe,CAAgC;IAEvD,SAAgB,UAAU,SAAS;IACnC,SAAgB,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAM;IAE9D,IAAW,QAAQ;;;;;MAElB;gBAGC,cAAc,EAAE,mBAAmB,EACnB,QAAQ,EAAE,MAAM,EAChC,OAAO,EAAE,uBAAuB;IAOlC,OAAO,CAAC,QAAQ,CAA2B;IAE3C,IAAW,MAAM,cAEhB;IAEM,UAAU,CAAC,OAAO,EAAE,uBAAuB;IA4BrC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAoB/C,gBAAgB;IA+GvB,SAAS;IAKT,aAAa,CAAC,EACnB,SAAS,EACT,UAAU,EACV,MAAM,GACP,EAAE,oBAAoB;CAkCxB"}
1
+ {"version":3,"file":"LocalThreadRuntimeCore.d.ts","sourceRoot":"","sources":["../../../src/runtimes/local/LocalThreadRuntimeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EAEd,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,qBAAa,sBACX,SAAQ,qBACR,YAAW,iBAAiB;IAE5B,SAAgB,YAAY;;;;;;;;;MAS1B;IAEF,OAAO,CAAC,eAAe,CAAgC;IAEvD,SAAgB,UAAU,SAAS;IACnC,SAAgB,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAM;IAE9D,IAAW,QAAQ;;;;;MAElB;gBAGC,cAAc,EAAE,mBAAmB,EACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,uBAAuB;IAMlC,OAAO,CAAC,QAAQ,CAA2B;IAE3C,IAAW,MAAM,cAEhB;IAEM,UAAU,CAAC,OAAO,EAAE,uBAAuB;IA4BlD,OAAO,CAAC,2BAA2B;IAMtB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAsB/C,gBAAgB;IA0GvB,SAAS;IAKT,aAAa,CAAC,EACnB,SAAS,EACT,UAAU,EACV,MAAM,GACP,EAAE,oBAAoB;CAkCxB"}
@@ -27,12 +27,8 @@ var import_internal = require("../../internal.cjs");
27
27
  var import_edge = require("../edge/index.cjs");
28
28
  var import_shouldContinue = require("./shouldContinue.cjs");
29
29
  var import_BaseThreadRuntimeCore = require("../core/BaseThreadRuntimeCore.cjs");
30
+ var import_LocalThreadMetadataRuntimeCore = require("./LocalThreadMetadataRuntimeCore.cjs");
30
31
  var LocalThreadRuntimeCore = class extends import_BaseThreadRuntimeCore.BaseThreadRuntimeCore {
31
- constructor(configProvider, threadId, options) {
32
- super(configProvider);
33
- this.threadId = threadId;
34
- this.setOptions(options);
35
- }
36
32
  capabilities = {
37
33
  switchToBranch: true,
38
34
  edit: true,
@@ -49,6 +45,10 @@ var LocalThreadRuntimeCore = class extends import_BaseThreadRuntimeCore.BaseThre
49
45
  get adapters() {
50
46
  return this._options.adapters;
51
47
  }
48
+ constructor(configProvider, threadId, options) {
49
+ super(configProvider, new import_LocalThreadMetadataRuntimeCore.LocalThreadMetadataRuntimeCore(threadId));
50
+ this.setOptions(options);
51
+ }
52
52
  _options;
53
53
  get extras() {
54
54
  return void 0;
@@ -74,7 +74,13 @@ var LocalThreadRuntimeCore = class extends import_BaseThreadRuntimeCore.BaseThre
74
74
  }
75
75
  if (hasUpdates) this._notifySubscribers();
76
76
  }
77
+ _transitionAwayFromNewState() {
78
+ if (this.metadata.state === "new") {
79
+ this.metadata.create();
80
+ }
81
+ }
77
82
  async append(message) {
83
+ this._transitionAwayFromNewState();
78
84
  const newMessage = (0, import_edge.fromCoreMessage)(message, {
79
85
  attachments: message.attachments
80
86
  });
@@ -88,6 +94,7 @@ var LocalThreadRuntimeCore = class extends import_BaseThreadRuntimeCore.BaseThre
88
94
  }
89
95
  }
90
96
  async startRun(parentId) {
97
+ this._transitionAwayFromNewState();
91
98
  this.repository.resetHead(parentId);
92
99
  const id = (0, import_internal.generateId)();
93
100
  let message = {
@@ -110,18 +117,16 @@ var LocalThreadRuntimeCore = class extends import_BaseThreadRuntimeCore.BaseThre
110
117
  const initialSteps = message.metadata?.steps;
111
118
  const initalCustom = message.metadata?.custom;
112
119
  const updateMessage = (m) => {
113
- const newSteps = m.metadata?.steps || m.metadata?.roundtrips;
120
+ const newSteps = m.metadata?.steps;
114
121
  const steps2 = newSteps ? [...initialSteps ?? [], ...newSteps] : void 0;
115
122
  message = {
116
123
  ...message,
117
124
  ...m.content ? { content: [...initialContent, ...m.content ?? []] } : void 0,
118
125
  status: m.status ?? message.status,
119
- // TODO deprecated, remove in v0.6
120
- ...steps2 ? { roundtrips: steps2 } : void 0,
121
126
  ...m.metadata ? {
122
127
  metadata: {
123
128
  ...message.metadata,
124
- ...steps2 ? { roundtrips: steps2, steps: steps2 } : void 0,
129
+ ...steps2 ? { steps: steps2 } : void 0,
125
130
  ...m.metadata?.custom ? {
126
131
  custom: { ...initalCustom ?? {}, ...m.metadata.custom }
127
132
  } : void 0
@@ -131,7 +136,7 @@ var LocalThreadRuntimeCore = class extends import_BaseThreadRuntimeCore.BaseThre
131
136
  this.repository.addOrUpdateMessage(parentId, message);
132
137
  this._notifySubscribers();
133
138
  };
134
- const maxSteps = this._options.maxSteps ? this._options.maxSteps : (this._options.maxToolRoundtrips ?? 1) + 1;
139
+ const maxSteps = this._options.maxSteps ?? 2;
135
140
  const steps = message.metadata?.steps?.length ?? 0;
136
141
  if (steps >= maxSteps) {
137
142
  updateMessage({
@@ -153,7 +158,6 @@ var LocalThreadRuntimeCore = class extends import_BaseThreadRuntimeCore.BaseThre
153
158
  messages,
154
159
  abortSignal: this.abortController.signal,
155
160
  config: this.getModelConfig(),
156
- onUpdate: updateMessage,
157
161
  unstable_assistantMessageId: message.id
158
162
  });
159
163
  if (Symbol.asyncIterator in promiseOrGenerator) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/local/LocalThreadRuntimeCore.tsx"],"sourcesContent":["import { generateId } from \"../../internal\";\nimport type {\n ModelConfigProvider,\n AppendMessage,\n ThreadAssistantMessage,\n} from \"../../types\";\nimport { fromCoreMessage } from \"../edge\";\nimport type { ChatModelRunResult } from \"./ChatModelAdapter\";\nimport { shouldContinue } from \"./shouldContinue\";\nimport { LocalRuntimeOptionsBase } from \"./LocalRuntimeOptions\";\nimport {\n AddToolResultOptions,\n ThreadSuggestion,\n ThreadRuntimeCore,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\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 public readonly suggestions: readonly ThreadSuggestion[] = [];\n\n public get adapters() {\n return this._options.adapters;\n }\n\n constructor(\n configProvider: ModelConfigProvider,\n public readonly threadId: string,\n options: LocalRuntimeOptionsBase,\n ) {\n super(configProvider);\n\n this.setOptions(options);\n }\n\n private _options!: LocalRuntimeOptionsBase;\n\n public get extras() {\n return undefined;\n }\n\n public 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 public async append(message: AppendMessage): Promise<void> {\n const newMessage = fromCoreMessage(message, {\n attachments: message.attachments,\n });\n this.repository.addOrUpdateMessage(message.parentId, newMessage);\n\n const startRun = message.startRun ?? message.role === \"user\";\n if (startRun) {\n await this.startRun(newMessage.id);\n } else {\n this.repository.resetHead(newMessage.id);\n this._notifySubscribers();\n }\n }\n\n public async startRun(parentId: string | null): Promise<void> {\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 createdAt: new Date(),\n };\n\n this._notifyEventSubscribers(\"run-start\");\n\n do {\n message = await this.performRoundtrip(parentId, message);\n } while (shouldContinue(message));\n }\n\n private async performRoundtrip(\n parentId: string | null,\n message: ThreadAssistantMessage,\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 initialSteps = message.metadata?.steps;\n const initalCustom = message.metadata?.custom;\n const updateMessage = (m: Partial<ChatModelRunResult>) => {\n const newSteps = m.metadata?.steps || m.metadata?.roundtrips;\n const steps = newSteps\n ? [...(initialSteps ?? []), ...newSteps]\n : undefined;\n\n message = {\n ...message,\n ...(m.content\n ? { content: [...initialContent, ...(m.content ?? [])] }\n : undefined),\n status: m.status ?? message.status,\n // TODO deprecated, remove in v0.6\n ...(steps ? { roundtrips: steps } : undefined),\n ...(m.metadata\n ? {\n metadata: {\n ...message.metadata,\n ...(steps ? { roundtrips: 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\n ? this._options.maxSteps\n : (this._options.maxToolRoundtrips ?? 1) + 1;\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 const promiseOrGenerator = this.adapters.chatModel.run({\n messages,\n abortSignal: this.abortController.signal,\n config: this.getModelConfig(),\n onUpdate: updateMessage,\n unstable_assistantMessageId: message.id,\n });\n\n // handle async iterator for streaming results\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n updateMessage(r);\n }\n } else {\n updateMessage(await promiseOrGenerator);\n }\n\n this.abortController = null;\n\n if (message.status.type === \"running\") {\n updateMessage({\n status: { type: \"complete\", reason: \"unknown\" },\n });\n }\n } catch (e) {\n this.abortController = null;\n\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: { type: \"incomplete\", reason: \"error\", error: e },\n });\n\n throw e;\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 (added && shouldContinue(message)) {\n this.performRoundtrip(parentId, message);\n }\n }\n}\n"],"mappings":"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","names":["steps"]}
1
+ {"version":3,"sources":["../../../src/runtimes/local/LocalThreadRuntimeCore.tsx"],"sourcesContent":["import { generateId } from \"../../internal\";\nimport type {\n ModelConfigProvider,\n AppendMessage,\n ThreadAssistantMessage,\n} from \"../../types\";\nimport { fromCoreMessage } from \"../edge\";\nimport type { ChatModelRunResult } from \"./ChatModelAdapter\";\nimport { shouldContinue } from \"./shouldContinue\";\nimport { LocalRuntimeOptionsBase } from \"./LocalRuntimeOptions\";\nimport {\n AddToolResultOptions,\n ThreadSuggestion,\n ThreadRuntimeCore,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\nimport { LocalThreadMetadataRuntimeCore } from \"./LocalThreadMetadataRuntimeCore\";\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 public readonly suggestions: readonly ThreadSuggestion[] = [];\n\n public get adapters() {\n return this._options.adapters;\n }\n\n constructor(\n configProvider: ModelConfigProvider,\n threadId: string,\n options: LocalRuntimeOptionsBase,\n ) {\n super(configProvider, new LocalThreadMetadataRuntimeCore(threadId));\n this.setOptions(options);\n }\n\n private _options!: LocalRuntimeOptionsBase;\n\n public get extras() {\n return undefined;\n }\n\n public 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 _transitionAwayFromNewState() {\n if (this.metadata.state === \"new\") {\n this.metadata.create();\n }\n }\n\n public async append(message: AppendMessage): Promise<void> {\n this._transitionAwayFromNewState();\n\n const newMessage = fromCoreMessage(message, {\n attachments: message.attachments,\n });\n this.repository.addOrUpdateMessage(message.parentId, newMessage);\n\n const startRun = message.startRun ?? message.role === \"user\";\n if (startRun) {\n await this.startRun(newMessage.id);\n } else {\n this.repository.resetHead(newMessage.id);\n this._notifySubscribers();\n }\n }\n\n public async startRun(parentId: string | null): Promise<void> {\n this._transitionAwayFromNewState();\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 createdAt: new Date(),\n };\n\n this._notifyEventSubscribers(\"run-start\");\n\n do {\n message = await this.performRoundtrip(parentId, message);\n } while (shouldContinue(message));\n }\n\n private async performRoundtrip(\n parentId: string | null,\n message: ThreadAssistantMessage,\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 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 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 ...(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 const promiseOrGenerator = this.adapters.chatModel.run({\n messages,\n abortSignal: this.abortController.signal,\n config: this.getModelConfig(),\n unstable_assistantMessageId: message.id,\n });\n\n // handle async iterator for streaming results\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n updateMessage(r);\n }\n } else {\n updateMessage(await promiseOrGenerator);\n }\n\n this.abortController = null;\n\n if (message.status.type === \"running\") {\n updateMessage({\n status: { type: \"complete\", reason: \"unknown\" },\n });\n }\n } catch (e) {\n this.abortController = null;\n\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: { type: \"incomplete\", reason: \"error\", error: e },\n });\n\n throw e;\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 (added && shouldContinue(message)) {\n this.performRoundtrip(parentId, message);\n }\n }\n}\n"],"mappings":"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","names":["steps"]}
@@ -3,12 +3,8 @@ import { generateId } from "../../internal.mjs";
3
3
  import { fromCoreMessage } from "../edge/index.mjs";
4
4
  import { shouldContinue } from "./shouldContinue.mjs";
5
5
  import { BaseThreadRuntimeCore } from "../core/BaseThreadRuntimeCore.mjs";
6
+ import { LocalThreadMetadataRuntimeCore } from "./LocalThreadMetadataRuntimeCore.mjs";
6
7
  var LocalThreadRuntimeCore = class extends BaseThreadRuntimeCore {
7
- constructor(configProvider, threadId, options) {
8
- super(configProvider);
9
- this.threadId = threadId;
10
- this.setOptions(options);
11
- }
12
8
  capabilities = {
13
9
  switchToBranch: true,
14
10
  edit: true,
@@ -25,6 +21,10 @@ var LocalThreadRuntimeCore = class extends BaseThreadRuntimeCore {
25
21
  get adapters() {
26
22
  return this._options.adapters;
27
23
  }
24
+ constructor(configProvider, threadId, options) {
25
+ super(configProvider, new LocalThreadMetadataRuntimeCore(threadId));
26
+ this.setOptions(options);
27
+ }
28
28
  _options;
29
29
  get extras() {
30
30
  return void 0;
@@ -50,7 +50,13 @@ var LocalThreadRuntimeCore = class extends BaseThreadRuntimeCore {
50
50
  }
51
51
  if (hasUpdates) this._notifySubscribers();
52
52
  }
53
+ _transitionAwayFromNewState() {
54
+ if (this.metadata.state === "new") {
55
+ this.metadata.create();
56
+ }
57
+ }
53
58
  async append(message) {
59
+ this._transitionAwayFromNewState();
54
60
  const newMessage = fromCoreMessage(message, {
55
61
  attachments: message.attachments
56
62
  });
@@ -64,6 +70,7 @@ var LocalThreadRuntimeCore = class extends BaseThreadRuntimeCore {
64
70
  }
65
71
  }
66
72
  async startRun(parentId) {
73
+ this._transitionAwayFromNewState();
67
74
  this.repository.resetHead(parentId);
68
75
  const id = generateId();
69
76
  let message = {
@@ -86,18 +93,16 @@ var LocalThreadRuntimeCore = class extends BaseThreadRuntimeCore {
86
93
  const initialSteps = message.metadata?.steps;
87
94
  const initalCustom = message.metadata?.custom;
88
95
  const updateMessage = (m) => {
89
- const newSteps = m.metadata?.steps || m.metadata?.roundtrips;
96
+ const newSteps = m.metadata?.steps;
90
97
  const steps2 = newSteps ? [...initialSteps ?? [], ...newSteps] : void 0;
91
98
  message = {
92
99
  ...message,
93
100
  ...m.content ? { content: [...initialContent, ...m.content ?? []] } : void 0,
94
101
  status: m.status ?? message.status,
95
- // TODO deprecated, remove in v0.6
96
- ...steps2 ? { roundtrips: steps2 } : void 0,
97
102
  ...m.metadata ? {
98
103
  metadata: {
99
104
  ...message.metadata,
100
- ...steps2 ? { roundtrips: steps2, steps: steps2 } : void 0,
105
+ ...steps2 ? { steps: steps2 } : void 0,
101
106
  ...m.metadata?.custom ? {
102
107
  custom: { ...initalCustom ?? {}, ...m.metadata.custom }
103
108
  } : void 0
@@ -107,7 +112,7 @@ var LocalThreadRuntimeCore = class extends BaseThreadRuntimeCore {
107
112
  this.repository.addOrUpdateMessage(parentId, message);
108
113
  this._notifySubscribers();
109
114
  };
110
- const maxSteps = this._options.maxSteps ? this._options.maxSteps : (this._options.maxToolRoundtrips ?? 1) + 1;
115
+ const maxSteps = this._options.maxSteps ?? 2;
111
116
  const steps = message.metadata?.steps?.length ?? 0;
112
117
  if (steps >= maxSteps) {
113
118
  updateMessage({
@@ -129,7 +134,6 @@ var LocalThreadRuntimeCore = class extends BaseThreadRuntimeCore {
129
134
  messages,
130
135
  abortSignal: this.abortController.signal,
131
136
  config: this.getModelConfig(),
132
- onUpdate: updateMessage,
133
137
  unstable_assistantMessageId: message.id
134
138
  });
135
139
  if (Symbol.asyncIterator in promiseOrGenerator) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/local/LocalThreadRuntimeCore.tsx"],"sourcesContent":["import { generateId } from \"../../internal\";\nimport type {\n ModelConfigProvider,\n AppendMessage,\n ThreadAssistantMessage,\n} from \"../../types\";\nimport { fromCoreMessage } from \"../edge\";\nimport type { ChatModelRunResult } from \"./ChatModelAdapter\";\nimport { shouldContinue } from \"./shouldContinue\";\nimport { LocalRuntimeOptionsBase } from \"./LocalRuntimeOptions\";\nimport {\n AddToolResultOptions,\n ThreadSuggestion,\n ThreadRuntimeCore,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\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 public readonly suggestions: readonly ThreadSuggestion[] = [];\n\n public get adapters() {\n return this._options.adapters;\n }\n\n constructor(\n configProvider: ModelConfigProvider,\n public readonly threadId: string,\n options: LocalRuntimeOptionsBase,\n ) {\n super(configProvider);\n\n this.setOptions(options);\n }\n\n private _options!: LocalRuntimeOptionsBase;\n\n public get extras() {\n return undefined;\n }\n\n public 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 public async append(message: AppendMessage): Promise<void> {\n const newMessage = fromCoreMessage(message, {\n attachments: message.attachments,\n });\n this.repository.addOrUpdateMessage(message.parentId, newMessage);\n\n const startRun = message.startRun ?? message.role === \"user\";\n if (startRun) {\n await this.startRun(newMessage.id);\n } else {\n this.repository.resetHead(newMessage.id);\n this._notifySubscribers();\n }\n }\n\n public async startRun(parentId: string | null): Promise<void> {\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 createdAt: new Date(),\n };\n\n this._notifyEventSubscribers(\"run-start\");\n\n do {\n message = await this.performRoundtrip(parentId, message);\n } while (shouldContinue(message));\n }\n\n private async performRoundtrip(\n parentId: string | null,\n message: ThreadAssistantMessage,\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 initialSteps = message.metadata?.steps;\n const initalCustom = message.metadata?.custom;\n const updateMessage = (m: Partial<ChatModelRunResult>) => {\n const newSteps = m.metadata?.steps || m.metadata?.roundtrips;\n const steps = newSteps\n ? [...(initialSteps ?? []), ...newSteps]\n : undefined;\n\n message = {\n ...message,\n ...(m.content\n ? { content: [...initialContent, ...(m.content ?? [])] }\n : undefined),\n status: m.status ?? message.status,\n // TODO deprecated, remove in v0.6\n ...(steps ? { roundtrips: steps } : undefined),\n ...(m.metadata\n ? {\n metadata: {\n ...message.metadata,\n ...(steps ? { roundtrips: 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\n ? this._options.maxSteps\n : (this._options.maxToolRoundtrips ?? 1) + 1;\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 const promiseOrGenerator = this.adapters.chatModel.run({\n messages,\n abortSignal: this.abortController.signal,\n config: this.getModelConfig(),\n onUpdate: updateMessage,\n unstable_assistantMessageId: message.id,\n });\n\n // handle async iterator for streaming results\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n updateMessage(r);\n }\n } else {\n updateMessage(await promiseOrGenerator);\n }\n\n this.abortController = null;\n\n if (message.status.type === \"running\") {\n updateMessage({\n status: { type: \"complete\", reason: \"unknown\" },\n });\n }\n } catch (e) {\n this.abortController = null;\n\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: { type: \"incomplete\", reason: \"error\", error: e },\n });\n\n throw e;\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 (added && shouldContinue(message)) {\n this.performRoundtrip(parentId, message);\n }\n }\n}\n"],"mappings":"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","names":["steps"]}
1
+ {"version":3,"sources":["../../../src/runtimes/local/LocalThreadRuntimeCore.tsx"],"sourcesContent":["import { generateId } from \"../../internal\";\nimport type {\n ModelConfigProvider,\n AppendMessage,\n ThreadAssistantMessage,\n} from \"../../types\";\nimport { fromCoreMessage } from \"../edge\";\nimport type { ChatModelRunResult } from \"./ChatModelAdapter\";\nimport { shouldContinue } from \"./shouldContinue\";\nimport { LocalRuntimeOptionsBase } from \"./LocalRuntimeOptions\";\nimport {\n AddToolResultOptions,\n ThreadSuggestion,\n ThreadRuntimeCore,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\nimport { LocalThreadMetadataRuntimeCore } from \"./LocalThreadMetadataRuntimeCore\";\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 public readonly suggestions: readonly ThreadSuggestion[] = [];\n\n public get adapters() {\n return this._options.adapters;\n }\n\n constructor(\n configProvider: ModelConfigProvider,\n threadId: string,\n options: LocalRuntimeOptionsBase,\n ) {\n super(configProvider, new LocalThreadMetadataRuntimeCore(threadId));\n this.setOptions(options);\n }\n\n private _options!: LocalRuntimeOptionsBase;\n\n public get extras() {\n return undefined;\n }\n\n public 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 _transitionAwayFromNewState() {\n if (this.metadata.state === \"new\") {\n this.metadata.create();\n }\n }\n\n public async append(message: AppendMessage): Promise<void> {\n this._transitionAwayFromNewState();\n\n const newMessage = fromCoreMessage(message, {\n attachments: message.attachments,\n });\n this.repository.addOrUpdateMessage(message.parentId, newMessage);\n\n const startRun = message.startRun ?? message.role === \"user\";\n if (startRun) {\n await this.startRun(newMessage.id);\n } else {\n this.repository.resetHead(newMessage.id);\n this._notifySubscribers();\n }\n }\n\n public async startRun(parentId: string | null): Promise<void> {\n this._transitionAwayFromNewState();\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 createdAt: new Date(),\n };\n\n this._notifyEventSubscribers(\"run-start\");\n\n do {\n message = await this.performRoundtrip(parentId, message);\n } while (shouldContinue(message));\n }\n\n private async performRoundtrip(\n parentId: string | null,\n message: ThreadAssistantMessage,\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 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 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 ...(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 const promiseOrGenerator = this.adapters.chatModel.run({\n messages,\n abortSignal: this.abortController.signal,\n config: this.getModelConfig(),\n unstable_assistantMessageId: message.id,\n });\n\n // handle async iterator for streaming results\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n updateMessage(r);\n }\n } else {\n updateMessage(await promiseOrGenerator);\n }\n\n this.abortController = null;\n\n if (message.status.type === \"running\") {\n updateMessage({\n status: { type: \"complete\", reason: \"unknown\" },\n });\n }\n } catch (e) {\n this.abortController = null;\n\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: { type: \"incomplete\", reason: \"error\", error: e },\n });\n\n throw e;\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 (added && shouldContinue(message)) {\n this.performRoundtrip(parentId, message);\n }\n }\n}\n"],"mappings":"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","names":["steps"]}