@tambo-ai/react 0.74.1 → 1.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. package/README.md +46 -449
  2. package/dist/hoc/with-tambo-interactable.d.ts +8 -0
  3. package/dist/hoc/with-tambo-interactable.d.ts.map +1 -1
  4. package/dist/hoc/with-tambo-interactable.js +16 -13
  5. package/dist/hoc/with-tambo-interactable.js.map +1 -1
  6. package/dist/hoc/with-tambo-interactable.test.js +15 -3
  7. package/dist/hoc/with-tambo-interactable.test.js.map +1 -1
  8. package/dist/hooks/use-tambo-voice.test.js +3 -0
  9. package/dist/hooks/use-tambo-voice.test.js.map +1 -1
  10. package/dist/index.d.ts +7 -25
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +7 -59
  13. package/dist/index.js.map +1 -1
  14. package/dist/mcp/mcp-hooks.js +5 -5
  15. package/dist/mcp/mcp-hooks.js.map +1 -1
  16. package/dist/mcp/mcp-hooks.test.js +69 -0
  17. package/dist/mcp/mcp-hooks.test.js.map +1 -1
  18. package/dist/mcp/tambo-mcp-provider.test.js +24 -0
  19. package/dist/mcp/tambo-mcp-provider.test.js.map +1 -1
  20. package/dist/mcp/use-mcp-servers.test.js +9 -0
  21. package/dist/mcp/use-mcp-servers.test.js.map +1 -1
  22. package/dist/model/component-metadata.d.ts +4 -4
  23. package/dist/model/component-metadata.js.map +1 -1
  24. package/dist/providers/tambo-client-provider.d.ts +12 -0
  25. package/dist/providers/tambo-client-provider.d.ts.map +1 -1
  26. package/dist/providers/tambo-client-provider.js +8 -3
  27. package/dist/providers/tambo-client-provider.js.map +1 -1
  28. package/dist/providers/tambo-interactable-provider.d.ts +1 -1
  29. package/dist/providers/tambo-interactable-provider.d.ts.map +1 -1
  30. package/dist/providers/tambo-interactable-provider.js +8 -0
  31. package/dist/providers/tambo-interactable-provider.js.map +1 -1
  32. package/dist/providers/tambo-interactable-provider.test.js +47 -0
  33. package/dist/providers/tambo-interactable-provider.test.js.map +1 -1
  34. package/dist/providers/tambo-interactables-additional-context-edge-cases.test.js +2 -10
  35. package/dist/providers/tambo-interactables-additional-context-edge-cases.test.js.map +1 -1
  36. package/dist/providers/tambo-interactables-additional-context.test.js +3 -19
  37. package/dist/providers/tambo-interactables-additional-context.test.js.map +1 -1
  38. package/dist/providers/tambo-mcp-token-provider.d.ts +8 -17
  39. package/dist/providers/tambo-mcp-token-provider.d.ts.map +1 -1
  40. package/dist/providers/tambo-mcp-token-provider.js +20 -97
  41. package/dist/providers/tambo-mcp-token-provider.js.map +1 -1
  42. package/dist/testing/tools.d.ts +3 -3
  43. package/dist/testing/tools.d.ts.map +1 -1
  44. package/dist/testing/tools.js.map +1 -1
  45. package/dist/util/registry-validators.js +1 -1
  46. package/dist/util/registry-validators.js.map +1 -1
  47. package/dist/util/resource-content-resolver.test.js +1 -1
  48. package/dist/util/resource-content-resolver.test.js.map +1 -1
  49. package/dist/v1/__tests__/v1-interactables.test.js +1 -1
  50. package/dist/v1/__tests__/v1-interactables.test.js.map +1 -1
  51. package/dist/v1/components/v1-component-renderer.d.ts +9 -9
  52. package/dist/v1/components/v1-component-renderer.d.ts.map +1 -1
  53. package/dist/v1/components/v1-component-renderer.js +13 -13
  54. package/dist/v1/components/v1-component-renderer.js.map +1 -1
  55. package/dist/v1/components/v1-component-renderer.test.js +15 -15
  56. package/dist/v1/components/v1-component-renderer.test.js.map +1 -1
  57. package/{esm/hooks/use-current-message.d.ts → dist/v1/hooks/use-tambo-current-message.d.ts} +30 -9
  58. package/dist/v1/hooks/use-tambo-current-message.d.ts.map +1 -0
  59. package/dist/{hooks/use-current-message.js → v1/hooks/use-tambo-current-message.js} +13 -8
  60. package/dist/v1/hooks/use-tambo-current-message.js.map +1 -0
  61. package/dist/v1/hooks/use-tambo-v1-auth-state.d.ts +11 -0
  62. package/dist/v1/hooks/use-tambo-v1-auth-state.d.ts.map +1 -0
  63. package/dist/v1/hooks/use-tambo-v1-auth-state.js +48 -0
  64. package/dist/v1/hooks/use-tambo-v1-auth-state.js.map +1 -0
  65. package/dist/v1/hooks/use-tambo-v1-auth-state.test.d.ts +2 -0
  66. package/dist/v1/hooks/use-tambo-v1-auth-state.test.d.ts.map +1 -0
  67. package/dist/v1/hooks/use-tambo-v1-auth-state.test.js +105 -0
  68. package/dist/v1/hooks/use-tambo-v1-auth-state.test.js.map +1 -0
  69. package/dist/v1/hooks/use-tambo-v1-component-state.d.ts +7 -6
  70. package/dist/v1/hooks/use-tambo-v1-component-state.d.ts.map +1 -1
  71. package/dist/v1/hooks/use-tambo-v1-component-state.js +101 -28
  72. package/dist/v1/hooks/use-tambo-v1-component-state.js.map +1 -1
  73. package/dist/v1/hooks/use-tambo-v1-component-state.test.js +150 -25
  74. package/dist/v1/hooks/use-tambo-v1-component-state.test.js.map +1 -1
  75. package/dist/v1/hooks/use-tambo-v1-messages.d.ts +9 -9
  76. package/dist/v1/hooks/use-tambo-v1-messages.d.ts.map +1 -1
  77. package/dist/v1/hooks/use-tambo-v1-messages.js +4 -4
  78. package/dist/v1/hooks/use-tambo-v1-messages.js.map +1 -1
  79. package/dist/v1/hooks/use-tambo-v1-messages.test.js +14 -6
  80. package/dist/v1/hooks/use-tambo-v1-messages.test.js.map +1 -1
  81. package/dist/v1/hooks/use-tambo-v1-send-message.d.ts +21 -3
  82. package/dist/v1/hooks/use-tambo-v1-send-message.d.ts.map +1 -1
  83. package/dist/v1/hooks/use-tambo-v1-send-message.js +92 -17
  84. package/dist/v1/hooks/use-tambo-v1-send-message.js.map +1 -1
  85. package/dist/v1/hooks/use-tambo-v1-send-message.test.js +315 -42
  86. package/dist/v1/hooks/use-tambo-v1-send-message.test.js.map +1 -1
  87. package/dist/v1/hooks/use-tambo-v1-stream-status.d.ts +7 -7
  88. package/dist/v1/hooks/use-tambo-v1-stream-status.d.ts.map +1 -1
  89. package/dist/v1/hooks/use-tambo-v1-stream-status.js +14 -16
  90. package/dist/v1/hooks/use-tambo-v1-stream-status.js.map +1 -1
  91. package/dist/v1/hooks/use-tambo-v1-stream-status.test.js +30 -30
  92. package/dist/v1/hooks/use-tambo-v1-stream-status.test.js.map +1 -1
  93. package/dist/v1/hooks/use-tambo-v1-suggestions.d.ts +7 -7
  94. package/dist/v1/hooks/use-tambo-v1-suggestions.d.ts.map +1 -1
  95. package/dist/v1/hooks/use-tambo-v1-suggestions.js +9 -9
  96. package/dist/v1/hooks/use-tambo-v1-suggestions.js.map +1 -1
  97. package/dist/v1/hooks/use-tambo-v1-suggestions.test.js +44 -44
  98. package/dist/v1/hooks/use-tambo-v1-suggestions.test.js.map +1 -1
  99. package/dist/v1/hooks/use-tambo-v1-thread-input.d.ts +3 -3
  100. package/dist/v1/hooks/use-tambo-v1-thread-input.d.ts.map +1 -1
  101. package/dist/v1/hooks/use-tambo-v1-thread-input.js +4 -4
  102. package/dist/v1/hooks/use-tambo-v1-thread-input.js.map +1 -1
  103. package/dist/v1/hooks/use-tambo-v1-thread-input.test.js +40 -27
  104. package/dist/v1/hooks/use-tambo-v1-thread-input.test.js.map +1 -1
  105. package/dist/v1/hooks/use-tambo-v1-thread-list.d.ts +4 -4
  106. package/dist/v1/hooks/use-tambo-v1-thread-list.d.ts.map +1 -1
  107. package/dist/v1/hooks/use-tambo-v1-thread-list.js +8 -4
  108. package/dist/v1/hooks/use-tambo-v1-thread-list.js.map +1 -1
  109. package/dist/v1/hooks/use-tambo-v1-thread-list.test.js +18 -16
  110. package/dist/v1/hooks/use-tambo-v1-thread-list.test.js.map +1 -1
  111. package/dist/v1/hooks/use-tambo-v1-thread.d.ts +3 -3
  112. package/dist/v1/hooks/use-tambo-v1-thread.d.ts.map +1 -1
  113. package/dist/v1/hooks/use-tambo-v1-thread.js +7 -3
  114. package/dist/v1/hooks/use-tambo-v1-thread.js.map +1 -1
  115. package/dist/v1/hooks/use-tambo-v1-thread.test.js +10 -4
  116. package/dist/v1/hooks/use-tambo-v1-thread.test.js.map +1 -1
  117. package/dist/v1/hooks/use-tambo-v1.d.ts +16 -5
  118. package/dist/v1/hooks/use-tambo-v1.d.ts.map +1 -1
  119. package/dist/v1/hooks/use-tambo-v1.js +14 -6
  120. package/dist/v1/hooks/use-tambo-v1.js.map +1 -1
  121. package/dist/v1/hooks/use-tambo-v1.test.js +65 -43
  122. package/dist/v1/hooks/use-tambo-v1.test.js.map +1 -1
  123. package/dist/v1/index.d.ts +34 -27
  124. package/dist/v1/index.d.ts.map +1 -1
  125. package/dist/v1/index.js +48 -35
  126. package/dist/v1/index.js.map +1 -1
  127. package/dist/v1/providers/tambo-v1-provider.d.ts +35 -20
  128. package/dist/v1/providers/tambo-v1-provider.d.ts.map +1 -1
  129. package/dist/v1/providers/tambo-v1-provider.js +63 -26
  130. package/dist/v1/providers/tambo-v1-provider.js.map +1 -1
  131. package/dist/v1/providers/tambo-v1-provider.test.js +40 -23
  132. package/dist/v1/providers/tambo-v1-provider.test.js.map +1 -1
  133. package/dist/v1/providers/tambo-v1-stream-context.d.ts +21 -15
  134. package/dist/v1/providers/tambo-v1-stream-context.d.ts.map +1 -1
  135. package/dist/v1/providers/tambo-v1-stream-context.js +66 -27
  136. package/dist/v1/providers/tambo-v1-stream-context.js.map +1 -1
  137. package/dist/v1/providers/tambo-v1-stream-context.test.js +14 -5
  138. package/dist/v1/providers/tambo-v1-stream-context.test.js.map +1 -1
  139. package/dist/v1/providers/tambo-v1-stub-provider.d.ts +9 -9
  140. package/dist/v1/providers/tambo-v1-stub-provider.d.ts.map +1 -1
  141. package/dist/v1/providers/tambo-v1-stub-provider.js +11 -7
  142. package/dist/v1/providers/tambo-v1-stub-provider.js.map +1 -1
  143. package/dist/v1/providers/tambo-v1-stub-provider.test.js +25 -25
  144. package/dist/v1/providers/tambo-v1-stub-provider.test.js.map +1 -1
  145. package/dist/v1/providers/tambo-v1-thread-input-provider.d.ts +20 -9
  146. package/dist/v1/providers/tambo-v1-thread-input-provider.d.ts.map +1 -1
  147. package/dist/v1/providers/tambo-v1-thread-input-provider.js +25 -16
  148. package/dist/v1/providers/tambo-v1-thread-input-provider.js.map +1 -1
  149. package/dist/v1/types/auth.d.ts +24 -0
  150. package/dist/v1/types/auth.d.ts.map +1 -0
  151. package/dist/{model/tambo-thread.js → v1/types/auth.js} +1 -1
  152. package/dist/v1/types/auth.js.map +1 -0
  153. package/dist/v1/types/component.d.ts +3 -3
  154. package/dist/v1/types/component.d.ts.map +1 -1
  155. package/dist/v1/types/component.js +2 -2
  156. package/dist/v1/types/component.js.map +1 -1
  157. package/dist/v1/types/event.d.ts +1 -1
  158. package/dist/v1/types/event.js +1 -1
  159. package/dist/v1/types/event.js.map +1 -1
  160. package/dist/v1/types/message.d.ts +19 -12
  161. package/dist/v1/types/message.d.ts.map +1 -1
  162. package/dist/v1/types/message.js +1 -1
  163. package/dist/v1/types/message.js.map +1 -1
  164. package/dist/v1/types/thread.d.ts +8 -6
  165. package/dist/v1/types/thread.d.ts.map +1 -1
  166. package/dist/v1/types/thread.js +1 -1
  167. package/dist/v1/types/thread.js.map +1 -1
  168. package/dist/v1/types/tool-choice.d.ts +8 -0
  169. package/dist/v1/types/tool-choice.d.ts.map +1 -0
  170. package/dist/v1/types/tool-choice.js +3 -0
  171. package/dist/v1/types/tool-choice.js.map +1 -0
  172. package/dist/v1/utils/component-renderer.d.ts +11 -5
  173. package/dist/v1/utils/component-renderer.d.ts.map +1 -1
  174. package/dist/v1/utils/component-renderer.js +16 -7
  175. package/dist/v1/utils/component-renderer.js.map +1 -1
  176. package/dist/v1/utils/component-renderer.test.js +7 -7
  177. package/dist/v1/utils/component-renderer.test.js.map +1 -1
  178. package/dist/v1/utils/event-accumulator.d.ts +34 -8
  179. package/dist/v1/utils/event-accumulator.d.ts.map +1 -1
  180. package/dist/v1/utils/event-accumulator.js +90 -27
  181. package/dist/v1/utils/event-accumulator.js.map +1 -1
  182. package/dist/v1/utils/event-accumulator.test.js +149 -8
  183. package/dist/v1/utils/event-accumulator.test.js.map +1 -1
  184. package/dist/v1/utils/keyed-throttle.d.ts +42 -0
  185. package/dist/v1/utils/keyed-throttle.d.ts.map +1 -0
  186. package/dist/v1/utils/keyed-throttle.js +86 -0
  187. package/dist/v1/utils/keyed-throttle.js.map +1 -0
  188. package/dist/v1/utils/keyed-throttle.test.d.ts +2 -0
  189. package/dist/v1/utils/keyed-throttle.test.d.ts.map +1 -0
  190. package/dist/v1/utils/keyed-throttle.test.js +147 -0
  191. package/dist/v1/utils/keyed-throttle.test.js.map +1 -0
  192. package/dist/v1/utils/registry-conversion.d.ts +18 -18
  193. package/dist/v1/utils/registry-conversion.d.ts.map +1 -1
  194. package/dist/v1/utils/registry-conversion.js +25 -23
  195. package/dist/v1/utils/registry-conversion.js.map +1 -1
  196. package/dist/v1/utils/registry-conversion.test.js +23 -0
  197. package/dist/v1/utils/registry-conversion.test.js.map +1 -1
  198. package/dist/v1/utils/stream-handler.d.ts +1 -1
  199. package/dist/v1/utils/stream-handler.js +1 -1
  200. package/dist/v1/utils/stream-handler.js.map +1 -1
  201. package/dist/v1/utils/thread-utils.d.ts +2 -2
  202. package/dist/v1/utils/thread-utils.d.ts.map +1 -1
  203. package/dist/v1/utils/thread-utils.js.map +1 -1
  204. package/dist/v1/utils/tool-call-tracker.d.ts +11 -1
  205. package/dist/v1/utils/tool-call-tracker.d.ts.map +1 -1
  206. package/dist/v1/utils/tool-call-tracker.js +14 -1
  207. package/dist/v1/utils/tool-call-tracker.js.map +1 -1
  208. package/dist/v1/utils/tool-call-tracker.test.d.ts +2 -0
  209. package/dist/v1/utils/tool-call-tracker.test.d.ts.map +1 -0
  210. package/dist/v1/utils/tool-call-tracker.test.js +67 -0
  211. package/dist/v1/utils/tool-call-tracker.test.js.map +1 -0
  212. package/dist/v1/utils/tool-executor.d.ts +35 -1
  213. package/dist/v1/utils/tool-executor.d.ts.map +1 -1
  214. package/dist/v1/utils/tool-executor.js +57 -2
  215. package/dist/v1/utils/tool-executor.js.map +1 -1
  216. package/dist/v1/utils/tool-executor.test.js +211 -0
  217. package/dist/v1/utils/tool-executor.test.js.map +1 -1
  218. package/esm/hoc/with-tambo-interactable.d.ts +8 -0
  219. package/esm/hoc/with-tambo-interactable.d.ts.map +1 -1
  220. package/esm/hoc/with-tambo-interactable.js +15 -12
  221. package/esm/hoc/with-tambo-interactable.js.map +1 -1
  222. package/esm/hoc/with-tambo-interactable.test.js +13 -1
  223. package/esm/hoc/with-tambo-interactable.test.js.map +1 -1
  224. package/esm/hooks/use-tambo-voice.test.js +3 -0
  225. package/esm/hooks/use-tambo-voice.test.js.map +1 -1
  226. package/esm/index.d.ts +7 -25
  227. package/esm/index.d.ts.map +1 -1
  228. package/esm/index.js +7 -21
  229. package/esm/index.js.map +1 -1
  230. package/esm/mcp/mcp-hooks.js +1 -1
  231. package/esm/mcp/mcp-hooks.js.map +1 -1
  232. package/esm/mcp/mcp-hooks.test.js +69 -0
  233. package/esm/mcp/mcp-hooks.test.js.map +1 -1
  234. package/esm/mcp/tambo-mcp-provider.test.js +24 -0
  235. package/esm/mcp/tambo-mcp-provider.test.js.map +1 -1
  236. package/esm/mcp/use-mcp-servers.test.js +9 -0
  237. package/esm/mcp/use-mcp-servers.test.js.map +1 -1
  238. package/esm/model/component-metadata.d.ts +4 -4
  239. package/esm/model/component-metadata.js.map +1 -1
  240. package/esm/providers/tambo-client-provider.d.ts +12 -0
  241. package/esm/providers/tambo-client-provider.d.ts.map +1 -1
  242. package/esm/providers/tambo-client-provider.js +8 -3
  243. package/esm/providers/tambo-client-provider.js.map +1 -1
  244. package/esm/providers/tambo-interactable-provider.d.ts +1 -1
  245. package/esm/providers/tambo-interactable-provider.d.ts.map +1 -1
  246. package/esm/providers/tambo-interactable-provider.js +8 -0
  247. package/esm/providers/tambo-interactable-provider.js.map +1 -1
  248. package/esm/providers/tambo-interactable-provider.test.js +47 -0
  249. package/esm/providers/tambo-interactable-provider.test.js.map +1 -1
  250. package/esm/providers/tambo-interactables-additional-context-edge-cases.test.js +2 -10
  251. package/esm/providers/tambo-interactables-additional-context-edge-cases.test.js.map +1 -1
  252. package/esm/providers/tambo-interactables-additional-context.test.js +3 -19
  253. package/esm/providers/tambo-interactables-additional-context.test.js.map +1 -1
  254. package/esm/providers/tambo-mcp-token-provider.d.ts +8 -17
  255. package/esm/providers/tambo-mcp-token-provider.d.ts.map +1 -1
  256. package/esm/providers/tambo-mcp-token-provider.js +20 -97
  257. package/esm/providers/tambo-mcp-token-provider.js.map +1 -1
  258. package/esm/testing/tools.d.ts +3 -3
  259. package/esm/testing/tools.d.ts.map +1 -1
  260. package/esm/testing/tools.js.map +1 -1
  261. package/esm/util/registry-validators.js +1 -1
  262. package/esm/util/registry-validators.js.map +1 -1
  263. package/esm/util/resource-content-resolver.test.js +1 -1
  264. package/esm/util/resource-content-resolver.test.js.map +1 -1
  265. package/esm/v1/__tests__/v1-interactables.test.js +1 -1
  266. package/esm/v1/__tests__/v1-interactables.test.js.map +1 -1
  267. package/esm/v1/components/v1-component-renderer.d.ts +9 -9
  268. package/esm/v1/components/v1-component-renderer.d.ts.map +1 -1
  269. package/esm/v1/components/v1-component-renderer.js +12 -12
  270. package/esm/v1/components/v1-component-renderer.js.map +1 -1
  271. package/esm/v1/components/v1-component-renderer.test.js +16 -16
  272. package/esm/v1/components/v1-component-renderer.test.js.map +1 -1
  273. package/{dist/hooks/use-current-message.d.ts → esm/v1/hooks/use-tambo-current-message.d.ts} +30 -9
  274. package/esm/v1/hooks/use-tambo-current-message.d.ts.map +1 -0
  275. package/esm/{hooks/use-current-message.js → v1/hooks/use-tambo-current-message.js} +13 -8
  276. package/esm/v1/hooks/use-tambo-current-message.js.map +1 -0
  277. package/esm/v1/hooks/use-tambo-v1-auth-state.d.ts +11 -0
  278. package/esm/v1/hooks/use-tambo-v1-auth-state.d.ts.map +1 -0
  279. package/esm/v1/hooks/use-tambo-v1-auth-state.js +45 -0
  280. package/esm/v1/hooks/use-tambo-v1-auth-state.js.map +1 -0
  281. package/esm/v1/hooks/use-tambo-v1-auth-state.test.d.ts +2 -0
  282. package/esm/v1/hooks/use-tambo-v1-auth-state.test.d.ts.map +1 -0
  283. package/esm/v1/hooks/use-tambo-v1-auth-state.test.js +100 -0
  284. package/esm/v1/hooks/use-tambo-v1-auth-state.test.js.map +1 -0
  285. package/esm/v1/hooks/use-tambo-v1-component-state.d.ts +7 -6
  286. package/esm/v1/hooks/use-tambo-v1-component-state.d.ts.map +1 -1
  287. package/esm/v1/hooks/use-tambo-v1-component-state.js +101 -28
  288. package/esm/v1/hooks/use-tambo-v1-component-state.js.map +1 -1
  289. package/esm/v1/hooks/use-tambo-v1-component-state.test.js +152 -27
  290. package/esm/v1/hooks/use-tambo-v1-component-state.test.js.map +1 -1
  291. package/esm/v1/hooks/use-tambo-v1-messages.d.ts +9 -9
  292. package/esm/v1/hooks/use-tambo-v1-messages.d.ts.map +1 -1
  293. package/esm/v1/hooks/use-tambo-v1-messages.js +3 -3
  294. package/esm/v1/hooks/use-tambo-v1-messages.js.map +1 -1
  295. package/esm/v1/hooks/use-tambo-v1-messages.test.js +16 -8
  296. package/esm/v1/hooks/use-tambo-v1-messages.test.js.map +1 -1
  297. package/esm/v1/hooks/use-tambo-v1-send-message.d.ts +21 -3
  298. package/esm/v1/hooks/use-tambo-v1-send-message.d.ts.map +1 -1
  299. package/esm/v1/hooks/use-tambo-v1-send-message.js +93 -18
  300. package/esm/v1/hooks/use-tambo-v1-send-message.js.map +1 -1
  301. package/esm/v1/hooks/use-tambo-v1-send-message.test.js +318 -45
  302. package/esm/v1/hooks/use-tambo-v1-send-message.test.js.map +1 -1
  303. package/esm/v1/hooks/use-tambo-v1-stream-status.d.ts +7 -7
  304. package/esm/v1/hooks/use-tambo-v1-stream-status.d.ts.map +1 -1
  305. package/esm/v1/hooks/use-tambo-v1-stream-status.js +14 -16
  306. package/esm/v1/hooks/use-tambo-v1-stream-status.js.map +1 -1
  307. package/esm/v1/hooks/use-tambo-v1-stream-status.test.js +32 -32
  308. package/esm/v1/hooks/use-tambo-v1-stream-status.test.js.map +1 -1
  309. package/esm/v1/hooks/use-tambo-v1-suggestions.d.ts +7 -7
  310. package/esm/v1/hooks/use-tambo-v1-suggestions.d.ts.map +1 -1
  311. package/esm/v1/hooks/use-tambo-v1-suggestions.js +11 -11
  312. package/esm/v1/hooks/use-tambo-v1-suggestions.js.map +1 -1
  313. package/esm/v1/hooks/use-tambo-v1-suggestions.test.js +48 -48
  314. package/esm/v1/hooks/use-tambo-v1-suggestions.test.js.map +1 -1
  315. package/esm/v1/hooks/use-tambo-v1-thread-input.d.ts +3 -3
  316. package/esm/v1/hooks/use-tambo-v1-thread-input.d.ts.map +1 -1
  317. package/esm/v1/hooks/use-tambo-v1-thread-input.js +3 -3
  318. package/esm/v1/hooks/use-tambo-v1-thread-input.js.map +1 -1
  319. package/esm/v1/hooks/use-tambo-v1-thread-input.test.js +43 -30
  320. package/esm/v1/hooks/use-tambo-v1-thread-input.test.js.map +1 -1
  321. package/esm/v1/hooks/use-tambo-v1-thread-list.d.ts +4 -4
  322. package/esm/v1/hooks/use-tambo-v1-thread-list.d.ts.map +1 -1
  323. package/esm/v1/hooks/use-tambo-v1-thread-list.js +8 -4
  324. package/esm/v1/hooks/use-tambo-v1-thread-list.js.map +1 -1
  325. package/esm/v1/hooks/use-tambo-v1-thread-list.test.js +20 -18
  326. package/esm/v1/hooks/use-tambo-v1-thread-list.test.js.map +1 -1
  327. package/esm/v1/hooks/use-tambo-v1-thread.d.ts +3 -3
  328. package/esm/v1/hooks/use-tambo-v1-thread.d.ts.map +1 -1
  329. package/esm/v1/hooks/use-tambo-v1-thread.js +6 -2
  330. package/esm/v1/hooks/use-tambo-v1-thread.js.map +1 -1
  331. package/esm/v1/hooks/use-tambo-v1-thread.test.js +11 -5
  332. package/esm/v1/hooks/use-tambo-v1-thread.test.js.map +1 -1
  333. package/esm/v1/hooks/use-tambo-v1.d.ts +16 -5
  334. package/esm/v1/hooks/use-tambo-v1.d.ts.map +1 -1
  335. package/esm/v1/hooks/use-tambo-v1.js +14 -6
  336. package/esm/v1/hooks/use-tambo-v1.js.map +1 -1
  337. package/esm/v1/hooks/use-tambo-v1.test.js +67 -45
  338. package/esm/v1/hooks/use-tambo-v1.test.js.map +1 -1
  339. package/esm/v1/index.d.ts +34 -27
  340. package/esm/v1/index.d.ts.map +1 -1
  341. package/esm/v1/index.js +40 -33
  342. package/esm/v1/index.js.map +1 -1
  343. package/esm/v1/providers/tambo-v1-provider.d.ts +35 -20
  344. package/esm/v1/providers/tambo-v1-provider.d.ts.map +1 -1
  345. package/esm/v1/providers/tambo-v1-provider.js +63 -26
  346. package/esm/v1/providers/tambo-v1-provider.js.map +1 -1
  347. package/esm/v1/providers/tambo-v1-provider.test.js +41 -24
  348. package/esm/v1/providers/tambo-v1-provider.test.js.map +1 -1
  349. package/esm/v1/providers/tambo-v1-stream-context.d.ts +21 -15
  350. package/esm/v1/providers/tambo-v1-stream-context.d.ts.map +1 -1
  351. package/esm/v1/providers/tambo-v1-stream-context.js +66 -27
  352. package/esm/v1/providers/tambo-v1-stream-context.js.map +1 -1
  353. package/esm/v1/providers/tambo-v1-stream-context.test.js +15 -6
  354. package/esm/v1/providers/tambo-v1-stream-context.test.js.map +1 -1
  355. package/esm/v1/providers/tambo-v1-stub-provider.d.ts +9 -9
  356. package/esm/v1/providers/tambo-v1-stub-provider.d.ts.map +1 -1
  357. package/esm/v1/providers/tambo-v1-stub-provider.js +13 -9
  358. package/esm/v1/providers/tambo-v1-stub-provider.js.map +1 -1
  359. package/esm/v1/providers/tambo-v1-stub-provider.test.js +28 -28
  360. package/esm/v1/providers/tambo-v1-stub-provider.test.js.map +1 -1
  361. package/esm/v1/providers/tambo-v1-thread-input-provider.d.ts +20 -9
  362. package/esm/v1/providers/tambo-v1-thread-input-provider.d.ts.map +1 -1
  363. package/esm/v1/providers/tambo-v1-thread-input-provider.js +23 -14
  364. package/esm/v1/providers/tambo-v1-thread-input-provider.js.map +1 -1
  365. package/esm/v1/types/auth.d.ts +24 -0
  366. package/esm/v1/types/auth.d.ts.map +1 -0
  367. package/esm/v1/types/auth.js +2 -0
  368. package/esm/v1/types/auth.js.map +1 -0
  369. package/esm/v1/types/component.d.ts +3 -3
  370. package/esm/v1/types/component.d.ts.map +1 -1
  371. package/esm/v1/types/component.js +2 -2
  372. package/esm/v1/types/component.js.map +1 -1
  373. package/esm/v1/types/event.d.ts +1 -1
  374. package/esm/v1/types/event.js +1 -1
  375. package/esm/v1/types/event.js.map +1 -1
  376. package/esm/v1/types/message.d.ts +19 -12
  377. package/esm/v1/types/message.d.ts.map +1 -1
  378. package/esm/v1/types/message.js +1 -1
  379. package/esm/v1/types/message.js.map +1 -1
  380. package/esm/v1/types/thread.d.ts +8 -6
  381. package/esm/v1/types/thread.d.ts.map +1 -1
  382. package/esm/v1/types/thread.js +1 -1
  383. package/esm/v1/types/thread.js.map +1 -1
  384. package/esm/v1/types/tool-choice.d.ts +8 -0
  385. package/esm/v1/types/tool-choice.d.ts.map +1 -0
  386. package/esm/v1/types/tool-choice.js +2 -0
  387. package/esm/v1/types/tool-choice.js.map +1 -0
  388. package/esm/v1/utils/component-renderer.d.ts +11 -5
  389. package/esm/v1/utils/component-renderer.d.ts.map +1 -1
  390. package/esm/v1/utils/component-renderer.js +13 -5
  391. package/esm/v1/utils/component-renderer.js.map +1 -1
  392. package/esm/v1/utils/component-renderer.test.js +8 -8
  393. package/esm/v1/utils/component-renderer.test.js.map +1 -1
  394. package/esm/v1/utils/event-accumulator.d.ts +34 -8
  395. package/esm/v1/utils/event-accumulator.d.ts.map +1 -1
  396. package/esm/v1/utils/event-accumulator.js +89 -27
  397. package/esm/v1/utils/event-accumulator.js.map +1 -1
  398. package/esm/v1/utils/event-accumulator.test.js +149 -8
  399. package/esm/v1/utils/event-accumulator.test.js.map +1 -1
  400. package/esm/v1/utils/keyed-throttle.d.ts +42 -0
  401. package/esm/v1/utils/keyed-throttle.d.ts.map +1 -0
  402. package/esm/v1/utils/keyed-throttle.js +83 -0
  403. package/esm/v1/utils/keyed-throttle.js.map +1 -0
  404. package/esm/v1/utils/keyed-throttle.test.d.ts +2 -0
  405. package/esm/v1/utils/keyed-throttle.test.d.ts.map +1 -0
  406. package/esm/v1/utils/keyed-throttle.test.js +145 -0
  407. package/esm/v1/utils/keyed-throttle.test.js.map +1 -0
  408. package/esm/v1/utils/registry-conversion.d.ts +18 -18
  409. package/esm/v1/utils/registry-conversion.d.ts.map +1 -1
  410. package/esm/v1/utils/registry-conversion.js +25 -23
  411. package/esm/v1/utils/registry-conversion.js.map +1 -1
  412. package/esm/v1/utils/registry-conversion.test.js +23 -0
  413. package/esm/v1/utils/registry-conversion.test.js.map +1 -1
  414. package/esm/v1/utils/stream-handler.d.ts +1 -1
  415. package/esm/v1/utils/stream-handler.js +1 -1
  416. package/esm/v1/utils/stream-handler.js.map +1 -1
  417. package/esm/v1/utils/thread-utils.d.ts +2 -2
  418. package/esm/v1/utils/thread-utils.d.ts.map +1 -1
  419. package/esm/v1/utils/thread-utils.js.map +1 -1
  420. package/esm/v1/utils/tool-call-tracker.d.ts +11 -1
  421. package/esm/v1/utils/tool-call-tracker.d.ts.map +1 -1
  422. package/esm/v1/utils/tool-call-tracker.js +14 -1
  423. package/esm/v1/utils/tool-call-tracker.js.map +1 -1
  424. package/esm/v1/utils/tool-call-tracker.test.d.ts +2 -0
  425. package/esm/v1/utils/tool-call-tracker.test.d.ts.map +1 -0
  426. package/esm/v1/utils/tool-call-tracker.test.js +65 -0
  427. package/esm/v1/utils/tool-call-tracker.test.js.map +1 -0
  428. package/esm/v1/utils/tool-executor.d.ts +35 -1
  429. package/esm/v1/utils/tool-executor.d.ts.map +1 -1
  430. package/esm/v1/utils/tool-executor.js +55 -2
  431. package/esm/v1/utils/tool-executor.js.map +1 -1
  432. package/esm/v1/utils/tool-executor.test.js +212 -1
  433. package/esm/v1/utils/tool-executor.test.js.map +1 -1
  434. package/package.json +5 -10
  435. package/dist/hooks/index.d.ts +0 -9
  436. package/dist/hooks/index.d.ts.map +0 -1
  437. package/dist/hooks/index.js +0 -34
  438. package/dist/hooks/index.js.map +0 -1
  439. package/dist/hooks/use-component-state.d.ts +0 -30
  440. package/dist/hooks/use-component-state.d.ts.map +0 -1
  441. package/dist/hooks/use-component-state.js +0 -139
  442. package/dist/hooks/use-component-state.js.map +0 -1
  443. package/dist/hooks/use-component-state.test.d.ts +0 -2
  444. package/dist/hooks/use-component-state.test.d.ts.map +0 -1
  445. package/dist/hooks/use-component-state.test.js +0 -406
  446. package/dist/hooks/use-component-state.test.js.map +0 -1
  447. package/dist/hooks/use-current-message.d.ts.map +0 -1
  448. package/dist/hooks/use-current-message.js.map +0 -1
  449. package/dist/hooks/use-current-message.test.d.ts +0 -2
  450. package/dist/hooks/use-current-message.test.d.ts.map +0 -1
  451. package/dist/hooks/use-current-message.test.js +0 -269
  452. package/dist/hooks/use-current-message.test.js.map +0 -1
  453. package/dist/hooks/use-streaming-props.d.ts +0 -11
  454. package/dist/hooks/use-streaming-props.d.ts.map +0 -1
  455. package/dist/hooks/use-streaming-props.js +0 -37
  456. package/dist/hooks/use-streaming-props.js.map +0 -1
  457. package/dist/hooks/use-suggestions.d.ts +0 -46
  458. package/dist/hooks/use-suggestions.d.ts.map +0 -1
  459. package/dist/hooks/use-suggestions.js +0 -118
  460. package/dist/hooks/use-suggestions.js.map +0 -1
  461. package/dist/hooks/use-suggestions.test.d.ts +0 -2
  462. package/dist/hooks/use-suggestions.test.d.ts.map +0 -1
  463. package/dist/hooks/use-suggestions.test.js +0 -247
  464. package/dist/hooks/use-suggestions.test.js.map +0 -1
  465. package/dist/hooks/use-tambo-stream-status.d.ts +0 -90
  466. package/dist/hooks/use-tambo-stream-status.d.ts.map +0 -1
  467. package/dist/hooks/use-tambo-stream-status.js +0 -213
  468. package/dist/hooks/use-tambo-stream-status.js.map +0 -1
  469. package/dist/hooks/use-tambo-stream-status.test.d.ts +0 -2
  470. package/dist/hooks/use-tambo-stream-status.test.d.ts.map +0 -1
  471. package/dist/hooks/use-tambo-stream-status.test.js +0 -378
  472. package/dist/hooks/use-tambo-stream-status.test.js.map +0 -1
  473. package/dist/hooks/use-tambo-threads.d.ts +0 -158
  474. package/dist/hooks/use-tambo-threads.d.ts.map +0 -1
  475. package/dist/hooks/use-tambo-threads.js +0 -45
  476. package/dist/hooks/use-tambo-threads.js.map +0 -1
  477. package/dist/hooks/use-tambo-threads.test.d.ts +0 -2
  478. package/dist/hooks/use-tambo-threads.test.d.ts.map +0 -1
  479. package/dist/hooks/use-tambo-threads.test.js +0 -214
  480. package/dist/hooks/use-tambo-threads.test.js.map +0 -1
  481. package/dist/model/generate-component-response.d.ts +0 -37
  482. package/dist/model/generate-component-response.d.ts.map +0 -1
  483. package/dist/model/generate-component-response.js +0 -29
  484. package/dist/model/generate-component-response.js.map +0 -1
  485. package/dist/model/tambo-thread.d.ts +0 -15
  486. package/dist/model/tambo-thread.d.ts.map +0 -1
  487. package/dist/model/tambo-thread.js.map +0 -1
  488. package/dist/providers/__tests__/thread-input-resource-resolution.test.d.ts +0 -2
  489. package/dist/providers/__tests__/thread-input-resource-resolution.test.d.ts.map +0 -1
  490. package/dist/providers/__tests__/thread-input-resource-resolution.test.js +0 -592
  491. package/dist/providers/__tests__/thread-input-resource-resolution.test.js.map +0 -1
  492. package/dist/providers/index.d.ts +0 -13
  493. package/dist/providers/index.d.ts.map +0 -1
  494. package/dist/providers/index.js +0 -41
  495. package/dist/providers/index.js.map +0 -1
  496. package/dist/providers/tambo-component-provider.d.ts +0 -23
  497. package/dist/providers/tambo-component-provider.d.ts.map +0 -1
  498. package/dist/providers/tambo-component-provider.js +0 -88
  499. package/dist/providers/tambo-component-provider.js.map +0 -1
  500. package/dist/providers/tambo-prop-stream-provider/index.d.ts +0 -19
  501. package/dist/providers/tambo-prop-stream-provider/index.d.ts.map +0 -1
  502. package/dist/providers/tambo-prop-stream-provider/index.js +0 -43
  503. package/dist/providers/tambo-prop-stream-provider/index.js.map +0 -1
  504. package/dist/providers/tambo-prop-stream-provider/pending.d.ts +0 -12
  505. package/dist/providers/tambo-prop-stream-provider/pending.d.ts.map +0 -1
  506. package/dist/providers/tambo-prop-stream-provider/pending.js +0 -31
  507. package/dist/providers/tambo-prop-stream-provider/pending.js.map +0 -1
  508. package/dist/providers/tambo-prop-stream-provider/provider.d.ts +0 -17
  509. package/dist/providers/tambo-prop-stream-provider/provider.d.ts.map +0 -1
  510. package/dist/providers/tambo-prop-stream-provider/provider.js +0 -107
  511. package/dist/providers/tambo-prop-stream-provider/provider.js.map +0 -1
  512. package/dist/providers/tambo-prop-stream-provider/streaming.d.ts +0 -12
  513. package/dist/providers/tambo-prop-stream-provider/streaming.d.ts.map +0 -1
  514. package/dist/providers/tambo-prop-stream-provider/streaming.js +0 -28
  515. package/dist/providers/tambo-prop-stream-provider/streaming.js.map +0 -1
  516. package/dist/providers/tambo-prop-stream-provider/success.d.ts +0 -12
  517. package/dist/providers/tambo-prop-stream-provider/success.d.ts.map +0 -1
  518. package/dist/providers/tambo-prop-stream-provider/success.js +0 -28
  519. package/dist/providers/tambo-prop-stream-provider/success.js.map +0 -1
  520. package/dist/providers/tambo-prop-stream-provider/types.d.ts +0 -25
  521. package/dist/providers/tambo-prop-stream-provider/types.d.ts.map +0 -1
  522. package/dist/providers/tambo-prop-stream-provider/types.js +0 -6
  523. package/dist/providers/tambo-prop-stream-provider/types.js.map +0 -1
  524. package/dist/providers/tambo-prop-stream-provider.test.d.ts +0 -2
  525. package/dist/providers/tambo-prop-stream-provider.test.d.ts.map +0 -1
  526. package/dist/providers/tambo-prop-stream-provider.test.js +0 -275
  527. package/dist/providers/tambo-prop-stream-provider.test.js.map +0 -1
  528. package/dist/providers/tambo-provider.d.ts +0 -53
  529. package/dist/providers/tambo-provider.d.ts.map +0 -1
  530. package/dist/providers/tambo-provider.js +0 -130
  531. package/dist/providers/tambo-provider.js.map +0 -1
  532. package/dist/providers/tambo-stubs.d.ts +0 -89
  533. package/dist/providers/tambo-stubs.d.ts.map +0 -1
  534. package/dist/providers/tambo-stubs.js +0 -276
  535. package/dist/providers/tambo-stubs.js.map +0 -1
  536. package/dist/providers/tambo-stubs.test.d.ts +0 -2
  537. package/dist/providers/tambo-stubs.test.d.ts.map +0 -1
  538. package/dist/providers/tambo-stubs.test.js +0 -97
  539. package/dist/providers/tambo-stubs.test.js.map +0 -1
  540. package/dist/providers/tambo-thread-input-provider.d.ts +0 -65
  541. package/dist/providers/tambo-thread-input-provider.d.ts.map +0 -1
  542. package/dist/providers/tambo-thread-input-provider.js +0 -179
  543. package/dist/providers/tambo-thread-input-provider.js.map +0 -1
  544. package/dist/providers/tambo-thread-provider-initial-messages.test.d.ts +0 -2
  545. package/dist/providers/tambo-thread-provider-initial-messages.test.d.ts.map +0 -1
  546. package/dist/providers/tambo-thread-provider-initial-messages.test.js +0 -275
  547. package/dist/providers/tambo-thread-provider-initial-messages.test.js.map +0 -1
  548. package/dist/providers/tambo-thread-provider.d.ts +0 -126
  549. package/dist/providers/tambo-thread-provider.d.ts.map +0 -1
  550. package/dist/providers/tambo-thread-provider.js +0 -931
  551. package/dist/providers/tambo-thread-provider.js.map +0 -1
  552. package/dist/providers/tambo-thread-provider.test.d.ts +0 -2
  553. package/dist/providers/tambo-thread-provider.test.d.ts.map +0 -1
  554. package/dist/providers/tambo-thread-provider.test.js +0 -1588
  555. package/dist/providers/tambo-thread-provider.test.js.map +0 -1
  556. package/dist/util/generate-component.d.ts +0 -12
  557. package/dist/util/generate-component.d.ts.map +0 -1
  558. package/dist/util/generate-component.js +0 -58
  559. package/dist/util/generate-component.js.map +0 -1
  560. package/dist/util/generate-component.test.d.ts +0 -2
  561. package/dist/util/generate-component.test.d.ts.map +0 -1
  562. package/dist/util/generate-component.test.js +0 -340
  563. package/dist/util/generate-component.test.js.map +0 -1
  564. package/esm/hooks/index.d.ts +0 -9
  565. package/esm/hooks/index.d.ts.map +0 -1
  566. package/esm/hooks/index.js +0 -10
  567. package/esm/hooks/index.js.map +0 -1
  568. package/esm/hooks/use-component-state.d.ts +0 -30
  569. package/esm/hooks/use-component-state.d.ts.map +0 -1
  570. package/esm/hooks/use-component-state.js +0 -136
  571. package/esm/hooks/use-component-state.js.map +0 -1
  572. package/esm/hooks/use-component-state.test.d.ts +0 -2
  573. package/esm/hooks/use-component-state.test.d.ts.map +0 -1
  574. package/esm/hooks/use-component-state.test.js +0 -401
  575. package/esm/hooks/use-component-state.test.js.map +0 -1
  576. package/esm/hooks/use-current-message.d.ts.map +0 -1
  577. package/esm/hooks/use-current-message.js.map +0 -1
  578. package/esm/hooks/use-current-message.test.d.ts +0 -2
  579. package/esm/hooks/use-current-message.test.d.ts.map +0 -1
  580. package/esm/hooks/use-current-message.test.js +0 -264
  581. package/esm/hooks/use-current-message.test.js.map +0 -1
  582. package/esm/hooks/use-streaming-props.d.ts +0 -11
  583. package/esm/hooks/use-streaming-props.d.ts.map +0 -1
  584. package/esm/hooks/use-streaming-props.js +0 -34
  585. package/esm/hooks/use-streaming-props.js.map +0 -1
  586. package/esm/hooks/use-suggestions.d.ts +0 -46
  587. package/esm/hooks/use-suggestions.d.ts.map +0 -1
  588. package/esm/hooks/use-suggestions.js +0 -115
  589. package/esm/hooks/use-suggestions.js.map +0 -1
  590. package/esm/hooks/use-suggestions.test.d.ts +0 -2
  591. package/esm/hooks/use-suggestions.test.d.ts.map +0 -1
  592. package/esm/hooks/use-suggestions.test.js +0 -245
  593. package/esm/hooks/use-suggestions.test.js.map +0 -1
  594. package/esm/hooks/use-tambo-stream-status.d.ts +0 -90
  595. package/esm/hooks/use-tambo-stream-status.d.ts.map +0 -1
  596. package/esm/hooks/use-tambo-stream-status.js +0 -210
  597. package/esm/hooks/use-tambo-stream-status.js.map +0 -1
  598. package/esm/hooks/use-tambo-stream-status.test.d.ts +0 -2
  599. package/esm/hooks/use-tambo-stream-status.test.d.ts.map +0 -1
  600. package/esm/hooks/use-tambo-stream-status.test.js +0 -376
  601. package/esm/hooks/use-tambo-stream-status.test.js.map +0 -1
  602. package/esm/hooks/use-tambo-threads.d.ts +0 -158
  603. package/esm/hooks/use-tambo-threads.d.ts.map +0 -1
  604. package/esm/hooks/use-tambo-threads.js +0 -42
  605. package/esm/hooks/use-tambo-threads.js.map +0 -1
  606. package/esm/hooks/use-tambo-threads.test.d.ts +0 -2
  607. package/esm/hooks/use-tambo-threads.test.d.ts.map +0 -1
  608. package/esm/hooks/use-tambo-threads.test.js +0 -212
  609. package/esm/hooks/use-tambo-threads.test.js.map +0 -1
  610. package/esm/model/generate-component-response.d.ts +0 -37
  611. package/esm/model/generate-component-response.d.ts.map +0 -1
  612. package/esm/model/generate-component-response.js +0 -25
  613. package/esm/model/generate-component-response.js.map +0 -1
  614. package/esm/model/tambo-thread.d.ts +0 -15
  615. package/esm/model/tambo-thread.d.ts.map +0 -1
  616. package/esm/model/tambo-thread.js +0 -2
  617. package/esm/model/tambo-thread.js.map +0 -1
  618. package/esm/providers/__tests__/thread-input-resource-resolution.test.d.ts +0 -2
  619. package/esm/providers/__tests__/thread-input-resource-resolution.test.d.ts.map +0 -1
  620. package/esm/providers/__tests__/thread-input-resource-resolution.test.js +0 -587
  621. package/esm/providers/__tests__/thread-input-resource-resolution.test.js.map +0 -1
  622. package/esm/providers/index.d.ts +0 -13
  623. package/esm/providers/index.d.ts.map +0 -1
  624. package/esm/providers/index.js +0 -11
  625. package/esm/providers/index.js.map +0 -1
  626. package/esm/providers/tambo-component-provider.d.ts +0 -23
  627. package/esm/providers/tambo-component-provider.d.ts.map +0 -1
  628. package/esm/providers/tambo-component-provider.js +0 -50
  629. package/esm/providers/tambo-component-provider.js.map +0 -1
  630. package/esm/providers/tambo-prop-stream-provider/index.d.ts +0 -19
  631. package/esm/providers/tambo-prop-stream-provider/index.d.ts.map +0 -1
  632. package/esm/providers/tambo-prop-stream-provider/index.js +0 -22
  633. package/esm/providers/tambo-prop-stream-provider/index.js.map +0 -1
  634. package/esm/providers/tambo-prop-stream-provider/pending.d.ts +0 -12
  635. package/esm/providers/tambo-prop-stream-provider/pending.d.ts.map +0 -1
  636. package/esm/providers/tambo-prop-stream-provider/pending.js +0 -24
  637. package/esm/providers/tambo-prop-stream-provider/pending.js.map +0 -1
  638. package/esm/providers/tambo-prop-stream-provider/provider.d.ts +0 -17
  639. package/esm/providers/tambo-prop-stream-provider/provider.d.ts.map +0 -1
  640. package/esm/providers/tambo-prop-stream-provider/provider.js +0 -70
  641. package/esm/providers/tambo-prop-stream-provider/provider.js.map +0 -1
  642. package/esm/providers/tambo-prop-stream-provider/streaming.d.ts +0 -12
  643. package/esm/providers/tambo-prop-stream-provider/streaming.d.ts.map +0 -1
  644. package/esm/providers/tambo-prop-stream-provider/streaming.js +0 -21
  645. package/esm/providers/tambo-prop-stream-provider/streaming.js.map +0 -1
  646. package/esm/providers/tambo-prop-stream-provider/success.d.ts +0 -12
  647. package/esm/providers/tambo-prop-stream-provider/success.d.ts.map +0 -1
  648. package/esm/providers/tambo-prop-stream-provider/success.js +0 -21
  649. package/esm/providers/tambo-prop-stream-provider/success.js.map +0 -1
  650. package/esm/providers/tambo-prop-stream-provider/types.d.ts +0 -25
  651. package/esm/providers/tambo-prop-stream-provider/types.d.ts.map +0 -1
  652. package/esm/providers/tambo-prop-stream-provider/types.js +0 -3
  653. package/esm/providers/tambo-prop-stream-provider/types.js.map +0 -1
  654. package/esm/providers/tambo-prop-stream-provider.test.d.ts +0 -2
  655. package/esm/providers/tambo-prop-stream-provider.test.d.ts.map +0 -1
  656. package/esm/providers/tambo-prop-stream-provider.test.js +0 -270
  657. package/esm/providers/tambo-prop-stream-provider.test.js.map +0 -1
  658. package/esm/providers/tambo-provider.d.ts +0 -53
  659. package/esm/providers/tambo-provider.d.ts.map +0 -1
  660. package/esm/providers/tambo-provider.js +0 -91
  661. package/esm/providers/tambo-provider.js.map +0 -1
  662. package/esm/providers/tambo-stubs.d.ts +0 -89
  663. package/esm/providers/tambo-stubs.d.ts.map +0 -1
  664. package/esm/providers/tambo-stubs.js +0 -239
  665. package/esm/providers/tambo-stubs.js.map +0 -1
  666. package/esm/providers/tambo-stubs.test.d.ts +0 -2
  667. package/esm/providers/tambo-stubs.test.d.ts.map +0 -1
  668. package/esm/providers/tambo-stubs.test.js +0 -62
  669. package/esm/providers/tambo-stubs.test.js.map +0 -1
  670. package/esm/providers/tambo-thread-input-provider.d.ts +0 -65
  671. package/esm/providers/tambo-thread-input-provider.d.ts.map +0 -1
  672. package/esm/providers/tambo-thread-input-provider.js +0 -141
  673. package/esm/providers/tambo-thread-input-provider.js.map +0 -1
  674. package/esm/providers/tambo-thread-provider-initial-messages.test.d.ts +0 -2
  675. package/esm/providers/tambo-thread-provider-initial-messages.test.d.ts.map +0 -1
  676. package/esm/providers/tambo-thread-provider-initial-messages.test.js +0 -270
  677. package/esm/providers/tambo-thread-provider-initial-messages.test.js.map +0 -1
  678. package/esm/providers/tambo-thread-provider.d.ts +0 -126
  679. package/esm/providers/tambo-thread-provider.d.ts.map +0 -1
  680. package/esm/providers/tambo-thread-provider.js +0 -891
  681. package/esm/providers/tambo-thread-provider.js.map +0 -1
  682. package/esm/providers/tambo-thread-provider.test.d.ts +0 -2
  683. package/esm/providers/tambo-thread-provider.test.d.ts.map +0 -1
  684. package/esm/providers/tambo-thread-provider.test.js +0 -1550
  685. package/esm/providers/tambo-thread-provider.test.js.map +0 -1
  686. package/esm/util/generate-component.d.ts +0 -12
  687. package/esm/util/generate-component.d.ts.map +0 -1
  688. package/esm/util/generate-component.js +0 -52
  689. package/esm/util/generate-component.js.map +0 -1
  690. package/esm/util/generate-component.test.d.ts +0 -2
  691. package/esm/util/generate-component.test.d.ts.map +0 -1
  692. package/esm/util/generate-component.test.js +0 -302
  693. package/esm/util/generate-component.test.js.map +0 -1
@@ -18,14 +18,20 @@ jest.mock("../../providers/tambo-client-provider", () => ({
18
18
  useTamboQueryClient: jest.fn(),
19
19
  }));
20
20
  jest.mock("../providers/tambo-v1-provider", () => ({
21
- useTamboV1Config: jest.fn(),
21
+ useTamboConfig: jest.fn(),
22
+ }));
23
+ jest.mock("./use-tambo-v1-auth-state", () => ({
24
+ useTamboAuthState: () => ({
25
+ status: "identified",
26
+ source: "userKey",
27
+ }),
22
28
  }));
23
29
  jest.mock("../../providers/tambo-context-helpers-provider", () => ({
24
30
  useTamboContextHelpers: () => ({
25
31
  getAdditionalContext: jest.fn().mockResolvedValue([]),
26
32
  }),
27
33
  }));
28
- describe("useTamboV1SendMessage", () => {
34
+ describe("useTamboSendMessage", () => {
29
35
  const mockThreadsRunsApi = {
30
36
  run: jest.fn(),
31
37
  create: jest.fn(),
@@ -44,7 +50,7 @@ describe("useTamboV1SendMessage", () => {
44
50
  function TestWrapper({ children }) {
45
51
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
46
52
  react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
47
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children))));
53
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
48
54
  }
49
55
  beforeEach(() => {
50
56
  queryClient = new react_query_1.QueryClient({
@@ -55,12 +61,12 @@ describe("useTamboV1SendMessage", () => {
55
61
  });
56
62
  jest.mocked(tambo_client_provider_1.useTamboClient).mockReturnValue(mockTamboAI);
57
63
  jest.mocked(tambo_client_provider_1.useTamboQueryClient).mockReturnValue(queryClient);
58
- jest.mocked(tambo_v1_provider_1.useTamboV1Config).mockReturnValue({ userKey: undefined });
64
+ jest.mocked(tambo_v1_provider_1.useTamboConfig).mockReturnValue({ userKey: undefined });
59
65
  mockThreadsRunsApi.run.mockReset();
60
66
  mockThreadsRunsApi.create.mockReset();
61
67
  });
62
68
  it("returns a mutation object", () => {
63
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
69
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
64
70
  wrapper: TestWrapper,
65
71
  });
66
72
  expect(result.current.mutate).toBeDefined();
@@ -68,7 +74,7 @@ describe("useTamboV1SendMessage", () => {
68
74
  expect(result.current.isPending).toBe(false);
69
75
  });
70
76
  it("returns a mutation object when threadId is not provided", () => {
71
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)(), {
77
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)(), {
72
78
  wrapper: TestWrapper,
73
79
  });
74
80
  expect(result.current.mutate).toBeDefined();
@@ -245,7 +251,7 @@ describe("createRunStream", () => {
245
251
  expect(callArgs.tools).toEqual([]);
246
252
  });
247
253
  });
248
- describe("useTamboV1SendMessage mutation", () => {
254
+ describe("useTamboSendMessage mutation", () => {
249
255
  const mockThreadsRunsApi = {
250
256
  run: jest.fn(),
251
257
  create: jest.fn(),
@@ -275,7 +281,7 @@ describe("useTamboV1SendMessage mutation", () => {
275
281
  });
276
282
  jest.mocked(tambo_client_provider_1.useTamboClient).mockReturnValue(mockTamboAI);
277
283
  jest.mocked(tambo_client_provider_1.useTamboQueryClient).mockReturnValue(queryClient);
278
- jest.mocked(tambo_v1_provider_1.useTamboV1Config).mockReturnValue({ userKey: undefined });
284
+ jest.mocked(tambo_v1_provider_1.useTamboConfig).mockReturnValue({ userKey: undefined });
279
285
  mockThreadsRunsApi.run.mockReset();
280
286
  mockThreadsRunsApi.create.mockReset();
281
287
  });
@@ -296,9 +302,9 @@ describe("useTamboV1SendMessage mutation", () => {
296
302
  function TestWrapper({ children }) {
297
303
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
298
304
  react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
299
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children))));
305
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
300
306
  }
301
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)(), {
307
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)(), {
302
308
  wrapper: TestWrapper,
303
309
  });
304
310
  let mutationResult;
@@ -324,9 +330,9 @@ describe("useTamboV1SendMessage mutation", () => {
324
330
  function TestWrapper({ children }) {
325
331
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
326
332
  react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
327
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children))));
333
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
328
334
  }
329
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)(), {
335
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)(), {
330
336
  wrapper: TestWrapper,
331
337
  });
332
338
  await expect((0, react_1.act)(async () => {
@@ -401,9 +407,9 @@ describe("useTamboV1SendMessage mutation", () => {
401
407
  function TestWrapper({ children }) {
402
408
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
403
409
  react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
404
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children))));
410
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
405
411
  }
406
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
412
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
407
413
  wrapper: TestWrapper,
408
414
  });
409
415
  await (0, react_1.act)(async () => {
@@ -499,9 +505,9 @@ describe("useTamboV1SendMessage mutation", () => {
499
505
  function TestWrapper({ children }) {
500
506
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
501
507
  react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
502
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children))));
508
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
503
509
  }
504
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
510
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
505
511
  wrapper: TestWrapper,
506
512
  });
507
513
  await (0, react_1.act)(async () => {
@@ -575,9 +581,9 @@ describe("useTamboV1SendMessage mutation", () => {
575
581
  function TestWrapper({ children }) {
576
582
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
577
583
  react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
578
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children))));
584
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
579
585
  }
580
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
586
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
581
587
  wrapper: TestWrapper,
582
588
  });
583
589
  await (0, react_1.act)(async () => {
@@ -646,9 +652,9 @@ describe("useTamboV1SendMessage mutation", () => {
646
652
  function TestWrapper({ children }) {
647
653
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
648
654
  react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
649
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children))));
655
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
650
656
  }
651
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
657
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
652
658
  wrapper: TestWrapper,
653
659
  });
654
660
  await (0, react_1.act)(async () => {
@@ -677,10 +683,10 @@ describe("useTamboV1SendMessage mutation", () => {
677
683
  // (though with an empty registry)
678
684
  function TestWrapperWithoutRegistry({ children, }) {
679
685
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
680
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children)));
686
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children)));
681
687
  }
682
688
  // Should not throw - default context is used
683
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
689
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
684
690
  wrapper: TestWrapperWithoutRegistry,
685
691
  });
686
692
  expect(result.current.mutate).toBeDefined();
@@ -702,10 +708,10 @@ describe("useTamboV1SendMessage mutation", () => {
702
708
  function TestWrapper({ children }) {
703
709
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
704
710
  react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
705
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children))));
711
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
706
712
  }
707
713
  const invalidateQueriesSpy = jest.spyOn(queryClient, "invalidateQueries");
708
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
714
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
709
715
  wrapper: TestWrapper,
710
716
  });
711
717
  await (0, react_1.act)(async () => {
@@ -830,9 +836,9 @@ describe("useTamboV1SendMessage mutation", () => {
830
836
  function TestWrapper({ children }) {
831
837
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
832
838
  react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
833
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children))));
839
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
834
840
  }
835
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
841
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
836
842
  wrapper: TestWrapper,
837
843
  });
838
844
  await (0, react_1.act)(async () => {
@@ -865,6 +871,67 @@ describe("useTamboV1SendMessage mutation", () => {
865
871
  content: [{ type: "text", text: "result from tool 2" }],
866
872
  });
867
873
  });
874
+ it("uses lastCompletedRunId as previousRunId when streaming.runId is absent", async () => {
875
+ const mockStream = createAsyncIterator([
876
+ {
877
+ type: core_1.EventType.RUN_STARTED,
878
+ runId: "run_2",
879
+ threadId: "thread_123",
880
+ },
881
+ { type: core_1.EventType.RUN_FINISHED },
882
+ ]);
883
+ mockThreadsRunsApi.run.mockResolvedValue(mockStream);
884
+ const mockRegistry = {
885
+ componentList: new Map(),
886
+ toolRegistry: new Map(),
887
+ };
888
+ // Provide stream state with lastCompletedRunId but no active streaming.runId
889
+ const stateWithLastRun = {
890
+ currentThreadId: "thread_123",
891
+ threadMap: {
892
+ thread_123: {
893
+ thread: {
894
+ id: "thread_123",
895
+ messages: [
896
+ {
897
+ id: "msg_1",
898
+ role: "user",
899
+ content: [{ type: "text", text: "Hello" }],
900
+ createdAt: "2024-01-01T00:00:00.000Z",
901
+ },
902
+ ],
903
+ status: "idle",
904
+ createdAt: "2024-01-01T00:00:00.000Z",
905
+ updatedAt: "2024-01-01T00:00:00.000Z",
906
+ lastRunCancelled: false,
907
+ },
908
+ streaming: { status: "idle" },
909
+ accumulatingToolArgs: new Map(),
910
+ lastCompletedRunId: "run_1",
911
+ },
912
+ },
913
+ };
914
+ function TestWrapper({ children }) {
915
+ return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
916
+ react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
917
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, { state: stateWithLastRun, dispatch: jest.fn() }, children))));
918
+ }
919
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
920
+ wrapper: TestWrapper,
921
+ });
922
+ await (0, react_1.act)(async () => {
923
+ await result.current.mutateAsync({
924
+ message: {
925
+ role: "user",
926
+ content: [{ type: "text", text: "Follow-up" }],
927
+ },
928
+ });
929
+ });
930
+ // Should have used lastCompletedRunId as previousRunId
931
+ expect(mockThreadsRunsApi.run).toHaveBeenCalledWith("thread_123", expect.objectContaining({
932
+ previousRunId: "run_1",
933
+ }));
934
+ });
868
935
  it("logs error on mutation failure", async () => {
869
936
  const consoleSpy = jest
870
937
  .spyOn(console, "error")
@@ -878,9 +945,9 @@ describe("useTamboV1SendMessage mutation", () => {
878
945
  function TestWrapper({ children }) {
879
946
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
880
947
  react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
881
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children))));
948
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
882
949
  }
883
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
950
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
884
951
  wrapper: TestWrapper,
885
952
  });
886
953
  try {
@@ -897,12 +964,12 @@ describe("useTamboV1SendMessage mutation", () => {
897
964
  // Expected to throw
898
965
  }
899
966
  await (0, react_1.waitFor)(() => {
900
- expect(consoleSpy).toHaveBeenCalledWith("[useTamboV1SendMessage] Mutation failed:", testError);
967
+ expect(consoleSpy).toHaveBeenCalledWith("[useTamboSendMessage] Mutation failed:", testError);
901
968
  });
902
969
  consoleSpy.mockRestore();
903
970
  });
904
971
  });
905
- describe("useTamboV1SendMessage auto thread name generation", () => {
972
+ describe("useTamboSendMessage auto thread name generation", () => {
906
973
  const mockGenerateName = jest.fn();
907
974
  const mockThreadsRunsApi = {
908
975
  run: jest.fn(),
@@ -936,7 +1003,7 @@ describe("useTamboV1SendMessage auto thread name generation", () => {
936
1003
  function TestWrapper({ children }) {
937
1004
  return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
938
1005
  react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
939
- react_2.default.createElement(tambo_v1_stream_context_1.TamboV1StreamProvider, null, children))));
1006
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
940
1007
  }
941
1008
  function createFinishedStream(threadId) {
942
1009
  return createAsyncIterator([
@@ -977,14 +1044,14 @@ describe("useTamboV1SendMessage auto thread name generation", () => {
977
1044
  });
978
1045
  it("calls generateName when message count reaches threshold", async () => {
979
1046
  // Threshold=2. Pre-mutation=0, 0 + 2 = 2 >= 2 → fire
980
- jest.mocked(tambo_v1_provider_1.useTamboV1Config).mockReturnValue({
1047
+ jest.mocked(tambo_v1_provider_1.useTamboConfig).mockReturnValue({
981
1048
  userKey: undefined,
982
1049
  autoGenerateThreadName: true,
983
1050
  autoGenerateNameThreshold: 2,
984
1051
  });
985
1052
  mockGenerateName.mockResolvedValue({ name: "Generated Thread Name" });
986
1053
  mockThreadsRunsApi.run.mockResolvedValue(createFinishedStream("thread_123"));
987
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
1054
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
988
1055
  wrapper: TestWrapper,
989
1056
  });
990
1057
  await (0, react_1.act)(async () => {
@@ -1000,13 +1067,13 @@ describe("useTamboV1SendMessage auto thread name generation", () => {
1000
1067
  });
1001
1068
  });
1002
1069
  it("does not call generateName when autoGenerateThreadName is false", async () => {
1003
- jest.mocked(tambo_v1_provider_1.useTamboV1Config).mockReturnValue({
1070
+ jest.mocked(tambo_v1_provider_1.useTamboConfig).mockReturnValue({
1004
1071
  userKey: undefined,
1005
1072
  autoGenerateThreadName: false,
1006
1073
  autoGenerateNameThreshold: 3,
1007
1074
  });
1008
1075
  mockThreadsRunsApi.run.mockResolvedValue(createFinishedStream("thread_123"));
1009
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
1076
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
1010
1077
  wrapper: TestWrapper,
1011
1078
  });
1012
1079
  await (0, react_1.act)(async () => {
@@ -1022,13 +1089,13 @@ describe("useTamboV1SendMessage auto thread name generation", () => {
1022
1089
  });
1023
1090
  it("does not call generateName when message count is below threshold", async () => {
1024
1091
  // With threshold=3, preMutation=0 messages, 0 + 2 = 2 < 3 → skip
1025
- jest.mocked(tambo_v1_provider_1.useTamboV1Config).mockReturnValue({
1092
+ jest.mocked(tambo_v1_provider_1.useTamboConfig).mockReturnValue({
1026
1093
  userKey: undefined,
1027
1094
  autoGenerateThreadName: true,
1028
1095
  autoGenerateNameThreshold: 3,
1029
1096
  });
1030
1097
  mockThreadsRunsApi.create.mockResolvedValue(createFinishedStream("new_thread"));
1031
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)(), {
1098
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)(), {
1032
1099
  wrapper: TestWrapper,
1033
1100
  });
1034
1101
  await (0, react_1.act)(async () => {
@@ -1043,7 +1110,7 @@ describe("useTamboV1SendMessage auto thread name generation", () => {
1043
1110
  });
1044
1111
  it("logs error when generateName fails (does not throw)", async () => {
1045
1112
  // Threshold=2. Pre-mutation=0, 0 + 2 = 2 >= 2 → fire
1046
- jest.mocked(tambo_v1_provider_1.useTamboV1Config).mockReturnValue({
1113
+ jest.mocked(tambo_v1_provider_1.useTamboConfig).mockReturnValue({
1047
1114
  userKey: undefined,
1048
1115
  autoGenerateThreadName: true,
1049
1116
  autoGenerateNameThreshold: 2,
@@ -1053,7 +1120,7 @@ describe("useTamboV1SendMessage auto thread name generation", () => {
1053
1120
  .mockImplementation(() => { });
1054
1121
  mockGenerateName.mockRejectedValue(new Error("API error"));
1055
1122
  mockThreadsRunsApi.run.mockResolvedValue(createFinishedStream("thread_123"));
1056
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
1123
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
1057
1124
  wrapper: TestWrapper,
1058
1125
  });
1059
1126
  await (0, react_1.act)(async () => {
@@ -1065,18 +1132,18 @@ describe("useTamboV1SendMessage auto thread name generation", () => {
1065
1132
  });
1066
1133
  });
1067
1134
  await (0, react_1.waitFor)(() => {
1068
- expect(consoleSpy).toHaveBeenCalledWith("[useTamboV1SendMessage] Failed to auto-generate thread name:", expect.any(Error));
1135
+ expect(consoleSpy).toHaveBeenCalledWith("[useTamboSendMessage] Failed to auto-generate thread name:", expect.any(Error));
1069
1136
  });
1070
1137
  consoleSpy.mockRestore();
1071
1138
  });
1072
1139
  it("uses default config values (enabled, threshold=3)", async () => {
1073
1140
  // Don't set autoGenerateThreadName/autoGenerateNameThreshold — defaults apply
1074
- jest.mocked(tambo_v1_provider_1.useTamboV1Config).mockReturnValue({
1141
+ jest.mocked(tambo_v1_provider_1.useTamboConfig).mockReturnValue({
1075
1142
  userKey: undefined,
1076
1143
  });
1077
1144
  mockGenerateName.mockResolvedValue({ name: "Auto Name" });
1078
1145
  mockThreadsRunsApi.run.mockResolvedValue(createFinishedStream("thread_123"));
1079
- const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboV1SendMessage)("thread_123"), {
1146
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
1080
1147
  wrapper: TestWrapper,
1081
1148
  });
1082
1149
  await (0, react_1.act)(async () => {
@@ -1091,4 +1158,210 @@ describe("useTamboV1SendMessage auto thread name generation", () => {
1091
1158
  expect(mockGenerateName).not.toHaveBeenCalled();
1092
1159
  });
1093
1160
  });
1161
+ describe("useTamboSendMessage tamboStreamableHint", () => {
1162
+ const mockThreadsRunsApi = {
1163
+ run: jest.fn(),
1164
+ create: jest.fn(),
1165
+ };
1166
+ const mockTamboAI = {
1167
+ apiKey: "",
1168
+ threads: {
1169
+ runs: mockThreadsRunsApi,
1170
+ },
1171
+ };
1172
+ let queryClient;
1173
+ function createAsyncIterator(events) {
1174
+ return {
1175
+ [Symbol.asyncIterator]: async function* () {
1176
+ for (const event of events) {
1177
+ yield event;
1178
+ }
1179
+ },
1180
+ };
1181
+ }
1182
+ beforeEach(() => {
1183
+ queryClient = new react_query_1.QueryClient({
1184
+ defaultOptions: {
1185
+ queries: { retry: false },
1186
+ mutations: { retry: false },
1187
+ },
1188
+ });
1189
+ jest.mocked(tambo_client_provider_1.useTamboClient).mockReturnValue(mockTamboAI);
1190
+ jest.mocked(tambo_client_provider_1.useTamboQueryClient).mockReturnValue(queryClient);
1191
+ jest.mocked(tambo_v1_provider_1.useTamboConfig).mockReturnValue({ userKey: undefined });
1192
+ mockThreadsRunsApi.run.mockReset();
1193
+ mockThreadsRunsApi.create.mockReset();
1194
+ });
1195
+ it("calls streamable tool on TOOL_CALL_ARGS events during streaming", async () => {
1196
+ const streamableToolFn = jest.fn().mockResolvedValue(undefined);
1197
+ const streamableTool = {
1198
+ name: "write_story",
1199
+ description: "Writes a story",
1200
+ tool: streamableToolFn,
1201
+ inputSchema: zod_1.z.object({ text: zod_1.z.string() }),
1202
+ outputSchema: zod_1.z.void(),
1203
+ annotations: { tamboStreamableHint: true },
1204
+ };
1205
+ // Use Record (not Map) for toolRegistry — matches real runtime type
1206
+ const mockRegistry = {
1207
+ componentList: new Map(),
1208
+ toolRegistry: { write_story: streamableTool },
1209
+ };
1210
+ const initialStream = createAsyncIterator([
1211
+ {
1212
+ type: core_1.EventType.RUN_STARTED,
1213
+ runId: "run_1",
1214
+ threadId: "thread_123",
1215
+ },
1216
+ {
1217
+ type: core_1.EventType.TEXT_MESSAGE_START,
1218
+ messageId: "msg_1",
1219
+ role: "assistant",
1220
+ },
1221
+ {
1222
+ type: core_1.EventType.TOOL_CALL_START,
1223
+ toolCallId: "call_1",
1224
+ toolCallName: "write_story",
1225
+ parentMessageId: "msg_1",
1226
+ },
1227
+ {
1228
+ type: core_1.EventType.TOOL_CALL_ARGS,
1229
+ toolCallId: "call_1",
1230
+ delta: '{"text":"Once upon',
1231
+ },
1232
+ {
1233
+ type: core_1.EventType.TOOL_CALL_ARGS,
1234
+ toolCallId: "call_1",
1235
+ delta: ' a time"}',
1236
+ },
1237
+ {
1238
+ type: core_1.EventType.TOOL_CALL_END,
1239
+ toolCallId: "call_1",
1240
+ },
1241
+ {
1242
+ type: core_1.EventType.CUSTOM,
1243
+ name: "tambo.run.awaiting_input",
1244
+ value: {
1245
+ pendingToolCalls: [
1246
+ { toolCallId: "call_1", toolName: "write_story", arguments: "{}" },
1247
+ ],
1248
+ },
1249
+ },
1250
+ ]);
1251
+ const continueStream = createAsyncIterator([
1252
+ {
1253
+ type: core_1.EventType.RUN_STARTED,
1254
+ runId: "run_2",
1255
+ threadId: "thread_123",
1256
+ },
1257
+ { type: core_1.EventType.RUN_FINISHED },
1258
+ ]);
1259
+ mockThreadsRunsApi.run
1260
+ .mockResolvedValueOnce(initialStream)
1261
+ .mockResolvedValueOnce(continueStream);
1262
+ function TestWrapper({ children }) {
1263
+ return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
1264
+ react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
1265
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
1266
+ }
1267
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
1268
+ wrapper: TestWrapper,
1269
+ });
1270
+ await (0, react_1.act)(async () => {
1271
+ await result.current.mutateAsync({
1272
+ message: {
1273
+ role: "user",
1274
+ content: [{ type: "text", text: "Write me a story" }],
1275
+ },
1276
+ });
1277
+ });
1278
+ // Streamable tool should have been called during TOOL_CALL_ARGS events
1279
+ // (at least once per parseable chunk)
1280
+ expect(streamableToolFn.mock.calls.length).toBeGreaterThanOrEqual(1);
1281
+ // Each streaming call should have had partial args
1282
+ const firstStreamingCall = streamableToolFn.mock.calls[0][0];
1283
+ expect(firstStreamingCall).toHaveProperty("text");
1284
+ });
1285
+ it("does NOT call non-streamable tool during TOOL_CALL_ARGS events", async () => {
1286
+ const normalToolFn = jest.fn().mockResolvedValue("result");
1287
+ const normalTool = {
1288
+ name: "normal_tool",
1289
+ description: "Normal tool (not streamable)",
1290
+ tool: normalToolFn,
1291
+ inputSchema: zod_1.z.object({ query: zod_1.z.string() }),
1292
+ outputSchema: zod_1.z.string(),
1293
+ // No tamboStreamableHint
1294
+ };
1295
+ const mockRegistry = {
1296
+ componentList: new Map(),
1297
+ toolRegistry: { normal_tool: normalTool },
1298
+ };
1299
+ const initialStream = createAsyncIterator([
1300
+ {
1301
+ type: core_1.EventType.RUN_STARTED,
1302
+ runId: "run_1",
1303
+ threadId: "thread_123",
1304
+ },
1305
+ {
1306
+ type: core_1.EventType.TEXT_MESSAGE_START,
1307
+ messageId: "msg_1",
1308
+ role: "assistant",
1309
+ },
1310
+ {
1311
+ type: core_1.EventType.TOOL_CALL_START,
1312
+ toolCallId: "call_1",
1313
+ toolCallName: "normal_tool",
1314
+ parentMessageId: "msg_1",
1315
+ },
1316
+ {
1317
+ type: core_1.EventType.TOOL_CALL_ARGS,
1318
+ toolCallId: "call_1",
1319
+ delta: '{"query":"test"}',
1320
+ },
1321
+ {
1322
+ type: core_1.EventType.TOOL_CALL_END,
1323
+ toolCallId: "call_1",
1324
+ },
1325
+ {
1326
+ type: core_1.EventType.CUSTOM,
1327
+ name: "tambo.run.awaiting_input",
1328
+ value: {
1329
+ pendingToolCalls: [
1330
+ { toolCallId: "call_1", toolName: "normal_tool", arguments: "{}" },
1331
+ ],
1332
+ },
1333
+ },
1334
+ ]);
1335
+ const continueStream = createAsyncIterator([
1336
+ {
1337
+ type: core_1.EventType.RUN_STARTED,
1338
+ runId: "run_2",
1339
+ threadId: "thread_123",
1340
+ },
1341
+ { type: core_1.EventType.RUN_FINISHED },
1342
+ ]);
1343
+ mockThreadsRunsApi.run
1344
+ .mockResolvedValueOnce(initialStream)
1345
+ .mockResolvedValueOnce(continueStream);
1346
+ function TestWrapper({ children }) {
1347
+ return (react_2.default.createElement(react_query_1.QueryClientProvider, { client: queryClient },
1348
+ react_2.default.createElement(tambo_registry_provider_1.TamboRegistryContext.Provider, { value: mockRegistry },
1349
+ react_2.default.createElement(tambo_v1_stream_context_1.TamboStreamProvider, null, children))));
1350
+ }
1351
+ const { result } = (0, react_1.renderHook)(() => (0, use_tambo_v1_send_message_1.useTamboSendMessage)("thread_123"), {
1352
+ wrapper: TestWrapper,
1353
+ });
1354
+ await (0, react_1.act)(async () => {
1355
+ await result.current.mutateAsync({
1356
+ message: {
1357
+ role: "user",
1358
+ content: [{ type: "text", text: "Test" }],
1359
+ },
1360
+ });
1361
+ });
1362
+ // Tool should only be called once at awaiting_input, not during streaming
1363
+ expect(normalToolFn).toHaveBeenCalledTimes(1);
1364
+ expect(normalToolFn).toHaveBeenCalledWith({ query: "test" });
1365
+ });
1366
+ });
1094
1367
  //# sourceMappingURL=use-tambo-v1-send-message.test.js.map