stream-chat-react-native-core 9.12.1-beta.1 → 9.13.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 (922) hide show
  1. package/a2ui/package.json +6 -0
  2. package/lib/commonjs/a11y/a11yUtils.js.map +1 -1
  3. package/lib/commonjs/a11y/hooks/useResolvedModalAccessibilityProps.js.map +1 -1
  4. package/lib/commonjs/a2ui/A2UIContexts.js +8 -0
  5. package/lib/commonjs/a2ui/A2UIContexts.js.map +1 -0
  6. package/lib/commonjs/a2ui/A2UIInstructions.js +49 -0
  7. package/lib/commonjs/a2ui/A2UIInstructions.js.map +1 -0
  8. package/lib/commonjs/a2ui/A2UIPlaceholder.js +37 -0
  9. package/lib/commonjs/a2ui/A2UIPlaceholder.js.map +1 -0
  10. package/lib/commonjs/a2ui/A2UIRenderer.js +363 -0
  11. package/lib/commonjs/a2ui/A2UIRenderer.js.map +1 -0
  12. package/lib/commonjs/a2ui/A2UIStream.js +91 -0
  13. package/lib/commonjs/a2ui/A2UIStream.js.map +1 -0
  14. package/lib/commonjs/a2ui/A2UISurface.js +212 -0
  15. package/lib/commonjs/a2ui/A2UISurface.js.map +1 -0
  16. package/lib/commonjs/a2ui/basicCatalog.json +1206 -0
  17. package/lib/commonjs/a2ui/basicFunctions.js +398 -0
  18. package/lib/commonjs/a2ui/basicFunctions.js.map +1 -0
  19. package/lib/commonjs/a2ui/catalogDocument.js +80 -0
  20. package/lib/commonjs/a2ui/catalogDocument.js.map +1 -0
  21. package/lib/commonjs/a2ui/catalogs.js +105 -0
  22. package/lib/commonjs/a2ui/catalogs.js.map +1 -0
  23. package/lib/commonjs/a2ui/components/DateTimeInput.js +445 -0
  24. package/lib/commonjs/a2ui/components/DateTimeInput.js.map +1 -0
  25. package/lib/commonjs/a2ui/components/Media.js +316 -0
  26. package/lib/commonjs/a2ui/components/Media.js.map +1 -0
  27. package/lib/commonjs/a2ui/components/basicComponents.js +975 -0
  28. package/lib/commonjs/a2ui/components/basicComponents.js.map +1 -0
  29. package/lib/commonjs/a2ui/components/iconPaths.js +66 -0
  30. package/lib/commonjs/a2ui/components/iconPaths.js.map +1 -0
  31. package/lib/commonjs/a2ui/components/types.js +4 -0
  32. package/lib/commonjs/a2ui/components/types.js.map +1 -0
  33. package/lib/commonjs/a2ui/index.js +70 -0
  34. package/lib/commonjs/a2ui/index.js.map +1 -0
  35. package/lib/commonjs/a2ui/instructions.js +268 -0
  36. package/lib/commonjs/a2ui/instructions.js.map +1 -0
  37. package/lib/commonjs/a2ui/secrets.js +169 -0
  38. package/lib/commonjs/a2ui/secrets.js.map +1 -0
  39. package/lib/commonjs/a2ui/useReplyState.js +35 -0
  40. package/lib/commonjs/a2ui/useReplyState.js.map +1 -0
  41. package/lib/commonjs/ai-components/AITypingIndicatorView.js +8 -18
  42. package/lib/commonjs/ai-components/AITypingIndicatorView.js.map +1 -1
  43. package/lib/commonjs/ai-components/README.md +55 -3
  44. package/lib/commonjs/ai-components/StreamingMessageView.js +26 -0
  45. package/lib/commonjs/ai-components/StreamingMessageView.js.map +1 -1
  46. package/lib/commonjs/ai-components/charts/components/PieLegend.js +2 -1
  47. package/lib/commonjs/ai-components/charts/components/PieLegend.js.map +1 -1
  48. package/lib/commonjs/ai-components/charts/components/VictoryChart.js +7 -2
  49. package/lib/commonjs/ai-components/charts/components/VictoryChart.js.map +1 -1
  50. package/lib/commonjs/ai-components/charts/utils/format-time-label.js +15 -0
  51. package/lib/commonjs/ai-components/charts/utils/format-time-label.js.map +1 -0
  52. package/lib/commonjs/ai-components/charts/vega-lite/schema.js +17 -2
  53. package/lib/commonjs/ai-components/charts/vega-lite/schema.js.map +1 -1
  54. package/lib/commonjs/ai-components/contexts/composer-context.js +13 -6
  55. package/lib/commonjs/ai-components/contexts/composer-context.js.map +1 -1
  56. package/lib/commonjs/ai-components/contexts/index.js +11 -0
  57. package/lib/commonjs/ai-components/contexts/index.js.map +1 -1
  58. package/lib/commonjs/ai-components/contexts/theme-context.js +33 -2
  59. package/lib/commonjs/ai-components/contexts/theme-context.js.map +1 -1
  60. package/lib/commonjs/ai-components/contexts/translation-context.js +29 -0
  61. package/lib/commonjs/ai-components/contexts/translation-context.js.map +1 -0
  62. package/lib/commonjs/ai-components/conversation/AIConversation.js +366 -0
  63. package/lib/commonjs/ai-components/conversation/AIConversation.js.map +1 -0
  64. package/lib/commonjs/ai-components/conversation/controller/AIAgentError.js +13 -0
  65. package/lib/commonjs/ai-components/conversation/controller/AIAgentError.js.map +1 -0
  66. package/lib/commonjs/ai-components/conversation/controller/AIConversationController.js +425 -0
  67. package/lib/commonjs/ai-components/conversation/controller/AIConversationController.js.map +1 -0
  68. package/lib/commonjs/ai-components/conversation/controller/AIConversationExchange.js +89 -0
  69. package/lib/commonjs/ai-components/conversation/controller/AIConversationExchange.js.map +1 -0
  70. package/lib/commonjs/ai-components/conversation/controller/index.js +48 -0
  71. package/lib/commonjs/ai-components/conversation/controller/index.js.map +1 -0
  72. package/lib/commonjs/ai-components/conversation/controller/offers.js +29 -0
  73. package/lib/commonjs/ai-components/conversation/controller/offers.js.map +1 -0
  74. package/lib/commonjs/ai-components/conversation/controller/types.js +13 -0
  75. package/lib/commonjs/ai-components/conversation/controller/types.js.map +1 -0
  76. package/lib/commonjs/ai-components/conversation/controller/useAIConversationState.js +8 -0
  77. package/lib/commonjs/ai-components/conversation/controller/useAIConversationState.js.map +1 -0
  78. package/lib/commonjs/ai-components/conversation/entries.js +98 -0
  79. package/lib/commonjs/ai-components/conversation/entries.js.map +1 -0
  80. package/lib/commonjs/ai-components/conversation/fromStreamMessage.js +66 -0
  81. package/lib/commonjs/ai-components/conversation/fromStreamMessage.js.map +1 -0
  82. package/lib/commonjs/ai-components/conversation/index.js +48 -0
  83. package/lib/commonjs/ai-components/conversation/index.js.map +1 -0
  84. package/lib/commonjs/ai-components/conversation/list/AIChatList.js +224 -0
  85. package/lib/commonjs/ai-components/conversation/list/AIChatList.js.map +1 -0
  86. package/lib/commonjs/ai-components/conversation/list/useChatListController.js +78 -0
  87. package/lib/commonjs/ai-components/conversation/list/useChatListController.js.map +1 -0
  88. package/lib/commonjs/ai-components/conversation/list/useEndInView.js +51 -0
  89. package/lib/commonjs/ai-components/conversation/list/useEndInView.js.map +1 -0
  90. package/lib/commonjs/ai-components/conversation/list/useKeyboardOverlap.js +54 -0
  91. package/lib/commonjs/ai-components/conversation/list/useKeyboardOverlap.js.map +1 -0
  92. package/lib/commonjs/ai-components/conversation/list/useLoadOlder.js +73 -0
  93. package/lib/commonjs/ai-components/conversation/list/useLoadOlder.js.map +1 -0
  94. package/lib/commonjs/ai-components/conversation/list/usePinnedAnchor.js +84 -0
  95. package/lib/commonjs/ai-components/conversation/list/usePinnedAnchor.js.map +1 -0
  96. package/lib/commonjs/ai-components/conversation/types.js +4 -0
  97. package/lib/commonjs/ai-components/conversation/types.js.map +1 -0
  98. package/lib/commonjs/ai-components/conversation/useConversationRows.js +117 -0
  99. package/lib/commonjs/ai-components/conversation/useConversationRows.js.map +1 -0
  100. package/lib/commonjs/ai-components/generative-ui/AIUIAction.js +30 -0
  101. package/lib/commonjs/ai-components/generative-ui/AIUIAction.js.map +1 -0
  102. package/lib/commonjs/ai-components/generative-ui/AIUIArguments.js +128 -0
  103. package/lib/commonjs/ai-components/generative-ui/AIUIArguments.js.map +1 -0
  104. package/lib/commonjs/ai-components/generative-ui/AIUIComponent.js +50 -0
  105. package/lib/commonjs/ai-components/generative-ui/AIUIComponent.js.map +1 -0
  106. package/lib/commonjs/ai-components/generative-ui/AIUIComponentDefinition.js +134 -0
  107. package/lib/commonjs/ai-components/generative-ui/AIUIComponentDefinition.js.map +1 -0
  108. package/lib/commonjs/ai-components/generative-ui/AIUIDocument.js +32 -0
  109. package/lib/commonjs/ai-components/generative-ui/AIUIDocument.js.map +1 -0
  110. package/lib/commonjs/ai-components/generative-ui/AIUIEntrance.js +193 -0
  111. package/lib/commonjs/ai-components/generative-ui/AIUIEntrance.js.map +1 -0
  112. package/lib/commonjs/ai-components/generative-ui/AIUIErrorBoundary.js +30 -0
  113. package/lib/commonjs/ai-components/generative-ui/AIUIErrorBoundary.js.map +1 -0
  114. package/lib/commonjs/ai-components/generative-ui/AIUIHelpers.js +54 -0
  115. package/lib/commonjs/ai-components/generative-ui/AIUIHelpers.js.map +1 -0
  116. package/lib/commonjs/ai-components/generative-ui/AIUIHost.js +259 -0
  117. package/lib/commonjs/ai-components/generative-ui/AIUIHost.js.map +1 -0
  118. package/lib/commonjs/ai-components/generative-ui/AIUIMedia.js +24 -0
  119. package/lib/commonjs/ai-components/generative-ui/AIUIMedia.js.map +1 -0
  120. package/lib/commonjs/ai-components/generative-ui/AIUIRenderer.js +10 -0
  121. package/lib/commonjs/ai-components/generative-ui/AIUIRenderer.js.map +1 -0
  122. package/lib/commonjs/ai-components/generative-ui/AIUIView.js +57 -0
  123. package/lib/commonjs/ai-components/generative-ui/AIUIView.js.map +1 -0
  124. package/lib/commonjs/ai-components/generative-ui/index.js +181 -0
  125. package/lib/commonjs/ai-components/generative-ui/index.js.map +1 -0
  126. package/lib/commonjs/ai-components/icons.js +44 -0
  127. package/lib/commonjs/ai-components/icons.js.map +1 -0
  128. package/lib/commonjs/ai-components/index.js +96 -0
  129. package/lib/commonjs/ai-components/index.js.map +1 -1
  130. package/lib/commonjs/ai-components/internal/Shimmer.js +36 -0
  131. package/lib/commonjs/ai-components/internal/Shimmer.js.map +1 -0
  132. package/lib/commonjs/ai-components/internal/format.js +66 -0
  133. package/lib/commonjs/ai-components/internal/format.js.map +1 -0
  134. package/lib/commonjs/ai-components/internal/hooks/useBottomSafeArea.js +12 -0
  135. package/lib/commonjs/ai-components/internal/hooks/useBottomSafeArea.js.map +1 -0
  136. package/lib/commonjs/ai-components/internal/icons/AgentIcons.js +74 -0
  137. package/lib/commonjs/ai-components/internal/icons/AgentIcons.js.map +1 -0
  138. package/lib/commonjs/ai-components/internal/tokens.js +11 -0
  139. package/lib/commonjs/ai-components/internal/tokens.js.map +1 -0
  140. package/lib/commonjs/ai-components/internal/uuid.js +21 -0
  141. package/lib/commonjs/ai-components/internal/uuid.js.map +1 -0
  142. package/lib/commonjs/ai-components/markdown/components/CodeBlock.js +4 -2
  143. package/lib/commonjs/ai-components/markdown/components/CodeBlock.js.map +1 -1
  144. package/lib/commonjs/ai-components/markdown/components/InlineCode.js +1 -0
  145. package/lib/commonjs/ai-components/markdown/components/InlineCode.js.map +1 -1
  146. package/lib/commonjs/ai-components/markdown/components/Text.js +11 -2
  147. package/lib/commonjs/ai-components/markdown/components/Text.js.map +1 -1
  148. package/lib/commonjs/ai-components/markdown/styles.js +27 -29
  149. package/lib/commonjs/ai-components/markdown/styles.js.map +1 -1
  150. package/lib/commonjs/ai-components/message/AIAssistantMessage.js +63 -0
  151. package/lib/commonjs/ai-components/message/AIAssistantMessage.js.map +1 -0
  152. package/lib/commonjs/ai-components/message/AIMessageAttachment.js +189 -0
  153. package/lib/commonjs/ai-components/message/AIMessageAttachment.js.map +1 -0
  154. package/lib/commonjs/ai-components/message/AIReplyActions.js +132 -0
  155. package/lib/commonjs/ai-components/message/AIReplyActions.js.map +1 -0
  156. package/lib/commonjs/ai-components/message/AIUserMessage.js +104 -0
  157. package/lib/commonjs/ai-components/message/AIUserMessage.js.map +1 -0
  158. package/lib/commonjs/ai-components/message/UserMessageMenu.js +150 -0
  159. package/lib/commonjs/ai-components/message/UserMessageMenu.js.map +1 -0
  160. package/lib/commonjs/ai-components/message/index.js +48 -0
  161. package/lib/commonjs/ai-components/message/index.js.map +1 -0
  162. package/lib/commonjs/ai-components/message-composer/ActionButton.js +2 -1
  163. package/lib/commonjs/ai-components/message-composer/ActionButton.js.map +1 -1
  164. package/lib/commonjs/ai-components/message-composer/ActionSheet.js +22 -6
  165. package/lib/commonjs/ai-components/message-composer/ActionSheet.js.map +1 -1
  166. package/lib/commonjs/ai-components/message-composer/AttachmentButton.js +5 -1
  167. package/lib/commonjs/ai-components/message-composer/AttachmentButton.js.map +1 -1
  168. package/lib/commonjs/ai-components/message-composer/ChatOptions.js +147 -0
  169. package/lib/commonjs/ai-components/message-composer/ChatOptions.js.map +1 -0
  170. package/lib/commonjs/ai-components/message-composer/ComposerView.js +136 -20
  171. package/lib/commonjs/ai-components/message-composer/ComposerView.js.map +1 -1
  172. package/lib/commonjs/ai-components/message-composer/EditingMessageChip.js +80 -0
  173. package/lib/commonjs/ai-components/message-composer/EditingMessageChip.js.map +1 -0
  174. package/lib/commonjs/ai-components/message-composer/MediaPreviewList.js +26 -1
  175. package/lib/commonjs/ai-components/message-composer/MediaPreviewList.js.map +1 -1
  176. package/lib/commonjs/ai-components/message-composer/index.js +11 -0
  177. package/lib/commonjs/ai-components/message-composer/index.js.map +1 -1
  178. package/lib/commonjs/ai-components/message-parts/AIMessageParts.js +110 -0
  179. package/lib/commonjs/ai-components/message-parts/AIMessageParts.js.map +1 -0
  180. package/lib/commonjs/ai-components/message-parts/AIToolApproval.js +197 -0
  181. package/lib/commonjs/ai-components/message-parts/AIToolApproval.js.map +1 -0
  182. package/lib/commonjs/ai-components/message-parts/AIToolAuthorization.js +250 -0
  183. package/lib/commonjs/ai-components/message-parts/AIToolAuthorization.js.map +1 -0
  184. package/lib/commonjs/ai-components/message-parts/AIToolCall.js +159 -0
  185. package/lib/commonjs/ai-components/message-parts/AIToolCall.js.map +1 -0
  186. package/lib/commonjs/ai-components/message-parts/callStates.js +54 -0
  187. package/lib/commonjs/ai-components/message-parts/callStates.js.map +1 -0
  188. package/lib/commonjs/ai-components/message-parts/index.js +70 -0
  189. package/lib/commonjs/ai-components/message-parts/index.js.map +1 -0
  190. package/lib/commonjs/ai-components/message-parts/parseMessageParts.js +126 -0
  191. package/lib/commonjs/ai-components/message-parts/parseMessageParts.js.map +1 -0
  192. package/lib/commonjs/ai-components/message-parts/types.js +2 -0
  193. package/lib/commonjs/ai-components/message-parts/types.js.map +1 -0
  194. package/lib/commonjs/ai-components/native-specs/NativeAIAgent.js +7 -0
  195. package/lib/commonjs/ai-components/native-specs/NativeAIAgent.js.map +1 -0
  196. package/lib/commonjs/ai-components/reasoning/AIReasoning.js +401 -0
  197. package/lib/commonjs/ai-components/reasoning/AIReasoning.js.map +1 -0
  198. package/lib/commonjs/ai-components/reasoning/index.js +26 -0
  199. package/lib/commonjs/ai-components/reasoning/index.js.map +1 -0
  200. package/lib/commonjs/ai-components/reasoning/thinkingClock.js +63 -0
  201. package/lib/commonjs/ai-components/reasoning/thinkingClock.js.map +1 -0
  202. package/lib/commonjs/ai-components/services/clipboard-service/expo.js +7 -2
  203. package/lib/commonjs/ai-components/services/clipboard-service/expo.js.map +1 -1
  204. package/lib/commonjs/ai-components/store/composer/store.js.map +1 -1
  205. package/lib/commonjs/ai-components/store/composer/useComposerChatOption.js +18 -0
  206. package/lib/commonjs/ai-components/store/composer/useComposerChatOption.js.map +1 -0
  207. package/lib/commonjs/ai-components/store/composer/useComposerIsEditing.js +18 -0
  208. package/lib/commonjs/ai-components/store/composer/useComposerIsEditing.js.map +1 -0
  209. package/lib/commonjs/ai-components/store/index.js +22 -0
  210. package/lib/commonjs/ai-components/store/index.js.map +1 -1
  211. package/lib/commonjs/ai-components/suggestions/AISuggestions.js +66 -0
  212. package/lib/commonjs/ai-components/suggestions/AISuggestions.js.map +1 -0
  213. package/lib/commonjs/ai-components/suggestions/index.js +15 -0
  214. package/lib/commonjs/ai-components/suggestions/index.js.map +1 -0
  215. package/lib/commonjs/ai-components/syntax-highlighting/utils/flatten-nodes.js +2 -1
  216. package/lib/commonjs/ai-components/syntax-highlighting/utils/flatten-nodes.js.map +1 -1
  217. package/lib/commonjs/ai-components/syntax-highlighting/utils/renderer.js +3 -2
  218. package/lib/commonjs/ai-components/syntax-highlighting/utils/renderer.js.map +1 -1
  219. package/lib/commonjs/ai-components/theme.js +137 -1
  220. package/lib/commonjs/ai-components/theme.js.map +1 -1
  221. package/lib/commonjs/ai-components/tool-calls/AIClientIdentity.js +22 -0
  222. package/lib/commonjs/ai-components/tool-calls/AIClientIdentity.js.map +1 -0
  223. package/lib/commonjs/ai-components/tool-calls/AIClientToolRunner.js +109 -0
  224. package/lib/commonjs/ai-components/tool-calls/AIClientToolRunner.js.map +1 -0
  225. package/lib/commonjs/ai-components/tool-calls/AIToolApprover.js +23 -0
  226. package/lib/commonjs/ai-components/tool-calls/AIToolApprover.js.map +1 -0
  227. package/lib/commonjs/ai-components/tool-calls/authSessionAuthorizer.js +88 -0
  228. package/lib/commonjs/ai-components/tool-calls/authSessionAuthorizer.js.map +1 -0
  229. package/lib/commonjs/ai-components/tool-calls/index.js +48 -0
  230. package/lib/commonjs/ai-components/tool-calls/index.js.map +1 -0
  231. package/lib/commonjs/ai-components/voice-visualization/glowShader.js.map +1 -1
  232. package/lib/commonjs/components/Accessibility/useAccessibilityAnnouncer.js.map +1 -1
  233. package/lib/commonjs/components/Message/MessageItemView/utils/renderText.js.map +1 -1
  234. package/lib/commonjs/contexts/translationContext/TranslationContext.js +2 -2
  235. package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
  236. package/lib/commonjs/i18n/ar.json +39 -1
  237. package/lib/commonjs/i18n/en.json +39 -1
  238. package/lib/commonjs/i18n/es.json +39 -1
  239. package/lib/commonjs/i18n/fr.json +39 -1
  240. package/lib/commonjs/i18n/he.json +39 -1
  241. package/lib/commonjs/i18n/hi.json +39 -1
  242. package/lib/commonjs/i18n/it.json +39 -1
  243. package/lib/commonjs/i18n/ja.json +39 -1
  244. package/lib/commonjs/i18n/ko.json +39 -1
  245. package/lib/commonjs/i18n/nl.json +39 -1
  246. package/lib/commonjs/i18n/pt-br.json +39 -1
  247. package/lib/commonjs/i18n/ru.json +39 -1
  248. package/lib/commonjs/i18n/tr.json +39 -1
  249. package/lib/commonjs/mock-builders/a2ui/ohrid.js +84 -0
  250. package/lib/commonjs/mock-builders/a2ui/ohrid.js.map +1 -0
  251. package/lib/commonjs/utils/i18n/Streami18n.js +9 -4
  252. package/lib/commonjs/utils/i18n/Streami18n.js.map +1 -1
  253. package/lib/commonjs/utils/i18n/utils.js +7 -0
  254. package/lib/commonjs/utils/i18n/utils.js.map +1 -0
  255. package/lib/commonjs/version.json +1 -1
  256. package/lib/module/a11y/a11yUtils.js.map +1 -1
  257. package/lib/module/a11y/hooks/useResolvedModalAccessibilityProps.js.map +1 -1
  258. package/lib/module/a2ui/A2UIContexts.js +8 -0
  259. package/lib/module/a2ui/A2UIContexts.js.map +1 -0
  260. package/lib/module/a2ui/A2UIInstructions.js +49 -0
  261. package/lib/module/a2ui/A2UIInstructions.js.map +1 -0
  262. package/lib/module/a2ui/A2UIPlaceholder.js +37 -0
  263. package/lib/module/a2ui/A2UIPlaceholder.js.map +1 -0
  264. package/lib/module/a2ui/A2UIRenderer.js +363 -0
  265. package/lib/module/a2ui/A2UIRenderer.js.map +1 -0
  266. package/lib/module/a2ui/A2UIStream.js +91 -0
  267. package/lib/module/a2ui/A2UIStream.js.map +1 -0
  268. package/lib/module/a2ui/A2UISurface.js +212 -0
  269. package/lib/module/a2ui/A2UISurface.js.map +1 -0
  270. package/lib/module/a2ui/basicCatalog.json +1206 -0
  271. package/lib/module/a2ui/basicFunctions.js +398 -0
  272. package/lib/module/a2ui/basicFunctions.js.map +1 -0
  273. package/lib/module/a2ui/catalogDocument.js +80 -0
  274. package/lib/module/a2ui/catalogDocument.js.map +1 -0
  275. package/lib/module/a2ui/catalogs.js +105 -0
  276. package/lib/module/a2ui/catalogs.js.map +1 -0
  277. package/lib/module/a2ui/components/DateTimeInput.js +445 -0
  278. package/lib/module/a2ui/components/DateTimeInput.js.map +1 -0
  279. package/lib/module/a2ui/components/Media.js +316 -0
  280. package/lib/module/a2ui/components/Media.js.map +1 -0
  281. package/lib/module/a2ui/components/basicComponents.js +975 -0
  282. package/lib/module/a2ui/components/basicComponents.js.map +1 -0
  283. package/lib/module/a2ui/components/iconPaths.js +66 -0
  284. package/lib/module/a2ui/components/iconPaths.js.map +1 -0
  285. package/lib/module/a2ui/components/types.js +4 -0
  286. package/lib/module/a2ui/components/types.js.map +1 -0
  287. package/lib/module/a2ui/index.js +70 -0
  288. package/lib/module/a2ui/index.js.map +1 -0
  289. package/lib/module/a2ui/instructions.js +268 -0
  290. package/lib/module/a2ui/instructions.js.map +1 -0
  291. package/lib/module/a2ui/secrets.js +169 -0
  292. package/lib/module/a2ui/secrets.js.map +1 -0
  293. package/lib/module/a2ui/useReplyState.js +35 -0
  294. package/lib/module/a2ui/useReplyState.js.map +1 -0
  295. package/lib/module/ai-components/AITypingIndicatorView.js +8 -18
  296. package/lib/module/ai-components/AITypingIndicatorView.js.map +1 -1
  297. package/lib/module/ai-components/README.md +55 -3
  298. package/lib/module/ai-components/StreamingMessageView.js +26 -0
  299. package/lib/module/ai-components/StreamingMessageView.js.map +1 -1
  300. package/lib/module/ai-components/charts/components/PieLegend.js +2 -1
  301. package/lib/module/ai-components/charts/components/PieLegend.js.map +1 -1
  302. package/lib/module/ai-components/charts/components/VictoryChart.js +7 -2
  303. package/lib/module/ai-components/charts/components/VictoryChart.js.map +1 -1
  304. package/lib/module/ai-components/charts/utils/format-time-label.js +15 -0
  305. package/lib/module/ai-components/charts/utils/format-time-label.js.map +1 -0
  306. package/lib/module/ai-components/charts/vega-lite/schema.js +17 -2
  307. package/lib/module/ai-components/charts/vega-lite/schema.js.map +1 -1
  308. package/lib/module/ai-components/contexts/composer-context.js +13 -6
  309. package/lib/module/ai-components/contexts/composer-context.js.map +1 -1
  310. package/lib/module/ai-components/contexts/index.js +11 -0
  311. package/lib/module/ai-components/contexts/index.js.map +1 -1
  312. package/lib/module/ai-components/contexts/theme-context.js +33 -2
  313. package/lib/module/ai-components/contexts/theme-context.js.map +1 -1
  314. package/lib/module/ai-components/contexts/translation-context.js +29 -0
  315. package/lib/module/ai-components/contexts/translation-context.js.map +1 -0
  316. package/lib/module/ai-components/conversation/AIConversation.js +366 -0
  317. package/lib/module/ai-components/conversation/AIConversation.js.map +1 -0
  318. package/lib/module/ai-components/conversation/controller/AIAgentError.js +13 -0
  319. package/lib/module/ai-components/conversation/controller/AIAgentError.js.map +1 -0
  320. package/lib/module/ai-components/conversation/controller/AIConversationController.js +425 -0
  321. package/lib/module/ai-components/conversation/controller/AIConversationController.js.map +1 -0
  322. package/lib/module/ai-components/conversation/controller/AIConversationExchange.js +89 -0
  323. package/lib/module/ai-components/conversation/controller/AIConversationExchange.js.map +1 -0
  324. package/lib/module/ai-components/conversation/controller/index.js +48 -0
  325. package/lib/module/ai-components/conversation/controller/index.js.map +1 -0
  326. package/lib/module/ai-components/conversation/controller/offers.js +29 -0
  327. package/lib/module/ai-components/conversation/controller/offers.js.map +1 -0
  328. package/lib/module/ai-components/conversation/controller/types.js +13 -0
  329. package/lib/module/ai-components/conversation/controller/types.js.map +1 -0
  330. package/lib/module/ai-components/conversation/controller/useAIConversationState.js +8 -0
  331. package/lib/module/ai-components/conversation/controller/useAIConversationState.js.map +1 -0
  332. package/lib/module/ai-components/conversation/entries.js +98 -0
  333. package/lib/module/ai-components/conversation/entries.js.map +1 -0
  334. package/lib/module/ai-components/conversation/fromStreamMessage.js +66 -0
  335. package/lib/module/ai-components/conversation/fromStreamMessage.js.map +1 -0
  336. package/lib/module/ai-components/conversation/index.js +48 -0
  337. package/lib/module/ai-components/conversation/index.js.map +1 -0
  338. package/lib/module/ai-components/conversation/list/AIChatList.js +224 -0
  339. package/lib/module/ai-components/conversation/list/AIChatList.js.map +1 -0
  340. package/lib/module/ai-components/conversation/list/useChatListController.js +78 -0
  341. package/lib/module/ai-components/conversation/list/useChatListController.js.map +1 -0
  342. package/lib/module/ai-components/conversation/list/useEndInView.js +51 -0
  343. package/lib/module/ai-components/conversation/list/useEndInView.js.map +1 -0
  344. package/lib/module/ai-components/conversation/list/useKeyboardOverlap.js +54 -0
  345. package/lib/module/ai-components/conversation/list/useKeyboardOverlap.js.map +1 -0
  346. package/lib/module/ai-components/conversation/list/useLoadOlder.js +73 -0
  347. package/lib/module/ai-components/conversation/list/useLoadOlder.js.map +1 -0
  348. package/lib/module/ai-components/conversation/list/usePinnedAnchor.js +84 -0
  349. package/lib/module/ai-components/conversation/list/usePinnedAnchor.js.map +1 -0
  350. package/lib/module/ai-components/conversation/types.js +4 -0
  351. package/lib/module/ai-components/conversation/types.js.map +1 -0
  352. package/lib/module/ai-components/conversation/useConversationRows.js +117 -0
  353. package/lib/module/ai-components/conversation/useConversationRows.js.map +1 -0
  354. package/lib/module/ai-components/generative-ui/AIUIAction.js +30 -0
  355. package/lib/module/ai-components/generative-ui/AIUIAction.js.map +1 -0
  356. package/lib/module/ai-components/generative-ui/AIUIArguments.js +128 -0
  357. package/lib/module/ai-components/generative-ui/AIUIArguments.js.map +1 -0
  358. package/lib/module/ai-components/generative-ui/AIUIComponent.js +50 -0
  359. package/lib/module/ai-components/generative-ui/AIUIComponent.js.map +1 -0
  360. package/lib/module/ai-components/generative-ui/AIUIComponentDefinition.js +134 -0
  361. package/lib/module/ai-components/generative-ui/AIUIComponentDefinition.js.map +1 -0
  362. package/lib/module/ai-components/generative-ui/AIUIDocument.js +32 -0
  363. package/lib/module/ai-components/generative-ui/AIUIDocument.js.map +1 -0
  364. package/lib/module/ai-components/generative-ui/AIUIEntrance.js +193 -0
  365. package/lib/module/ai-components/generative-ui/AIUIEntrance.js.map +1 -0
  366. package/lib/module/ai-components/generative-ui/AIUIErrorBoundary.js +30 -0
  367. package/lib/module/ai-components/generative-ui/AIUIErrorBoundary.js.map +1 -0
  368. package/lib/module/ai-components/generative-ui/AIUIHelpers.js +54 -0
  369. package/lib/module/ai-components/generative-ui/AIUIHelpers.js.map +1 -0
  370. package/lib/module/ai-components/generative-ui/AIUIHost.js +259 -0
  371. package/lib/module/ai-components/generative-ui/AIUIHost.js.map +1 -0
  372. package/lib/module/ai-components/generative-ui/AIUIMedia.js +24 -0
  373. package/lib/module/ai-components/generative-ui/AIUIMedia.js.map +1 -0
  374. package/lib/module/ai-components/generative-ui/AIUIRenderer.js +10 -0
  375. package/lib/module/ai-components/generative-ui/AIUIRenderer.js.map +1 -0
  376. package/lib/module/ai-components/generative-ui/AIUIView.js +57 -0
  377. package/lib/module/ai-components/generative-ui/AIUIView.js.map +1 -0
  378. package/lib/module/ai-components/generative-ui/index.js +181 -0
  379. package/lib/module/ai-components/generative-ui/index.js.map +1 -0
  380. package/lib/module/ai-components/icons.js +44 -0
  381. package/lib/module/ai-components/icons.js.map +1 -0
  382. package/lib/module/ai-components/index.js +96 -0
  383. package/lib/module/ai-components/index.js.map +1 -1
  384. package/lib/module/ai-components/internal/Shimmer.js +36 -0
  385. package/lib/module/ai-components/internal/Shimmer.js.map +1 -0
  386. package/lib/module/ai-components/internal/format.js +66 -0
  387. package/lib/module/ai-components/internal/format.js.map +1 -0
  388. package/lib/module/ai-components/internal/hooks/useBottomSafeArea.js +12 -0
  389. package/lib/module/ai-components/internal/hooks/useBottomSafeArea.js.map +1 -0
  390. package/lib/module/ai-components/internal/icons/AgentIcons.js +74 -0
  391. package/lib/module/ai-components/internal/icons/AgentIcons.js.map +1 -0
  392. package/lib/module/ai-components/internal/tokens.js +11 -0
  393. package/lib/module/ai-components/internal/tokens.js.map +1 -0
  394. package/lib/module/ai-components/internal/uuid.js +21 -0
  395. package/lib/module/ai-components/internal/uuid.js.map +1 -0
  396. package/lib/module/ai-components/markdown/components/CodeBlock.js +4 -2
  397. package/lib/module/ai-components/markdown/components/CodeBlock.js.map +1 -1
  398. package/lib/module/ai-components/markdown/components/InlineCode.js +1 -0
  399. package/lib/module/ai-components/markdown/components/InlineCode.js.map +1 -1
  400. package/lib/module/ai-components/markdown/components/Text.js +11 -2
  401. package/lib/module/ai-components/markdown/components/Text.js.map +1 -1
  402. package/lib/module/ai-components/markdown/styles.js +27 -29
  403. package/lib/module/ai-components/markdown/styles.js.map +1 -1
  404. package/lib/module/ai-components/message/AIAssistantMessage.js +63 -0
  405. package/lib/module/ai-components/message/AIAssistantMessage.js.map +1 -0
  406. package/lib/module/ai-components/message/AIMessageAttachment.js +189 -0
  407. package/lib/module/ai-components/message/AIMessageAttachment.js.map +1 -0
  408. package/lib/module/ai-components/message/AIReplyActions.js +132 -0
  409. package/lib/module/ai-components/message/AIReplyActions.js.map +1 -0
  410. package/lib/module/ai-components/message/AIUserMessage.js +104 -0
  411. package/lib/module/ai-components/message/AIUserMessage.js.map +1 -0
  412. package/lib/module/ai-components/message/UserMessageMenu.js +150 -0
  413. package/lib/module/ai-components/message/UserMessageMenu.js.map +1 -0
  414. package/lib/module/ai-components/message/index.js +48 -0
  415. package/lib/module/ai-components/message/index.js.map +1 -0
  416. package/lib/module/ai-components/message-composer/ActionButton.js +2 -1
  417. package/lib/module/ai-components/message-composer/ActionButton.js.map +1 -1
  418. package/lib/module/ai-components/message-composer/ActionSheet.js +22 -6
  419. package/lib/module/ai-components/message-composer/ActionSheet.js.map +1 -1
  420. package/lib/module/ai-components/message-composer/AttachmentButton.js +5 -1
  421. package/lib/module/ai-components/message-composer/AttachmentButton.js.map +1 -1
  422. package/lib/module/ai-components/message-composer/ChatOptions.js +147 -0
  423. package/lib/module/ai-components/message-composer/ChatOptions.js.map +1 -0
  424. package/lib/module/ai-components/message-composer/ComposerView.js +136 -20
  425. package/lib/module/ai-components/message-composer/ComposerView.js.map +1 -1
  426. package/lib/module/ai-components/message-composer/EditingMessageChip.js +80 -0
  427. package/lib/module/ai-components/message-composer/EditingMessageChip.js.map +1 -0
  428. package/lib/module/ai-components/message-composer/MediaPreviewList.js +26 -1
  429. package/lib/module/ai-components/message-composer/MediaPreviewList.js.map +1 -1
  430. package/lib/module/ai-components/message-composer/index.js +11 -0
  431. package/lib/module/ai-components/message-composer/index.js.map +1 -1
  432. package/lib/module/ai-components/message-parts/AIMessageParts.js +110 -0
  433. package/lib/module/ai-components/message-parts/AIMessageParts.js.map +1 -0
  434. package/lib/module/ai-components/message-parts/AIToolApproval.js +197 -0
  435. package/lib/module/ai-components/message-parts/AIToolApproval.js.map +1 -0
  436. package/lib/module/ai-components/message-parts/AIToolAuthorization.js +250 -0
  437. package/lib/module/ai-components/message-parts/AIToolAuthorization.js.map +1 -0
  438. package/lib/module/ai-components/message-parts/AIToolCall.js +159 -0
  439. package/lib/module/ai-components/message-parts/AIToolCall.js.map +1 -0
  440. package/lib/module/ai-components/message-parts/callStates.js +54 -0
  441. package/lib/module/ai-components/message-parts/callStates.js.map +1 -0
  442. package/lib/module/ai-components/message-parts/index.js +70 -0
  443. package/lib/module/ai-components/message-parts/index.js.map +1 -0
  444. package/lib/module/ai-components/message-parts/parseMessageParts.js +126 -0
  445. package/lib/module/ai-components/message-parts/parseMessageParts.js.map +1 -0
  446. package/lib/module/ai-components/message-parts/types.js +2 -0
  447. package/lib/module/ai-components/message-parts/types.js.map +1 -0
  448. package/lib/module/ai-components/native-specs/NativeAIAgent.js +7 -0
  449. package/lib/module/ai-components/native-specs/NativeAIAgent.js.map +1 -0
  450. package/lib/module/ai-components/reasoning/AIReasoning.js +401 -0
  451. package/lib/module/ai-components/reasoning/AIReasoning.js.map +1 -0
  452. package/lib/module/ai-components/reasoning/index.js +26 -0
  453. package/lib/module/ai-components/reasoning/index.js.map +1 -0
  454. package/lib/module/ai-components/reasoning/thinkingClock.js +63 -0
  455. package/lib/module/ai-components/reasoning/thinkingClock.js.map +1 -0
  456. package/lib/module/ai-components/services/clipboard-service/expo.js +7 -2
  457. package/lib/module/ai-components/services/clipboard-service/expo.js.map +1 -1
  458. package/lib/module/ai-components/store/composer/store.js.map +1 -1
  459. package/lib/module/ai-components/store/composer/useComposerChatOption.js +18 -0
  460. package/lib/module/ai-components/store/composer/useComposerChatOption.js.map +1 -0
  461. package/lib/module/ai-components/store/composer/useComposerIsEditing.js +18 -0
  462. package/lib/module/ai-components/store/composer/useComposerIsEditing.js.map +1 -0
  463. package/lib/module/ai-components/store/index.js +22 -0
  464. package/lib/module/ai-components/store/index.js.map +1 -1
  465. package/lib/module/ai-components/suggestions/AISuggestions.js +66 -0
  466. package/lib/module/ai-components/suggestions/AISuggestions.js.map +1 -0
  467. package/lib/module/ai-components/suggestions/index.js +15 -0
  468. package/lib/module/ai-components/suggestions/index.js.map +1 -0
  469. package/lib/module/ai-components/syntax-highlighting/utils/flatten-nodes.js +2 -1
  470. package/lib/module/ai-components/syntax-highlighting/utils/flatten-nodes.js.map +1 -1
  471. package/lib/module/ai-components/syntax-highlighting/utils/renderer.js +3 -2
  472. package/lib/module/ai-components/syntax-highlighting/utils/renderer.js.map +1 -1
  473. package/lib/module/ai-components/theme.js +137 -1
  474. package/lib/module/ai-components/theme.js.map +1 -1
  475. package/lib/module/ai-components/tool-calls/AIClientIdentity.js +22 -0
  476. package/lib/module/ai-components/tool-calls/AIClientIdentity.js.map +1 -0
  477. package/lib/module/ai-components/tool-calls/AIClientToolRunner.js +109 -0
  478. package/lib/module/ai-components/tool-calls/AIClientToolRunner.js.map +1 -0
  479. package/lib/module/ai-components/tool-calls/AIToolApprover.js +23 -0
  480. package/lib/module/ai-components/tool-calls/AIToolApprover.js.map +1 -0
  481. package/lib/module/ai-components/tool-calls/authSessionAuthorizer.js +88 -0
  482. package/lib/module/ai-components/tool-calls/authSessionAuthorizer.js.map +1 -0
  483. package/lib/module/ai-components/tool-calls/index.js +48 -0
  484. package/lib/module/ai-components/tool-calls/index.js.map +1 -0
  485. package/lib/module/ai-components/voice-visualization/glowShader.js.map +1 -1
  486. package/lib/module/components/Accessibility/useAccessibilityAnnouncer.js.map +1 -1
  487. package/lib/module/components/Message/MessageItemView/utils/renderText.js.map +1 -1
  488. package/lib/module/contexts/translationContext/TranslationContext.js +2 -2
  489. package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
  490. package/lib/module/i18n/ar.json +39 -1
  491. package/lib/module/i18n/en.json +39 -1
  492. package/lib/module/i18n/es.json +39 -1
  493. package/lib/module/i18n/fr.json +39 -1
  494. package/lib/module/i18n/he.json +39 -1
  495. package/lib/module/i18n/hi.json +39 -1
  496. package/lib/module/i18n/it.json +39 -1
  497. package/lib/module/i18n/ja.json +39 -1
  498. package/lib/module/i18n/ko.json +39 -1
  499. package/lib/module/i18n/nl.json +39 -1
  500. package/lib/module/i18n/pt-br.json +39 -1
  501. package/lib/module/i18n/ru.json +39 -1
  502. package/lib/module/i18n/tr.json +39 -1
  503. package/lib/module/mock-builders/a2ui/ohrid.js +84 -0
  504. package/lib/module/mock-builders/a2ui/ohrid.js.map +1 -0
  505. package/lib/module/utils/i18n/Streami18n.js +9 -4
  506. package/lib/module/utils/i18n/Streami18n.js.map +1 -1
  507. package/lib/module/utils/i18n/utils.js +7 -0
  508. package/lib/module/utils/i18n/utils.js.map +1 -0
  509. package/lib/module/version.json +1 -1
  510. package/lib/typescript/a11y/a11yUtils.d.ts +0 -1
  511. package/lib/typescript/a11y/a11yUtils.d.ts.map +1 -1
  512. package/lib/typescript/a11y/hooks/useResolvedModalAccessibilityProps.d.ts +2 -3
  513. package/lib/typescript/a11y/hooks/useResolvedModalAccessibilityProps.d.ts.map +1 -1
  514. package/lib/typescript/a2ui/A2UIContexts.d.ts +9 -0
  515. package/lib/typescript/a2ui/A2UIContexts.d.ts.map +1 -0
  516. package/lib/typescript/a2ui/A2UIInstructions.d.ts +47 -0
  517. package/lib/typescript/a2ui/A2UIInstructions.d.ts.map +1 -0
  518. package/lib/typescript/a2ui/A2UIPlaceholder.d.ts +4 -0
  519. package/lib/typescript/a2ui/A2UIPlaceholder.d.ts.map +1 -0
  520. package/lib/typescript/a2ui/A2UIRenderer.d.ts +130 -0
  521. package/lib/typescript/a2ui/A2UIRenderer.d.ts.map +1 -0
  522. package/lib/typescript/a2ui/A2UIStream.d.ts +23 -0
  523. package/lib/typescript/a2ui/A2UIStream.d.ts.map +1 -0
  524. package/lib/typescript/a2ui/A2UISurface.d.ts +19 -0
  525. package/lib/typescript/a2ui/A2UISurface.d.ts.map +1 -0
  526. package/lib/typescript/a2ui/basicFunctions.d.ts +10 -0
  527. package/lib/typescript/a2ui/basicFunctions.d.ts.map +1 -0
  528. package/lib/typescript/a2ui/catalogDocument.d.ts +56 -0
  529. package/lib/typescript/a2ui/catalogDocument.d.ts.map +1 -0
  530. package/lib/typescript/a2ui/catalogs.d.ts +42 -0
  531. package/lib/typescript/a2ui/catalogs.d.ts.map +1 -0
  532. package/lib/typescript/a2ui/components/DateTimeInput.d.ts +44 -0
  533. package/lib/typescript/a2ui/components/DateTimeInput.d.ts.map +1 -0
  534. package/lib/typescript/a2ui/components/Media.d.ts +27 -0
  535. package/lib/typescript/a2ui/components/Media.d.ts.map +1 -0
  536. package/lib/typescript/a2ui/components/basicComponents.d.ts +4 -0
  537. package/lib/typescript/a2ui/components/basicComponents.d.ts.map +1 -0
  538. package/lib/typescript/a2ui/components/iconPaths.d.ts +2 -0
  539. package/lib/typescript/a2ui/components/iconPaths.d.ts.map +1 -0
  540. package/lib/typescript/a2ui/components/types.d.ts +23 -0
  541. package/lib/typescript/a2ui/components/types.d.ts.map +1 -0
  542. package/lib/typescript/a2ui/index.d.ts +8 -0
  543. package/lib/typescript/a2ui/index.d.ts.map +1 -0
  544. package/lib/typescript/a2ui/instructions.d.ts +39 -0
  545. package/lib/typescript/a2ui/instructions.d.ts.map +1 -0
  546. package/lib/typescript/a2ui/secrets.d.ts +20 -0
  547. package/lib/typescript/a2ui/secrets.d.ts.map +1 -0
  548. package/lib/typescript/a2ui/useReplyState.d.ts +4 -0
  549. package/lib/typescript/a2ui/useReplyState.d.ts.map +1 -0
  550. package/lib/typescript/ai-components/AITypingIndicatorView.d.ts.map +1 -1
  551. package/lib/typescript/ai-components/StreamingMessageView.d.ts +4 -1
  552. package/lib/typescript/ai-components/StreamingMessageView.d.ts.map +1 -1
  553. package/lib/typescript/ai-components/charts/components/PieLegend.d.ts.map +1 -1
  554. package/lib/typescript/ai-components/charts/components/VictoryChart.d.ts.map +1 -1
  555. package/lib/typescript/ai-components/charts/utils/format-time-label.d.ts +7 -0
  556. package/lib/typescript/ai-components/charts/utils/format-time-label.d.ts.map +1 -0
  557. package/lib/typescript/ai-components/charts/vega-lite/schema.d.ts +8 -8
  558. package/lib/typescript/ai-components/charts/vega-lite/schema.d.ts.map +1 -1
  559. package/lib/typescript/ai-components/contexts/composer-context.d.ts +3 -0
  560. package/lib/typescript/ai-components/contexts/composer-context.d.ts.map +1 -1
  561. package/lib/typescript/ai-components/contexts/index.d.ts +1 -0
  562. package/lib/typescript/ai-components/contexts/index.d.ts.map +1 -1
  563. package/lib/typescript/ai-components/contexts/theme-context.d.ts.map +1 -1
  564. package/lib/typescript/ai-components/contexts/translation-context.d.ts +19 -0
  565. package/lib/typescript/ai-components/contexts/translation-context.d.ts.map +1 -0
  566. package/lib/typescript/ai-components/conversation/AIConversation.d.ts +130 -0
  567. package/lib/typescript/ai-components/conversation/AIConversation.d.ts.map +1 -0
  568. package/lib/typescript/ai-components/conversation/controller/AIAgentError.d.ts +10 -0
  569. package/lib/typescript/ai-components/conversation/controller/AIAgentError.d.ts.map +1 -0
  570. package/lib/typescript/ai-components/conversation/controller/AIConversationController.d.ts +173 -0
  571. package/lib/typescript/ai-components/conversation/controller/AIConversationController.d.ts.map +1 -0
  572. package/lib/typescript/ai-components/conversation/controller/AIConversationExchange.d.ts +23 -0
  573. package/lib/typescript/ai-components/conversation/controller/AIConversationExchange.d.ts.map +1 -0
  574. package/lib/typescript/ai-components/conversation/controller/index.d.ts +5 -0
  575. package/lib/typescript/ai-components/conversation/controller/index.d.ts.map +1 -0
  576. package/lib/typescript/ai-components/conversation/controller/offers.d.ts +23 -0
  577. package/lib/typescript/ai-components/conversation/controller/offers.d.ts.map +1 -0
  578. package/lib/typescript/ai-components/conversation/controller/types.d.ts +142 -0
  579. package/lib/typescript/ai-components/conversation/controller/types.d.ts.map +1 -0
  580. package/lib/typescript/ai-components/conversation/controller/useAIConversationState.d.ts +9 -0
  581. package/lib/typescript/ai-components/conversation/controller/useAIConversationState.d.ts.map +1 -0
  582. package/lib/typescript/ai-components/conversation/entries.d.ts +47 -0
  583. package/lib/typescript/ai-components/conversation/entries.d.ts.map +1 -0
  584. package/lib/typescript/ai-components/conversation/fromStreamMessage.d.ts +25 -0
  585. package/lib/typescript/ai-components/conversation/fromStreamMessage.d.ts.map +1 -0
  586. package/lib/typescript/ai-components/conversation/index.d.ts +6 -0
  587. package/lib/typescript/ai-components/conversation/index.d.ts.map +1 -0
  588. package/lib/typescript/ai-components/conversation/list/AIChatList.d.ts +30 -0
  589. package/lib/typescript/ai-components/conversation/list/AIChatList.d.ts.map +1 -0
  590. package/lib/typescript/ai-components/conversation/list/useChatListController.d.ts +45 -0
  591. package/lib/typescript/ai-components/conversation/list/useChatListController.d.ts.map +1 -0
  592. package/lib/typescript/ai-components/conversation/list/useEndInView.d.ts +26 -0
  593. package/lib/typescript/ai-components/conversation/list/useEndInView.d.ts.map +1 -0
  594. package/lib/typescript/ai-components/conversation/list/useKeyboardOverlap.d.ts +17 -0
  595. package/lib/typescript/ai-components/conversation/list/useKeyboardOverlap.d.ts.map +1 -0
  596. package/lib/typescript/ai-components/conversation/list/useLoadOlder.d.ts +24 -0
  597. package/lib/typescript/ai-components/conversation/list/useLoadOlder.d.ts.map +1 -0
  598. package/lib/typescript/ai-components/conversation/list/usePinnedAnchor.d.ts +26 -0
  599. package/lib/typescript/ai-components/conversation/list/usePinnedAnchor.d.ts.map +1 -0
  600. package/lib/typescript/ai-components/conversation/types.d.ts +55 -0
  601. package/lib/typescript/ai-components/conversation/types.d.ts.map +1 -0
  602. package/lib/typescript/ai-components/conversation/useConversationRows.d.ts +66 -0
  603. package/lib/typescript/ai-components/conversation/useConversationRows.d.ts.map +1 -0
  604. package/lib/typescript/ai-components/generative-ui/AIUIAction.d.ts +48 -0
  605. package/lib/typescript/ai-components/generative-ui/AIUIAction.d.ts.map +1 -0
  606. package/lib/typescript/ai-components/generative-ui/AIUIArguments.d.ts +15 -0
  607. package/lib/typescript/ai-components/generative-ui/AIUIArguments.d.ts.map +1 -0
  608. package/lib/typescript/ai-components/generative-ui/AIUIComponent.d.ts +51 -0
  609. package/lib/typescript/ai-components/generative-ui/AIUIComponent.d.ts.map +1 -0
  610. package/lib/typescript/ai-components/generative-ui/AIUIComponentDefinition.d.ts +84 -0
  611. package/lib/typescript/ai-components/generative-ui/AIUIComponentDefinition.d.ts.map +1 -0
  612. package/lib/typescript/ai-components/generative-ui/AIUIDocument.d.ts +50 -0
  613. package/lib/typescript/ai-components/generative-ui/AIUIDocument.d.ts.map +1 -0
  614. package/lib/typescript/ai-components/generative-ui/AIUIEntrance.d.ts +75 -0
  615. package/lib/typescript/ai-components/generative-ui/AIUIEntrance.d.ts.map +1 -0
  616. package/lib/typescript/ai-components/generative-ui/AIUIErrorBoundary.d.ts +26 -0
  617. package/lib/typescript/ai-components/generative-ui/AIUIErrorBoundary.d.ts.map +1 -0
  618. package/lib/typescript/ai-components/generative-ui/AIUIHelpers.d.ts +23 -0
  619. package/lib/typescript/ai-components/generative-ui/AIUIHelpers.d.ts.map +1 -0
  620. package/lib/typescript/ai-components/generative-ui/AIUIHost.d.ts +160 -0
  621. package/lib/typescript/ai-components/generative-ui/AIUIHost.d.ts.map +1 -0
  622. package/lib/typescript/ai-components/generative-ui/AIUIMedia.d.ts +22 -0
  623. package/lib/typescript/ai-components/generative-ui/AIUIMedia.d.ts.map +1 -0
  624. package/lib/typescript/ai-components/generative-ui/AIUIRenderer.d.ts +53 -0
  625. package/lib/typescript/ai-components/generative-ui/AIUIRenderer.d.ts.map +1 -0
  626. package/lib/typescript/ai-components/generative-ui/AIUIView.d.ts +35 -0
  627. package/lib/typescript/ai-components/generative-ui/AIUIView.d.ts.map +1 -0
  628. package/lib/typescript/ai-components/generative-ui/index.d.ts +11 -0
  629. package/lib/typescript/ai-components/generative-ui/index.d.ts.map +1 -0
  630. package/lib/typescript/ai-components/icons.d.ts +66 -0
  631. package/lib/typescript/ai-components/icons.d.ts.map +1 -0
  632. package/lib/typescript/ai-components/index.d.ts +8 -0
  633. package/lib/typescript/ai-components/index.d.ts.map +1 -1
  634. package/lib/typescript/ai-components/internal/Shimmer.d.ts +14 -0
  635. package/lib/typescript/ai-components/internal/Shimmer.d.ts.map +1 -0
  636. package/lib/typescript/ai-components/internal/format.d.ts +7 -0
  637. package/lib/typescript/ai-components/internal/format.d.ts.map +1 -0
  638. package/lib/typescript/ai-components/internal/hooks/useBottomSafeArea.d.ts +3 -0
  639. package/lib/typescript/ai-components/internal/hooks/useBottomSafeArea.d.ts.map +1 -0
  640. package/lib/typescript/ai-components/internal/icons/AgentIcons.d.ts +31 -0
  641. package/lib/typescript/ai-components/internal/icons/AgentIcons.d.ts.map +1 -0
  642. package/lib/typescript/ai-components/internal/tokens.d.ts +2 -0
  643. package/lib/typescript/ai-components/internal/tokens.d.ts.map +1 -0
  644. package/lib/typescript/ai-components/internal/uuid.d.ts +2 -0
  645. package/lib/typescript/ai-components/internal/uuid.d.ts.map +1 -0
  646. package/lib/typescript/ai-components/markdown/components/CodeBlock.d.ts.map +1 -1
  647. package/lib/typescript/ai-components/markdown/components/InlineCode.d.ts.map +1 -1
  648. package/lib/typescript/ai-components/markdown/components/Text.d.ts.map +1 -1
  649. package/lib/typescript/ai-components/markdown/styles.d.ts +23 -4
  650. package/lib/typescript/ai-components/markdown/styles.d.ts.map +1 -1
  651. package/lib/typescript/ai-components/markdown/types.d.ts +1 -0
  652. package/lib/typescript/ai-components/markdown/types.d.ts.map +1 -1
  653. package/lib/typescript/ai-components/message/AIAssistantMessage.d.ts +40 -0
  654. package/lib/typescript/ai-components/message/AIAssistantMessage.d.ts.map +1 -0
  655. package/lib/typescript/ai-components/message/AIMessageAttachment.d.ts +33 -0
  656. package/lib/typescript/ai-components/message/AIMessageAttachment.d.ts.map +1 -0
  657. package/lib/typescript/ai-components/message/AIReplyActions.d.ts +19 -0
  658. package/lib/typescript/ai-components/message/AIReplyActions.d.ts.map +1 -0
  659. package/lib/typescript/ai-components/message/AIUserMessage.d.ts +17 -0
  660. package/lib/typescript/ai-components/message/AIUserMessage.d.ts.map +1 -0
  661. package/lib/typescript/ai-components/message/UserMessageMenu.d.ts +31 -0
  662. package/lib/typescript/ai-components/message/UserMessageMenu.d.ts.map +1 -0
  663. package/lib/typescript/ai-components/message/index.d.ts +5 -0
  664. package/lib/typescript/ai-components/message/index.d.ts.map +1 -0
  665. package/lib/typescript/ai-components/message-composer/ActionButton.d.ts.map +1 -1
  666. package/lib/typescript/ai-components/message-composer/ActionSheet.d.ts +2 -2
  667. package/lib/typescript/ai-components/message-composer/ActionSheet.d.ts.map +1 -1
  668. package/lib/typescript/ai-components/message-composer/AttachmentButton.d.ts.map +1 -1
  669. package/lib/typescript/ai-components/message-composer/ChatOptions.d.ts +35 -0
  670. package/lib/typescript/ai-components/message-composer/ChatOptions.d.ts.map +1 -0
  671. package/lib/typescript/ai-components/message-composer/ComposerView.d.ts +34 -3
  672. package/lib/typescript/ai-components/message-composer/ComposerView.d.ts.map +1 -1
  673. package/lib/typescript/ai-components/message-composer/EditingMessageChip.d.ts +7 -0
  674. package/lib/typescript/ai-components/message-composer/EditingMessageChip.d.ts.map +1 -0
  675. package/lib/typescript/ai-components/message-composer/MediaPreviewList.d.ts.map +1 -1
  676. package/lib/typescript/ai-components/message-composer/index.d.ts +1 -0
  677. package/lib/typescript/ai-components/message-composer/index.d.ts.map +1 -1
  678. package/lib/typescript/ai-components/message-parts/AIMessageParts.d.ts +38 -0
  679. package/lib/typescript/ai-components/message-parts/AIMessageParts.d.ts.map +1 -0
  680. package/lib/typescript/ai-components/message-parts/AIToolApproval.d.ts +38 -0
  681. package/lib/typescript/ai-components/message-parts/AIToolApproval.d.ts.map +1 -0
  682. package/lib/typescript/ai-components/message-parts/AIToolAuthorization.d.ts +48 -0
  683. package/lib/typescript/ai-components/message-parts/AIToolAuthorization.d.ts.map +1 -0
  684. package/lib/typescript/ai-components/message-parts/AIToolCall.d.ts +11 -0
  685. package/lib/typescript/ai-components/message-parts/AIToolCall.d.ts.map +1 -0
  686. package/lib/typescript/ai-components/message-parts/callStates.d.ts +9 -0
  687. package/lib/typescript/ai-components/message-parts/callStates.d.ts.map +1 -0
  688. package/lib/typescript/ai-components/message-parts/index.d.ts +7 -0
  689. package/lib/typescript/ai-components/message-parts/index.d.ts.map +1 -0
  690. package/lib/typescript/ai-components/message-parts/parseMessageParts.d.ts +47 -0
  691. package/lib/typescript/ai-components/message-parts/parseMessageParts.d.ts.map +1 -0
  692. package/lib/typescript/ai-components/message-parts/types.d.ts +137 -0
  693. package/lib/typescript/ai-components/message-parts/types.d.ts.map +1 -0
  694. package/lib/typescript/ai-components/native-specs/NativeAIAgent.d.ts +22 -0
  695. package/lib/typescript/ai-components/native-specs/NativeAIAgent.d.ts.map +1 -0
  696. package/lib/typescript/ai-components/reasoning/AIReasoning.d.ts +63 -0
  697. package/lib/typescript/ai-components/reasoning/AIReasoning.d.ts.map +1 -0
  698. package/lib/typescript/ai-components/reasoning/index.d.ts +3 -0
  699. package/lib/typescript/ai-components/reasoning/index.d.ts.map +1 -0
  700. package/lib/typescript/ai-components/reasoning/thinkingClock.d.ts +29 -0
  701. package/lib/typescript/ai-components/reasoning/thinkingClock.d.ts.map +1 -0
  702. package/lib/typescript/ai-components/services/clipboard-service/expo.d.ts.map +1 -1
  703. package/lib/typescript/ai-components/store/composer/store.d.ts +8 -0
  704. package/lib/typescript/ai-components/store/composer/store.d.ts.map +1 -1
  705. package/lib/typescript/ai-components/store/composer/useComposerChatOption.d.ts +5 -0
  706. package/lib/typescript/ai-components/store/composer/useComposerChatOption.d.ts.map +1 -0
  707. package/lib/typescript/ai-components/store/composer/useComposerIsEditing.d.ts +5 -0
  708. package/lib/typescript/ai-components/store/composer/useComposerIsEditing.d.ts.map +1 -0
  709. package/lib/typescript/ai-components/store/index.d.ts +2 -0
  710. package/lib/typescript/ai-components/store/index.d.ts.map +1 -1
  711. package/lib/typescript/ai-components/suggestions/AISuggestions.d.ts +13 -0
  712. package/lib/typescript/ai-components/suggestions/AISuggestions.d.ts.map +1 -0
  713. package/lib/typescript/ai-components/suggestions/index.d.ts +2 -0
  714. package/lib/typescript/ai-components/suggestions/index.d.ts.map +1 -0
  715. package/lib/typescript/ai-components/syntax-highlighting/utils/flatten-nodes.d.ts.map +1 -1
  716. package/lib/typescript/ai-components/syntax-highlighting/utils/renderer.d.ts +1 -1
  717. package/lib/typescript/ai-components/syntax-highlighting/utils/renderer.d.ts.map +1 -1
  718. package/lib/typescript/ai-components/theme.d.ts +200 -0
  719. package/lib/typescript/ai-components/theme.d.ts.map +1 -1
  720. package/lib/typescript/ai-components/tool-calls/AIClientIdentity.d.ts +14 -0
  721. package/lib/typescript/ai-components/tool-calls/AIClientIdentity.d.ts.map +1 -0
  722. package/lib/typescript/ai-components/tool-calls/AIClientToolRunner.d.ts +109 -0
  723. package/lib/typescript/ai-components/tool-calls/AIClientToolRunner.d.ts.map +1 -0
  724. package/lib/typescript/ai-components/tool-calls/AIToolApprover.d.ts +48 -0
  725. package/lib/typescript/ai-components/tool-calls/AIToolApprover.d.ts.map +1 -0
  726. package/lib/typescript/ai-components/tool-calls/authSessionAuthorizer.d.ts +57 -0
  727. package/lib/typescript/ai-components/tool-calls/authSessionAuthorizer.d.ts.map +1 -0
  728. package/lib/typescript/ai-components/tool-calls/index.d.ts +5 -0
  729. package/lib/typescript/ai-components/tool-calls/index.d.ts.map +1 -0
  730. package/lib/typescript/ai-components/voice-visualization/glowShader.d.ts.map +1 -1
  731. package/lib/typescript/ai-components/voice-visualization/simplex.d.ts +1 -1
  732. package/lib/typescript/components/Accessibility/NotificationAnnouncer.d.ts +5 -5
  733. package/lib/typescript/components/Accessibility/hooks/useIncomingMessageAnnouncements.d.ts +1 -1
  734. package/lib/typescript/components/Accessibility/useAccessibilityAnnouncer.d.ts +0 -2
  735. package/lib/typescript/components/Accessibility/useAccessibilityAnnouncer.d.ts.map +1 -1
  736. package/lib/typescript/components/Message/MessageItemView/utils/renderText.d.ts.map +1 -1
  737. package/lib/typescript/contexts/translationContext/TranslationContext.d.ts +1 -1
  738. package/lib/typescript/contexts/translationContext/TranslationContext.d.ts.map +1 -1
  739. package/lib/typescript/i18n/ar.json +39 -1
  740. package/lib/typescript/i18n/en.json +39 -1
  741. package/lib/typescript/i18n/es.json +39 -1
  742. package/lib/typescript/i18n/fr.json +39 -1
  743. package/lib/typescript/i18n/he.json +39 -1
  744. package/lib/typescript/i18n/hi.json +39 -1
  745. package/lib/typescript/i18n/it.json +39 -1
  746. package/lib/typescript/i18n/ja.json +39 -1
  747. package/lib/typescript/i18n/ko.json +39 -1
  748. package/lib/typescript/i18n/nl.json +39 -1
  749. package/lib/typescript/i18n/pt-br.json +39 -1
  750. package/lib/typescript/i18n/ru.json +39 -1
  751. package/lib/typescript/i18n/tr.json +39 -1
  752. package/lib/typescript/utils/i18n/Streami18n.d.ts +40 -2
  753. package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
  754. package/lib/typescript/utils/i18n/utils.d.ts +3 -0
  755. package/lib/typescript/utils/i18n/utils.d.ts.map +1 -0
  756. package/package.json +10 -2
  757. package/src/a11y/a11yUtils.ts +0 -1
  758. package/src/a11y/hooks/useResolvedModalAccessibilityProps.ts +2 -3
  759. package/src/a2ui/A2UIContexts.ts +15 -0
  760. package/src/a2ui/A2UIInstructions.ts +102 -0
  761. package/src/a2ui/A2UIPlaceholder.tsx +24 -0
  762. package/src/a2ui/A2UIRenderer.tsx +504 -0
  763. package/src/a2ui/A2UIStream.ts +105 -0
  764. package/src/a2ui/A2UISurface.tsx +241 -0
  765. package/src/a2ui/__tests__/A2UIInstructions.test.ts +233 -0
  766. package/src/a2ui/__tests__/A2UIRenderer.test.tsx +1514 -0
  767. package/src/a2ui/__tests__/conformance.test.ts +579 -0
  768. package/src/a2ui/basicCatalog.json +1206 -0
  769. package/src/a2ui/basicFunctions.ts +429 -0
  770. package/src/a2ui/catalogDocument.ts +119 -0
  771. package/src/a2ui/catalogs.ts +185 -0
  772. package/src/a2ui/components/DateTimeInput.tsx +381 -0
  773. package/src/a2ui/components/Media.tsx +278 -0
  774. package/src/a2ui/components/basicComponents.tsx +832 -0
  775. package/src/a2ui/components/iconPaths.ts +116 -0
  776. package/src/a2ui/components/types.ts +24 -0
  777. package/src/a2ui/index.ts +18 -0
  778. package/src/a2ui/instructions.ts +341 -0
  779. package/src/a2ui/secrets.ts +154 -0
  780. package/src/a2ui/useReplyState.ts +26 -0
  781. package/src/ai-components/AITypingIndicatorView.tsx +6 -22
  782. package/src/ai-components/README.md +55 -3
  783. package/src/ai-components/StreamingMessageView.tsx +27 -3
  784. package/src/ai-components/__tests__/ComposerView.test.tsx +227 -2
  785. package/src/ai-components/__tests__/Markdown.test.tsx +13 -0
  786. package/src/ai-components/__tests__/StreamingMessageView.test.tsx +69 -0
  787. package/src/ai-components/__tests__/charts.test.ts +75 -0
  788. package/src/ai-components/__tests__/clientToolRunner.test.ts +239 -0
  789. package/src/ai-components/__tests__/conversation.test.tsx +705 -0
  790. package/src/ai-components/__tests__/conversationController.test.ts +1561 -0
  791. package/src/ai-components/__tests__/conversationExchange.test.ts +187 -0
  792. package/src/ai-components/__tests__/conversationRows.test.ts +207 -0
  793. package/src/ai-components/__tests__/conversationUI.test.tsx +586 -0
  794. package/src/ai-components/__tests__/format.test.ts +32 -0
  795. package/src/ai-components/__tests__/generativeUI.test.ts +634 -0
  796. package/src/ai-components/__tests__/keyboard.test.ts +14 -0
  797. package/src/ai-components/__tests__/messagePartViews.test.tsx +343 -0
  798. package/src/ai-components/__tests__/messageParts.test.ts +336 -0
  799. package/src/ai-components/__tests__/messageViews.test.tsx +321 -0
  800. package/src/ai-components/__tests__/signIn.test.tsx +324 -0
  801. package/src/ai-components/__tests__/theme.test.tsx +18 -0
  802. package/src/ai-components/__tests__/translation.test.tsx +85 -0
  803. package/src/ai-components/__tests__/voiceDriver.test.ts +0 -3
  804. package/src/ai-components/__tests__/voicePalette.test.ts +1 -1
  805. package/src/ai-components/charts/components/PieLegend.tsx +2 -1
  806. package/src/ai-components/charts/components/VictoryChart.tsx +10 -2
  807. package/src/ai-components/charts/utils/format-time-label.ts +18 -0
  808. package/src/ai-components/charts/vega-lite/schema.ts +19 -2
  809. package/src/ai-components/contexts/composer-context.tsx +13 -5
  810. package/src/ai-components/contexts/index.ts +1 -0
  811. package/src/ai-components/contexts/theme-context.tsx +19 -4
  812. package/src/ai-components/contexts/translation-context.tsx +44 -0
  813. package/src/ai-components/conversation/AIConversation.tsx +590 -0
  814. package/src/ai-components/conversation/controller/AIAgentError.ts +14 -0
  815. package/src/ai-components/conversation/controller/AIConversationController.ts +623 -0
  816. package/src/ai-components/conversation/controller/AIConversationExchange.ts +132 -0
  817. package/src/ai-components/conversation/controller/index.ts +4 -0
  818. package/src/ai-components/conversation/controller/offers.ts +43 -0
  819. package/src/ai-components/conversation/controller/types.ts +154 -0
  820. package/src/ai-components/conversation/controller/useAIConversationState.ts +21 -0
  821. package/src/ai-components/conversation/entries.ts +177 -0
  822. package/src/ai-components/conversation/fromStreamMessage.ts +87 -0
  823. package/src/ai-components/conversation/index.ts +5 -0
  824. package/src/ai-components/conversation/list/AIChatList.tsx +227 -0
  825. package/src/ai-components/conversation/list/useChatListController.ts +91 -0
  826. package/src/ai-components/conversation/list/useEndInView.ts +61 -0
  827. package/src/ai-components/conversation/list/useKeyboardOverlap.ts +51 -0
  828. package/src/ai-components/conversation/list/useLoadOlder.ts +97 -0
  829. package/src/ai-components/conversation/list/usePinnedAnchor.ts +113 -0
  830. package/src/ai-components/conversation/types.ts +57 -0
  831. package/src/ai-components/conversation/useConversationRows.ts +230 -0
  832. package/src/ai-components/generative-ui/AIUIAction.ts +73 -0
  833. package/src/ai-components/generative-ui/AIUIArguments.ts +117 -0
  834. package/src/ai-components/generative-ui/AIUIComponent.tsx +106 -0
  835. package/src/ai-components/generative-ui/AIUIComponentDefinition.ts +163 -0
  836. package/src/ai-components/generative-ui/AIUIDocument.ts +77 -0
  837. package/src/ai-components/generative-ui/AIUIEntrance.tsx +223 -0
  838. package/src/ai-components/generative-ui/AIUIErrorBoundary.tsx +39 -0
  839. package/src/ai-components/generative-ui/AIUIHelpers.ts +86 -0
  840. package/src/ai-components/generative-ui/AIUIHost.ts +358 -0
  841. package/src/ai-components/generative-ui/AIUIMedia.ts +45 -0
  842. package/src/ai-components/generative-ui/AIUIRenderer.ts +60 -0
  843. package/src/ai-components/generative-ui/AIUIView.tsx +87 -0
  844. package/src/ai-components/generative-ui/index.ts +48 -0
  845. package/src/ai-components/icons.ts +101 -0
  846. package/src/ai-components/index.ts +10 -0
  847. package/src/ai-components/internal/Shimmer.tsx +40 -0
  848. package/src/ai-components/internal/format.ts +69 -0
  849. package/src/ai-components/internal/hooks/useBottomSafeArea.ts +6 -0
  850. package/src/ai-components/internal/icons/AgentIcons.tsx +138 -0
  851. package/src/ai-components/internal/tokens.ts +4 -0
  852. package/src/ai-components/internal/uuid.ts +17 -0
  853. package/src/ai-components/markdown/components/CodeBlock.tsx +13 -2
  854. package/src/ai-components/markdown/components/InlineCode.tsx +1 -0
  855. package/src/ai-components/markdown/components/Text.tsx +7 -2
  856. package/src/ai-components/markdown/styles.ts +29 -27
  857. package/src/ai-components/markdown/types.ts +1 -0
  858. package/src/ai-components/message/AIAssistantMessage.tsx +99 -0
  859. package/src/ai-components/message/AIMessageAttachment.tsx +245 -0
  860. package/src/ai-components/message/AIReplyActions.tsx +139 -0
  861. package/src/ai-components/message/AIUserMessage.tsx +121 -0
  862. package/src/ai-components/message/UserMessageMenu.tsx +149 -0
  863. package/src/ai-components/message/index.ts +4 -0
  864. package/src/ai-components/message-composer/ActionButton.tsx +5 -1
  865. package/src/ai-components/message-composer/ActionSheet.tsx +28 -6
  866. package/src/ai-components/message-composer/AttachmentButton.tsx +9 -1
  867. package/src/ai-components/message-composer/ChatOptions.tsx +144 -0
  868. package/src/ai-components/message-composer/ComposerView.tsx +179 -29
  869. package/src/ai-components/message-composer/EditingMessageChip.tsx +61 -0
  870. package/src/ai-components/message-composer/MediaPreviewList.tsx +34 -8
  871. package/src/ai-components/message-composer/index.ts +1 -0
  872. package/src/ai-components/message-parts/AIMessageParts.tsx +120 -0
  873. package/src/ai-components/message-parts/AIToolApproval.tsx +196 -0
  874. package/src/ai-components/message-parts/AIToolAuthorization.tsx +279 -0
  875. package/src/ai-components/message-parts/AIToolCall.tsx +117 -0
  876. package/src/ai-components/message-parts/callStates.ts +44 -0
  877. package/src/ai-components/message-parts/index.ts +6 -0
  878. package/src/ai-components/message-parts/parseMessageParts.ts +195 -0
  879. package/src/ai-components/message-parts/types.ts +157 -0
  880. package/src/ai-components/native-specs/NativeAIAgent.ts +25 -0
  881. package/src/ai-components/reasoning/AIReasoning.tsx +509 -0
  882. package/src/ai-components/reasoning/index.ts +2 -0
  883. package/src/ai-components/reasoning/thinkingClock.ts +109 -0
  884. package/src/ai-components/services/clipboard-service/expo.ts +18 -4
  885. package/src/ai-components/store/composer/store.ts +9 -0
  886. package/src/ai-components/store/composer/useComposerChatOption.ts +15 -0
  887. package/src/ai-components/store/composer/useComposerIsEditing.ts +15 -0
  888. package/src/ai-components/store/index.ts +2 -0
  889. package/src/ai-components/suggestions/AISuggestions.tsx +73 -0
  890. package/src/ai-components/suggestions/index.ts +1 -0
  891. package/src/ai-components/syntax-highlighting/utils/flatten-nodes.ts +2 -1
  892. package/src/ai-components/syntax-highlighting/utils/renderer.tsx +4 -2
  893. package/src/ai-components/theme.ts +334 -0
  894. package/src/ai-components/tool-calls/AIClientIdentity.ts +33 -0
  895. package/src/ai-components/tool-calls/AIClientToolRunner.ts +200 -0
  896. package/src/ai-components/tool-calls/AIToolApprover.tsx +60 -0
  897. package/src/ai-components/tool-calls/authSessionAuthorizer.ts +137 -0
  898. package/src/ai-components/tool-calls/index.ts +4 -0
  899. package/src/ai-components/voice-visualization/glowShader.ts +1 -3
  900. package/src/ai-components/voice-visualization/simplex.ts +1 -1
  901. package/src/components/Accessibility/NotificationAnnouncer.tsx +5 -5
  902. package/src/components/Accessibility/hooks/useIncomingMessageAnnouncements.ts +1 -1
  903. package/src/components/Accessibility/useAccessibilityAnnouncer.ts +0 -2
  904. package/src/components/Message/MessageItemView/utils/renderText.tsx +1 -2
  905. package/src/contexts/translationContext/TranslationContext.tsx +2 -2
  906. package/src/i18n/ar.json +39 -1
  907. package/src/i18n/en.json +39 -1
  908. package/src/i18n/es.json +39 -1
  909. package/src/i18n/fr.json +39 -1
  910. package/src/i18n/he.json +39 -1
  911. package/src/i18n/hi.json +39 -1
  912. package/src/i18n/it.json +39 -1
  913. package/src/i18n/ja.json +39 -1
  914. package/src/i18n/ko.json +39 -1
  915. package/src/i18n/nl.json +39 -1
  916. package/src/i18n/pt-br.json +39 -1
  917. package/src/i18n/ru.json +39 -1
  918. package/src/i18n/tr.json +39 -1
  919. package/src/mock-builders/a2ui/ohrid.ts +106 -0
  920. package/src/utils/i18n/Streami18n.ts +4 -1
  921. package/src/utils/i18n/utils.ts +3 -0
  922. package/src/version.json +1 -1
@@ -0,0 +1,26 @@
1
+ import { type RefObject } from 'react';
2
+ import type { SharedValue } from 'react-native-reanimated';
3
+ import type { LegendListRef } from '@legendapp/list/react-native';
4
+ import { type KeyboardFrame } from './useKeyboardOverlap';
5
+ export type UseEndInViewOptions = {
6
+ /** The room for a composer floating over the bottom of the list, which is not in view. */
7
+ bottomInset: number;
8
+ /** The height of the list's header, which its positions leave out. */
9
+ headerSize: RefObject<number>;
10
+ /** The keyboard, which covers the bottom of the list by as much as it reaches over it. */
11
+ keyboard: SharedValue<KeyboardFrame>;
12
+ /** How far above the bottom of the screen the list ends. */
13
+ keyboardOffset: RefObject<number>;
14
+ listRef: RefObject<LegendListRef | null>;
15
+ };
16
+ /**
17
+ * Whether the end of the last row's content is in view: not the room the anchored latest turn
18
+ * leaves under a short reply, nor the room for the floating composer. Call `scheduleCheckEnd`
19
+ * whenever that may have changed: a scroll, or a row changing size without one, such as an answer
20
+ * typing out, or the keyboard moving. It checks once a frame at most.
21
+ */
22
+ export declare const useEndInView: ({ bottomInset, headerSize, keyboard, keyboardOffset, listRef, }: UseEndInViewOptions) => {
23
+ isEndInView: boolean;
24
+ scheduleCheckEnd: () => void;
25
+ };
26
+ //# sourceMappingURL=useEndInView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEndInView.d.ts","sourceRoot":"","sources":["../../../../../src/ai-components/conversation/list/useEndInView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA4C,MAAM,OAAO,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,sBAAsB,CAAC;AAK7E,MAAM,MAAM,mBAAmB,GAAG;IAChC,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,0FAA0F;IAC1F,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IACrC,4DAA4D;IAC5D,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CAC1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,iEAM1B,mBAAmB;;;CAyBrB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type SharedValue } from 'react-native-reanimated';
2
+ export type KeyboardFrame = {
3
+ height: number;
4
+ progress: number;
5
+ };
6
+ /**
7
+ * How far the keyboard reaches over a view that ends `offset` above the bottom of the screen, as
8
+ * `KeyboardAwareLegendList` reckons it: the keyboard's height less the offset, scaled by how far
9
+ * the keyboard is open. In a worklet or on the JS thread.
10
+ */
11
+ export declare const keyboardOverlapOf: (keyboard: KeyboardFrame, offset: number) => number;
12
+ /**
13
+ * The keyboard's height and how far it is open, as it moves. `onSettled` runs on the JS thread
14
+ * once it has finished moving.
15
+ */
16
+ export declare const useKeyboardFrame: (onSettled?: () => void) => SharedValue<KeyboardFrame>;
17
+ //# sourceMappingURL=useKeyboardOverlap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeyboardOverlap.d.ts","sourceRoot":"","sources":["../../../../../src/ai-components/conversation/list/useKeyboardOverlap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,WAAW,EAAkB,MAAM,yBAAyB,CAAC;AAEpF,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,aAAa,EAAE,QAAQ,MAAM,WAGxE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,IAAI,KAAG,WAAW,CAAC,aAAa,CA8BlF,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { type RefObject } from 'react';
2
+ import type { LegendListRef } from '@legendapp/list/react-native';
3
+ export type UseLoadOlderOptions = {
4
+ listRef: RefObject<LegendListRef | null>;
5
+ /** Loads the rows before the first one. `undefined` once there are none left. */
6
+ loadOlderMessages?: () => Promise<void> | void;
7
+ };
8
+ /**
9
+ * Loads older messages once the spinner above the turns has been in view a moment, and again
10
+ * while it stays in view after a load that failed, or brought nothing while there is more. Only
11
+ * while the list is at rest: on iOS, what arrives above while a finger holds the list, or while
12
+ * it glides or bounces, pushes what is in view down rather than staying out of sight.
13
+ *
14
+ * Returns the list's handlers for it, or none while there is nothing to load.
15
+ */
16
+ export declare const useLoadOlder: ({ listRef, loadOlderMessages }: UseLoadOlderOptions) => {
17
+ onMomentumScrollBegin: () => void;
18
+ onMomentumScrollEnd: () => void;
19
+ onScrollBeginDrag: () => void;
20
+ onScrollEndDrag: () => void;
21
+ onStartReached: () => void;
22
+ onStartReachedThreshold: number;
23
+ } | undefined;
24
+ //# sourceMappingURL=useLoadOlder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLoadOlder.d.ts","sourceRoot":"","sources":["../../../../../src/ai-components/conversation/list/useLoadOlder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAUlE,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACzC,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAI,gCAAgC,mBAAmB;;;;;;;aAsE/E,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type RefObject } from 'react';
2
+ import type { AnchoredEndSpaceConfig, LegendListRef } from '@legendapp/list/react-native';
3
+ export type UsePinnedAnchorOptions<T> = {
4
+ /** The key of the row to pin to the top, such as the latest question's. */
5
+ anchorKey: string | undefined;
6
+ data: readonly T[];
7
+ /** The height of the list's header, which its positions leave out. */
8
+ headerSize: RefObject<number>;
9
+ keyExtractor: (item: T) => string;
10
+ listRef: RefObject<LegendListRef | null>;
11
+ /** Called once the anchor is laid out, and whenever the room the list leaves under it changes. */
12
+ onAnchorLayout?: () => void;
13
+ };
14
+ /**
15
+ * Pins a row to the top of what is visible: the list leaves room under it (`anchoredEndSpace`),
16
+ * and a new anchor is scrolled to once it is laid out. The keyboard-aware list keeps that room as
17
+ * the scroll view's inset, which follows what is below the row shrinking, and which the keyboard
18
+ * takes before it lifts anything.
19
+ */
20
+ export declare const usePinnedAnchor: <T>({ anchorKey, data, headerSize, keyExtractor, listRef, onAnchorLayout, }: UsePinnedAnchorOptions<T>) => {
21
+ anchoredEndSpace: AnchoredEndSpaceConfig | undefined;
22
+ onMetricsChange: ({ headerSize: size }: {
23
+ headerSize: number;
24
+ }) => void;
25
+ };
26
+ //# sourceMappingURL=usePinnedAnchor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePinnedAnchor.d.ts","sourceRoot":"","sources":["../../../../../src/ai-components/conversation/list/usePinnedAnchor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAiD,MAAM,OAAO,CAAC;AAEtF,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAI1F,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;IACnB,sEAAsE;IACtE,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAClC,OAAO,EAAE,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACzC,kGAAkG;IAClG,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,yEAOhC,sBAAsB,CAAC,CAAC,CAAC;;4CAsDD;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE;CA2BhD,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type { AIUIDocument } from '../generative-ui/AIUIDocument';
2
+ import type { AIMessageAttachmentData } from '../message/AIMessageAttachment';
3
+ import type { AIMessageRating } from '../message/AIReplyActions';
4
+ import type { AIMessagePartData } from '../message-parts/types';
5
+ /** Who wrote a message: the person using the app (`user`) or the agent (`assistant`). */
6
+ export type AIMessageRole = 'user' | 'assistant' | (string & {});
7
+ /**
8
+ * A message of the conversation as the AI components show it. `fromStreamMessage` makes one
9
+ * from a Stream message.
10
+ */
11
+ export type AIMessage = {
12
+ id: string;
13
+ /** Who wrote it. Each of the person's messages starts a turn. */
14
+ role: AIMessageRole;
15
+ /** What it says. A reply's text is Markdown. */
16
+ text: string;
17
+ /** What it carries besides its text, such as images and files. */
18
+ attachments?: AIMessageAttachmentData[];
19
+ /** Whether the agent is still writing it. */
20
+ isGenerating?: boolean;
21
+ /**
22
+ * How the person rated a reply, as your backend has it. An `AIConversationController` shows it
23
+ * until the person rates the reply on this device.
24
+ */
25
+ rating?: AIMessageRating | null;
26
+ /** The steps the agent took for it, in order: reasoning, tool calls and kinds of its own. */
27
+ parts?: AIMessagePartData[];
28
+ /**
29
+ * The whole of a reasoning step's thinking when the app has it, such as from live updates.
30
+ * Without it, the step shows its own excerpt. It is read on every render, so look it up
31
+ * rather than work it out.
32
+ */
33
+ reasoningText?: (stepId: string) => string | undefined;
34
+ /**
35
+ * The UI the agent wrote for a reply, which shows in place of its text when the
36
+ * conversation's `ui` host has a renderer for it. A person's message has none.
37
+ */
38
+ uiDocument?: AIUIDocument;
39
+ };
40
+ /**
41
+ * A message the person sent that is not in the conversation's messages yet. The conversation
42
+ * shows it until its copy arrives, and shows the agent thinking meanwhile.
43
+ */
44
+ export type AIPendingMessage = {
45
+ /**
46
+ * The message's id once it arrives, when you know it (such as the id you send it with). Its
47
+ * copy is then found by it rather than by where it lands. Keep it the same while it waits.
48
+ */
49
+ id: string;
50
+ /** What the person wrote. */
51
+ text: string;
52
+ /** What they sent with it, such as the photos and files they picked. Its copy shows these too. */
53
+ attachments?: AIMessageAttachmentData[];
54
+ };
55
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ai-components/conversation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,yFAAyF;AACzF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,iEAAiE;IACjE,IAAI,EAAE,aAAa,CAAC;IACpB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACxC,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,6FAA6F;IAC7F,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACvD;;;OAGG;IACH,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,kGAAkG;IAClG,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;CACzC,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type AIConversationCanShowUI, type AIConversationEntry } from './entries';
3
+ import type { AIMessage, AIPendingMessage } from './types';
4
+ import { AIThinkingClock } from '../reasoning/thinkingClock';
5
+ /**
6
+ * Where a row is: the first of a turn, or within one. The first turn has the same room above it as
7
+ * the others, so older messages arriving above it leave it where it is.
8
+ */
9
+ export type RowPosition = 'turn' | 'message';
10
+ /** A row of the list: one message, with the turn it belongs to. */
11
+ export type EntryRow = {
12
+ entry: AIConversationEntry;
13
+ key: string;
14
+ kind: 'entry';
15
+ position: RowPosition;
16
+ turnKey: string;
17
+ /** The turn's first reasoning step, which takes over the seconds the turn was seen thinking. */
18
+ firstStepId?: string;
19
+ /**
20
+ * When the agent started thinking again between the steps of this reply, which is being
21
+ * written, and which its seconds count from. It thinks under the reply, in the reply's row, so
22
+ * it moves with the reply's steps as they fold.
23
+ */
24
+ thinkingSince?: number;
25
+ };
26
+ /**
27
+ * What ends the latest turn: the agent thinking, and the app's footer. A row of its own rather than
28
+ * the list's footer: the list lays its rows out itself, together with the room it leaves under the
29
+ * latest turn, while a footer that goes away shrinks the content at once, which moves the view.
30
+ */
31
+ export type TailRow = {
32
+ isThinking: boolean;
33
+ key: string;
34
+ kind: 'tail';
35
+ turnKey: string;
36
+ firstStepId?: string;
37
+ footer?: ReactNode;
38
+ };
39
+ export type ConversationRow = EntryRow | TailRow;
40
+ export type UseConversationRowsOptions = {
41
+ messages: AIMessage[];
42
+ /** Whether a reply's generated UI shows, so a reply that shows only UI has a row. */
43
+ canShowUI?: AIConversationCanShowUI;
44
+ footer?: ReactNode;
45
+ isThinking?: boolean;
46
+ /** Whether `isThinking` alone says whether the agent is thinking, rather than the rows too. */
47
+ isThinkingKnown?: boolean;
48
+ pendingMessage?: AIPendingMessage | null;
49
+ };
50
+ export type ConversationRows = {
51
+ /** The key of the latest turn's first row, which pins to the top: `undefined` with no turns. */
52
+ anchorKey: string | undefined;
53
+ /** The turns' thinking clock, for `AIThinkingTurnContext`. */
54
+ clock: AIThinkingClock;
55
+ /** The rows to list: each message, then what ends the latest turn while there is any. */
56
+ rows: ConversationRow[];
57
+ /** Whether there are no messages to show yet, not even one on its way. */
58
+ isEmpty: boolean;
59
+ };
60
+ /**
61
+ * The conversation's data, as rows for a list: its messages grouped into turns, a message on its
62
+ * way until its copy arrives, and what ends the latest turn. Each unchanged row keeps its object,
63
+ * so the list renders only the rows that changed. Knows nothing about the list itself.
64
+ */
65
+ export declare const useConversationRows: ({ canShowUI, footer, isThinking, isThinkingKnown, messages, pendingMessage, }: UseConversationRowsOptions) => ConversationRows;
66
+ //# sourceMappingURL=useConversationRows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConversationRows.d.ts","sourceRoot":"","sources":["../../../../src/ai-components/conversation/useConversationRows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA8C,MAAM,OAAO,CAAC;AAEnF,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAKzB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7C,mEAAmE;AACnE,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC;AAqCjD,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,qFAAqF;IACrF,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+FAA+F;IAC/F,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,gGAAgG;IAChG,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,8DAA8D;IAC9D,KAAK,EAAE,eAAe,CAAC;IACvB,yFAAyF;IACzF,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,+EAOjC,0BAA0B,KAAG,gBA0G/B,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { AIUIFormat } from './AIUIDocument';
2
+ /**
3
+ * What the person did in a reply's UI, such as tapping a place or submitting a form. It goes to
4
+ * the agent as their next message: `label` is its text and `aiUIActionJSON(action)` what it
5
+ * carries.
6
+ */
7
+ export type AIUIAction = {
8
+ /** The format of the UI it came from. */
9
+ format: AIUIFormat;
10
+ /** What the person did, in their words, such as "Tell me more about St. Naum". */
11
+ label: string;
12
+ /** The reply whose UI it came from. */
13
+ messageId: string;
14
+ /**
15
+ * What happened, such as an event of an app's component (`ask_about`) or OpenUI's
16
+ * `continue_conversation`.
17
+ */
18
+ name: string;
19
+ /** The details in the format's own shape, such as what was chosen and a form's values. */
20
+ payload: Record<string, unknown>;
21
+ };
22
+ /** The action as the JSON object an agent's backend reads. */
23
+ export type AIUIActionJSON = {
24
+ format: AIUIFormat;
25
+ message_id: string;
26
+ name: string;
27
+ payload: Record<string, unknown>;
28
+ v: 1;
29
+ };
30
+ /** The custom field of the person's message that holds the action. */
31
+ export declare const AI_UI_ACTION_CUSTOM_DATA_KEY = "ai_ui_action";
32
+ /**
33
+ * The most an action may take as JSON. The agents router refuses a larger one, and its
34
+ * refusal would lose the person's message with it.
35
+ */
36
+ export declare const AI_UI_ACTION_MAX_BYTES: number;
37
+ /**
38
+ * The action as the JSON object an agent's backend reads, such as the `uiAction` of
39
+ * `session.responses.create(action.label, { uiAction })`. The label is not in it: it is the
40
+ * text of the person's message.
41
+ */
42
+ export declare const aiUIActionJSON: (action: AIUIAction) => AIUIActionJSON;
43
+ /**
44
+ * Why the agent's backend would refuse the action, or `undefined` when it would take it: it
45
+ * names its reply, its format and what happened, in at most `AI_UI_ACTION_MAX_BYTES` of JSON.
46
+ */
47
+ export declare const aiUIActionProblem: (action: AIUIAction) => string | undefined;
48
+ //# sourceMappingURL=AIUIAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIUIAction.d.ts","sourceRoot":"","sources":["../../../../src/ai-components/generative-ui/AIUIAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,yCAAyC;IACzC,MAAM,EAAE,UAAU,CAAC;IACnB,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,0FAA0F;IAC1F,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,CAAC;CACN,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,4BAA4B,iBAAiB,CAAC;AAC3D;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAW,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,UAAU,KAAG,cAMlD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,UAAU,KAAG,MAAM,GAAG,SAc/D,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { AIUIParameter } from './AIUIComponentDefinition';
2
+ /**
3
+ * A date the agent wrote: an RFC 3339 moment, or a whole day as `yyyy-MM-dd` that the calendar
4
+ * has, which is that day's start where the person is. Anything else is not a date.
5
+ */
6
+ export declare const aiUIDate: (text: string) => Date | undefined;
7
+ /** `place_name` as `placeName`, the way the agent's snake_case reads in JavaScript. */
8
+ export declare const aiUICamelCase: (key: string) => string;
9
+ /**
10
+ * The arguments the agent wrote for a component, as its view reads them: keys in camelCase,
11
+ * dates as `Date`s. `undefined` while they do not fit its parameters, such as while they are
12
+ * still streaming in: a required one is missing, or one is of the wrong type.
13
+ */
14
+ export declare const decodeAIUIArguments: <Arguments = Record<string, unknown>>(args: Record<string, unknown>, parameters: AIUIParameter[]) => Arguments | undefined;
15
+ //# sourceMappingURL=AIUIArguments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIUIArguments.d.ts","sourceRoot":"","sources":["../../../../src/ai-components/generative-ui/AIUIArguments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAU/E;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,IAAI,GAAG,SAa9C,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,WAUxC,CAAC;AA6DF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,aAAa,EAAE,KAC1B,SAAS,GAAG,SAOd,CAAC"}
@@ -0,0 +1,51 @@
1
+ import React, { type ComponentType } from 'react';
2
+ import type { AIUIComponentDefinition } from './AIUIComponentDefinition';
3
+ import type { AIUIHost } from './AIUIHost';
4
+ /** Where an app's component is shown, and how it tells the agent what the person did. */
5
+ export type AIUIComponentContext = {
6
+ /**
7
+ * Tells the agent about one of the component's events, as the person's next message.
8
+ * `label` is what the person did, in their words, such as "Tell me more about St. Naum".
9
+ */
10
+ emit: (event: string, label: string, payload?: Record<string, unknown>) => void;
11
+ /** The conversation's host, for running the app's tools and opening links. */
12
+ host: AIUIHost;
13
+ /** Whether the agent is still writing the reply's UI, so the arguments may still change. */
14
+ isStreaming: boolean;
15
+ /** The reply the component is in. */
16
+ messageId: string;
17
+ };
18
+ export type AIUIComponentProps<Arguments> = {
19
+ /** What the agent filled in: keys in camelCase, dates as `Date`s. */
20
+ args: Arguments;
21
+ context: AIUIComponentContext;
22
+ };
23
+ /**
24
+ * One of the app's views that the agent can place in a reply's UI, in whichever format it
25
+ * writes, such as a map or a card over the app's own data.
26
+ */
27
+ export type AIUIComponent = {
28
+ Component: ComponentType<AIUIComponentProps<never>>;
29
+ /** Its description, the same on every platform and for the agent. */
30
+ definition: AIUIComponentDefinition;
31
+ };
32
+ /**
33
+ * One of the app's components, with what its view reads from the agent's arguments. The view
34
+ * gets them only once they fit the definition's parameters, so it can rely on their types.
35
+ *
36
+ * A conversation reuses its views: one scrolled out of sight shows another reply's UI next, so
37
+ * state the view keeps of its own has to start afresh for a new `context.messageId`.
38
+ */
39
+ export declare const defineAIUIComponent: <Arguments>(definition: AIUIComponentDefinition, Component: ComponentType<AIUIComponentProps<Arguments>>) => AIUIComponent;
40
+ /**
41
+ * An app's component for the arguments the agent wrote, coming in as it shows, or nothing
42
+ * while they don't fit its parameters, such as while they are still streaming in. Renderers
43
+ * place the app's components with it. One that throws leaves only itself out of the reply's
44
+ * UI, is tried again when its arguments change, and is reported once the reply is written.
45
+ */
46
+ export declare const AIUIComponentView: ({ args, component, context, }: {
47
+ args: Record<string, unknown>;
48
+ component: AIUIComponent;
49
+ context: AIUIComponentContext;
50
+ }) => React.JSX.Element | null;
51
+ //# sourceMappingURL=AIUIComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIUIComponent.d.ts","sourceRoot":"","sources":["../../../../src/ai-components/generative-ui/AIUIComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,aAAa,EAAW,MAAM,OAAO,CAAC;AAG3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,yFAAyF;AACzF,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;OAGG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChF,8EAA8E;IAC9E,IAAI,EAAE,QAAQ,CAAC;IACf,4FAA4F;IAC5F,WAAW,EAAE,OAAO,CAAC;IACrB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,SAAS,IAAI;IAC1C,qEAAqE;IACrE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,qEAAqE;IACrE,UAAU,EAAE,uBAAuB,CAAC;CACrC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,EAC3C,YAAY,uBAAuB,EACnC,WAAW,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,KACtD,aAID,CAAC;AAWH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,+BAI/B;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,6BA2BA,CAAC"}
@@ -0,0 +1,84 @@
1
+ /** A JSON Schema, as a component's parameters are described to the agent. */
2
+ export type AIUIJSONSchema = Record<string, unknown>;
3
+ /** Something the agent fills in for a component. */
4
+ export type AIUIParameter = {
5
+ /** Whether the agent must fill it in. */
6
+ isRequired: boolean;
7
+ /** The name the agent fills it in by, such as `title`. */
8
+ name: string;
9
+ /** What it holds, as a JSON Schema, such as `AIUIParameterType.string`. */
10
+ type: AIUIJSONSchema;
11
+ /** What it is, for the agent. */
12
+ description?: string;
13
+ };
14
+ /** Something a component reports when the person uses it, such as tapping a place. */
15
+ export type AIUIComponentEvent = {
16
+ /** When it happens, for the agent. */
17
+ description: string;
18
+ /** The name it is reported by, such as `ask_about`. */
19
+ name: string;
20
+ /** What it carries, in order. */
21
+ parameters: AIUIParameter[];
22
+ };
23
+ /**
24
+ * An app's component as the agent knows it: its name, what it shows, what the agent fills in
25
+ * and what it reports. It is portable JSON, the same on every platform, so one description
26
+ * (such as a `UIComponents.json` shared with the iOS and Android apps) serves them all.
27
+ */
28
+ export type AIUIComponentDefinition = {
29
+ /** What it shows and when to use it, for the agent. */
30
+ description: string;
31
+ /** What it reports when the person uses it. */
32
+ events: AIUIComponentEvent[];
33
+ /** The name the agent places it by, such as `place_card`. */
34
+ name: string;
35
+ /**
36
+ * What the agent fills in, in order: a format such as OpenUI Lang passes arguments by
37
+ * position.
38
+ */
39
+ parameters: AIUIParameter[];
40
+ };
41
+ /** The types a parameter commonly has, as JSON Schemas. */
42
+ export declare const AIUIParameterType: {
43
+ /** A list of values of one type. */
44
+ array: (items: AIUIJSONSchema) => AIUIJSONSchema;
45
+ boolean: AIUIJSONSchema;
46
+ /** A day, such as `2026-11-14`. */
47
+ date: AIUIJSONSchema;
48
+ /** A moment, such as `2026-11-14T09:30:00Z`. */
49
+ dateTime: AIUIJSONSchema;
50
+ /** One of a fixed set of strings. */
51
+ enumeration: (values: string[]) => AIUIJSONSchema;
52
+ integer: AIUIJSONSchema;
53
+ number: AIUIJSONSchema;
54
+ /** An object with named fields, in order. */
55
+ object: (fields: AIUIParameter[]) => AIUIJSONSchema;
56
+ string: AIUIJSONSchema;
57
+ /** A link, such as an image's. */
58
+ url: AIUIJSONSchema;
59
+ };
60
+ /** A parameter the agent must fill in. */
61
+ export declare const requiredAIUIParameter: (name: string, type: AIUIJSONSchema, description?: string) => AIUIParameter;
62
+ /** A parameter the agent may leave out. */
63
+ export declare const optionalAIUIParameter: (name: string, type: AIUIJSONSchema, description?: string) => AIUIParameter;
64
+ /** Parameters as a JSON Schema object, the way a tool's are described, keeping their order. */
65
+ export declare const aiUIObjectSchema: (parameters: AIUIParameter[]) => AIUIJSONSchema;
66
+ /** The fields of a JSON Schema object, in the order it keeps, then by name. */
67
+ export declare const aiUIParametersOf: (schema: unknown) => AIUIParameter[];
68
+ /**
69
+ * Reads a component's portable JSON, such as one entry of a `UIComponents.json`, or returns
70
+ * `undefined` for one without a name.
71
+ */
72
+ export declare const parseAIUIComponentDefinition: (json: unknown) => AIUIComponentDefinition | undefined;
73
+ /** A component's portable JSON, as `parseAIUIComponentDefinition` reads it back. */
74
+ export declare const aiUIComponentDefinitionJSON: (definition: AIUIComponentDefinition) => {
75
+ description: string;
76
+ events: {
77
+ parameters?: AIUIJSONSchema | undefined;
78
+ description: string;
79
+ name: string;
80
+ }[];
81
+ name: string;
82
+ parameters: AIUIJSONSchema;
83
+ };
84
+ //# sourceMappingURL=AIUIComponentDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIUIComponentDefinition.d.ts","sourceRoot":"","sources":["../../../../src/ai-components/generative-ui/AIUIComponentDefinition.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,oDAAoD;AACpD,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,IAAI,EAAE,cAAc,CAAC;IACrB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,sFAAsF;AACtF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB;IAC5B,oCAAoC;mBACrB,cAAc,KAAG,cAAc;aACd,cAAc;IAC9C,mCAAmC;UACS,cAAc;IAC1D,gDAAgD;cACK,cAAc;IACnE,qCAAqC;0BACf,MAAM,EAAE,KAAG,cAAc;aACf,cAAc;YAChB,cAAc;IAC5C,6CAA6C;qBAC5B,aAAa,EAAE,KAAG,cAAc;YACnB,cAAc;IAC5C,kCAAkC;SACQ,cAAc;CACzD,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,MAAM,cAAc,EACpB,cAAc,MAAM,KACnB,aAAgE,CAAC;AAEpE,2CAA2C;AAC3C,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,MAAM,cAAc,EACpB,cAAc,MAAM,KACnB,aAAiE,CAAC;AAQrE,+FAA+F;AAC/F,eAAO,MAAM,gBAAgB,GAAI,YAAY,aAAa,EAAE,KAAG,cAU7D,CAAC;AAEH,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,GAAI,QAAQ,OAAO,KAAG,aAAa,EAqB/D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACvC,MAAM,OAAO,KACZ,uBAAuB,GAAG,SAqB5B,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,2BAA2B,GAAI,YAAY,uBAAuB;;;;;;;;;CAS7E,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * The format a reply's UI is written in, such as `a2ui` or `openui`. Formats are an open set:
3
+ * a renderer says which one it reads.
4
+ */
5
+ export type AIUIFormat = 'a2ui' | 'openui' | (string & {});
6
+ /**
7
+ * The UI an agent wrote for a reply, which shows in place of the reply's text.
8
+ */
9
+ export type AIUIDocument = {
10
+ /** The document in its format's own shape: a program's text, or JSON. */
11
+ content: unknown;
12
+ /** The format it is written in. */
13
+ format: AIUIFormat;
14
+ /** Whether the agent is still writing it. */
15
+ isStreaming: boolean;
16
+ /** The format's version, when the agent names one. */
17
+ version?: string;
18
+ };
19
+ /**
20
+ * A reply's `ai_ui` field as the agents router writes it. An app that reads it from its Stream
21
+ * messages types it there with `ai_ui?: AIUIDocumentJSON` in its `CustomMessageData`.
22
+ */
23
+ export type AIUIDocumentJSON = {
24
+ /** The document in its format's own shape: usually text, such as A2UI's JSON lines. */
25
+ content: unknown;
26
+ format: AIUIFormat;
27
+ /** `streaming` while the agent writes it, then `complete`. */
28
+ status?: 'streaming' | 'complete' | (string & {});
29
+ /** The version of the field's own layout; a newer one than this SDK reads shows the text. */
30
+ v?: number;
31
+ version?: string;
32
+ };
33
+ /** The custom field of a message that holds its document. */
34
+ export declare const AI_UI_CUSTOM_DATA_KEY = "ai_ui";
35
+ /** The newest version of the `ai_ui` field this SDK reads. */
36
+ export declare const AI_UI_SUPPORTED_VERSION = 1;
37
+ /**
38
+ * Reads the document of a message's `ai_ui` field, or returns `undefined` when it carries none
39
+ * this SDK can read: no format, no content, or a field newer than this SDK, which can lay its
40
+ * documents out differently. The reply then shows its text.
41
+ */
42
+ export declare const parseAIUIDocument: (field: unknown) => AIUIDocument | undefined;
43
+ /** The content of a document when it is text, such as an OpenUI program or A2UI's JSON lines. */
44
+ export declare const aiUIDocumentText: (document: AIUIDocument) => string | undefined;
45
+ /**
46
+ * Whether two documents are the same, content included. A message is a new object on every
47
+ * update while a reply streams, so a document is compared by what it holds.
48
+ */
49
+ export declare const isSameAIUIDocument: (a: AIUIDocument | undefined, b: AIUIDocument | undefined) => boolean;
50
+ //# sourceMappingURL=AIUIDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIUIDocument.d.ts","sourceRoot":"","sources":["../../../../src/ai-components/generative-ui/AIUIDocument.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,MAAM,EAAE,UAAU,CAAC;IACnB,6CAA6C;IAC7C,WAAW,EAAE,OAAO,CAAC;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,uFAAuF;IACvF,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAClD,6FAA6F;IAC7F,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,8DAA8D;AAC9D,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,YAAY,GAAG,SAYjE,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,gBAAgB,GAAI,UAAU,YAAY,uBACc,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,YAAY,GAAG,SAAS,EAAE,GAAG,YAAY,GAAG,SAAS,YAOtD,CAAC"}
@@ -0,0 +1,75 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ /**
4
+ * Spaces out the parts of a reply's UI that come in together, so they come in one after another
5
+ * rather than at once.
6
+ */
7
+ export declare class AIUICascade {
8
+ /** How long after the part before it a part comes in, in seconds. */
9
+ static readonly step = 0.1;
10
+ /** The longest a part waits for the parts before it, in seconds. */
11
+ static readonly longestWait = 0.4;
12
+ private next;
13
+ /** How long a part that comes in at `now`, in seconds, waits for the parts before it. */
14
+ delay(now?: number): number;
15
+ }
16
+ /**
17
+ * A reply's generated UI as a whole: it comes in when it first shows while the agent writes it,
18
+ * and shows at once when it was written before, such as a reply from history.
19
+ */
20
+ export declare const AIUIEntranceStage: ({ children, isStreaming, resetKey, style, }: {
21
+ children: ReactNode;
22
+ /** Whether the agent is writing the UI as it first shows. */
23
+ isStreaming: boolean;
24
+ /**
25
+ * Which reply's UI it shows: when it changes, it shows the UI as one mounted for it would, as
26
+ * when a list reuses it for another reply.
27
+ */
28
+ resetKey?: unknown;
29
+ style?: StyleProp<ViewStyle>;
30
+ }) => React.JSX.Element;
31
+ /**
32
+ * Whether a part of a reply's generated UI comes in, as it was when the part mounted: a part
33
+ * that shows at once, such as one of a reply from history, can show in a plain view.
34
+ */
35
+ export declare const useAIUIComesIn: () => boolean;
36
+ /**
37
+ * What a part of a reply's generated UI needs to come in when it shows, for a renderer that
38
+ * animates a view of its own rather than wrap the part in `AIUIEntrance`: the animated `style`
39
+ * for that view, and `scope`, to wrap what the part shows in, so what shows with it comes in
40
+ * with it. The same entrance as `AIUIEntrance`'s.
41
+ */
42
+ export declare const useAIUIEntrance: () => {
43
+ scope: (children: ReactNode) => React.JSX.Element;
44
+ style: ({
45
+ transformOrigin: string;
46
+ } | import("react-native-reanimated/lib/typescript/hook/commonTypes").AnimatedStyleHandle<{
47
+ opacity: number;
48
+ } | {
49
+ filter?: {
50
+ blur: number;
51
+ }[] | undefined;
52
+ opacity: number;
53
+ transform: ({
54
+ translateY: number;
55
+ scale?: undefined;
56
+ } | {
57
+ scale: number;
58
+ translateY?: undefined;
59
+ })[];
60
+ }>)[];
61
+ };
62
+ /**
63
+ * Brings a part of a reply's generated UI in when it shows, such as when the agent writes it:
64
+ * the part fades in, rising into place and, on Android 12 and later, coming into focus, after the
65
+ * parts that came in just before it. What shows together with the reply's UI, or with a part
66
+ * around it, comes in with that, so a reply written before it showed shows at once. With reduced
67
+ * motion it only fades.
68
+ *
69
+ * Renderers give it to each part they place. Every app component has it.
70
+ */
71
+ export declare const AIUIEntrance: ({ children, style, }: {
72
+ children: ReactNode;
73
+ style?: StyleProp<ViewStyle>;
74
+ }) => React.JSX.Element;
75
+ //# sourceMappingURL=AIUIEntrance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIUIEntrance.d.ts","sourceRoot":"","sources":["../../../../src/ai-components/generative-ui/AIUIEntrance.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AACf,OAAO,EAAY,KAAK,SAAS,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAa1F;;;GAGG;AACH,qBAAa,WAAW;IACtB,qEAAqE;IACrE,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO;IAC3B,oEAAoE;IACpE,MAAM,CAAC,QAAQ,CAAC,WAAW,OAAO;IAElC,OAAO,CAAC,IAAI,CAAK;IAEjB,yFAAyF;IACzF,KAAK,CAAC,GAAG,SAA+E;CAKzF;AAqED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,6CAK/B;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,6DAA6D;IAC7D,WAAW,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,sBAsBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,eAI1B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe;sBAQP,SAAS;;;;;;;;;;;;;;;;;;CAM7B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,sBAG1B;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,sBAOA,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { Component, type ReactNode } from 'react';
2
+ type AIUIErrorBoundaryProps = {
3
+ children: ReactNode;
4
+ onError: (error: unknown) => void;
5
+ /** Tries the children again when it changes, such as when what they show changed. */
6
+ resetKey?: unknown;
7
+ };
8
+ type AIUIErrorBoundaryState = {
9
+ hasError: boolean;
10
+ resetKey: unknown;
11
+ };
12
+ /**
13
+ * Keeps generated UI that throws while it renders, such as an app's component given what it
14
+ * didn't expect, from taking what is around it down with it. It shows nothing and says so.
15
+ */
16
+ export declare class AIUIErrorBoundary extends Component<AIUIErrorBoundaryProps, AIUIErrorBoundaryState> {
17
+ state: AIUIErrorBoundaryState;
18
+ static getDerivedStateFromError(): {
19
+ hasError: boolean;
20
+ };
21
+ static getDerivedStateFromProps(props: AIUIErrorBoundaryProps, state: AIUIErrorBoundaryState): Partial<AIUIErrorBoundaryState> | null;
22
+ componentDidCatch(error: unknown): void;
23
+ render(): ReactNode;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=AIUIErrorBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIUIErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/ai-components/generative-ui/AIUIErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,qFAAqF;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvE;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,SAAS,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAC9F,KAAK,EAAE,sBAAsB,CAAsD;IAEnF,MAAM,CAAC,wBAAwB;;;IAI/B,MAAM,CAAC,wBAAwB,CAC7B,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAMzC,iBAAiB,CAAC,KAAK,EAAE,OAAO;IAIhC,MAAM;CAGP"}