@tambo-ai/react 0.65.2 → 0.66.0

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 (710) hide show
  1. package/README.md +174 -81
  2. package/dist/context-helpers/context-helpers-provider.test.d.ts.map +1 -0
  3. package/dist/context-helpers/{__tests__/context-helpers-provider.test.js → context-helpers-provider.test.js} +2 -2
  4. package/dist/context-helpers/context-helpers-provider.test.js.map +1 -0
  5. package/dist/context-helpers/context-helpers.test.d.ts.map +1 -0
  6. package/dist/context-helpers/{__tests__/context-helpers.test.js → context-helpers.test.js} +1 -1
  7. package/dist/context-helpers/context-helpers.test.js.map +1 -0
  8. package/{esm/providers → dist}/hoc/with-tambo-interactable.d.ts +2 -2
  9. package/dist/hoc/with-tambo-interactable.d.ts.map +1 -0
  10. package/dist/{providers/hoc → hoc}/with-tambo-interactable.js +29 -2
  11. package/dist/hoc/with-tambo-interactable.js.map +1 -0
  12. package/dist/hoc/with-tambo-interactable.test.d.ts +2 -0
  13. package/dist/hoc/with-tambo-interactable.test.d.ts.map +1 -0
  14. package/dist/hoc/with-tambo-interactable.test.js +192 -0
  15. package/dist/hoc/with-tambo-interactable.test.js.map +1 -0
  16. package/dist/hooks/index.d.ts +1 -1
  17. package/dist/hooks/index.d.ts.map +1 -1
  18. package/dist/hooks/index.js +2 -1
  19. package/dist/hooks/index.js.map +1 -1
  20. package/dist/hooks/use-component-state.d.ts +11 -24
  21. package/dist/hooks/use-component-state.d.ts.map +1 -1
  22. package/dist/hooks/use-component-state.js +14 -5
  23. package/dist/hooks/use-component-state.js.map +1 -1
  24. package/dist/hooks/use-component-state.test.d.ts.map +1 -0
  25. package/dist/hooks/{__tests__/use-component-state.test.js → use-component-state.test.js} +7 -7
  26. package/dist/hooks/use-component-state.test.js.map +1 -0
  27. package/dist/hooks/use-current-message.d.ts +51 -7
  28. package/dist/hooks/use-current-message.d.ts.map +1 -1
  29. package/dist/hooks/use-current-message.js +50 -6
  30. package/dist/hooks/use-current-message.js.map +1 -1
  31. package/dist/hooks/use-current-message.test.d.ts +2 -0
  32. package/dist/hooks/use-current-message.test.d.ts.map +1 -0
  33. package/dist/hooks/use-current-message.test.js +264 -0
  34. package/dist/hooks/use-current-message.test.js.map +1 -0
  35. package/dist/hooks/use-message-images.test.d.ts.map +1 -0
  36. package/dist/hooks/{__tests__/use-message-images.test.js → use-message-images.test.js} +1 -1
  37. package/dist/hooks/use-message-images.test.js.map +1 -0
  38. package/dist/hooks/use-streaming-props.d.ts +7 -19
  39. package/dist/hooks/use-streaming-props.d.ts.map +1 -1
  40. package/dist/hooks/use-streaming-props.js +7 -19
  41. package/dist/hooks/use-streaming-props.js.map +1 -1
  42. package/dist/hooks/use-suggestions.d.ts +1 -1
  43. package/dist/hooks/use-suggestions.d.ts.map +1 -1
  44. package/dist/hooks/use-suggestions.js.map +1 -1
  45. package/dist/hooks/use-suggestions.test.d.ts.map +1 -0
  46. package/dist/hooks/{__tests__/use-suggestions.test.js → use-suggestions.test.js} +36 -29
  47. package/dist/hooks/use-suggestions.test.js.map +1 -0
  48. package/dist/hooks/use-tambo-stream-status.d.ts +9 -8
  49. package/dist/hooks/use-tambo-stream-status.d.ts.map +1 -1
  50. package/dist/hooks/use-tambo-stream-status.js +9 -8
  51. package/dist/hooks/use-tambo-stream-status.js.map +1 -1
  52. package/dist/hooks/use-tambo-stream-status.test.d.ts.map +1 -0
  53. package/dist/hooks/{__tests__/use-tambo-stream-status.test.js → use-tambo-stream-status.test.js} +6 -6
  54. package/dist/hooks/use-tambo-stream-status.test.js.map +1 -0
  55. package/dist/hooks/use-tambo-threads.test.d.ts.map +1 -0
  56. package/dist/hooks/{__tests__/use-tambo-threads.test.js → use-tambo-threads.test.js} +3 -3
  57. package/dist/hooks/use-tambo-threads.test.js.map +1 -0
  58. package/dist/index.d.ts +10 -8
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +7 -3
  61. package/dist/index.js.map +1 -1
  62. package/dist/mcp/elicitation.d.ts +10 -2
  63. package/dist/mcp/elicitation.d.ts.map +1 -1
  64. package/dist/mcp/elicitation.js +19 -1
  65. package/dist/mcp/elicitation.js.map +1 -1
  66. package/dist/mcp/elicitation.test.d.ts.map +1 -0
  67. package/dist/mcp/{__tests__/elicitation.test.js → elicitation.test.js} +1 -1
  68. package/dist/mcp/elicitation.test.js.map +1 -0
  69. package/dist/mcp/index.d.ts +11 -2
  70. package/dist/mcp/index.d.ts.map +1 -1
  71. package/dist/mcp/index.js +11 -1
  72. package/dist/mcp/index.js.map +1 -1
  73. package/dist/mcp/mcp-client.d.ts +29 -10
  74. package/dist/mcp/mcp-client.d.ts.map +1 -1
  75. package/dist/mcp/mcp-client.test.d.ts.map +1 -0
  76. package/dist/mcp/{__tests__/mcp-client.test.js → mcp-client.test.js} +1 -1
  77. package/dist/mcp/mcp-client.test.js.map +1 -0
  78. package/dist/mcp/mcp-hooks.d.ts +129 -25
  79. package/dist/mcp/mcp-hooks.d.ts.map +1 -1
  80. package/dist/mcp/mcp-hooks.js +104 -40
  81. package/dist/mcp/mcp-hooks.js.map +1 -1
  82. package/dist/mcp/mcp-hooks.test.d.ts.map +1 -0
  83. package/dist/mcp/{__tests__/mcp-hooks.test.js → mcp-hooks.test.js} +90 -51
  84. package/dist/mcp/mcp-hooks.test.js.map +1 -0
  85. package/dist/mcp/tambo-mcp-provider.d.ts +2 -0
  86. package/dist/mcp/tambo-mcp-provider.d.ts.map +1 -1
  87. package/dist/mcp/tambo-mcp-provider.js +60 -13
  88. package/dist/mcp/tambo-mcp-provider.js.map +1 -1
  89. package/dist/mcp/tambo-mcp-provider.test.d.ts.map +1 -0
  90. package/dist/mcp/{__tests__/tambo-mcp-provider.test.js → tambo-mcp-provider.test.js} +9 -25
  91. package/dist/mcp/tambo-mcp-provider.test.js.map +1 -0
  92. package/dist/mcp/use-mcp-servers.test.d.ts.map +1 -0
  93. package/dist/mcp/{__tests__/use-mcp-servers.test.js → use-mcp-servers.test.js} +5 -11
  94. package/dist/mcp/use-mcp-servers.test.js.map +1 -0
  95. package/dist/model/component-metadata.d.ts +444 -14
  96. package/dist/model/component-metadata.d.ts.map +1 -1
  97. package/dist/model/component-metadata.js.map +1 -1
  98. package/dist/model/generate-component-response.d.ts +12 -1
  99. package/dist/model/generate-component-response.d.ts.map +1 -1
  100. package/dist/model/generate-component-response.js.map +1 -1
  101. package/dist/model/mcp-server-info.d.ts +3 -1
  102. package/dist/model/mcp-server-info.d.ts.map +1 -1
  103. package/dist/model/mcp-server-info.js.map +1 -1
  104. package/dist/model/resource-info.d.ts +55 -0
  105. package/dist/model/resource-info.d.ts.map +1 -0
  106. package/dist/model/resource-info.js +3 -0
  107. package/dist/model/resource-info.js.map +1 -0
  108. package/dist/model/tambo-thread.d.ts +6 -1
  109. package/dist/model/tambo-thread.d.ts.map +1 -1
  110. package/dist/model/tambo-thread.js.map +1 -1
  111. package/dist/providers/hooks/use-tambo-session-token.test.d.ts.map +1 -0
  112. package/dist/providers/hooks/{__tests__/use-tambo-session-token.test.js → use-tambo-session-token.test.js} +1 -1
  113. package/dist/providers/hooks/use-tambo-session-token.test.js.map +1 -0
  114. package/dist/providers/index.d.ts +1 -1
  115. package/dist/providers/index.d.ts.map +1 -1
  116. package/dist/providers/index.js.map +1 -1
  117. package/dist/providers/tambo-client-provider.d.ts +0 -4
  118. package/dist/providers/tambo-client-provider.d.ts.map +1 -1
  119. package/dist/providers/tambo-client-provider.js +0 -3
  120. package/dist/providers/tambo-client-provider.js.map +1 -1
  121. package/dist/providers/tambo-component-provider.d.ts +4 -4
  122. package/dist/providers/tambo-component-provider.d.ts.map +1 -1
  123. package/dist/providers/tambo-component-provider.js.map +1 -1
  124. package/dist/providers/tambo-context-attachment-provider.test.d.ts.map +1 -0
  125. package/dist/providers/{__tests__/tambo-context-attachment-provider.test.js → tambo-context-attachment-provider.test.js} +2 -2
  126. package/dist/providers/tambo-context-attachment-provider.test.js.map +1 -0
  127. package/dist/providers/tambo-context-helpers-provider.test.d.ts.map +1 -0
  128. package/dist/providers/{__tests__/tambo-context-helpers-provider.test.js → tambo-context-helpers-provider.test.js} +2 -2
  129. package/dist/providers/tambo-context-helpers-provider.test.js.map +1 -0
  130. package/dist/providers/tambo-interactable-provider-partial-updates.test.d.ts.map +1 -0
  131. package/dist/providers/{__tests__/tambo-interactable-provider-partial-updates.test.js → tambo-interactable-provider-partial-updates.test.js} +91 -91
  132. package/dist/providers/tambo-interactable-provider-partial-updates.test.js.map +1 -0
  133. package/dist/providers/tambo-interactable-provider.d.ts +2 -3
  134. package/dist/providers/tambo-interactable-provider.d.ts.map +1 -1
  135. package/dist/providers/tambo-interactable-provider.js +47 -41
  136. package/dist/providers/tambo-interactable-provider.js.map +1 -1
  137. package/dist/providers/tambo-interactables-additional-context-edge-cases.test.d.ts.map +1 -0
  138. package/dist/providers/{__tests__/tambo-interactables-additional-context-edge-cases.test.js → tambo-interactables-additional-context-edge-cases.test.js} +17 -17
  139. package/dist/providers/tambo-interactables-additional-context-edge-cases.test.js.map +1 -0
  140. package/dist/providers/tambo-interactables-additional-context.test.d.ts.map +1 -0
  141. package/dist/providers/{__tests__/tambo-interactables-additional-context.test.js → tambo-interactables-additional-context.test.js} +19 -19
  142. package/dist/providers/tambo-interactables-additional-context.test.js.map +1 -0
  143. package/dist/providers/tambo-mcp-token-provider.d.ts +20 -13
  144. package/dist/providers/tambo-mcp-token-provider.d.ts.map +1 -1
  145. package/dist/providers/tambo-mcp-token-provider.js +122 -10
  146. package/dist/providers/tambo-mcp-token-provider.js.map +1 -1
  147. package/dist/providers/tambo-prop-stream-provider.test.d.ts.map +1 -0
  148. package/dist/providers/{__tests__/tambo-prop-stream-provider.test.js → tambo-prop-stream-provider.test.js} +32 -25
  149. package/dist/providers/tambo-prop-stream-provider.test.js.map +1 -0
  150. package/dist/providers/tambo-provider.d.ts +2 -2
  151. package/dist/providers/tambo-provider.d.ts.map +1 -1
  152. package/dist/providers/tambo-provider.js +5 -7
  153. package/dist/providers/tambo-provider.js.map +1 -1
  154. package/dist/providers/tambo-registry-provider.d.ts +28 -7
  155. package/dist/providers/tambo-registry-provider.d.ts.map +1 -1
  156. package/dist/providers/tambo-registry-provider.js +70 -181
  157. package/dist/providers/tambo-registry-provider.js.map +1 -1
  158. package/dist/providers/tambo-registry-provider.test.d.ts.map +1 -0
  159. package/dist/providers/{__tests__/tambo-registry-provider.test.js → tambo-registry-provider.test.js} +153 -31
  160. package/dist/providers/tambo-registry-provider.test.js.map +1 -0
  161. package/dist/providers/tambo-registry-schema-compat.test.d.ts +2 -0
  162. package/dist/providers/tambo-registry-schema-compat.test.d.ts.map +1 -0
  163. package/dist/providers/tambo-registry-schema-compat.test.js +616 -0
  164. package/dist/providers/tambo-registry-schema-compat.test.js.map +1 -0
  165. package/dist/providers/tambo-stubs.d.ts +2 -2
  166. package/dist/providers/tambo-stubs.d.ts.map +1 -1
  167. package/dist/providers/tambo-stubs.js +9 -2
  168. package/dist/providers/tambo-stubs.js.map +1 -1
  169. package/dist/providers/tambo-stubs.test.d.ts.map +1 -0
  170. package/dist/providers/{__tests__/tambo-stubs.test.js → tambo-stubs.test.js} +2 -2
  171. package/dist/providers/tambo-stubs.test.js.map +1 -0
  172. package/dist/providers/tambo-thread-input-provider.d.ts +2 -1
  173. package/dist/providers/tambo-thread-input-provider.d.ts.map +1 -1
  174. package/dist/providers/tambo-thread-input-provider.js +3 -3
  175. package/dist/providers/tambo-thread-input-provider.js.map +1 -1
  176. package/dist/providers/tambo-thread-provider-initial-messages.test.d.ts.map +1 -0
  177. package/dist/providers/{__tests__/tambo-thread-provider-initial-messages.test.js → tambo-thread-provider-initial-messages.test.js} +7 -9
  178. package/dist/providers/tambo-thread-provider-initial-messages.test.js.map +1 -0
  179. package/dist/providers/tambo-thread-provider.d.ts +8 -0
  180. package/dist/providers/tambo-thread-provider.d.ts.map +1 -1
  181. package/dist/providers/tambo-thread-provider.js +82 -19
  182. package/dist/providers/tambo-thread-provider.js.map +1 -1
  183. package/dist/providers/tambo-thread-provider.test.d.ts.map +1 -0
  184. package/dist/providers/{__tests__/tambo-thread-provider.test.js → tambo-thread-provider.test.js} +42 -78
  185. package/dist/providers/tambo-thread-provider.test.js.map +1 -0
  186. package/dist/schema/index.d.ts +6 -0
  187. package/dist/schema/index.d.ts.map +1 -0
  188. package/dist/schema/index.js +18 -0
  189. package/dist/schema/index.js.map +1 -0
  190. package/dist/schema/json-schema.d.ts +35 -0
  191. package/dist/schema/json-schema.d.ts.map +1 -0
  192. package/dist/schema/json-schema.js +103 -0
  193. package/dist/schema/json-schema.js.map +1 -0
  194. package/dist/schema/schema.d.ts +66 -0
  195. package/dist/schema/schema.d.ts.map +1 -0
  196. package/dist/schema/schema.js +192 -0
  197. package/dist/schema/schema.js.map +1 -0
  198. package/dist/schema/schema.test.d.ts +2 -0
  199. package/dist/schema/schema.test.d.ts.map +1 -0
  200. package/dist/schema/schema.test.js +41 -0
  201. package/dist/schema/schema.test.js.map +1 -0
  202. package/dist/schema/standard-schema.d.ts +21 -0
  203. package/dist/schema/standard-schema.d.ts.map +1 -0
  204. package/dist/schema/standard-schema.js +37 -0
  205. package/dist/schema/standard-schema.js.map +1 -0
  206. package/dist/schema/validate.d.ts +14 -0
  207. package/dist/schema/validate.d.ts.map +1 -0
  208. package/dist/schema/validate.js +148 -0
  209. package/dist/schema/validate.js.map +1 -0
  210. package/dist/schema/validate.test.d.ts +2 -0
  211. package/dist/schema/validate.test.d.ts.map +1 -0
  212. package/dist/schema/validate.test.js +128 -0
  213. package/dist/schema/validate.test.js.map +1 -0
  214. package/dist/schema/zod.d.ts +54 -0
  215. package/dist/schema/zod.d.ts.map +1 -0
  216. package/dist/schema/zod.js +135 -0
  217. package/dist/schema/zod.js.map +1 -0
  218. package/dist/testing/tools.d.ts +29 -15
  219. package/dist/testing/tools.d.ts.map +1 -1
  220. package/dist/testing/tools.js +64 -19
  221. package/dist/testing/tools.js.map +1 -1
  222. package/dist/util/content-parts.test.d.ts.map +1 -0
  223. package/dist/util/{__tests__/content-parts.test.js → content-parts.test.js} +1 -1
  224. package/dist/util/content-parts.test.js.map +1 -0
  225. package/dist/util/generate-component.d.ts.map +1 -1
  226. package/dist/util/generate-component.js +3 -3
  227. package/dist/util/generate-component.js.map +1 -1
  228. package/dist/util/mcp-server-utils.d.ts +23 -0
  229. package/dist/util/mcp-server-utils.d.ts.map +1 -0
  230. package/dist/util/mcp-server-utils.js +107 -0
  231. package/dist/util/mcp-server-utils.js.map +1 -0
  232. package/dist/util/mcp-server-utils.test.d.ts +2 -0
  233. package/dist/util/mcp-server-utils.test.d.ts.map +1 -0
  234. package/dist/util/mcp-server-utils.test.js +287 -0
  235. package/dist/util/mcp-server-utils.test.js.map +1 -0
  236. package/dist/util/message-builder.d.ts +4 -3
  237. package/dist/util/message-builder.d.ts.map +1 -1
  238. package/dist/util/message-builder.js +83 -8
  239. package/dist/util/message-builder.js.map +1 -1
  240. package/dist/util/message-builder.test.d.ts.map +1 -0
  241. package/dist/util/message-builder.test.js +678 -0
  242. package/dist/util/message-builder.test.js.map +1 -0
  243. package/dist/util/query-utils.d.ts.map +1 -1
  244. package/dist/util/query-utils.js +49 -31
  245. package/dist/util/query-utils.js.map +1 -1
  246. package/dist/util/registry-validators.d.ts +26 -0
  247. package/dist/util/registry-validators.d.ts.map +1 -0
  248. package/dist/util/registry-validators.js +105 -0
  249. package/dist/util/registry-validators.js.map +1 -0
  250. package/dist/util/registry-validators.test.d.ts +2 -0
  251. package/dist/util/registry-validators.test.d.ts.map +1 -0
  252. package/dist/util/registry-validators.test.js +235 -0
  253. package/dist/util/registry-validators.test.js.map +1 -0
  254. package/dist/util/registry.d.ts +35 -7
  255. package/dist/util/registry.d.ts.map +1 -1
  256. package/dist/util/registry.js +60 -77
  257. package/dist/util/registry.js.map +1 -1
  258. package/dist/util/registry.test.d.ts +2 -0
  259. package/dist/util/registry.test.d.ts.map +1 -0
  260. package/dist/util/registry.test.js +204 -0
  261. package/dist/util/registry.test.js.map +1 -0
  262. package/dist/util/resource-validators.d.ts +16 -0
  263. package/dist/util/resource-validators.d.ts.map +1 -0
  264. package/dist/util/resource-validators.js +34 -0
  265. package/dist/util/resource-validators.js.map +1 -0
  266. package/dist/util/tool-caller.d.ts +2 -2
  267. package/dist/util/tool-caller.d.ts.map +1 -1
  268. package/dist/util/tool-caller.js +12 -4
  269. package/dist/util/tool-caller.js.map +1 -1
  270. package/esm/context-helpers/context-helpers-provider.test.d.ts.map +1 -0
  271. package/esm/context-helpers/{__tests__/context-helpers-provider.test.js → context-helpers-provider.test.js} +2 -2
  272. package/esm/context-helpers/context-helpers-provider.test.js.map +1 -0
  273. package/esm/context-helpers/context-helpers.test.d.ts.map +1 -0
  274. package/esm/context-helpers/{__tests__/context-helpers.test.js → context-helpers.test.js} +1 -1
  275. package/esm/context-helpers/context-helpers.test.js.map +1 -0
  276. package/{dist/providers → esm}/hoc/with-tambo-interactable.d.ts +2 -2
  277. package/esm/hoc/with-tambo-interactable.d.ts.map +1 -0
  278. package/esm/{providers/hoc → hoc}/with-tambo-interactable.js +29 -2
  279. package/esm/hoc/with-tambo-interactable.js.map +1 -0
  280. package/esm/hoc/with-tambo-interactable.test.d.ts +2 -0
  281. package/esm/hoc/with-tambo-interactable.test.d.ts.map +1 -0
  282. package/esm/hoc/with-tambo-interactable.test.js +187 -0
  283. package/esm/hoc/with-tambo-interactable.test.js.map +1 -0
  284. package/esm/hooks/index.d.ts +1 -1
  285. package/esm/hooks/index.d.ts.map +1 -1
  286. package/esm/hooks/index.js +1 -1
  287. package/esm/hooks/index.js.map +1 -1
  288. package/esm/hooks/use-component-state.d.ts +11 -24
  289. package/esm/hooks/use-component-state.d.ts.map +1 -1
  290. package/esm/hooks/use-component-state.js +14 -5
  291. package/esm/hooks/use-component-state.js.map +1 -1
  292. package/esm/hooks/use-component-state.test.d.ts.map +1 -0
  293. package/esm/hooks/{__tests__/use-component-state.test.js → use-component-state.test.js} +7 -7
  294. package/esm/hooks/use-component-state.test.js.map +1 -0
  295. package/esm/hooks/use-current-message.d.ts +51 -7
  296. package/esm/hooks/use-current-message.d.ts.map +1 -1
  297. package/esm/hooks/use-current-message.js +48 -5
  298. package/esm/hooks/use-current-message.js.map +1 -1
  299. package/esm/hooks/use-current-message.test.d.ts +2 -0
  300. package/esm/hooks/use-current-message.test.d.ts.map +1 -0
  301. package/esm/hooks/use-current-message.test.js +259 -0
  302. package/esm/hooks/use-current-message.test.js.map +1 -0
  303. package/esm/hooks/use-message-images.test.d.ts.map +1 -0
  304. package/esm/hooks/{__tests__/use-message-images.test.js → use-message-images.test.js} +1 -1
  305. package/esm/hooks/use-message-images.test.js.map +1 -0
  306. package/esm/hooks/use-streaming-props.d.ts +7 -19
  307. package/esm/hooks/use-streaming-props.d.ts.map +1 -1
  308. package/esm/hooks/use-streaming-props.js +7 -19
  309. package/esm/hooks/use-streaming-props.js.map +1 -1
  310. package/esm/hooks/use-suggestions.d.ts +1 -1
  311. package/esm/hooks/use-suggestions.d.ts.map +1 -1
  312. package/esm/hooks/use-suggestions.js.map +1 -1
  313. package/esm/hooks/use-suggestions.test.d.ts.map +1 -0
  314. package/esm/hooks/{__tests__/use-suggestions.test.js → use-suggestions.test.js} +36 -29
  315. package/esm/hooks/use-suggestions.test.js.map +1 -0
  316. package/esm/hooks/use-tambo-stream-status.d.ts +9 -8
  317. package/esm/hooks/use-tambo-stream-status.d.ts.map +1 -1
  318. package/esm/hooks/use-tambo-stream-status.js +9 -8
  319. package/esm/hooks/use-tambo-stream-status.js.map +1 -1
  320. package/esm/hooks/use-tambo-stream-status.test.d.ts.map +1 -0
  321. package/esm/hooks/{__tests__/use-tambo-stream-status.test.js → use-tambo-stream-status.test.js} +6 -6
  322. package/esm/hooks/use-tambo-stream-status.test.js.map +1 -0
  323. package/esm/hooks/use-tambo-threads.test.d.ts.map +1 -0
  324. package/esm/hooks/{__tests__/use-tambo-threads.test.js → use-tambo-threads.test.js} +3 -3
  325. package/esm/hooks/use-tambo-threads.test.js.map +1 -0
  326. package/esm/index.d.ts +10 -8
  327. package/esm/index.d.ts.map +1 -1
  328. package/esm/index.js +4 -2
  329. package/esm/index.js.map +1 -1
  330. package/esm/mcp/elicitation.d.ts +10 -2
  331. package/esm/mcp/elicitation.d.ts.map +1 -1
  332. package/esm/mcp/elicitation.js +19 -1
  333. package/esm/mcp/elicitation.js.map +1 -1
  334. package/esm/mcp/elicitation.test.d.ts.map +1 -0
  335. package/esm/mcp/{__tests__/elicitation.test.js → elicitation.test.js} +1 -1
  336. package/esm/mcp/elicitation.test.js.map +1 -0
  337. package/esm/mcp/index.d.ts +11 -2
  338. package/esm/mcp/index.d.ts.map +1 -1
  339. package/esm/mcp/index.js +10 -1
  340. package/esm/mcp/index.js.map +1 -1
  341. package/esm/mcp/mcp-client.d.ts +29 -10
  342. package/esm/mcp/mcp-client.d.ts.map +1 -1
  343. package/esm/mcp/mcp-client.test.d.ts.map +1 -0
  344. package/esm/mcp/{__tests__/mcp-client.test.js → mcp-client.test.js} +1 -1
  345. package/esm/mcp/mcp-client.test.js.map +1 -0
  346. package/esm/mcp/mcp-hooks.d.ts +129 -25
  347. package/esm/mcp/mcp-hooks.d.ts.map +1 -1
  348. package/esm/mcp/mcp-hooks.js +103 -40
  349. package/esm/mcp/mcp-hooks.js.map +1 -1
  350. package/esm/mcp/mcp-hooks.test.d.ts.map +1 -0
  351. package/esm/mcp/{__tests__/mcp-hooks.test.js → mcp-hooks.test.js} +90 -51
  352. package/esm/mcp/mcp-hooks.test.js.map +1 -0
  353. package/esm/mcp/tambo-mcp-provider.d.ts +2 -0
  354. package/esm/mcp/tambo-mcp-provider.d.ts.map +1 -1
  355. package/esm/mcp/tambo-mcp-provider.js +60 -13
  356. package/esm/mcp/tambo-mcp-provider.js.map +1 -1
  357. package/esm/mcp/tambo-mcp-provider.test.d.ts.map +1 -0
  358. package/esm/mcp/{__tests__/tambo-mcp-provider.test.js → tambo-mcp-provider.test.js} +9 -25
  359. package/esm/mcp/tambo-mcp-provider.test.js.map +1 -0
  360. package/esm/mcp/use-mcp-servers.test.d.ts.map +1 -0
  361. package/esm/mcp/{__tests__/use-mcp-servers.test.js → use-mcp-servers.test.js} +5 -11
  362. package/esm/mcp/use-mcp-servers.test.js.map +1 -0
  363. package/esm/model/component-metadata.d.ts +444 -14
  364. package/esm/model/component-metadata.d.ts.map +1 -1
  365. package/esm/model/component-metadata.js.map +1 -1
  366. package/esm/model/generate-component-response.d.ts +12 -1
  367. package/esm/model/generate-component-response.d.ts.map +1 -1
  368. package/esm/model/generate-component-response.js.map +1 -1
  369. package/esm/model/mcp-server-info.d.ts +3 -1
  370. package/esm/model/mcp-server-info.d.ts.map +1 -1
  371. package/esm/model/mcp-server-info.js.map +1 -1
  372. package/esm/model/resource-info.d.ts +55 -0
  373. package/esm/model/resource-info.d.ts.map +1 -0
  374. package/esm/model/resource-info.js +2 -0
  375. package/esm/model/resource-info.js.map +1 -0
  376. package/esm/model/tambo-thread.d.ts +6 -1
  377. package/esm/model/tambo-thread.d.ts.map +1 -1
  378. package/esm/model/tambo-thread.js.map +1 -1
  379. package/esm/providers/hooks/use-tambo-session-token.test.d.ts.map +1 -0
  380. package/esm/providers/hooks/{__tests__/use-tambo-session-token.test.js → use-tambo-session-token.test.js} +1 -1
  381. package/esm/providers/hooks/use-tambo-session-token.test.js.map +1 -0
  382. package/esm/providers/index.d.ts +1 -1
  383. package/esm/providers/index.d.ts.map +1 -1
  384. package/esm/providers/index.js.map +1 -1
  385. package/esm/providers/tambo-client-provider.d.ts +0 -4
  386. package/esm/providers/tambo-client-provider.d.ts.map +1 -1
  387. package/esm/providers/tambo-client-provider.js +0 -3
  388. package/esm/providers/tambo-client-provider.js.map +1 -1
  389. package/esm/providers/tambo-component-provider.d.ts +4 -4
  390. package/esm/providers/tambo-component-provider.d.ts.map +1 -1
  391. package/esm/providers/tambo-component-provider.js.map +1 -1
  392. package/esm/providers/tambo-context-attachment-provider.test.d.ts.map +1 -0
  393. package/esm/providers/{__tests__/tambo-context-attachment-provider.test.js → tambo-context-attachment-provider.test.js} +2 -2
  394. package/esm/providers/tambo-context-attachment-provider.test.js.map +1 -0
  395. package/esm/providers/tambo-context-helpers-provider.test.d.ts.map +1 -0
  396. package/esm/providers/{__tests__/tambo-context-helpers-provider.test.js → tambo-context-helpers-provider.test.js} +2 -2
  397. package/esm/providers/tambo-context-helpers-provider.test.js.map +1 -0
  398. package/esm/providers/tambo-interactable-provider-partial-updates.test.d.ts.map +1 -0
  399. package/esm/providers/{__tests__/tambo-interactable-provider-partial-updates.test.js → tambo-interactable-provider-partial-updates.test.js} +5 -5
  400. package/esm/providers/tambo-interactable-provider-partial-updates.test.js.map +1 -0
  401. package/esm/providers/tambo-interactable-provider.d.ts +2 -3
  402. package/esm/providers/tambo-interactable-provider.d.ts.map +1 -1
  403. package/esm/providers/tambo-interactable-provider.js +44 -38
  404. package/esm/providers/tambo-interactable-provider.js.map +1 -1
  405. package/esm/providers/tambo-interactables-additional-context-edge-cases.test.d.ts.map +1 -0
  406. package/esm/providers/{__tests__/tambo-interactables-additional-context-edge-cases.test.js → tambo-interactables-additional-context-edge-cases.test.js} +10 -10
  407. package/esm/providers/tambo-interactables-additional-context-edge-cases.test.js.map +1 -0
  408. package/esm/providers/tambo-interactables-additional-context.test.d.ts.map +1 -0
  409. package/esm/providers/{__tests__/tambo-interactables-additional-context.test.js → tambo-interactables-additional-context.test.js} +10 -10
  410. package/esm/providers/tambo-interactables-additional-context.test.js.map +1 -0
  411. package/esm/providers/tambo-mcp-token-provider.d.ts +20 -13
  412. package/esm/providers/tambo-mcp-token-provider.d.ts.map +1 -1
  413. package/esm/providers/tambo-mcp-token-provider.js +123 -11
  414. package/esm/providers/tambo-mcp-token-provider.js.map +1 -1
  415. package/esm/providers/tambo-prop-stream-provider.test.d.ts.map +1 -0
  416. package/esm/providers/{__tests__/tambo-prop-stream-provider.test.js → tambo-prop-stream-provider.test.js} +32 -25
  417. package/esm/providers/tambo-prop-stream-provider.test.js.map +1 -0
  418. package/esm/providers/tambo-provider.d.ts +2 -2
  419. package/esm/providers/tambo-provider.d.ts.map +1 -1
  420. package/esm/providers/tambo-provider.js +5 -7
  421. package/esm/providers/tambo-provider.js.map +1 -1
  422. package/esm/providers/tambo-registry-provider.d.ts +28 -7
  423. package/esm/providers/tambo-registry-provider.d.ts.map +1 -1
  424. package/esm/providers/tambo-registry-provider.js +67 -175
  425. package/esm/providers/tambo-registry-provider.js.map +1 -1
  426. package/esm/providers/tambo-registry-provider.test.d.ts.map +1 -0
  427. package/esm/providers/{__tests__/tambo-registry-provider.test.js → tambo-registry-provider.test.js} +149 -27
  428. package/esm/providers/tambo-registry-provider.test.js.map +1 -0
  429. package/esm/providers/tambo-registry-schema-compat.test.d.ts +2 -0
  430. package/esm/providers/tambo-registry-schema-compat.test.d.ts.map +1 -0
  431. package/esm/providers/tambo-registry-schema-compat.test.js +578 -0
  432. package/esm/providers/tambo-registry-schema-compat.test.js.map +1 -0
  433. package/esm/providers/tambo-stubs.d.ts +2 -2
  434. package/esm/providers/tambo-stubs.d.ts.map +1 -1
  435. package/esm/providers/tambo-stubs.js +9 -2
  436. package/esm/providers/tambo-stubs.js.map +1 -1
  437. package/esm/providers/tambo-stubs.test.d.ts.map +1 -0
  438. package/esm/providers/{__tests__/tambo-stubs.test.js → tambo-stubs.test.js} +2 -2
  439. package/esm/providers/tambo-stubs.test.js.map +1 -0
  440. package/esm/providers/tambo-thread-input-provider.d.ts +2 -1
  441. package/esm/providers/tambo-thread-input-provider.d.ts.map +1 -1
  442. package/esm/providers/tambo-thread-input-provider.js +3 -3
  443. package/esm/providers/tambo-thread-input-provider.js.map +1 -1
  444. package/esm/providers/tambo-thread-provider-initial-messages.test.d.ts.map +1 -0
  445. package/esm/providers/{__tests__/tambo-thread-provider-initial-messages.test.js → tambo-thread-provider-initial-messages.test.js} +7 -9
  446. package/esm/providers/tambo-thread-provider-initial-messages.test.js.map +1 -0
  447. package/esm/providers/tambo-thread-provider.d.ts +8 -0
  448. package/esm/providers/tambo-thread-provider.d.ts.map +1 -1
  449. package/esm/providers/tambo-thread-provider.js +82 -19
  450. package/esm/providers/tambo-thread-provider.js.map +1 -1
  451. package/esm/providers/tambo-thread-provider.test.d.ts.map +1 -0
  452. package/esm/providers/{__tests__/tambo-thread-provider.test.js → tambo-thread-provider.test.js} +34 -70
  453. package/esm/providers/tambo-thread-provider.test.js.map +1 -0
  454. package/esm/schema/index.d.ts +6 -0
  455. package/esm/schema/index.d.ts.map +1 -0
  456. package/esm/schema/index.js +6 -0
  457. package/esm/schema/index.js.map +1 -0
  458. package/esm/schema/json-schema.d.ts +35 -0
  459. package/esm/schema/json-schema.d.ts.map +1 -0
  460. package/esm/schema/json-schema.js +98 -0
  461. package/esm/schema/json-schema.js.map +1 -0
  462. package/esm/schema/schema.d.ts +66 -0
  463. package/esm/schema/schema.d.ts.map +1 -0
  464. package/esm/schema/schema.js +185 -0
  465. package/esm/schema/schema.js.map +1 -0
  466. package/esm/schema/schema.test.d.ts +2 -0
  467. package/esm/schema/schema.test.d.ts.map +1 -0
  468. package/esm/schema/schema.test.js +39 -0
  469. package/esm/schema/schema.test.js.map +1 -0
  470. package/esm/schema/standard-schema.d.ts +21 -0
  471. package/esm/schema/standard-schema.d.ts.map +1 -0
  472. package/esm/schema/standard-schema.js +34 -0
  473. package/esm/schema/standard-schema.js.map +1 -0
  474. package/esm/schema/validate.d.ts +14 -0
  475. package/esm/schema/validate.d.ts.map +1 -0
  476. package/esm/schema/validate.js +145 -0
  477. package/esm/schema/validate.js.map +1 -0
  478. package/esm/schema/validate.test.d.ts +2 -0
  479. package/esm/schema/validate.test.d.ts.map +1 -0
  480. package/esm/schema/validate.test.js +126 -0
  481. package/esm/schema/validate.test.js.map +1 -0
  482. package/esm/schema/zod.d.ts +54 -0
  483. package/esm/schema/zod.d.ts.map +1 -0
  484. package/esm/schema/zod.js +124 -0
  485. package/esm/schema/zod.js.map +1 -0
  486. package/esm/testing/tools.d.ts +29 -15
  487. package/esm/testing/tools.d.ts.map +1 -1
  488. package/esm/testing/tools.js +62 -16
  489. package/esm/testing/tools.js.map +1 -1
  490. package/esm/util/content-parts.test.d.ts.map +1 -0
  491. package/esm/util/{__tests__/content-parts.test.js → content-parts.test.js} +1 -1
  492. package/esm/util/content-parts.test.js.map +1 -0
  493. package/esm/util/generate-component.d.ts.map +1 -1
  494. package/esm/util/generate-component.js +3 -3
  495. package/esm/util/generate-component.js.map +1 -1
  496. package/esm/util/mcp-server-utils.d.ts +23 -0
  497. package/esm/util/mcp-server-utils.d.ts.map +1 -0
  498. package/esm/util/mcp-server-utils.js +102 -0
  499. package/esm/util/mcp-server-utils.js.map +1 -0
  500. package/esm/util/mcp-server-utils.test.d.ts +2 -0
  501. package/esm/util/mcp-server-utils.test.d.ts.map +1 -0
  502. package/esm/util/mcp-server-utils.test.js +285 -0
  503. package/esm/util/mcp-server-utils.test.js.map +1 -0
  504. package/esm/util/message-builder.d.ts +4 -3
  505. package/esm/util/message-builder.d.ts.map +1 -1
  506. package/esm/util/message-builder.js +83 -8
  507. package/esm/util/message-builder.js.map +1 -1
  508. package/esm/util/message-builder.test.d.ts.map +1 -0
  509. package/esm/util/message-builder.test.js +676 -0
  510. package/esm/util/message-builder.test.js.map +1 -0
  511. package/esm/util/query-utils.d.ts.map +1 -1
  512. package/esm/util/query-utils.js +49 -31
  513. package/esm/util/query-utils.js.map +1 -1
  514. package/esm/util/registry-validators.d.ts +26 -0
  515. package/esm/util/registry-validators.d.ts.map +1 -0
  516. package/esm/util/registry-validators.js +100 -0
  517. package/esm/util/registry-validators.js.map +1 -0
  518. package/esm/util/registry-validators.test.d.ts +2 -0
  519. package/esm/util/registry-validators.test.d.ts.map +1 -0
  520. package/esm/util/registry-validators.test.js +233 -0
  521. package/esm/util/registry-validators.test.js.map +1 -0
  522. package/esm/util/registry.d.ts +35 -7
  523. package/esm/util/registry.d.ts.map +1 -1
  524. package/esm/util/registry.js +57 -73
  525. package/esm/util/registry.js.map +1 -1
  526. package/esm/util/registry.test.d.ts +2 -0
  527. package/esm/util/registry.test.d.ts.map +1 -0
  528. package/esm/util/registry.test.js +169 -0
  529. package/esm/util/registry.test.js.map +1 -0
  530. package/esm/util/resource-validators.d.ts +16 -0
  531. package/esm/util/resource-validators.d.ts.map +1 -0
  532. package/esm/util/resource-validators.js +30 -0
  533. package/esm/util/resource-validators.js.map +1 -0
  534. package/esm/util/tool-caller.d.ts +2 -2
  535. package/esm/util/tool-caller.d.ts.map +1 -1
  536. package/esm/util/tool-caller.js +12 -4
  537. package/esm/util/tool-caller.js.map +1 -1
  538. package/package.json +30 -11
  539. package/dist/__tests__/util/validate-zod-schema.test.d.ts +0 -2
  540. package/dist/__tests__/util/validate-zod-schema.test.d.ts.map +0 -1
  541. package/dist/__tests__/util/validate-zod-schema.test.js +0 -96
  542. package/dist/__tests__/util/validate-zod-schema.test.js.map +0 -1
  543. package/dist/context-helpers/__tests__/context-helpers-provider.test.d.ts.map +0 -1
  544. package/dist/context-helpers/__tests__/context-helpers-provider.test.js.map +0 -1
  545. package/dist/context-helpers/__tests__/context-helpers.test.d.ts.map +0 -1
  546. package/dist/context-helpers/__tests__/context-helpers.test.js.map +0 -1
  547. package/dist/hooks/__tests__/use-component-state.test.d.ts.map +0 -1
  548. package/dist/hooks/__tests__/use-component-state.test.js.map +0 -1
  549. package/dist/hooks/__tests__/use-message-images.test.d.ts.map +0 -1
  550. package/dist/hooks/__tests__/use-message-images.test.js.map +0 -1
  551. package/dist/hooks/__tests__/use-suggestions.test.d.ts.map +0 -1
  552. package/dist/hooks/__tests__/use-suggestions.test.js.map +0 -1
  553. package/dist/hooks/__tests__/use-tambo-stream-status.test.d.ts.map +0 -1
  554. package/dist/hooks/__tests__/use-tambo-stream-status.test.js.map +0 -1
  555. package/dist/hooks/__tests__/use-tambo-threads.test.d.ts.map +0 -1
  556. package/dist/hooks/__tests__/use-tambo-threads.test.js.map +0 -1
  557. package/dist/mcp/__tests__/elicitation.test.d.ts.map +0 -1
  558. package/dist/mcp/__tests__/elicitation.test.js.map +0 -1
  559. package/dist/mcp/__tests__/mcp-client.test.d.ts.map +0 -1
  560. package/dist/mcp/__tests__/mcp-client.test.js.map +0 -1
  561. package/dist/mcp/__tests__/mcp-hooks.test.d.ts.map +0 -1
  562. package/dist/mcp/__tests__/mcp-hooks.test.js.map +0 -1
  563. package/dist/mcp/__tests__/tambo-mcp-provider.test.d.ts.map +0 -1
  564. package/dist/mcp/__tests__/tambo-mcp-provider.test.js.map +0 -1
  565. package/dist/mcp/__tests__/use-mcp-servers.test.d.ts.map +0 -1
  566. package/dist/mcp/__tests__/use-mcp-servers.test.js.map +0 -1
  567. package/dist/providers/__tests__/tambo-context-attachment-provider.test.d.ts.map +0 -1
  568. package/dist/providers/__tests__/tambo-context-attachment-provider.test.js.map +0 -1
  569. package/dist/providers/__tests__/tambo-context-helpers-provider.test.d.ts.map +0 -1
  570. package/dist/providers/__tests__/tambo-context-helpers-provider.test.js.map +0 -1
  571. package/dist/providers/__tests__/tambo-interactable-provider-partial-updates.test.d.ts.map +0 -1
  572. package/dist/providers/__tests__/tambo-interactable-provider-partial-updates.test.js.map +0 -1
  573. package/dist/providers/__tests__/tambo-interactables-additional-context-edge-cases.test.d.ts.map +0 -1
  574. package/dist/providers/__tests__/tambo-interactables-additional-context-edge-cases.test.js.map +0 -1
  575. package/dist/providers/__tests__/tambo-interactables-additional-context.test.d.ts.map +0 -1
  576. package/dist/providers/__tests__/tambo-interactables-additional-context.test.js.map +0 -1
  577. package/dist/providers/__tests__/tambo-prop-stream-provider.test.d.ts.map +0 -1
  578. package/dist/providers/__tests__/tambo-prop-stream-provider.test.js.map +0 -1
  579. package/dist/providers/__tests__/tambo-registry-provider.test.d.ts.map +0 -1
  580. package/dist/providers/__tests__/tambo-registry-provider.test.js.map +0 -1
  581. package/dist/providers/__tests__/tambo-stubs.test.d.ts.map +0 -1
  582. package/dist/providers/__tests__/tambo-stubs.test.js.map +0 -1
  583. package/dist/providers/__tests__/tambo-thread-provider-initial-messages.test.d.ts.map +0 -1
  584. package/dist/providers/__tests__/tambo-thread-provider-initial-messages.test.js.map +0 -1
  585. package/dist/providers/__tests__/tambo-thread-provider.test.d.ts.map +0 -1
  586. package/dist/providers/__tests__/tambo-thread-provider.test.js.map +0 -1
  587. package/dist/providers/hoc/with-tambo-interactable.d.ts.map +0 -1
  588. package/dist/providers/hoc/with-tambo-interactable.js.map +0 -1
  589. package/dist/providers/hooks/__tests__/use-tambo-session-token.test.d.ts.map +0 -1
  590. package/dist/providers/hooks/__tests__/use-tambo-session-token.test.js.map +0 -1
  591. package/dist/util/__tests__/content-parts.test.d.ts.map +0 -1
  592. package/dist/util/__tests__/content-parts.test.js.map +0 -1
  593. package/dist/util/__tests__/message-builder.test.d.ts.map +0 -1
  594. package/dist/util/__tests__/message-builder.test.js +0 -191
  595. package/dist/util/__tests__/message-builder.test.js.map +0 -1
  596. package/dist/util/validate-zod-schema.d.ts +0 -10
  597. package/dist/util/validate-zod-schema.d.ts.map +0 -1
  598. package/dist/util/validate-zod-schema.js +0 -100
  599. package/dist/util/validate-zod-schema.js.map +0 -1
  600. package/esm/__tests__/util/validate-zod-schema.test.d.ts +0 -2
  601. package/esm/__tests__/util/validate-zod-schema.test.d.ts.map +0 -1
  602. package/esm/__tests__/util/validate-zod-schema.test.js +0 -94
  603. package/esm/__tests__/util/validate-zod-schema.test.js.map +0 -1
  604. package/esm/context-helpers/__tests__/context-helpers-provider.test.d.ts.map +0 -1
  605. package/esm/context-helpers/__tests__/context-helpers-provider.test.js.map +0 -1
  606. package/esm/context-helpers/__tests__/context-helpers.test.d.ts.map +0 -1
  607. package/esm/context-helpers/__tests__/context-helpers.test.js.map +0 -1
  608. package/esm/hooks/__tests__/use-component-state.test.d.ts.map +0 -1
  609. package/esm/hooks/__tests__/use-component-state.test.js.map +0 -1
  610. package/esm/hooks/__tests__/use-message-images.test.d.ts.map +0 -1
  611. package/esm/hooks/__tests__/use-message-images.test.js.map +0 -1
  612. package/esm/hooks/__tests__/use-suggestions.test.d.ts.map +0 -1
  613. package/esm/hooks/__tests__/use-suggestions.test.js.map +0 -1
  614. package/esm/hooks/__tests__/use-tambo-stream-status.test.d.ts.map +0 -1
  615. package/esm/hooks/__tests__/use-tambo-stream-status.test.js.map +0 -1
  616. package/esm/hooks/__tests__/use-tambo-threads.test.d.ts.map +0 -1
  617. package/esm/hooks/__tests__/use-tambo-threads.test.js.map +0 -1
  618. package/esm/mcp/__tests__/elicitation.test.d.ts.map +0 -1
  619. package/esm/mcp/__tests__/elicitation.test.js.map +0 -1
  620. package/esm/mcp/__tests__/mcp-client.test.d.ts.map +0 -1
  621. package/esm/mcp/__tests__/mcp-client.test.js.map +0 -1
  622. package/esm/mcp/__tests__/mcp-hooks.test.d.ts.map +0 -1
  623. package/esm/mcp/__tests__/mcp-hooks.test.js.map +0 -1
  624. package/esm/mcp/__tests__/tambo-mcp-provider.test.d.ts.map +0 -1
  625. package/esm/mcp/__tests__/tambo-mcp-provider.test.js.map +0 -1
  626. package/esm/mcp/__tests__/use-mcp-servers.test.d.ts.map +0 -1
  627. package/esm/mcp/__tests__/use-mcp-servers.test.js.map +0 -1
  628. package/esm/providers/__tests__/tambo-context-attachment-provider.test.d.ts.map +0 -1
  629. package/esm/providers/__tests__/tambo-context-attachment-provider.test.js.map +0 -1
  630. package/esm/providers/__tests__/tambo-context-helpers-provider.test.d.ts.map +0 -1
  631. package/esm/providers/__tests__/tambo-context-helpers-provider.test.js.map +0 -1
  632. package/esm/providers/__tests__/tambo-interactable-provider-partial-updates.test.d.ts.map +0 -1
  633. package/esm/providers/__tests__/tambo-interactable-provider-partial-updates.test.js.map +0 -1
  634. package/esm/providers/__tests__/tambo-interactables-additional-context-edge-cases.test.d.ts.map +0 -1
  635. package/esm/providers/__tests__/tambo-interactables-additional-context-edge-cases.test.js.map +0 -1
  636. package/esm/providers/__tests__/tambo-interactables-additional-context.test.d.ts.map +0 -1
  637. package/esm/providers/__tests__/tambo-interactables-additional-context.test.js.map +0 -1
  638. package/esm/providers/__tests__/tambo-prop-stream-provider.test.d.ts.map +0 -1
  639. package/esm/providers/__tests__/tambo-prop-stream-provider.test.js.map +0 -1
  640. package/esm/providers/__tests__/tambo-registry-provider.test.d.ts.map +0 -1
  641. package/esm/providers/__tests__/tambo-registry-provider.test.js.map +0 -1
  642. package/esm/providers/__tests__/tambo-stubs.test.d.ts.map +0 -1
  643. package/esm/providers/__tests__/tambo-stubs.test.js.map +0 -1
  644. package/esm/providers/__tests__/tambo-thread-provider-initial-messages.test.d.ts.map +0 -1
  645. package/esm/providers/__tests__/tambo-thread-provider-initial-messages.test.js.map +0 -1
  646. package/esm/providers/__tests__/tambo-thread-provider.test.d.ts.map +0 -1
  647. package/esm/providers/__tests__/tambo-thread-provider.test.js.map +0 -1
  648. package/esm/providers/hoc/with-tambo-interactable.d.ts.map +0 -1
  649. package/esm/providers/hoc/with-tambo-interactable.js.map +0 -1
  650. package/esm/providers/hooks/__tests__/use-tambo-session-token.test.d.ts.map +0 -1
  651. package/esm/providers/hooks/__tests__/use-tambo-session-token.test.js.map +0 -1
  652. package/esm/util/__tests__/content-parts.test.d.ts.map +0 -1
  653. package/esm/util/__tests__/content-parts.test.js.map +0 -1
  654. package/esm/util/__tests__/message-builder.test.d.ts.map +0 -1
  655. package/esm/util/__tests__/message-builder.test.js +0 -189
  656. package/esm/util/__tests__/message-builder.test.js.map +0 -1
  657. package/esm/util/validate-zod-schema.d.ts +0 -10
  658. package/esm/util/validate-zod-schema.d.ts.map +0 -1
  659. package/esm/util/validate-zod-schema.js +0 -97
  660. package/esm/util/validate-zod-schema.js.map +0 -1
  661. /package/dist/context-helpers/{__tests__/context-helpers-provider.test.d.ts → context-helpers-provider.test.d.ts} +0 -0
  662. /package/dist/context-helpers/{__tests__/context-helpers.test.d.ts → context-helpers.test.d.ts} +0 -0
  663. /package/dist/hooks/{__tests__/use-component-state.test.d.ts → use-component-state.test.d.ts} +0 -0
  664. /package/dist/hooks/{__tests__/use-message-images.test.d.ts → use-message-images.test.d.ts} +0 -0
  665. /package/dist/hooks/{__tests__/use-suggestions.test.d.ts → use-suggestions.test.d.ts} +0 -0
  666. /package/dist/hooks/{__tests__/use-tambo-stream-status.test.d.ts → use-tambo-stream-status.test.d.ts} +0 -0
  667. /package/dist/hooks/{__tests__/use-tambo-threads.test.d.ts → use-tambo-threads.test.d.ts} +0 -0
  668. /package/dist/mcp/{__tests__/elicitation.test.d.ts → elicitation.test.d.ts} +0 -0
  669. /package/dist/mcp/{__tests__/mcp-client.test.d.ts → mcp-client.test.d.ts} +0 -0
  670. /package/dist/mcp/{__tests__/mcp-hooks.test.d.ts → mcp-hooks.test.d.ts} +0 -0
  671. /package/dist/mcp/{__tests__/tambo-mcp-provider.test.d.ts → tambo-mcp-provider.test.d.ts} +0 -0
  672. /package/dist/mcp/{__tests__/use-mcp-servers.test.d.ts → use-mcp-servers.test.d.ts} +0 -0
  673. /package/dist/providers/hooks/{__tests__/use-tambo-session-token.test.d.ts → use-tambo-session-token.test.d.ts} +0 -0
  674. /package/dist/providers/{__tests__/tambo-context-attachment-provider.test.d.ts → tambo-context-attachment-provider.test.d.ts} +0 -0
  675. /package/dist/providers/{__tests__/tambo-context-helpers-provider.test.d.ts → tambo-context-helpers-provider.test.d.ts} +0 -0
  676. /package/dist/providers/{__tests__/tambo-interactable-provider-partial-updates.test.d.ts → tambo-interactable-provider-partial-updates.test.d.ts} +0 -0
  677. /package/dist/providers/{__tests__/tambo-interactables-additional-context-edge-cases.test.d.ts → tambo-interactables-additional-context-edge-cases.test.d.ts} +0 -0
  678. /package/dist/providers/{__tests__/tambo-interactables-additional-context.test.d.ts → tambo-interactables-additional-context.test.d.ts} +0 -0
  679. /package/dist/providers/{__tests__/tambo-prop-stream-provider.test.d.ts → tambo-prop-stream-provider.test.d.ts} +0 -0
  680. /package/dist/providers/{__tests__/tambo-registry-provider.test.d.ts → tambo-registry-provider.test.d.ts} +0 -0
  681. /package/dist/providers/{__tests__/tambo-stubs.test.d.ts → tambo-stubs.test.d.ts} +0 -0
  682. /package/dist/providers/{__tests__/tambo-thread-provider-initial-messages.test.d.ts → tambo-thread-provider-initial-messages.test.d.ts} +0 -0
  683. /package/dist/providers/{__tests__/tambo-thread-provider.test.d.ts → tambo-thread-provider.test.d.ts} +0 -0
  684. /package/dist/util/{__tests__/content-parts.test.d.ts → content-parts.test.d.ts} +0 -0
  685. /package/dist/util/{__tests__/message-builder.test.d.ts → message-builder.test.d.ts} +0 -0
  686. /package/esm/context-helpers/{__tests__/context-helpers-provider.test.d.ts → context-helpers-provider.test.d.ts} +0 -0
  687. /package/esm/context-helpers/{__tests__/context-helpers.test.d.ts → context-helpers.test.d.ts} +0 -0
  688. /package/esm/hooks/{__tests__/use-component-state.test.d.ts → use-component-state.test.d.ts} +0 -0
  689. /package/esm/hooks/{__tests__/use-message-images.test.d.ts → use-message-images.test.d.ts} +0 -0
  690. /package/esm/hooks/{__tests__/use-suggestions.test.d.ts → use-suggestions.test.d.ts} +0 -0
  691. /package/esm/hooks/{__tests__/use-tambo-stream-status.test.d.ts → use-tambo-stream-status.test.d.ts} +0 -0
  692. /package/esm/hooks/{__tests__/use-tambo-threads.test.d.ts → use-tambo-threads.test.d.ts} +0 -0
  693. /package/esm/mcp/{__tests__/elicitation.test.d.ts → elicitation.test.d.ts} +0 -0
  694. /package/esm/mcp/{__tests__/mcp-client.test.d.ts → mcp-client.test.d.ts} +0 -0
  695. /package/esm/mcp/{__tests__/mcp-hooks.test.d.ts → mcp-hooks.test.d.ts} +0 -0
  696. /package/esm/mcp/{__tests__/tambo-mcp-provider.test.d.ts → tambo-mcp-provider.test.d.ts} +0 -0
  697. /package/esm/mcp/{__tests__/use-mcp-servers.test.d.ts → use-mcp-servers.test.d.ts} +0 -0
  698. /package/esm/providers/hooks/{__tests__/use-tambo-session-token.test.d.ts → use-tambo-session-token.test.d.ts} +0 -0
  699. /package/esm/providers/{__tests__/tambo-context-attachment-provider.test.d.ts → tambo-context-attachment-provider.test.d.ts} +0 -0
  700. /package/esm/providers/{__tests__/tambo-context-helpers-provider.test.d.ts → tambo-context-helpers-provider.test.d.ts} +0 -0
  701. /package/esm/providers/{__tests__/tambo-interactable-provider-partial-updates.test.d.ts → tambo-interactable-provider-partial-updates.test.d.ts} +0 -0
  702. /package/esm/providers/{__tests__/tambo-interactables-additional-context-edge-cases.test.d.ts → tambo-interactables-additional-context-edge-cases.test.d.ts} +0 -0
  703. /package/esm/providers/{__tests__/tambo-interactables-additional-context.test.d.ts → tambo-interactables-additional-context.test.d.ts} +0 -0
  704. /package/esm/providers/{__tests__/tambo-prop-stream-provider.test.d.ts → tambo-prop-stream-provider.test.d.ts} +0 -0
  705. /package/esm/providers/{__tests__/tambo-registry-provider.test.d.ts → tambo-registry-provider.test.d.ts} +0 -0
  706. /package/esm/providers/{__tests__/tambo-stubs.test.d.ts → tambo-stubs.test.d.ts} +0 -0
  707. /package/esm/providers/{__tests__/tambo-thread-provider-initial-messages.test.d.ts → tambo-thread-provider-initial-messages.test.d.ts} +0 -0
  708. /package/esm/providers/{__tests__/tambo-thread-provider.test.d.ts → tambo-thread-provider.test.d.ts} +0 -0
  709. /package/esm/util/{__tests__/content-parts.test.d.ts → content-parts.test.d.ts} +0 -0
  710. /package/esm/util/{__tests__/message-builder.test.d.ts → message-builder.test.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tambo-context-attachment-provider.test.js","sourceRoot":"","sources":["../../src/providers/tambo-context-attachment-provider.test.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Suggestion } from \"@tambo-ai/typescript-sdk/resources/beta/threads/suggestions\";\nimport { act, renderHook, waitFor } from \"@testing-library/react\";\nimport React from \"react\";\nimport {\n TamboContextAttachmentProvider,\n useTamboContextAttachment,\n type ContextAttachment,\n type ContextHelperData,\n} from \"./tambo-context-attachment-provider\";\nimport {\n TamboContextHelpersProvider,\n useTamboContextHelpers,\n} from \"./tambo-context-helpers-provider\";\n\n/**\n * Test suite for TamboContextAttachmentProvider\n *\n * Tests the context attachment feature which allows:\n * - Visual context badges above message input\n * - Automatic context helper registration/unregistration\n * - Custom suggestions that override auto-generated ones\n * - Dynamic context data customization via getContextHelperData\n */\ndescribe(\"TamboContextAttachmentProvider\", () => {\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n /**\n * Base wrapper with both TamboContextAttachmentProvider and TamboContextHelpersProvider\n * since context attachments need access to context helpers API\n * @param getContextHelperData - Optional custom function to get context helper data\n * @returns A React component that wraps children with the necessary providers\n */\n const createWrapper = (\n getContextHelperData?: (\n context: ContextAttachment,\n ) => Promise<ContextHelperData> | ContextHelperData,\n ) => {\n const Wrapper = ({ children }: { children: React.ReactNode }) => (\n <TamboContextHelpersProvider>\n <TamboContextAttachmentProvider\n getContextHelperData={getContextHelperData}\n >\n {children}\n </TamboContextAttachmentProvider>\n </TamboContextHelpersProvider>\n );\n Wrapper.displayName = \"TestWrapper\";\n return Wrapper;\n };\n\n describe(\"Hook Access\", () => {\n /**\n * Hook should provide all expected API functions when used within provider\n */\n it(\"should provide context attachment API functions\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n expect(result.current).toHaveProperty(\"attachments\");\n expect(result.current).toHaveProperty(\"addContextAttachment\");\n expect(result.current).toHaveProperty(\"removeContextAttachment\");\n expect(result.current).toHaveProperty(\"clearContextAttachments\");\n expect(result.current).toHaveProperty(\"customSuggestions\");\n expect(result.current).toHaveProperty(\"setCustomSuggestions\");\n });\n\n /**\n * Hook should throw error when used outside of provider\n */\n it(\"should throw error when used outside provider\", () => {\n // Suppress console.error for this test\n const consoleErrorSpy = jest\n .spyOn(console, \"error\")\n .mockImplementation(() => {});\n\n expect(() => {\n renderHook(() => useTamboContextAttachment());\n }).toThrow(\n \"useTamboContextAttachment must be used within a TamboContextAttachmentProvider\",\n );\n\n consoleErrorSpy.mockRestore();\n });\n });\n\n describe(\"Adding Context Attachments\", () => {\n /**\n * Should add a context attachment with auto-generated ID\n */\n it(\"should add a context attachment\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n act(() => {\n result.current.addContextAttachment({\n name: \"Button.tsx\",\n metadata: { filePath: \"/src/Button.tsx\" },\n });\n });\n\n expect(result.current.attachments).toHaveLength(1);\n expect(result.current.attachments[0]).toMatchObject({\n name: \"Button.tsx\",\n metadata: { filePath: \"/src/Button.tsx\" },\n });\n expect(result.current.attachments[0].id).toBeDefined();\n });\n\n /**\n * Should add multiple different attachments\n */\n it(\"should add multiple context attachments\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n act(() => {\n result.current.addContextAttachment({\n name: \"Button.tsx\",\n });\n result.current.addContextAttachment({\n name: \"Card.tsx\",\n });\n });\n\n expect(result.current.attachments).toHaveLength(2);\n expect(result.current.attachments[0].name).toBe(\"Button.tsx\");\n expect(result.current.attachments[1].name).toBe(\"Card.tsx\");\n });\n\n /**\n * Should prevent duplicates with the same name\n */\n it(\"should prevent duplicate attachments with same name\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n act(() => {\n result.current.addContextAttachment({\n name: \"Button.tsx\",\n });\n result.current.addContextAttachment({\n name: \"Button.tsx\",\n });\n });\n\n expect(result.current.attachments).toHaveLength(1);\n });\n\n /**\n * Should support optional icon property\n */\n it(\"should support icon property\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n const icon = <span>📄</span>;\n\n act(() => {\n result.current.addContextAttachment({\n name: \"File.txt\",\n icon,\n });\n });\n\n expect(result.current.attachments[0].icon).toBe(icon);\n });\n });\n\n describe(\"Removing Context Attachments\", () => {\n /**\n * Should remove a specific attachment by ID\n */\n it(\"should remove context attachment by ID\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n act(() => {\n result.current.addContextAttachment({\n name: \"Button.tsx\",\n });\n });\n\n expect(result.current.attachments).toHaveLength(1);\n const attachmentId = result.current.attachments[0].id;\n\n act(() => {\n result.current.removeContextAttachment(attachmentId);\n });\n\n expect(result.current.attachments).toHaveLength(0);\n });\n\n /**\n * Should only remove the specified attachment when multiple exist\n */\n it(\"should only remove specified attachment\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n act(() => {\n result.current.addContextAttachment({ name: \"First.tsx\" });\n result.current.addContextAttachment({ name: \"Second.tsx\" });\n });\n\n expect(result.current.attachments).toHaveLength(2);\n const firstId = result.current.attachments[0].id;\n\n act(() => {\n result.current.removeContextAttachment(firstId);\n });\n\n expect(result.current.attachments).toHaveLength(1);\n expect(result.current.attachments[0].name).toBe(\"Second.tsx\");\n });\n\n /**\n * Should handle removing non-existent attachment gracefully\n */\n it(\"should handle removing non-existent attachment gracefully\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n expect(() => {\n act(() => {\n result.current.removeContextAttachment(\"non-existent-id\");\n });\n }).not.toThrow();\n });\n });\n\n describe(\"Clearing All Attachments\", () => {\n /**\n * Should clear all attachments at once\n */\n it(\"should clear all context attachments\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n act(() => {\n result.current.addContextAttachment({ name: \"First.tsx\" });\n result.current.addContextAttachment({ name: \"Second.tsx\" });\n result.current.addContextAttachment({ name: \"Third.tsx\" });\n });\n\n expect(result.current.attachments).toHaveLength(3);\n\n act(() => {\n result.current.clearContextAttachments();\n });\n\n expect(result.current.attachments).toHaveLength(0);\n });\n\n /**\n * Should handle clearing when no attachments exist\n */\n it(\"should handle clearing when no attachments exist\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n expect(() => {\n act(() => {\n result.current.clearContextAttachments();\n });\n }).not.toThrow();\n\n expect(result.current.attachments).toHaveLength(0);\n });\n });\n\n describe(\"Context Helpers Integration\", () => {\n /**\n * Should automatically register context helpers when attachments are added\n */\n it(\"should register context helpers for attachments\", async () => {\n const wrapper = ({ children }: { children: React.ReactNode }) => (\n <TamboContextHelpersProvider>\n <TamboContextAttachmentProvider>\n {children}\n </TamboContextAttachmentProvider>\n </TamboContextHelpersProvider>\n );\n\n const { result } = renderHook(\n () => ({\n attachment: useTamboContextAttachment(),\n helpers: useTamboContextHelpers(),\n }),\n { wrapper },\n );\n\n // Add attachment\n act(() => {\n result.current.attachment.addContextAttachment({\n name: \"Button.tsx\",\n metadata: { filePath: \"/src/Button.tsx\" },\n });\n });\n\n // Wait for effect to run\n await waitFor(async () => {\n const contexts = await result.current.helpers.getAdditionalContext();\n expect(contexts.length).toBeGreaterThan(0);\n });\n\n const contexts = await result.current.helpers.getAdditionalContext();\n const attachmentContext = contexts.find((c) =>\n c.name.includes(result.current.attachment.attachments[0].id),\n );\n\n expect(attachmentContext).toBeDefined();\n expect(attachmentContext?.context).toHaveProperty(\"selectedComponent\");\n });\n\n /**\n * Should unregister context helpers when attachments are removed\n */\n it(\"should unregister context helpers when attachments are removed\", async () => {\n const wrapper = ({ children }: { children: React.ReactNode }) => (\n <TamboContextHelpersProvider>\n <TamboContextAttachmentProvider>\n {children}\n </TamboContextAttachmentProvider>\n </TamboContextHelpersProvider>\n );\n\n const { result } = renderHook(\n () => ({\n attachment: useTamboContextAttachment(),\n helpers: useTamboContextHelpers(),\n }),\n { wrapper },\n );\n\n // Add attachment\n act(() => {\n result.current.attachment.addContextAttachment({\n name: \"Button.tsx\",\n });\n });\n\n // Wait for context helper to be registered\n await waitFor(async () => {\n const contexts = await result.current.helpers.getAdditionalContext();\n expect(contexts.length).toBeGreaterThan(0);\n });\n\n const initialContexts =\n await result.current.helpers.getAdditionalContext();\n const initialCount = initialContexts.length;\n const attachmentId = result.current.attachment.attachments[0].id;\n\n // Remove attachment\n act(() => {\n result.current.attachment.removeContextAttachment(attachmentId);\n });\n\n // Wait for context helper to be unregistered\n await waitFor(async () => {\n const contexts = await result.current.helpers.getAdditionalContext();\n expect(contexts.length).toBeLessThan(initialCount);\n });\n });\n\n /**\n * Should use default context data structure when no custom function provided\n */\n it(\"should use default context data structure\", async () => {\n const wrapper = ({ children }: { children: React.ReactNode }) => (\n <TamboContextHelpersProvider>\n <TamboContextAttachmentProvider>\n {children}\n </TamboContextAttachmentProvider>\n </TamboContextHelpersProvider>\n );\n\n const { result } = renderHook(\n () => ({\n attachment: useTamboContextAttachment(),\n helpers: useTamboContextHelpers(),\n }),\n { wrapper },\n );\n\n act(() => {\n result.current.attachment.addContextAttachment({\n name: \"Button.tsx\",\n metadata: { filePath: \"/src/Button.tsx\", type: \"component\" },\n });\n });\n\n await waitFor(async () => {\n const contexts = await result.current.helpers.getAdditionalContext();\n expect(contexts.length).toBeGreaterThan(0);\n });\n\n const contexts = await result.current.helpers.getAdditionalContext();\n const attachmentContext = contexts.find((c) =>\n c.name.includes(result.current.attachment.attachments[0].id),\n );\n\n expect(attachmentContext?.context).toMatchObject({\n selectedComponent: {\n name: \"Button.tsx\",\n instruction: expect.stringContaining(\"Tambo interactable component\"),\n filePath: \"/src/Button.tsx\",\n type: \"component\",\n },\n });\n });\n\n /**\n * Should use custom getContextHelperData function when provided\n */\n it(\"should use custom getContextHelperData function\", async () => {\n const customGetContextHelperData = jest.fn(\n async (context: ContextAttachment) => ({\n selectedFile: {\n name: context.name,\n path: context.metadata?.filePath,\n customField: \"custom value\",\n },\n }),\n );\n\n const wrapper = ({ children }: { children: React.ReactNode }) => (\n <TamboContextHelpersProvider>\n <TamboContextAttachmentProvider\n getContextHelperData={customGetContextHelperData}\n >\n {children}\n </TamboContextAttachmentProvider>\n </TamboContextHelpersProvider>\n );\n\n const { result } = renderHook(\n () => ({\n attachment: useTamboContextAttachment(),\n helpers: useTamboContextHelpers(),\n }),\n { wrapper },\n );\n\n act(() => {\n result.current.attachment.addContextAttachment({\n name: \"Button.tsx\",\n metadata: { filePath: \"/src/Button.tsx\" },\n });\n });\n\n // Wait for context helper to be registered and called\n await waitFor(\n async () => {\n const contexts = await result.current.helpers.getAdditionalContext();\n expect(contexts.length).toBeGreaterThan(0);\n },\n { timeout: 2000 },\n );\n\n expect(customGetContextHelperData).toHaveBeenCalled();\n\n const contexts = await result.current.helpers.getAdditionalContext();\n const attachmentContext = contexts.find((c) =>\n c.name.includes(result.current.attachment.attachments[0].id),\n );\n\n expect(attachmentContext?.context).toEqual({\n selectedFile: {\n name: \"Button.tsx\",\n path: \"/src/Button.tsx\",\n customField: \"custom value\",\n },\n });\n });\n\n /**\n * Should update context helpers when getContextHelperData function changes\n * This tests the bug fix for stale closure issue\n */\n it(\"should update existing context helpers when getContextHelperData changes\", async () => {\n // Create a wrapper component with state to manage the function\n const TestWrapper = ({ children }: { children: React.ReactNode }) => {\n const [version, setVersion] = React.useState(\"v1\");\n\n const getContextHelperData = React.useCallback(\n async (context: ContextAttachment) => ({\n version,\n name: context.name,\n }),\n [version],\n );\n\n // Expose setVersion for the test\n (TestWrapper as any).setVersion = setVersion;\n\n return (\n <TamboContextHelpersProvider>\n <TamboContextAttachmentProvider\n getContextHelperData={getContextHelperData}\n >\n {children}\n </TamboContextAttachmentProvider>\n </TamboContextHelpersProvider>\n );\n };\n\n const { result } = renderHook(\n () => ({\n attachment: useTamboContextAttachment(),\n helpers: useTamboContextHelpers(),\n }),\n { wrapper: TestWrapper },\n );\n\n // Add attachment with first version\n act(() => {\n result.current.attachment.addContextAttachment({\n name: \"Button.tsx\",\n });\n });\n\n // Wait for context helper to be registered\n await waitFor(\n async () => {\n const contexts = await result.current.helpers.getAdditionalContext();\n expect(contexts.length).toBeGreaterThan(0);\n },\n { timeout: 2000 },\n );\n\n // Verify v1 context\n let contexts = await result.current.helpers.getAdditionalContext();\n let attachmentContext = contexts.find((c) =>\n c.name.includes(result.current.attachment.attachments[0].id),\n );\n expect(attachmentContext?.context).toMatchObject({ version: \"v1\" });\n\n // Change the version which will trigger a new getContextHelperData function\n act(() => {\n (TestWrapper as any).setVersion(\"v2\");\n });\n\n // Wait for context to update to v2\n await waitFor(\n async () => {\n const contexts = await result.current.helpers.getAdditionalContext();\n const context = contexts.find((c) =>\n c.name.includes(result.current.attachment.attachments[0].id),\n );\n return context?.context.version === \"v2\";\n },\n { timeout: 2000 },\n );\n\n // Verify v2 context - should be updated, not stale\n contexts = await result.current.helpers.getAdditionalContext();\n attachmentContext = contexts.find((c) =>\n c.name.includes(result.current.attachment.attachments[0].id),\n );\n expect(attachmentContext?.context).toMatchObject({ version: \"v2\" });\n });\n\n /**\n * Should handle errors in getContextHelperData gracefully\n */\n it(\"should handle errors in getContextHelperData gracefully\", async () => {\n const consoleErrorSpy = jest\n .spyOn(console, \"error\")\n .mockImplementation(() => {});\n\n const errorGetData = jest.fn(async () => {\n throw new Error(\"Custom data error\");\n });\n\n const wrapper = ({ children }: { children: React.ReactNode }) => (\n <TamboContextHelpersProvider>\n <TamboContextAttachmentProvider getContextHelperData={errorGetData}>\n {children}\n </TamboContextAttachmentProvider>\n </TamboContextHelpersProvider>\n );\n\n const { result } = renderHook(\n () => ({\n attachment: useTamboContextAttachment(),\n helpers: useTamboContextHelpers(),\n }),\n { wrapper },\n );\n\n act(() => {\n result.current.attachment.addContextAttachment({\n name: \"Button.tsx\",\n });\n });\n\n // Wait for effect to run and try to call the function\n await waitFor(\n () => {\n expect(result.current.attachment.attachments.length).toBeGreaterThan(\n 0,\n );\n },\n { timeout: 2000 },\n );\n\n // Try to get contexts, which will trigger the error\n await result.current.helpers.getAdditionalContext();\n\n expect(errorGetData).toHaveBeenCalled();\n expect(consoleErrorSpy).toHaveBeenCalled();\n\n consoleErrorSpy.mockRestore();\n });\n });\n\n describe(\"Custom Suggestions\", () => {\n /**\n * Should start with null custom suggestions\n */\n it(\"should initialize with null custom suggestions\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n expect(result.current.customSuggestions).toBeNull();\n });\n\n /**\n * Should set custom suggestions\n */\n it(\"should set custom suggestions\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n const suggestions: Suggestion[] = [\n {\n id: \"1\",\n title: \"Edit component\",\n detailedSuggestion: \"Modify the Button component\",\n messageId: \"\",\n },\n {\n id: \"2\",\n title: \"Add feature\",\n detailedSuggestion: \"Add a new feature\",\n messageId: \"\",\n },\n ];\n\n act(() => {\n result.current.setCustomSuggestions(suggestions);\n });\n\n expect(result.current.customSuggestions).toEqual(suggestions);\n });\n\n /**\n * Should clear custom suggestions by setting to null\n */\n it(\"should clear custom suggestions\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n const suggestions: Suggestion[] = [\n {\n id: \"1\",\n title: \"Test\",\n detailedSuggestion: \"Test suggestion\",\n messageId: \"\",\n },\n ];\n\n act(() => {\n result.current.setCustomSuggestions(suggestions);\n });\n\n expect(result.current.customSuggestions).toEqual(suggestions);\n\n act(() => {\n result.current.setCustomSuggestions(null);\n });\n\n expect(result.current.customSuggestions).toBeNull();\n });\n\n /**\n * Should update custom suggestions when changed\n */\n it(\"should update custom suggestions\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n const firstSuggestions: Suggestion[] = [\n {\n id: \"1\",\n title: \"First\",\n detailedSuggestion: \"First suggestion\",\n messageId: \"\",\n },\n ];\n\n const secondSuggestions: Suggestion[] = [\n {\n id: \"2\",\n title: \"Second\",\n detailedSuggestion: \"Second suggestion\",\n messageId: \"\",\n },\n ];\n\n act(() => {\n result.current.setCustomSuggestions(firstSuggestions);\n });\n\n expect(result.current.customSuggestions).toEqual(firstSuggestions);\n\n act(() => {\n result.current.setCustomSuggestions(secondSuggestions);\n });\n\n expect(result.current.customSuggestions).toEqual(secondSuggestions);\n });\n });\n\n describe(\"Combined Workflows\", () => {\n /**\n * Should handle adding attachment and setting custom suggestions together\n */\n it(\"should handle attachment and custom suggestions together\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n const suggestions: Suggestion[] = [\n {\n id: \"1\",\n title: \"Edit file\",\n detailedSuggestion: \"Edit this file\",\n messageId: \"\",\n },\n ];\n\n act(() => {\n result.current.addContextAttachment({\n name: \"Button.tsx\",\n metadata: { filePath: \"/src/Button.tsx\" },\n });\n result.current.setCustomSuggestions(suggestions);\n });\n\n expect(result.current.attachments).toHaveLength(1);\n expect(result.current.customSuggestions).toEqual(suggestions);\n });\n\n /**\n * Should clear suggestions when clearing attachments\n */\n it(\"should independently manage attachments and suggestions\", () => {\n const { result } = renderHook(() => useTamboContextAttachment(), {\n wrapper: createWrapper(),\n });\n\n const suggestions: Suggestion[] = [\n {\n id: \"1\",\n title: \"Test\",\n detailedSuggestion: \"Test suggestion\",\n messageId: \"\",\n },\n ];\n\n act(() => {\n result.current.addContextAttachment({ name: \"File.tsx\" });\n result.current.setCustomSuggestions(suggestions);\n });\n\n // Clear attachments\n act(() => {\n result.current.clearContextAttachments();\n });\n\n // Suggestions should remain\n expect(result.current.attachments).toHaveLength(0);\n expect(result.current.customSuggestions).toEqual(suggestions);\n\n // Can clear suggestions separately\n act(() => {\n result.current.setCustomSuggestions(null);\n });\n\n expect(result.current.customSuggestions).toBeNull();\n });\n });\n\n describe(\"Cleanup\", () => {\n /**\n * Should cleanup context helpers on unmount\n */\n it(\"should cleanup context helpers on unmount\", async () => {\n // Use a shared provider wrapper so context helpers persist\n const SharedWrapper = ({ children }: { children: React.ReactNode }) => (\n <TamboContextHelpersProvider>{children}</TamboContextHelpersProvider>\n );\n\n // First render with attachment provider\n const { result: attachmentResult, unmount } = renderHook(\n () => ({\n attachment: useTamboContextAttachment(),\n helpers: useTamboContextHelpers(),\n }),\n {\n wrapper: ({ children }) => (\n <SharedWrapper>\n <TamboContextAttachmentProvider>\n {children}\n </TamboContextAttachmentProvider>\n </SharedWrapper>\n ),\n },\n );\n\n // Add attachment\n act(() => {\n attachmentResult.current.attachment.addContextAttachment({\n name: \"Button.tsx\",\n });\n });\n\n const attachmentId =\n attachmentResult.current.attachment.attachments[0].id;\n\n // Wait for context helper to be registered\n await waitFor(async () => {\n const contexts =\n await attachmentResult.current.helpers.getAdditionalContext();\n const hasContext = contexts.some((c) => c.name.includes(attachmentId));\n expect(hasContext).toBe(true);\n });\n\n // Unmount the attachment provider\n unmount();\n\n // Create new hook to check cleanup\n const { result: helpersResult } = renderHook(\n () => useTamboContextHelpers(),\n { wrapper: SharedWrapper },\n );\n\n // Wait a bit for cleanup effect to run\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n const contexts = await helpersResult.current.getAdditionalContext();\n\n // Should not contain the attachment context after unmount\n const hasAttachmentContext = contexts.some((c) =>\n c.name.includes(attachmentId),\n );\n expect(hasAttachmentContext).toBe(false);\n });\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tambo-context-helpers-provider.test.d.ts","sourceRoot":"","sources":["../../src/providers/tambo-context-helpers-provider.test.tsx"],"names":[],"mappings":""}
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = require("@testing-library/react");
7
7
  const react_2 = __importDefault(require("react"));
8
- const context_helpers_1 = require("../../context-helpers");
9
- const tambo_context_helpers_provider_1 = require("../tambo-context-helpers-provider");
8
+ const context_helpers_1 = require("../context-helpers");
9
+ const tambo_context_helpers_provider_1 = require("./tambo-context-helpers-provider");
10
10
  /**
11
11
  * Test suite for TamboContextHelpersProvider (simplified API, registry-backed)
12
12
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tambo-context-helpers-provider.test.js","sourceRoot":"","sources":["../../src/providers/tambo-context-helpers-provider.test.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyD;AACzD,kDAA0B;AAC1B,wDAG4B;AAC5B,qFAG0C;AAE1C;;;;;;;;;;;GAWG;AACH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,2EAA2E;IAC3E,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAiC,EAAE,EAAE,CAAC,CAC/D,8BAAC,4DAA2B,QAAE,QAAQ,CAA+B,CACtE,CAAC;IAEF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC;;WAEG;QACH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;gBAC5D,OAAO;aACR,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH;;WAEG;QACH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;gBAC5D,OAAO;aACR,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH;;;WAGG;QACH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAiC,EAAE,EAAE,CAAC,CACnE,8BAAC,4DAA2B,IAC1B,cAAc,EAAE;oBACd,QAAQ,EAAE,0CAAwB;oBAClC,QAAQ,EAAE,0CAAwB;iBACnC,IAEA,QAAQ,CACmB,CAC/B,CAAC;YAEF,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;gBAC5D,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAE1C,kDAAkD;YAClD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpC,2DAA2D;QAC7D,CAAC,CAAC,CAAC;QAEH;;WAEG;QACH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,eAAe,GAAG,IAAI;iBACzB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;iBACvB,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEhC,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC,CAAC;YAEF,MAAM,aAAa,GAAG,CAAC,EAAE,QAAQ,EAAiC,EAAE,EAAE,CAAC,CACrE,8BAAC,4DAA2B,IAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IACvD,QAAQ,CACmB,CAC/B,CAAC;YAEF,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;gBAC5D,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAC1C,MAAM,CAAC,gBAAgB,CAAC,wCAAwC,CAAC,EACjE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAClB,CAAC;YACF,eAAe,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAChE,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;YAC5D,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,4DAA2B,IAC1B,cAAc,EAAE;oBACd,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;iBAC9C,IAEA,QAAQ,CACmB,CAC/B;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC7D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC;YAC9B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;YAC5D,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,4DAA2B,IAC1B,cAAc,EAAE;oBACd,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;iBACnD,IAEA,QAAQ,CACmB,CAC/B;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC7D,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACpE,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;YAC5D,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,4DAA2B,IAAC,cAAc,EAAE,EAAE,IAC5C,QAAQ,CACmB,CAC/B;SACF,CAAC,CAAC;QAEH,iBAAiB;QACjB,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEpE,IAAA,WAAG,EAAC,GAAG,EAAE;YACP,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC5D,OAAO,EAAE,IAAI;aACd,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC7D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC;YAC9B,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;YAC5D,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,4DAA2B,IAC1B,cAAc,EAAE;oBACd,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iBAC7C,IAEA,QAAQ,CACmB,CAC/B;SACF,CAAC,CAAC;QAEH,gBAAgB;QAChB,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC3D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAEtE,SAAS;QACT,IAAA,WAAG,EAAC,GAAG,EAAE;YACP,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;YAC5D,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,4DAA2B,IAC1B,cAAc,EAAE;oBACd,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBACtC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBACtC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,6BAA6B;iBACnD,IAEA,QAAQ,CACmB,CAC/B;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC7D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC;YAC9B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC;YAC9B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;YAC5D,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,4DAA2B,IAC1B,cAAc,EAAE;oBACd,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;oBAClC,WAAW,EAAE,KAAK,IAAI,EAAE;wBACtB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;wBACxD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;oBACzB,CAAC;iBACF,IAEA,QAAQ,CACmB,CAC/B;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC7D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC;YAC9B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC;YAC9B,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;YAC5D,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,4DAA2B,IAC1B,cAAc,EAAE;oBACd,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;iBAC7C,IAEA,QAAQ,CACmB,CAC/B;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC7D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC;YAC9B,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,eAAe,GAAG,IAAI;aACzB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;aACvB,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;YAC5D,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,4DAA2B,IAC1B,cAAc,EAAE;oBACd,WAAW,EAAE,KAAK,IAAI,EAAE;wBACtB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBACzC,CAAC;oBACD,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iBAC3C,IAEA,QAAQ,CACmB,CAC/B;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC7D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC;YAC9B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACvE,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAC1C,MAAM,CAAC,gBAAgB,CAAC,0CAA0C,CAAC,EACnE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAClB,CAAC;QACF,eAAe,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;YAC5D,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,4DAA2B,IAAC,cAAc,EAAE,EAAE,IAC5C,QAAQ,CACmB,CAC/B;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,EAAE;YACV,IAAA,WAAG,EAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAA,uDAAsB,GAAE,EAAE;YAC5D,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzB,8BAAC,4DAA2B,IAC1B,cAAc,EAAE;oBACd,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;iBAC7C,IAEA,QAAQ,CACmB,CAC/B;SACF,CAAC,CAAC;QAEH,yBAAyB;QACzB,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAC3D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC;YAC9B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5B,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAA,WAAG,EAAC,GAAG,EAAE;YACP,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACzD,OAAO,EAAE,IAAI;aACd,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC;YAC9B,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { act, renderHook } from \"@testing-library/react\";\nimport React from \"react\";\nimport {\n currentPageContextHelper,\n currentTimeContextHelper,\n} from \"../context-helpers\";\nimport {\n TamboContextHelpersProvider,\n useTamboContextHelpers,\n} from \"./tambo-context-helpers-provider\";\n\n/**\n * Test suite for TamboContextHelpersProvider (simplified API, registry-backed)\n *\n * The simplified API:\n * - Accepts a plain map of { key: () => any | null | undefined | Promise<any | null | undefined> }.\n * - The key becomes the context name sent to the model.\n * - Returning null/undefined from a helper skips inclusion.\n * - Prebuilt helpers are just functions (e.g., prebuiltUserTime, prebuiltUserPage).\n *\n * The hook is now registry-backed and safe to call outside a provider. When used\n * outside a provider, it proxies to a global registry and still works.\n */\ndescribe(\"TamboContextHelpersProvider\", () => {\n // Ensure registry is clean for each test to avoid cross-test contamination\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n // Base wrapper with no helpers provided\n const wrapper = ({ children }: { children: React.ReactNode }) => (\n <TamboContextHelpersProvider>{children}</TamboContextHelpersProvider>\n );\n\n describe(\"useTamboContextHelpers\", () => {\n /**\n * Verifies that the hook returns the expected API functions when used within a provider.\n */\n it(\"should provide context helpers functions (inside provider)\", () => {\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper,\n });\n expect(result.current).toHaveProperty(\"getAdditionalContext\");\n expect(result.current).toHaveProperty(\"getContextHelpers\");\n expect(result.current).toHaveProperty(\"addContextHelper\");\n expect(result.current).toHaveProperty(\"removeContextHelper\");\n });\n\n /**\n * With no helpers provided, no additional context should be returned.\n */\n it(\"should return no additional context when no helpers are provided\", async () => {\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper,\n });\n const contexts = await result.current.getAdditionalContext();\n expect(contexts).toHaveLength(0);\n });\n\n /**\n * When helpers are provided, getAdditionalContext should aggregate them.\n * Note: prebuiltUserPage may be null in non-browser envs, so we only assert userTime when present.\n */\n it(\"should get additional context when helpers are provided\", async () => {\n const withHelpers = ({ children }: { children: React.ReactNode }) => (\n <TamboContextHelpersProvider\n contextHelpers={{\n userTime: currentTimeContextHelper,\n userPage: currentPageContextHelper,\n }}\n >\n {children}\n </TamboContextHelpersProvider>\n );\n\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: withHelpers,\n });\n\n const contexts = await result.current.getAdditionalContext();\n const names = contexts.map((c) => c.name);\n\n // userTime should be present from prebuilt helper\n expect(names).toContain(\"userTime\");\n // userPage may be absent on server; do not assert strictly\n });\n\n /**\n * Errors thrown by helper functions should be caught and skipped, not crash the system.\n */\n it(\"should handle errors in context helper functions gracefully\", async () => {\n const consoleErrorSpy = jest\n .spyOn(console, \"error\")\n .mockImplementation(() => {});\n\n const badHelper = () => {\n throw new Error(\"Test error\");\n };\n\n const withBadHelper = ({ children }: { children: React.ReactNode }) => (\n <TamboContextHelpersProvider contextHelpers={{ badHelper }}>\n {children}\n </TamboContextHelpersProvider>\n );\n\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: withBadHelper,\n });\n\n const contexts = await result.current.getAdditionalContext();\n expect(contexts.length).toBe(0);\n expect(consoleErrorSpy).toHaveBeenCalledWith(\n expect.stringContaining(\"Error running context helper badHelper\"),\n expect.any(Error),\n );\n consoleErrorSpy.mockRestore();\n });\n });\n});\n\n/**\n * Test suite for Custom Context Helpers using the simplified API.\n *\n * Focuses on:\n * - Passing custom helpers via the provider prop.\n * - Overriding prebuilt helpers with custom implementations.\n * - Dynamic add/remove helper management at runtime.\n * - Supporting both sync and async helpers.\n * - Using the config key as the context name.\n * - Graceful error handling for custom helpers.\n */\ndescribe(\"Custom Context Helpers via contextHelpers config\", () => {\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n /**\n * Custom helpers can be added through the provider configuration.\n * The key becomes the context name and the function returns the raw value.\n */\n it(\"should accept custom helpers through contextHelpers config\", async () => {\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: ({ children }) => (\n <TamboContextHelpersProvider\n contextHelpers={{\n customData: async () => ({ custom: \"value\" }),\n }}\n >\n {children}\n </TamboContextHelpersProvider>\n ),\n });\n\n const contexts = await result.current.getAdditionalContext();\n expect(contexts).toContainEqual({\n name: \"customData\",\n context: { custom: \"value\" },\n });\n });\n\n /**\n * Built-in helpers can be overridden by providing a function under the same key.\n */\n it(\"should allow custom helpers to override built-in ones\", async () => {\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: ({ children }) => (\n <TamboContextHelpersProvider\n contextHelpers={{\n userTime: async () => ({ customTime: \"override\" }),\n }}\n >\n {children}\n </TamboContextHelpersProvider>\n ),\n });\n\n const contexts = await result.current.getAdditionalContext();\n const userTimeContext = contexts.find((c) => c.name === \"userTime\");\n expect(userTimeContext?.context).toEqual({ customTime: \"override\" });\n });\n\n /**\n * Helpers can be added dynamically at runtime via addContextHelper.\n */\n it(\"should handle dynamic addition of custom helpers\", async () => {\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: ({ children }) => (\n <TamboContextHelpersProvider contextHelpers={{}}>\n {children}\n </TamboContextHelpersProvider>\n ),\n });\n\n // Initially none\n expect(await result.current.getAdditionalContext()).toHaveLength(0);\n\n act(() => {\n result.current.addContextHelper(\"dynamicHelper\", async () => ({\n dynamic: true,\n }));\n });\n\n const contexts = await result.current.getAdditionalContext();\n expect(contexts).toContainEqual({\n name: \"dynamicHelper\",\n context: { dynamic: true },\n });\n });\n\n /**\n * Helpers can be removed dynamically via removeContextHelper.\n */\n it(\"should handle dynamic removal of context helpers\", async () => {\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: ({ children }) => (\n <TamboContextHelpersProvider\n contextHelpers={{\n customHelper: async () => ({ test: \"data\" }),\n }}\n >\n {children}\n </TamboContextHelpersProvider>\n ),\n });\n\n // Verify exists\n let contexts = await result.current.getAdditionalContext();\n expect(contexts.find((c) => c.name === \"customHelper\")).toBeDefined();\n\n // Remove\n act(() => {\n result.current.removeContextHelper(\"customHelper\");\n });\n\n // Verify removed\n contexts = await result.current.getAdditionalContext();\n expect(contexts.find((c) => c.name === \"customHelper\")).toBeUndefined();\n });\n\n /**\n * Multiple custom helpers should be supported; helpers returning null/undefined are skipped.\n */\n it(\"should handle multiple custom helpers\", async () => {\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: ({ children }) => (\n <TamboContextHelpersProvider\n contextHelpers={{\n helper1: async () => ({ data: \"one\" }),\n helper2: async () => ({ data: \"two\" }),\n helper3: () => null, // disabled by returning null\n }}\n >\n {children}\n </TamboContextHelpersProvider>\n ),\n });\n\n const contexts = await result.current.getAdditionalContext();\n expect(contexts).toContainEqual({\n name: \"helper1\",\n context: { data: \"one\" },\n });\n expect(contexts).toContainEqual({\n name: \"helper2\",\n context: { data: \"two\" },\n });\n expect(contexts.find((c) => c.name === \"helper3\")).toBeUndefined();\n });\n\n /**\n * Both synchronous and asynchronous helpers should be supported.\n */\n it(\"should handle sync and async custom helpers\", async () => {\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: ({ children }) => (\n <TamboContextHelpersProvider\n contextHelpers={{\n syncHelper: () => ({ sync: true }),\n asyncHelper: async () => {\n await new Promise((resolve) => setTimeout(resolve, 10));\n return { async: true };\n },\n }}\n >\n {children}\n </TamboContextHelpersProvider>\n ),\n });\n\n const contexts = await result.current.getAdditionalContext();\n expect(contexts).toContainEqual({\n name: \"syncHelper\",\n context: { sync: true },\n });\n expect(contexts).toContainEqual({\n name: \"asyncHelper\",\n context: { async: true },\n });\n });\n\n /**\n * The key used in the contextHelpers map becomes the context name.\n */\n it(\"should use key name as context name for custom helpers\", async () => {\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: ({ children }) => (\n <TamboContextHelpersProvider\n contextHelpers={{\n myCustomKey: async () => ({ value: \"test\" }),\n }}\n >\n {children}\n </TamboContextHelpersProvider>\n ),\n });\n\n const contexts = await result.current.getAdditionalContext();\n expect(contexts).toContainEqual({\n name: \"myCustomKey\",\n context: { value: \"test\" },\n });\n });\n\n /**\n * Errors thrown by custom helpers should be logged and skipped, not crash the system.\n */\n it(\"should handle errors in custom helpers gracefully\", async () => {\n const consoleErrorSpy = jest\n .spyOn(console, \"error\")\n .mockImplementation(() => {});\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: ({ children }) => (\n <TamboContextHelpersProvider\n contextHelpers={{\n errorHelper: async () => {\n throw new Error(\"Custom helper error\");\n },\n goodHelper: async () => ({ good: \"data\" }),\n }}\n >\n {children}\n </TamboContextHelpersProvider>\n ),\n });\n\n const contexts = await result.current.getAdditionalContext();\n expect(contexts).toContainEqual({\n name: \"goodHelper\",\n context: { good: \"data\" },\n });\n expect(contexts.find((c) => c.name === \"errorHelper\")).toBeUndefined();\n expect(consoleErrorSpy).toHaveBeenCalledWith(\n expect.stringContaining(\"Error running context helper errorHelper\"),\n expect.any(Error),\n );\n consoleErrorSpy.mockRestore();\n });\n\n /**\n * Removing non-existent helpers should be a no-op without throwing errors.\n */\n it(\"should handle removing non-existent helper gracefully\", () => {\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: ({ children }) => (\n <TamboContextHelpersProvider contextHelpers={{}}>\n {children}\n </TamboContextHelpersProvider>\n ),\n });\n\n expect(() => {\n act(() => {\n result.current.removeContextHelper(\"nonExistent\");\n });\n }).not.toThrow();\n });\n\n /**\n * Adding with an existing name should update/replace the helper implementation.\n */\n it(\"should allow updating existing helper via addContextHelper\", async () => {\n const { result } = renderHook(() => useTamboContextHelpers(), {\n wrapper: ({ children }) => (\n <TamboContextHelpersProvider\n contextHelpers={{\n testHelper: async () => ({ original: true }),\n }}\n >\n {children}\n </TamboContextHelpersProvider>\n ),\n });\n\n // Verify original helper\n let contexts = await result.current.getAdditionalContext();\n expect(contexts).toContainEqual({\n name: \"testHelper\",\n context: { original: true },\n });\n\n // Update the helper\n act(() => {\n result.current.addContextHelper(\"testHelper\", async () => ({\n updated: true,\n }));\n });\n\n // Verify updated helper\n contexts = await result.current.getAdditionalContext();\n expect(contexts).toContainEqual({\n name: \"testHelper\",\n context: { updated: true },\n });\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tambo-interactable-provider-partial-updates.test.d.ts","sourceRoot":"","sources":["../../src/providers/tambo-interactable-provider-partial-updates.test.tsx"],"names":[],"mappings":""}
@@ -5,12 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = require("@testing-library/react");
7
7
  const react_2 = __importDefault(require("react"));
8
- const zod_1 = require("zod");
9
- const tambo_interactable_provider_1 = require("../tambo-interactable-provider");
8
+ const zodInternalAlias_1 = require("zodInternalAlias");
9
+ const tambo_interactable_provider_1 = require("./tambo-interactable-provider");
10
10
  // Mock the context helpers
11
11
  const mockAddContextHelper = jest.fn();
12
12
  const mockRemoveContextHelper = jest.fn();
13
- jest.mock("../tambo-context-helpers-provider", () => ({
13
+ jest.mock("./tambo-context-helpers-provider", () => ({
14
14
  TamboContextHelpersProvider: ({ children, }) => react_2.default.createElement(react_2.default.Fragment, null, children),
15
15
  useTamboContextHelpers: () => ({
16
16
  addContextHelper: mockAddContextHelper,
@@ -19,13 +19,13 @@ jest.mock("../tambo-context-helpers-provider", () => ({
19
19
  }));
20
20
  // Mock the component provider
21
21
  const mockRegisterTool = jest.fn();
22
- jest.mock("../tambo-component-provider", () => ({
22
+ jest.mock("./tambo-component-provider", () => ({
23
23
  useTamboComponent: () => ({
24
24
  registerTool: mockRegisterTool,
25
25
  }),
26
26
  }));
27
27
  // Mock the context helper creation
28
- jest.mock("../../context-helpers/current-interactables-context-helper", () => ({
28
+ jest.mock("../context-helpers/current-interactables-context-helper", () => ({
29
29
  createInteractablesContextHelper: () => jest.fn(() => ({
30
30
  name: "interactables",
31
31
  context: {
@@ -52,13 +52,13 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
52
52
  active: true,
53
53
  metadata: { type: "test", version: "1.0" },
54
54
  },
55
- propsSchema: zod_1.z.object({
56
- title: zod_1.z.string(),
57
- count: zod_1.z.number(),
58
- active: zod_1.z.boolean(),
59
- metadata: zod_1.z.object({
60
- type: zod_1.z.string(),
61
- version: zod_1.z.string(),
55
+ propsSchema: zodInternalAlias_1.z.object({
56
+ title: zodInternalAlias_1.z.string(),
57
+ count: zodInternalAlias_1.z.number(),
58
+ active: zodInternalAlias_1.z.boolean(),
59
+ metadata: zodInternalAlias_1.z.object({
60
+ type: zodInternalAlias_1.z.string(),
61
+ version: zodInternalAlias_1.z.string(),
62
62
  }),
63
63
  }),
64
64
  };
@@ -100,11 +100,11 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
100
100
  active: true,
101
101
  description: "Original description",
102
102
  },
103
- propsSchema: zod_1.z.object({
104
- title: zod_1.z.string(),
105
- count: zod_1.z.number(),
106
- active: zod_1.z.boolean(),
107
- description: zod_1.z.string(),
103
+ propsSchema: zodInternalAlias_1.z.object({
104
+ title: zodInternalAlias_1.z.string(),
105
+ count: zodInternalAlias_1.z.number(),
106
+ active: zodInternalAlias_1.z.boolean(),
107
+ description: zodInternalAlias_1.z.string(),
108
108
  }),
109
109
  };
110
110
  let componentId = "";
@@ -155,14 +155,14 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
155
155
  },
156
156
  },
157
157
  },
158
- propsSchema: zod_1.z.object({
159
- title: zod_1.z.string(),
160
- config: zod_1.z.object({
161
- theme: zod_1.z.string(),
162
- language: zod_1.z.string(),
163
- features: zod_1.z.object({
164
- notifications: zod_1.z.boolean(),
165
- analytics: zod_1.z.boolean(),
158
+ propsSchema: zodInternalAlias_1.z.object({
159
+ title: zodInternalAlias_1.z.string(),
160
+ config: zodInternalAlias_1.z.object({
161
+ theme: zodInternalAlias_1.z.string(),
162
+ language: zodInternalAlias_1.z.string(),
163
+ features: zodInternalAlias_1.z.object({
164
+ notifications: zodInternalAlias_1.z.boolean(),
165
+ analytics: zodInternalAlias_1.z.boolean(),
166
166
  }),
167
167
  }),
168
168
  }),
@@ -200,10 +200,10 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
200
200
  items: ["item1", "item2", "item3"],
201
201
  tags: ["tag1", "tag2"],
202
202
  },
203
- propsSchema: zod_1.z.object({
204
- title: zod_1.z.string(),
205
- items: zod_1.z.array(zod_1.z.string()),
206
- tags: zod_1.z.array(zod_1.z.string()),
203
+ propsSchema: zodInternalAlias_1.z.object({
204
+ title: zodInternalAlias_1.z.string(),
205
+ items: zodInternalAlias_1.z.array(zodInternalAlias_1.z.string()),
206
+ tags: zodInternalAlias_1.z.array(zodInternalAlias_1.z.string()),
207
207
  }),
208
208
  };
209
209
  let componentId = "";
@@ -233,10 +233,10 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
233
233
  count: 5,
234
234
  description: "Original description",
235
235
  },
236
- propsSchema: zod_1.z.object({
237
- title: zod_1.z.string(),
238
- count: zod_1.z.number(),
239
- description: zod_1.z.string(),
236
+ propsSchema: zodInternalAlias_1.z.object({
237
+ title: zodInternalAlias_1.z.string(),
238
+ count: zodInternalAlias_1.z.number(),
239
+ description: zodInternalAlias_1.z.string(),
240
240
  }),
241
241
  };
242
242
  let componentId = "";
@@ -285,7 +285,7 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
285
285
  description: "A component with spaces in name",
286
286
  component: () => react_2.default.createElement("div", null, "Invalid"),
287
287
  props: { title: "Test" },
288
- propsSchema: zod_1.z.object({ title: zod_1.z.string() }),
288
+ propsSchema: zodInternalAlias_1.z.object({ title: zodInternalAlias_1.z.string() }),
289
289
  };
290
290
  expect(() => {
291
291
  (0, react_1.act)(() => {
@@ -300,7 +300,7 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
300
300
  description: "A test component",
301
301
  component: () => react_2.default.createElement("div", null, "Test"),
302
302
  props: { title: "Original Title" },
303
- propsSchema: zod_1.z.object({ title: zod_1.z.string() }),
303
+ propsSchema: zodInternalAlias_1.z.object({ title: zodInternalAlias_1.z.string() }),
304
304
  };
305
305
  let componentId = "";
306
306
  (0, react_1.act)(() => {
@@ -319,7 +319,7 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
319
319
  description: "A test component",
320
320
  component: () => react_2.default.createElement("div", null, "Test"),
321
321
  props: { title: "Original Title" },
322
- propsSchema: zod_1.z.object({ title: zod_1.z.string() }),
322
+ propsSchema: zodInternalAlias_1.z.object({ title: zodInternalAlias_1.z.string() }),
323
323
  };
324
324
  let componentId = "";
325
325
  (0, react_1.act)(() => {
@@ -338,7 +338,7 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
338
338
  description: "A test component",
339
339
  component: () => react_2.default.createElement("div", null, "Test"),
340
340
  props: { title: "Original Title" },
341
- propsSchema: zod_1.z.object({ title: zod_1.z.string() }),
341
+ propsSchema: zodInternalAlias_1.z.object({ title: zodInternalAlias_1.z.string() }),
342
342
  };
343
343
  let componentId = "";
344
344
  (0, react_1.act)(() => {
@@ -365,15 +365,15 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
365
365
  metadata: { type: "test", version: "1.0" },
366
366
  items: ["item1", "item2"],
367
367
  },
368
- propsSchema: zod_1.z.object({
369
- title: zod_1.z.string(),
370
- count: zod_1.z.number(),
371
- active: zod_1.z.boolean(),
372
- metadata: zod_1.z.object({
373
- type: zod_1.z.string(),
374
- version: zod_1.z.string(),
368
+ propsSchema: zodInternalAlias_1.z.object({
369
+ title: zodInternalAlias_1.z.string(),
370
+ count: zodInternalAlias_1.z.number(),
371
+ active: zodInternalAlias_1.z.boolean(),
372
+ metadata: zodInternalAlias_1.z.object({
373
+ type: zodInternalAlias_1.z.string(),
374
+ version: zodInternalAlias_1.z.string(),
375
375
  }),
376
- items: zod_1.z.array(zod_1.z.string()),
376
+ items: zodInternalAlias_1.z.array(zodInternalAlias_1.z.string()),
377
377
  }),
378
378
  };
379
379
  let componentId = "";
@@ -427,25 +427,25 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
427
427
  description: "A test component with large data",
428
428
  component: () => react_2.default.createElement("div", null, "Test"),
429
429
  props: largeData,
430
- propsSchema: zod_1.z.object({
431
- users: zod_1.z.array(zod_1.z.object({
432
- id: zod_1.z.number(),
433
- name: zod_1.z.string(),
430
+ propsSchema: zodInternalAlias_1.z.object({
431
+ users: zodInternalAlias_1.z.array(zodInternalAlias_1.z.object({
432
+ id: zodInternalAlias_1.z.number(),
433
+ name: zodInternalAlias_1.z.string(),
434
434
  })),
435
- settings: zod_1.z.object({
436
- theme: zod_1.z.string(),
437
- language: zod_1.z.string(),
438
- notifications: zod_1.z.boolean(),
439
- privacy: zod_1.z.object({
440
- shareData: zod_1.z.boolean(),
441
- analytics: zod_1.z.boolean(),
442
- marketing: zod_1.z.boolean(),
435
+ settings: zodInternalAlias_1.z.object({
436
+ theme: zodInternalAlias_1.z.string(),
437
+ language: zodInternalAlias_1.z.string(),
438
+ notifications: zodInternalAlias_1.z.boolean(),
439
+ privacy: zodInternalAlias_1.z.object({
440
+ shareData: zodInternalAlias_1.z.boolean(),
441
+ analytics: zodInternalAlias_1.z.boolean(),
442
+ marketing: zodInternalAlias_1.z.boolean(),
443
443
  }),
444
444
  }),
445
- metadata: zod_1.z.object({
446
- version: zod_1.z.string(),
447
- build: zod_1.z.string(),
448
- timestamp: zod_1.z.number(),
445
+ metadata: zodInternalAlias_1.z.object({
446
+ version: zodInternalAlias_1.z.string(),
447
+ build: zodInternalAlias_1.z.string(),
448
+ timestamp: zodInternalAlias_1.z.number(),
449
449
  }),
450
450
  }),
451
451
  };
@@ -488,10 +488,10 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
488
488
  title: "Original Title",
489
489
  count: 0,
490
490
  },
491
- propsSchema: zod_1.z.object({
492
- title: zod_1.z.string(),
493
- count: zod_1.z.number(),
494
- newProperty: zod_1.z.string().optional(),
491
+ propsSchema: zodInternalAlias_1.z.object({
492
+ title: zodInternalAlias_1.z.string(),
493
+ count: zodInternalAlias_1.z.number(),
494
+ newProperty: zodInternalAlias_1.z.string().optional(),
495
495
  }),
496
496
  };
497
497
  let componentId = "";
@@ -521,10 +521,10 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
521
521
  count: 5,
522
522
  active: true,
523
523
  },
524
- propsSchema: zod_1.z.object({
525
- title: zod_1.z.string(),
526
- count: zod_1.z.number(),
527
- active: zod_1.z.boolean(),
524
+ propsSchema: zodInternalAlias_1.z.object({
525
+ title: zodInternalAlias_1.z.string(),
526
+ count: zodInternalAlias_1.z.number(),
527
+ active: zodInternalAlias_1.z.boolean(),
528
528
  }),
529
529
  };
530
530
  let componentId = "";
@@ -565,17 +565,17 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
565
565
  },
566
566
  },
567
567
  },
568
- propsSchema: zod_1.z.object({
569
- title: zod_1.z.string(),
570
- config: zod_1.z.object({
571
- theme: zod_1.z.string(),
572
- language: zod_1.z.string(),
573
- features: zod_1.z.object({
574
- notifications: zod_1.z.boolean(),
575
- analytics: zod_1.z.boolean(),
576
- experimental: zod_1.z.object({
577
- beta: zod_1.z.boolean(),
578
- alpha: zod_1.z.boolean(),
568
+ propsSchema: zodInternalAlias_1.z.object({
569
+ title: zodInternalAlias_1.z.string(),
570
+ config: zodInternalAlias_1.z.object({
571
+ theme: zodInternalAlias_1.z.string(),
572
+ language: zodInternalAlias_1.z.string(),
573
+ features: zodInternalAlias_1.z.object({
574
+ notifications: zodInternalAlias_1.z.boolean(),
575
+ analytics: zodInternalAlias_1.z.boolean(),
576
+ experimental: zodInternalAlias_1.z.object({
577
+ beta: zodInternalAlias_1.z.boolean(),
578
+ alpha: zodInternalAlias_1.z.boolean(),
579
579
  }),
580
580
  }),
581
581
  }),
@@ -639,17 +639,17 @@ describe("updateInteractableComponentProps - Partial Updates", () => {
639
639
  },
640
640
  },
641
641
  },
642
- propsSchema: zod_1.z.object({
643
- title: zod_1.z.string(),
644
- config: zod_1.z.object({
645
- theme: zod_1.z.string(),
646
- language: zod_1.z.string(),
647
- features: zod_1.z.object({
648
- notifications: zod_1.z.boolean(),
649
- analytics: zod_1.z.boolean(),
650
- experimental: zod_1.z.object({
651
- beta: zod_1.z.boolean(),
652
- alpha: zod_1.z.boolean(),
642
+ propsSchema: zodInternalAlias_1.z.object({
643
+ title: zodInternalAlias_1.z.string(),
644
+ config: zodInternalAlias_1.z.object({
645
+ theme: zodInternalAlias_1.z.string(),
646
+ language: zodInternalAlias_1.z.string(),
647
+ features: zodInternalAlias_1.z.object({
648
+ notifications: zodInternalAlias_1.z.boolean(),
649
+ analytics: zodInternalAlias_1.z.boolean(),
650
+ experimental: zodInternalAlias_1.z.object({
651
+ beta: zodInternalAlias_1.z.boolean(),
652
+ alpha: zodInternalAlias_1.z.boolean(),
653
653
  }),
654
654
  }),
655
655
  }),