@ulearning/ai-sdk 0.0.0-stage → 1.0.0-next.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 (1133) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +12 -2
  3. package/dist/_virtual/_rolldown/runtime.js +12 -0
  4. package/dist/adapters/OpenAIRealtimeVoiceAdapter.d.ts +22 -0
  5. package/dist/adapters/OpenAIRealtimeVoiceAdapter.d.ts.map +1 -0
  6. package/dist/adapters/OpenAIRealtimeVoiceAdapter.js +296 -0
  7. package/dist/adapters/OpenAIRealtimeVoiceAdapter.js.map +1 -0
  8. package/dist/assistant-transport.d.ts +33 -0
  9. package/dist/assistant-transport.d.ts.map +1 -0
  10. package/dist/assistant-transport.js +18 -0
  11. package/dist/assistant-transport.js.map +1 -0
  12. package/dist/augmentations.d.ts +33 -0
  13. package/dist/augmentations.d.ts.map +1 -0
  14. package/dist/augmentations.js +0 -0
  15. package/dist/context/ReadonlyStore.d.ts +4 -0
  16. package/dist/context/ReadonlyStore.d.ts.map +1 -0
  17. package/dist/context/ReadonlyStore.js +7 -0
  18. package/dist/context/ReadonlyStore.js.map +1 -0
  19. package/dist/context/index.d.ts +13 -0
  20. package/dist/context/index.d.ts.map +1 -0
  21. package/dist/context/index.js +12 -0
  22. package/dist/context/providers/AttachmentByIndexProvider.d.ts +2 -0
  23. package/dist/context/providers/AttachmentByIndexProvider.d.ts.map +1 -0
  24. package/dist/context/providers/AttachmentByIndexProvider.js +2 -0
  25. package/dist/context/providers/ChainOfThoughtByIndicesProvider.d.ts +2 -0
  26. package/dist/context/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -0
  27. package/dist/context/providers/ChainOfThoughtByIndicesProvider.js +2 -0
  28. package/dist/context/providers/MessageByIndexProvider.d.ts +2 -0
  29. package/dist/context/providers/MessageByIndexProvider.d.ts.map +1 -0
  30. package/dist/context/providers/MessageByIndexProvider.js +2 -0
  31. package/dist/context/providers/MessageProvider.d.ts +3 -0
  32. package/dist/context/providers/MessageProvider.d.ts.map +1 -0
  33. package/dist/context/providers/MessageProvider.js +25 -0
  34. package/dist/context/providers/MessageProvider.js.map +1 -0
  35. package/dist/context/providers/PartByIndexProvider.d.ts +2 -0
  36. package/dist/context/providers/PartByIndexProvider.d.ts.map +1 -0
  37. package/dist/context/providers/PartByIndexProvider.js +2 -0
  38. package/dist/context/providers/SuggestionByIndexProvider.d.ts +2 -0
  39. package/dist/context/providers/SuggestionByIndexProvider.d.ts.map +1 -0
  40. package/dist/context/providers/SuggestionByIndexProvider.js +2 -0
  41. package/dist/context/providers/TextMessagePartProvider.d.ts +2 -0
  42. package/dist/context/providers/TextMessagePartProvider.d.ts.map +1 -0
  43. package/dist/context/providers/TextMessagePartProvider.js +2 -0
  44. package/dist/context/providers/ThreadListItemProvider.d.ts +2 -0
  45. package/dist/context/providers/ThreadListItemProvider.d.ts.map +1 -0
  46. package/dist/context/providers/ThreadListItemProvider.js +2 -0
  47. package/dist/context/providers/ThreadViewportProvider.d.ts +6 -0
  48. package/dist/context/providers/ThreadViewportProvider.d.ts.map +1 -0
  49. package/dist/context/providers/ThreadViewportProvider.js +32 -0
  50. package/dist/context/providers/ThreadViewportProvider.js.map +1 -0
  51. package/dist/context/stores/ThreadViewport.d.ts +88 -0
  52. package/dist/context/stores/ThreadViewport.d.ts.map +1 -0
  53. package/dist/context/stores/ThreadViewport.js +130 -0
  54. package/dist/context/stores/ThreadViewport.js.map +1 -0
  55. package/dist/context/vue/ThreadViewportContext.d.ts +24 -0
  56. package/dist/context/vue/ThreadViewportContext.d.ts.map +1 -0
  57. package/dist/context/vue/ThreadViewportContext.js +10 -0
  58. package/dist/context/vue/ThreadViewportContext.js.map +1 -0
  59. package/dist/context/vue/utils/createContextHook.d.ts +11 -0
  60. package/dist/context/vue/utils/createContextHook.d.ts.map +1 -0
  61. package/dist/context/vue/utils/createContextHook.js +20 -0
  62. package/dist/context/vue/utils/createContextHook.js.map +1 -0
  63. package/dist/context/vue/utils/createContextStoreHook.d.ts +22 -0
  64. package/dist/context/vue/utils/createContextStoreHook.d.ts.map +1 -0
  65. package/dist/context/vue/utils/createContextStoreHook.js +48 -0
  66. package/dist/context/vue/utils/createContextStoreHook.js.map +1 -0
  67. package/dist/devtools/DevToolsHooks.d.ts +32 -0
  68. package/dist/devtools/DevToolsHooks.d.ts.map +1 -0
  69. package/dist/devtools/DevToolsHooks.js +84 -0
  70. package/dist/devtools/DevToolsHooks.js.map +1 -0
  71. package/dist/hooks/useMessageQuote.d.ts +17 -0
  72. package/dist/hooks/useMessageQuote.d.ts.map +1 -0
  73. package/dist/hooks/useMessageQuote.js +23 -0
  74. package/dist/hooks/useMessageQuote.js.map +1 -0
  75. package/dist/hooks/useMessageTiming.d.ts +17 -0
  76. package/dist/hooks/useMessageTiming.d.ts.map +1 -0
  77. package/dist/hooks/useMessageTiming.js +22 -0
  78. package/dist/hooks/useMessageTiming.js.map +1 -0
  79. package/dist/hooks/useToolCallElapsed.d.ts +22 -0
  80. package/dist/hooks/useToolCallElapsed.d.ts.map +1 -0
  81. package/dist/hooks/useToolCallElapsed.js +54 -0
  82. package/dist/hooks/useToolCallElapsed.js.map +1 -0
  83. package/dist/index.d.ts +155 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +64 -0
  86. package/dist/internal.d.ts +9 -0
  87. package/dist/internal.d.ts.map +1 -0
  88. package/dist/internal.js +24 -0
  89. package/dist/internal.js.map +1 -0
  90. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts +13 -0
  91. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -0
  92. package/dist/legacy-runtime/AssistantRuntimeProvider.js +37 -0
  93. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -0
  94. package/dist/mcp-apps/McpAppRenderer.d.ts +60 -0
  95. package/dist/mcp-apps/McpAppRenderer.d.ts.map +1 -0
  96. package/dist/mcp-apps/McpAppRenderer.js +223 -0
  97. package/dist/mcp-apps/McpAppRenderer.js.map +1 -0
  98. package/dist/mcp-apps/McpAppsRemoteHost.d.ts +3 -0
  99. package/dist/mcp-apps/McpAppsRemoteHost.d.ts.map +1 -0
  100. package/dist/mcp-apps/McpAppsRemoteHost.js +101 -0
  101. package/dist/mcp-apps/McpAppsRemoteHost.js.map +1 -0
  102. package/dist/mcp-apps/app-frame.d.ts +3 -0
  103. package/dist/mcp-apps/app-frame.d.ts.map +1 -0
  104. package/dist/mcp-apps/app-frame.js +213 -0
  105. package/dist/mcp-apps/app-frame.js.map +1 -0
  106. package/dist/mcp-apps/bridge.d.ts +18 -0
  107. package/dist/mcp-apps/bridge.d.ts.map +1 -0
  108. package/dist/mcp-apps/bridge.js +319 -0
  109. package/dist/mcp-apps/bridge.js.map +1 -0
  110. package/dist/mcp-apps/csp.d.ts +4 -0
  111. package/dist/mcp-apps/csp.d.ts.map +1 -0
  112. package/dist/mcp-apps/csp.js +92 -0
  113. package/dist/mcp-apps/csp.js.map +1 -0
  114. package/dist/mcp-apps/index.d.ts +5 -0
  115. package/dist/mcp-apps/index.d.ts.map +1 -0
  116. package/dist/mcp-apps/index.js +4 -0
  117. package/dist/mcp-apps/types.d.ts +161 -0
  118. package/dist/mcp-apps/types.d.ts.map +1 -0
  119. package/dist/mcp-apps/types.js +6 -0
  120. package/dist/mcp-apps/types.js.map +1 -0
  121. package/dist/mcp-apps/utils.d.ts +12 -0
  122. package/dist/mcp-apps/utils.d.ts.map +1 -0
  123. package/dist/mcp-apps/utils.js +18 -0
  124. package/dist/mcp-apps/utils.js.map +1 -0
  125. package/dist/model-context/frame/useAssistantFrameHost.d.ts +35 -0
  126. package/dist/model-context/frame/useAssistantFrameHost.d.ts.map +1 -0
  127. package/dist/model-context/frame/useAssistantFrameHost.js +109 -0
  128. package/dist/model-context/frame/useAssistantFrameHost.js.map +1 -0
  129. package/dist/model-context/makeAssistantVisible.d.ts +11 -0
  130. package/dist/model-context/makeAssistantVisible.d.ts.map +1 -0
  131. package/dist/model-context/makeAssistantVisible.js +102 -0
  132. package/dist/model-context/makeAssistantVisible.js.map +1 -0
  133. package/dist/primitives/actionBar/ActionBarCopy.d.ts +45 -0
  134. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -0
  135. package/dist/primitives/actionBar/ActionBarCopy.js +71 -0
  136. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -0
  137. package/dist/primitives/actionBar/ActionBarEdit.d.ts +55 -0
  138. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -0
  139. package/dist/primitives/actionBar/ActionBarEdit.js +47 -0
  140. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -0
  141. package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts +26 -0
  142. package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts.map +1 -0
  143. package/dist/primitives/actionBar/ActionBarExportMarkdown.js +39 -0
  144. package/dist/primitives/actionBar/ActionBarExportMarkdown.js.map +1 -0
  145. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +13 -0
  146. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -0
  147. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +28 -0
  148. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -0
  149. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +13 -0
  150. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -0
  151. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +28 -0
  152. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -0
  153. package/dist/primitives/actionBar/ActionBarInteractionContext.d.ts +7 -0
  154. package/dist/primitives/actionBar/ActionBarInteractionContext.d.ts.map +1 -0
  155. package/dist/primitives/actionBar/ActionBarInteractionContext.js +8 -0
  156. package/dist/primitives/actionBar/ActionBarInteractionContext.js.map +1 -0
  157. package/dist/primitives/actionBar/ActionBarReload.d.ts +56 -0
  158. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -0
  159. package/dist/primitives/actionBar/ActionBarReload.js +48 -0
  160. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -0
  161. package/dist/primitives/actionBar/ActionBarRoot.d.ts +78 -0
  162. package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -0
  163. package/dist/primitives/actionBar/ActionBarRoot.js +69 -0
  164. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -0
  165. package/dist/primitives/actionBar/ActionBarSpeak.d.ts +17 -0
  166. package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -0
  167. package/dist/primitives/actionBar/ActionBarSpeak.js +13 -0
  168. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -0
  169. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +17 -0
  170. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -0
  171. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +13 -0
  172. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -0
  173. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts +15 -0
  174. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -0
  175. package/dist/primitives/actionBar/useActionBarFloatStatus.js +24 -0
  176. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -0
  177. package/dist/primitives/actionBar.d.ts +10 -0
  178. package/dist/primitives/actionBar.d.ts.map +1 -0
  179. package/dist/primitives/actionBar.js +25 -0
  180. package/dist/primitives/actionBar.js.map +1 -0
  181. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts +47 -0
  182. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts.map +1 -0
  183. package/dist/primitives/actionBarMore/ActionBarMoreContent.js +29 -0
  184. package/dist/primitives/actionBarMore/ActionBarMoreContent.js.map +1 -0
  185. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts +19 -0
  186. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts.map +1 -0
  187. package/dist/primitives/actionBarMore/ActionBarMoreItem.js +24 -0
  188. package/dist/primitives/actionBarMore/ActionBarMoreItem.js.map +1 -0
  189. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts +10 -0
  190. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts.map +1 -0
  191. package/dist/primitives/actionBarMore/ActionBarMoreRoot.js +39 -0
  192. package/dist/primitives/actionBarMore/ActionBarMoreRoot.js.map +1 -0
  193. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts +16 -0
  194. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts.map +1 -0
  195. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js +24 -0
  196. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js.map +1 -0
  197. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts +17 -0
  198. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts.map +1 -0
  199. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js +24 -0
  200. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js.map +1 -0
  201. package/dist/primitives/actionBarMore/scope.d.ts +5 -0
  202. package/dist/primitives/actionBarMore/scope.d.ts.map +1 -0
  203. package/dist/primitives/actionBarMore/scope.js +7 -0
  204. package/dist/primitives/actionBarMore/scope.js.map +1 -0
  205. package/dist/primitives/actionBarMore.d.ts +6 -0
  206. package/dist/primitives/actionBarMore.d.ts.map +1 -0
  207. package/dist/primitives/actionBarMore.js +17 -0
  208. package/dist/primitives/actionBarMore.js.map +1 -0
  209. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts +17 -0
  210. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts.map +1 -0
  211. package/dist/primitives/assistantModal/AssistantModalAnchor.js +24 -0
  212. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -0
  213. package/dist/primitives/assistantModal/AssistantModalContent.d.ts +50 -0
  214. package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -0
  215. package/dist/primitives/assistantModal/AssistantModalContent.js +42 -0
  216. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -0
  217. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts +14 -0
  218. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -0
  219. package/dist/primitives/assistantModal/AssistantModalRoot.js +35 -0
  220. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -0
  221. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts +16 -0
  222. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -0
  223. package/dist/primitives/assistantModal/AssistantModalTrigger.js +24 -0
  224. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -0
  225. package/dist/primitives/assistantModal/popoverRenderPrimitives.d.ts +139 -0
  226. package/dist/primitives/assistantModal/popoverRenderPrimitives.d.ts.map +1 -0
  227. package/dist/primitives/assistantModal/popoverRenderPrimitives.js +9 -0
  228. package/dist/primitives/assistantModal/popoverRenderPrimitives.js.map +1 -0
  229. package/dist/primitives/assistantModal/scope.d.ts +5 -0
  230. package/dist/primitives/assistantModal/scope.d.ts.map +1 -0
  231. package/dist/primitives/assistantModal/scope.js +7 -0
  232. package/dist/primitives/assistantModal/scope.js.map +1 -0
  233. package/dist/primitives/assistantModal.d.ts +5 -0
  234. package/dist/primitives/assistantModal.d.ts.map +1 -0
  235. package/dist/primitives/assistantModal.js +15 -0
  236. package/dist/primitives/assistantModal.js.map +1 -0
  237. package/dist/primitives/attachment/AttachmentName.d.ts +5 -0
  238. package/dist/primitives/attachment/AttachmentName.d.ts.map +1 -0
  239. package/dist/primitives/attachment/AttachmentName.js +14 -0
  240. package/dist/primitives/attachment/AttachmentName.js.map +1 -0
  241. package/dist/primitives/attachment/AttachmentRemove.d.ts +17 -0
  242. package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -0
  243. package/dist/primitives/attachment/AttachmentRemove.js +15 -0
  244. package/dist/primitives/attachment/AttachmentRemove.js.map +1 -0
  245. package/dist/primitives/attachment/AttachmentRoot.d.ts +30 -0
  246. package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -0
  247. package/dist/primitives/attachment/AttachmentRoot.js +40 -0
  248. package/dist/primitives/attachment/AttachmentRoot.js.map +1 -0
  249. package/dist/primitives/attachment/AttachmentThumb.d.ts +12 -0
  250. package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -0
  251. package/dist/primitives/attachment/AttachmentThumb.js +32 -0
  252. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -0
  253. package/dist/primitives/attachment.d.ts +7 -0
  254. package/dist/primitives/attachment.d.ts.map +1 -0
  255. package/dist/primitives/attachment.js +15 -0
  256. package/dist/primitives/attachment.js.map +1 -0
  257. package/dist/primitives/branchPicker/BranchPickerCount.d.ts +22 -0
  258. package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -0
  259. package/dist/primitives/branchPicker/BranchPickerCount.js +27 -0
  260. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -0
  261. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +34 -0
  262. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -0
  263. package/dist/primitives/branchPicker/BranchPickerNext.js +26 -0
  264. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -0
  265. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts +5 -0
  266. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts.map +1 -0
  267. package/dist/primitives/branchPicker/BranchPickerNumber.js +14 -0
  268. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -0
  269. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +34 -0
  270. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -0
  271. package/dist/primitives/branchPicker/BranchPickerPrevious.js +26 -0
  272. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -0
  273. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +43 -0
  274. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -0
  275. package/dist/primitives/branchPicker/BranchPickerRoot.js +46 -0
  276. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -0
  277. package/dist/primitives/branchPicker.d.ts +6 -0
  278. package/dist/primitives/branchPicker.d.ts.map +1 -0
  279. package/dist/primitives/branchPicker.js +17 -0
  280. package/dist/primitives/branchPicker.js.map +1 -0
  281. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts +30 -0
  282. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts.map +1 -0
  283. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js +49 -0
  284. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js.map +1 -0
  285. package/dist/primitives/chainOfThought/ChainOfThoughtParts.d.ts +2 -0
  286. package/dist/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -0
  287. package/dist/primitives/chainOfThought/ChainOfThoughtParts.js +2 -0
  288. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts +12 -0
  289. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts.map +1 -0
  290. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js +26 -0
  291. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js.map +1 -0
  292. package/dist/primitives/chainOfThought.d.ts +4 -0
  293. package/dist/primitives/chainOfThought.d.ts.map +1 -0
  294. package/dist/primitives/chainOfThought.js +13 -0
  295. package/dist/primitives/chainOfThought.js.map +1 -0
  296. package/dist/primitives/composer/ComposerAddAttachment.d.ts +26 -0
  297. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -0
  298. package/dist/primitives/composer/ComposerAddAttachment.js +56 -0
  299. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -0
  300. package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts +16 -0
  301. package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts.map +1 -0
  302. package/dist/primitives/composer/ComposerAttachmentDropzone.js +66 -0
  303. package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -0
  304. package/dist/primitives/composer/ComposerAttachments.d.ts +2 -0
  305. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -0
  306. package/dist/primitives/composer/ComposerAttachments.js +2 -0
  307. package/dist/primitives/composer/ComposerCancel.d.ts +37 -0
  308. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -0
  309. package/dist/primitives/composer/ComposerCancel.js +32 -0
  310. package/dist/primitives/composer/ComposerCancel.js.map +1 -0
  311. package/dist/primitives/composer/ComposerCompactContext.d.ts +7 -0
  312. package/dist/primitives/composer/ComposerCompactContext.d.ts.map +1 -0
  313. package/dist/primitives/composer/ComposerCompactContext.js +8 -0
  314. package/dist/primitives/composer/ComposerCompactContext.js.map +1 -0
  315. package/dist/primitives/composer/ComposerDictate.d.ts +29 -0
  316. package/dist/primitives/composer/ComposerDictate.d.ts.map +1 -0
  317. package/dist/primitives/composer/ComposerDictate.js +25 -0
  318. package/dist/primitives/composer/ComposerDictate.js.map +1 -0
  319. package/dist/primitives/composer/ComposerDictationTranscript.d.ts +27 -0
  320. package/dist/primitives/composer/ComposerDictationTranscript.d.ts.map +1 -0
  321. package/dist/primitives/composer/ComposerDictationTranscript.js +42 -0
  322. package/dist/primitives/composer/ComposerDictationTranscript.js.map +1 -0
  323. package/dist/primitives/composer/ComposerIf.d.ts +3 -0
  324. package/dist/primitives/composer/ComposerIf.d.ts.map +1 -0
  325. package/dist/primitives/composer/ComposerIf.js +2 -0
  326. package/dist/primitives/composer/ComposerInput.d.ts +132 -0
  327. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -0
  328. package/dist/primitives/composer/ComposerInput.js +239 -0
  329. package/dist/primitives/composer/ComposerInput.js.map +1 -0
  330. package/dist/primitives/composer/ComposerInputPluginContext.d.ts +40 -0
  331. package/dist/primitives/composer/ComposerInputPluginContext.d.ts.map +1 -0
  332. package/dist/primitives/composer/ComposerInputPluginContext.js +30 -0
  333. package/dist/primitives/composer/ComposerInputPluginContext.js.map +1 -0
  334. package/dist/primitives/composer/ComposerQueue.d.ts +2 -0
  335. package/dist/primitives/composer/ComposerQueue.d.ts.map +1 -0
  336. package/dist/primitives/composer/ComposerQueue.js +2 -0
  337. package/dist/primitives/composer/ComposerQuote.d.ts +58 -0
  338. package/dist/primitives/composer/ComposerQuote.d.ts.map +1 -0
  339. package/dist/primitives/composer/ComposerQuote.js +95 -0
  340. package/dist/primitives/composer/ComposerQuote.js.map +1 -0
  341. package/dist/primitives/composer/ComposerResume.d.ts +27 -0
  342. package/dist/primitives/composer/ComposerResume.d.ts.map +1 -0
  343. package/dist/primitives/composer/ComposerResume.js +24 -0
  344. package/dist/primitives/composer/ComposerResume.js.map +1 -0
  345. package/dist/primitives/composer/ComposerRoot.d.ts +56 -0
  346. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -0
  347. package/dist/primitives/composer/ComposerRoot.js +96 -0
  348. package/dist/primitives/composer/ComposerRoot.js.map +1 -0
  349. package/dist/primitives/composer/ComposerSend.d.ts +34 -0
  350. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -0
  351. package/dist/primitives/composer/ComposerSend.js +28 -0
  352. package/dist/primitives/composer/ComposerSend.js.map +1 -0
  353. package/dist/primitives/composer/ComposerStopDictation.d.ts +29 -0
  354. package/dist/primitives/composer/ComposerStopDictation.d.ts.map +1 -0
  355. package/dist/primitives/composer/ComposerStopDictation.js +29 -0
  356. package/dist/primitives/composer/ComposerStopDictation.js.map +1 -0
  357. package/dist/primitives/composer/composerInputSelector.d.ts +3 -0
  358. package/dist/primitives/composer/composerInputSelector.d.ts.map +1 -0
  359. package/dist/primitives/composer/composerInputSelector.js +6 -0
  360. package/dist/primitives/composer/composerInputSelector.js.map +1 -0
  361. package/dist/primitives/composer/trigger/TriggerPopover.d.ts +63 -0
  362. package/dist/primitives/composer/trigger/TriggerPopover.d.ts.map +1 -0
  363. package/dist/primitives/composer/trigger/TriggerPopover.js +161 -0
  364. package/dist/primitives/composer/trigger/TriggerPopover.js.map +1 -0
  365. package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts +30 -0
  366. package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts.map +1 -0
  367. package/dist/primitives/composer/trigger/TriggerPopoverAction.js +49 -0
  368. package/dist/primitives/composer/trigger/TriggerPopoverAction.js.map +1 -0
  369. package/dist/primitives/composer/trigger/TriggerPopoverBack.d.ts +16 -0
  370. package/dist/primitives/composer/trigger/TriggerPopoverBack.d.ts.map +1 -0
  371. package/dist/primitives/composer/trigger/TriggerPopoverBack.js +34 -0
  372. package/dist/primitives/composer/trigger/TriggerPopoverBack.js.map +1 -0
  373. package/dist/primitives/composer/trigger/TriggerPopoverCategories.d.ts +34 -0
  374. package/dist/primitives/composer/trigger/TriggerPopoverCategories.d.ts.map +1 -0
  375. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js +70 -0
  376. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js.map +1 -0
  377. package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts +27 -0
  378. package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts.map +1 -0
  379. package/dist/primitives/composer/trigger/TriggerPopoverDirective.js +41 -0
  380. package/dist/primitives/composer/trigger/TriggerPopoverDirective.js.map +1 -0
  381. package/dist/primitives/composer/trigger/TriggerPopoverItems.d.ts +36 -0
  382. package/dist/primitives/composer/trigger/TriggerPopoverItems.d.ts.map +1 -0
  383. package/dist/primitives/composer/trigger/TriggerPopoverItems.js +71 -0
  384. package/dist/primitives/composer/trigger/TriggerPopoverItems.js.map +1 -0
  385. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts +48 -0
  386. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts.map +1 -0
  387. package/dist/primitives/composer/trigger/TriggerPopoverResource.js +67 -0
  388. package/dist/primitives/composer/trigger/TriggerPopoverResource.js.map +1 -0
  389. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts +58 -0
  390. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts.map +1 -0
  391. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js +128 -0
  392. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js.map +1 -0
  393. package/dist/primitives/composer/trigger/detectTrigger.d.ts +18 -0
  394. package/dist/primitives/composer/trigger/detectTrigger.d.ts.map +1 -0
  395. package/dist/primitives/composer/trigger/detectTrigger.js +39 -0
  396. package/dist/primitives/composer/trigger/detectTrigger.js.map +1 -0
  397. package/dist/primitives/composer/trigger/index.d.ts +20 -0
  398. package/dist/primitives/composer/trigger/index.d.ts.map +1 -0
  399. package/dist/primitives/composer/trigger/index.js +15 -0
  400. package/dist/primitives/composer/trigger/index.js.map +1 -0
  401. package/dist/primitives/composer/trigger/matchesTriggerItemQuery.d.ts +3 -0
  402. package/dist/primitives/composer/trigger/matchesTriggerItemQuery.d.ts.map +1 -0
  403. package/dist/primitives/composer/trigger/matchesTriggerItemQuery.js +8 -0
  404. package/dist/primitives/composer/trigger/matchesTriggerItemQuery.js.map +1 -0
  405. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts +17 -0
  406. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts.map +1 -0
  407. package/dist/primitives/composer/trigger/triggerDetectionResource.js +25 -0
  408. package/dist/primitives/composer/trigger/triggerDetectionResource.js.map +1 -0
  409. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts +30 -0
  410. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts.map +1 -0
  411. package/dist/primitives/composer/trigger/triggerKeyboardResource.js +85 -0
  412. package/dist/primitives/composer/trigger/triggerKeyboardResource.js.map +1 -0
  413. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts +23 -0
  414. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts.map +1 -0
  415. package/dist/primitives/composer/trigger/triggerNavigationResource.js +88 -0
  416. package/dist/primitives/composer/trigger/triggerNavigationResource.js.map +1 -0
  417. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts +37 -0
  418. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts.map +1 -0
  419. package/dist/primitives/composer/trigger/triggerSelectionResource.js +52 -0
  420. package/dist/primitives/composer/trigger/triggerSelectionResource.js.map +1 -0
  421. package/dist/primitives/composer/useComposerCancelWithFocus.d.ts +2 -0
  422. package/dist/primitives/composer/useComposerCancelWithFocus.d.ts.map +1 -0
  423. package/dist/primitives/composer/useComposerCancelWithFocus.js +31 -0
  424. package/dist/primitives/composer/useComposerCancelWithFocus.js.map +1 -0
  425. package/dist/primitives/composer/useComposerInputState.d.ts +11 -0
  426. package/dist/primitives/composer/useComposerInputState.d.ts.map +1 -0
  427. package/dist/primitives/composer/useComposerInputState.js +33 -0
  428. package/dist/primitives/composer/useComposerInputState.js.map +1 -0
  429. package/dist/primitives/composer/useTextareaAutosize.d.ts +13 -0
  430. package/dist/primitives/composer/useTextareaAutosize.d.ts.map +1 -0
  431. package/dist/primitives/composer/useTextareaAutosize.js +113 -0
  432. package/dist/primitives/composer/useTextareaAutosize.js.map +1 -0
  433. package/dist/primitives/composer.d.ts +73 -0
  434. package/dist/primitives/composer.d.ts.map +1 -0
  435. package/dist/primitives/composer.js +64 -0
  436. package/dist/primitives/composer.js.map +1 -0
  437. package/dist/primitives/dropdownMenuRenderPrimitives.d.ts +173 -0
  438. package/dist/primitives/dropdownMenuRenderPrimitives.d.ts.map +1 -0
  439. package/dist/primitives/dropdownMenuRenderPrimitives.js +10 -0
  440. package/dist/primitives/dropdownMenuRenderPrimitives.js.map +1 -0
  441. package/dist/primitives/error/ErrorMessage.d.ts +12 -0
  442. package/dist/primitives/error/ErrorMessage.d.ts.map +1 -0
  443. package/dist/primitives/error/ErrorMessage.js +27 -0
  444. package/dist/primitives/error/ErrorMessage.js.map +1 -0
  445. package/dist/primitives/error/ErrorRoot.d.ts +12 -0
  446. package/dist/primitives/error/ErrorRoot.d.ts.map +1 -0
  447. package/dist/primitives/error/ErrorRoot.js +27 -0
  448. package/dist/primitives/error/ErrorRoot.js.map +1 -0
  449. package/dist/primitives/error.d.ts +3 -0
  450. package/dist/primitives/error.d.ts.map +1 -0
  451. package/dist/primitives/error.js +11 -0
  452. package/dist/primitives/error.js.map +1 -0
  453. package/dist/primitives/message/MessageAttachments.d.ts +2 -0
  454. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -0
  455. package/dist/primitives/message/MessageAttachments.js +2 -0
  456. package/dist/primitives/message/MessageError.d.ts +7 -0
  457. package/dist/primitives/message/MessageError.d.ts.map +1 -0
  458. package/dist/primitives/message/MessageError.js +14 -0
  459. package/dist/primitives/message/MessageError.js.map +1 -0
  460. package/dist/primitives/message/MessageIf.d.ts +27 -0
  461. package/dist/primitives/message/MessageIf.d.ts.map +1 -0
  462. package/dist/primitives/message/MessageIf.js +54 -0
  463. package/dist/primitives/message/MessageIf.js.map +1 -0
  464. package/dist/primitives/message/MessageParts.d.ts +7 -0
  465. package/dist/primitives/message/MessageParts.d.ts.map +1 -0
  466. package/dist/primitives/message/MessageParts.js +40 -0
  467. package/dist/primitives/message/MessageParts.js.map +1 -0
  468. package/dist/primitives/message/MessagePartsGrouped.d.ts +153 -0
  469. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -0
  470. package/dist/primitives/message/MessagePartsGrouped.js +114 -0
  471. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -0
  472. package/dist/primitives/message/MessageRoot.d.ts +35 -0
  473. package/dist/primitives/message/MessageRoot.d.ts.map +1 -0
  474. package/dist/primitives/message/MessageRoot.js +104 -0
  475. package/dist/primitives/message/MessageRoot.js.map +1 -0
  476. package/dist/primitives/message.d.ts +13 -0
  477. package/dist/primitives/message.d.ts.map +1 -0
  478. package/dist/primitives/message.js +27 -0
  479. package/dist/primitives/message.js.map +1 -0
  480. package/dist/primitives/messagePart/MessagePartImage.d.ts +12 -0
  481. package/dist/primitives/messagePart/MessagePartImage.d.ts.map +1 -0
  482. package/dist/primitives/messagePart/MessagePartImage.js +27 -0
  483. package/dist/primitives/messagePart/MessagePartImage.js.map +1 -0
  484. package/dist/primitives/messagePart/MessagePartInProgress.d.ts +2 -0
  485. package/dist/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -0
  486. package/dist/primitives/messagePart/MessagePartInProgress.js +2 -0
  487. package/dist/primitives/messagePart/MessagePartText.d.ts +19 -0
  488. package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -0
  489. package/dist/primitives/messagePart/MessagePartText.js +33 -0
  490. package/dist/primitives/messagePart/MessagePartText.js.map +1 -0
  491. package/dist/primitives/messagePart/useMessagePartData.d.ts +18 -0
  492. package/dist/primitives/messagePart/useMessagePartData.d.ts.map +1 -0
  493. package/dist/primitives/messagePart/useMessagePartData.js +32 -0
  494. package/dist/primitives/messagePart/useMessagePartData.js.map +1 -0
  495. package/dist/primitives/messagePart/useMessagePartFile.d.ts +19 -0
  496. package/dist/primitives/messagePart/useMessagePartFile.d.ts.map +1 -0
  497. package/dist/primitives/messagePart/useMessagePartFile.js +33 -0
  498. package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -0
  499. package/dist/primitives/messagePart/useMessagePartImage.d.ts +19 -0
  500. package/dist/primitives/messagePart/useMessagePartImage.d.ts.map +1 -0
  501. package/dist/primitives/messagePart/useMessagePartImage.js +32 -0
  502. package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -0
  503. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts +19 -0
  504. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts.map +1 -0
  505. package/dist/primitives/messagePart/useMessagePartReasoning.js +32 -0
  506. package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -0
  507. package/dist/primitives/messagePart/useMessagePartSource.d.ts +39 -0
  508. package/dist/primitives/messagePart/useMessagePartSource.d.ts.map +1 -0
  509. package/dist/primitives/messagePart/useMessagePartSource.js +34 -0
  510. package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -0
  511. package/dist/primitives/messagePart/useMessagePartText.d.ts +21 -0
  512. package/dist/primitives/messagePart/useMessagePartText.d.ts.map +1 -0
  513. package/dist/primitives/messagePart/useMessagePartText.js +32 -0
  514. package/dist/primitives/messagePart/useMessagePartText.js.map +1 -0
  515. package/dist/primitives/messagePart.d.ts +5 -0
  516. package/dist/primitives/messagePart.d.ts.map +1 -0
  517. package/dist/primitives/messagePart.js +15 -0
  518. package/dist/primitives/messagePart.js.map +1 -0
  519. package/dist/primitives/queueItem/QueueItemRemove.d.ts +25 -0
  520. package/dist/primitives/queueItem/QueueItemRemove.d.ts.map +1 -0
  521. package/dist/primitives/queueItem/QueueItemRemove.js +23 -0
  522. package/dist/primitives/queueItem/QueueItemRemove.js.map +1 -0
  523. package/dist/primitives/queueItem/QueueItemSteer.d.ts +25 -0
  524. package/dist/primitives/queueItem/QueueItemSteer.d.ts.map +1 -0
  525. package/dist/primitives/queueItem/QueueItemSteer.js +23 -0
  526. package/dist/primitives/queueItem/QueueItemSteer.js.map +1 -0
  527. package/dist/primitives/queueItem/QueueItemText.d.ts +20 -0
  528. package/dist/primitives/queueItem/QueueItemText.d.ts.map +1 -0
  529. package/dist/primitives/queueItem/QueueItemText.js +35 -0
  530. package/dist/primitives/queueItem/QueueItemText.js.map +1 -0
  531. package/dist/primitives/queueItem.d.ts +4 -0
  532. package/dist/primitives/queueItem.d.ts.map +1 -0
  533. package/dist/primitives/queueItem.js +13 -0
  534. package/dist/primitives/queueItem.js.map +1 -0
  535. package/dist/primitives/reasoning/useScrollLock.d.ts +29 -0
  536. package/dist/primitives/reasoning/useScrollLock.d.ts.map +1 -0
  537. package/dist/primitives/reasoning/useScrollLock.js +108 -0
  538. package/dist/primitives/reasoning/useScrollLock.js.map +1 -0
  539. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts +13 -0
  540. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts.map +1 -0
  541. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js +43 -0
  542. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js.map +1 -0
  543. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts +20 -0
  544. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts.map +1 -0
  545. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js +147 -0
  546. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js.map +1 -0
  547. package/dist/primitives/selectionToolbar.d.ts +3 -0
  548. package/dist/primitives/selectionToolbar.d.ts.map +1 -0
  549. package/dist/primitives/selectionToolbar.js +11 -0
  550. package/dist/primitives/selectionToolbar.js.map +1 -0
  551. package/dist/primitives/suggestion/SuggestionDescription.d.ts +13 -0
  552. package/dist/primitives/suggestion/SuggestionDescription.d.ts.map +1 -0
  553. package/dist/primitives/suggestion/SuggestionDescription.js +28 -0
  554. package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -0
  555. package/dist/primitives/suggestion/SuggestionTitle.d.ts +20 -0
  556. package/dist/primitives/suggestion/SuggestionTitle.d.ts.map +1 -0
  557. package/dist/primitives/suggestion/SuggestionTitle.js +35 -0
  558. package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -0
  559. package/dist/primitives/suggestion/SuggestionTrigger.d.ts +72 -0
  560. package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -0
  561. package/dist/primitives/suggestion/SuggestionTrigger.js +29 -0
  562. package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -0
  563. package/dist/primitives/suggestion.d.ts +4 -0
  564. package/dist/primitives/suggestion.d.ts.map +1 -0
  565. package/dist/primitives/suggestion.js +13 -0
  566. package/dist/primitives/suggestion.js.map +1 -0
  567. package/dist/primitives/thread/ThreadEmpty.d.ts +11 -0
  568. package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -0
  569. package/dist/primitives/thread/ThreadEmpty.js +17 -0
  570. package/dist/primitives/thread/ThreadEmpty.js.map +1 -0
  571. package/dist/primitives/thread/ThreadIf.d.ts +19 -0
  572. package/dist/primitives/thread/ThreadIf.d.ts.map +1 -0
  573. package/dist/primitives/thread/ThreadIf.js +33 -0
  574. package/dist/primitives/thread/ThreadIf.js.map +1 -0
  575. package/dist/primitives/thread/ThreadLoadEarlier.d.ts +23 -0
  576. package/dist/primitives/thread/ThreadLoadEarlier.d.ts.map +1 -0
  577. package/dist/primitives/thread/ThreadLoadEarlier.js +23 -0
  578. package/dist/primitives/thread/ThreadLoadEarlier.js.map +1 -0
  579. package/dist/primitives/thread/ThreadMessages.d.ts +2 -0
  580. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -0
  581. package/dist/primitives/thread/ThreadMessages.js +2 -0
  582. package/dist/primitives/thread/ThreadRoot.d.ts +37 -0
  583. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -0
  584. package/dist/primitives/thread/ThreadRoot.js +84 -0
  585. package/dist/primitives/thread/ThreadRoot.js.map +1 -0
  586. package/dist/primitives/thread/ThreadRootElementContext.d.ts +4 -0
  587. package/dist/primitives/thread/ThreadRootElementContext.d.ts.map +1 -0
  588. package/dist/primitives/thread/ThreadRootElementContext.js +8 -0
  589. package/dist/primitives/thread/ThreadRootElementContext.js.map +1 -0
  590. package/dist/primitives/thread/ThreadScrollToBottom.d.ts +22 -0
  591. package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -0
  592. package/dist/primitives/thread/ThreadScrollToBottom.js +17 -0
  593. package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -0
  594. package/dist/primitives/thread/ThreadSuggestion.d.ts +80 -0
  595. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -0
  596. package/dist/primitives/thread/ThreadSuggestion.js +23 -0
  597. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -0
  598. package/dist/primitives/thread/ThreadSuggestions.d.ts +2 -0
  599. package/dist/primitives/thread/ThreadSuggestions.d.ts.map +1 -0
  600. package/dist/primitives/thread/ThreadSuggestions.js +2 -0
  601. package/dist/primitives/thread/ThreadViewport.d.ts +115 -0
  602. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -0
  603. package/dist/primitives/thread/ThreadViewport.js +96 -0
  604. package/dist/primitives/thread/ThreadViewport.js.map +1 -0
  605. package/dist/primitives/thread/ThreadViewportFooter.d.ts +13 -0
  606. package/dist/primitives/thread/ThreadViewportFooter.d.ts.map +1 -0
  607. package/dist/primitives/thread/ThreadViewportFooter.js +39 -0
  608. package/dist/primitives/thread/ThreadViewportFooter.js.map +1 -0
  609. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.d.ts +22 -0
  610. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.d.ts.map +1 -0
  611. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.js +51 -0
  612. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.js.map +1 -0
  613. package/dist/primitives/thread/topAnchor/createReserveObservers.d.ts +5 -0
  614. package/dist/primitives/thread/topAnchor/createReserveObservers.d.ts.map +1 -0
  615. package/dist/primitives/thread/topAnchor/createReserveObservers.js +37 -0
  616. package/dist/primitives/thread/topAnchor/createReserveObservers.js.map +1 -0
  617. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.d.ts +26 -0
  618. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.d.ts.map +1 -0
  619. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js +139 -0
  620. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js.map +1 -0
  621. package/dist/primitives/thread/topAnchor/topAnchorTurn.d.ts +27 -0
  622. package/dist/primitives/thread/topAnchor/topAnchorTurn.d.ts.map +1 -0
  623. package/dist/primitives/thread/topAnchor/topAnchorTurn.js +30 -0
  624. package/dist/primitives/thread/topAnchor/topAnchorTurn.js.map +1 -0
  625. package/dist/primitives/thread/topAnchor/topAnchorUtils.d.ts +15 -0
  626. package/dist/primitives/thread/topAnchor/topAnchorUtils.d.ts.map +1 -0
  627. package/dist/primitives/thread/topAnchor/topAnchorUtils.js +46 -0
  628. package/dist/primitives/thread/topAnchor/topAnchorUtils.js.map +1 -0
  629. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.d.ts +8 -0
  630. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.d.ts.map +1 -0
  631. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js +21 -0
  632. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js.map +1 -0
  633. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts +32 -0
  634. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -0
  635. package/dist/primitives/thread/useThreadViewportAutoScroll.js +74 -0
  636. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -0
  637. package/dist/primitives/thread.d.ts +15 -0
  638. package/dist/primitives/thread.d.ts.map +1 -0
  639. package/dist/primitives/thread.js +33 -0
  640. package/dist/primitives/thread.js.map +1 -0
  641. package/dist/primitives/threadList/ThreadListItems.d.ts +2 -0
  642. package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -0
  643. package/dist/primitives/threadList/ThreadListItems.js +2 -0
  644. package/dist/primitives/threadList/ThreadListLoadMore.d.ts +17 -0
  645. package/dist/primitives/threadList/ThreadListLoadMore.d.ts.map +1 -0
  646. package/dist/primitives/threadList/ThreadListLoadMore.js +13 -0
  647. package/dist/primitives/threadList/ThreadListLoadMore.js.map +1 -0
  648. package/dist/primitives/threadList/ThreadListNew.d.ts +11 -0
  649. package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -0
  650. package/dist/primitives/threadList/ThreadListNew.js +29 -0
  651. package/dist/primitives/threadList/ThreadListNew.js.map +1 -0
  652. package/dist/primitives/threadList/ThreadListRoot.d.ts +12 -0
  653. package/dist/primitives/threadList/ThreadListRoot.d.ts.map +1 -0
  654. package/dist/primitives/threadList/ThreadListRoot.js +25 -0
  655. package/dist/primitives/threadList/ThreadListRoot.js.map +1 -0
  656. package/dist/primitives/threadList.d.ts +6 -0
  657. package/dist/primitives/threadList.d.ts.map +1 -0
  658. package/dist/primitives/threadList.js +16 -0
  659. package/dist/primitives/threadList.js.map +1 -0
  660. package/dist/primitives/threadListFocusGroup.d.ts +28 -0
  661. package/dist/primitives/threadListFocusGroup.d.ts.map +1 -0
  662. package/dist/primitives/threadListFocusGroup.js +64 -0
  663. package/dist/primitives/threadListFocusGroup.js.map +1 -0
  664. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +17 -0
  665. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -0
  666. package/dist/primitives/threadListItem/ThreadListItemArchive.js +12 -0
  667. package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -0
  668. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +17 -0
  669. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -0
  670. package/dist/primitives/threadListItem/ThreadListItemDelete.js +12 -0
  671. package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -0
  672. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +12 -0
  673. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -0
  674. package/dist/primitives/threadListItem/ThreadListItemRoot.js +61 -0
  675. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -0
  676. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts +2 -0
  677. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -0
  678. package/dist/primitives/threadListItem/ThreadListItemTitle.js +2 -0
  679. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +13 -0
  680. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -0
  681. package/dist/primitives/threadListItem/ThreadListItemTrigger.js +35 -0
  682. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -0
  683. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +17 -0
  684. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -0
  685. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js +13 -0
  686. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -0
  687. package/dist/primitives/threadListItem.d.ts +7 -0
  688. package/dist/primitives/threadListItem.d.ts.map +1 -0
  689. package/dist/primitives/threadListItem.js +19 -0
  690. package/dist/primitives/threadListItem.js.map +1 -0
  691. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts +47 -0
  692. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts.map +1 -0
  693. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js +48 -0
  694. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js.map +1 -0
  695. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts +19 -0
  696. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts.map +1 -0
  697. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js +24 -0
  698. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js.map +1 -0
  699. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts +19 -0
  700. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts.map +1 -0
  701. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js +45 -0
  702. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js.map +1 -0
  703. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts +16 -0
  704. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts.map +1 -0
  705. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js +24 -0
  706. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js.map +1 -0
  707. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts +17 -0
  708. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts.map +1 -0
  709. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js +42 -0
  710. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js.map +1 -0
  711. package/dist/primitives/threadListItemMore/scope.d.ts +5 -0
  712. package/dist/primitives/threadListItemMore/scope.d.ts.map +1 -0
  713. package/dist/primitives/threadListItemMore/scope.js +7 -0
  714. package/dist/primitives/threadListItemMore/scope.js.map +1 -0
  715. package/dist/primitives/threadListItemMore.d.ts +6 -0
  716. package/dist/primitives/threadListItemMore.d.ts.map +1 -0
  717. package/dist/primitives/threadListItemMore.js +17 -0
  718. package/dist/primitives/threadListItemMore.js.map +1 -0
  719. package/dist/sandbox-host/SandboxHost.d.ts +38 -0
  720. package/dist/sandbox-host/SandboxHost.d.ts.map +1 -0
  721. package/dist/sandbox-host/SandboxHost.js +146 -0
  722. package/dist/sandbox-host/SandboxHost.js.map +1 -0
  723. package/dist/unstable/useComposerInput.d.ts +87 -0
  724. package/dist/unstable/useComposerInput.d.ts.map +1 -0
  725. package/dist/unstable/useComposerInput.js +77 -0
  726. package/dist/unstable/useComposerInput.js.map +1 -0
  727. package/dist/unstable/useComposerInputHistory.d.ts +27 -0
  728. package/dist/unstable/useComposerInputHistory.d.ts.map +1 -0
  729. package/dist/unstable/useComposerInputHistory.js +125 -0
  730. package/dist/unstable/useComposerInputHistory.js.map +1 -0
  731. package/dist/unstable/useLiveCompletionAdapter.d.ts +52 -0
  732. package/dist/unstable/useLiveCompletionAdapter.d.ts.map +1 -0
  733. package/dist/unstable/useLiveCompletionAdapter.js +184 -0
  734. package/dist/unstable/useLiveCompletionAdapter.js.map +1 -0
  735. package/dist/unstable/useMentionAdapter.d.ts +95 -0
  736. package/dist/unstable/useMentionAdapter.d.ts.map +1 -0
  737. package/dist/unstable/useMentionAdapter.js +129 -0
  738. package/dist/unstable/useMentionAdapter.js.map +1 -0
  739. package/dist/unstable/useMessageStallDetection.d.ts +30 -0
  740. package/dist/unstable/useMessageStallDetection.d.ts.map +1 -0
  741. package/dist/unstable/useMessageStallDetection.js +92 -0
  742. package/dist/unstable/useMessageStallDetection.js.map +1 -0
  743. package/dist/unstable/useModelContextSnapshot.d.ts +32 -0
  744. package/dist/unstable/useModelContextSnapshot.d.ts.map +1 -0
  745. package/dist/unstable/useModelContextSnapshot.js +46 -0
  746. package/dist/unstable/useModelContextSnapshot.js.map +1 -0
  747. package/dist/unstable/useSlashCommandAdapter.d.ts +53 -0
  748. package/dist/unstable/useSlashCommandAdapter.d.ts.map +1 -0
  749. package/dist/unstable/useSlashCommandAdapter.js +84 -0
  750. package/dist/unstable/useSlashCommandAdapter.js.map +1 -0
  751. package/dist/unstable/webmcp/WebMcpRegistrationResource.d.ts +12 -0
  752. package/dist/unstable/webmcp/WebMcpRegistrationResource.d.ts.map +1 -0
  753. package/dist/unstable/webmcp/WebMcpRegistrationResource.js +47 -0
  754. package/dist/unstable/webmcp/WebMcpRegistrationResource.js.map +1 -0
  755. package/dist/unstable/webmcp/convertTools.d.ts +18 -0
  756. package/dist/unstable/webmcp/convertTools.d.ts.map +1 -0
  757. package/dist/unstable/webmcp/convertTools.js +160 -0
  758. package/dist/unstable/webmcp/convertTools.js.map +1 -0
  759. package/dist/unstable/webmcp/useWebMcpProvider.d.ts +23 -0
  760. package/dist/unstable/webmcp/useWebMcpProvider.d.ts.map +1 -0
  761. package/dist/unstable/webmcp/useWebMcpProvider.js +111 -0
  762. package/dist/unstable/webmcp/useWebMcpProvider.js.map +1 -0
  763. package/dist/unstable/webmcp/webmcp-host.d.ts +36 -0
  764. package/dist/unstable/webmcp/webmcp-host.d.ts.map +1 -0
  765. package/dist/unstable/webmcp/webmcp-host.js +28 -0
  766. package/dist/unstable/webmcp/webmcp-host.js.map +1 -0
  767. package/dist/utils/Primitive.d.ts +28 -0
  768. package/dist/utils/Primitive.d.ts.map +1 -0
  769. package/dist/utils/Primitive.js +229 -0
  770. package/dist/utils/Primitive.js.map +1 -0
  771. package/dist/utils/RequireAtLeastOne.d.ts +4 -0
  772. package/dist/utils/RequireAtLeastOne.d.ts.map +1 -0
  773. package/dist/utils/RequireAtLeastOne.js +0 -0
  774. package/dist/utils/createActionButton.d.ts +18 -0
  775. package/dist/utils/createActionButton.d.ts.map +1 -0
  776. package/dist/utils/createActionButton.js +39 -0
  777. package/dist/utils/createActionButton.js.map +1 -0
  778. package/dist/utils/getSelectionMessageId.d.ts +2 -0
  779. package/dist/utils/getSelectionMessageId.d.ts.map +1 -0
  780. package/dist/utils/getSelectionMessageId.js +84 -0
  781. package/dist/utils/getSelectionMessageId.js.map +1 -0
  782. package/dist/utils/hooks/useManagedRef.d.ts +2 -0
  783. package/dist/utils/hooks/useManagedRef.d.ts.map +1 -0
  784. package/dist/utils/hooks/useManagedRef.js +15 -0
  785. package/dist/utils/hooks/useManagedRef.js.map +1 -0
  786. package/dist/utils/hooks/useMediaQuery.d.ts +3 -0
  787. package/dist/utils/hooks/useMediaQuery.d.ts.map +1 -0
  788. package/dist/utils/hooks/useMediaQuery.js +33 -0
  789. package/dist/utils/hooks/useMediaQuery.js.map +1 -0
  790. package/dist/utils/hooks/useOnScrollToBottom.d.ts +7 -0
  791. package/dist/utils/hooks/useOnScrollToBottom.d.ts.map +1 -0
  792. package/dist/utils/hooks/useOnScrollToBottom.js +15 -0
  793. package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -0
  794. package/dist/utils/hooks/useSizeHandle.d.ts +12 -0
  795. package/dist/utils/hooks/useSizeHandle.d.ts.map +1 -0
  796. package/dist/utils/hooks/useSizeHandle.js +33 -0
  797. package/dist/utils/hooks/useSizeHandle.js.map +1 -0
  798. package/dist/utils/isCompositionKey.d.ts +2 -0
  799. package/dist/utils/isCompositionKey.d.ts.map +1 -0
  800. package/dist/utils/isCompositionKey.js +5 -0
  801. package/dist/utils/isCompositionKey.js.map +1 -0
  802. package/dist/utils/smooth/SmoothContext.d.ts +117 -0
  803. package/dist/utils/smooth/SmoothContext.d.ts.map +1 -0
  804. package/dist/utils/smooth/SmoothContext.js +40 -0
  805. package/dist/utils/smooth/SmoothContext.js.map +1 -0
  806. package/dist/utils/smooth/useSmooth.d.ts +63 -0
  807. package/dist/utils/smooth/useSmooth.d.ts.map +1 -0
  808. package/dist/utils/smooth/useSmooth.js +144 -0
  809. package/dist/utils/smooth/useSmooth.js.map +1 -0
  810. package/dist/utils/useIsomorphicLayoutEffect.d.ts +2 -0
  811. package/dist/utils/useIsomorphicLayoutEffect.d.ts.map +1 -0
  812. package/dist/utils/useIsomorphicLayoutEffect.js +1 -0
  813. package/package.json +115 -3
  814. package/src/adapters/OpenAIRealtimeVoiceAdapter.test.ts +761 -0
  815. package/src/adapters/OpenAIRealtimeVoiceAdapter.ts +388 -0
  816. package/src/assistant-transport.ts +98 -0
  817. package/src/augmentations.ts +35 -0
  818. package/src/context/ReadonlyStore.ts +7 -0
  819. package/src/context/index.ts +23 -0
  820. package/src/context/providers/AttachmentByIndexProvider.tsx +6 -0
  821. package/src/context/providers/ChainOfThoughtByIndicesProvider.tsx +3 -0
  822. package/src/context/providers/MessageByIndexProvider.tsx +3 -0
  823. package/src/context/providers/MessageProvider.tsx +34 -0
  824. package/src/context/providers/PartByIndexProvider.tsx +3 -0
  825. package/src/context/providers/SuggestionByIndexProvider.tsx +6 -0
  826. package/src/context/providers/TextMessagePartProvider.tsx +3 -0
  827. package/src/context/providers/ThreadListItemProvider.tsx +6 -0
  828. package/src/context/providers/ThreadViewportProvider.tsx +49 -0
  829. package/src/context/providers/vue-providers.test.tsx +326 -0
  830. package/src/context/stores/ThreadViewport.test.ts +29 -0
  831. package/src/context/stores/ThreadViewport.ts +278 -0
  832. package/src/context/vue/ThreadViewportContext.ts +22 -0
  833. package/src/context/vue/utils/createContextHook.ts +26 -0
  834. package/src/context/vue/utils/createContextStoreHook.ts +93 -0
  835. package/src/devtools/DevToolsHooks.test.ts +40 -0
  836. package/src/devtools/DevToolsHooks.ts +142 -0
  837. package/src/hooks/message-readers.test.ts +128 -0
  838. package/src/hooks/useMessageQuote.ts +25 -0
  839. package/src/hooks/useMessageTiming.ts +26 -0
  840. package/src/hooks/useToolCallElapsed.test.tsx +172 -0
  841. package/src/hooks/useToolCallElapsed.ts +65 -0
  842. package/src/index.ts +623 -0
  843. package/src/internal.ts +33 -0
  844. package/src/legacy-runtime/AssistantRuntimeProvider.tsx +61 -0
  845. package/src/mcp-apps/McpAppRenderer.composer.test.tsx +129 -0
  846. package/src/mcp-apps/McpAppRenderer.test.tsx +906 -0
  847. package/src/mcp-apps/McpAppRenderer.tsx +411 -0
  848. package/src/mcp-apps/McpAppsRemoteHost.concurrent.test.tsx +226 -0
  849. package/src/mcp-apps/McpAppsRemoteHost.test.ts +152 -0
  850. package/src/mcp-apps/McpAppsRemoteHost.ts +160 -0
  851. package/src/mcp-apps/app-frame.test.tsx +648 -0
  852. package/src/mcp-apps/app-frame.tsx +351 -0
  853. package/src/mcp-apps/bridge.test.ts +836 -0
  854. package/src/mcp-apps/bridge.ts +538 -0
  855. package/src/mcp-apps/csp.test.ts +112 -0
  856. package/src/mcp-apps/csp.ts +124 -0
  857. package/src/mcp-apps/index.ts +23 -0
  858. package/src/mcp-apps/types.ts +176 -0
  859. package/src/mcp-apps/utils.ts +23 -0
  860. package/src/model-context/frame/SPEC_AssistantFrame.md +105 -0
  861. package/src/model-context/frame/useAssistantFrameHost.detach.test.tsx +155 -0
  862. package/src/model-context/frame/useAssistantFrameHost.reload.test.tsx +116 -0
  863. package/src/model-context/frame/useAssistantFrameHost.test.tsx +43 -0
  864. package/src/model-context/frame/useAssistantFrameHost.ts +137 -0
  865. package/src/model-context/makeAssistantVisible.test.tsx +460 -0
  866. package/src/model-context/makeAssistantVisible.tsx +184 -0
  867. package/src/model-context/registry/SPEC_ModelContextRegistry.md +40 -0
  868. package/src/primitives/actionBar/ActionBarCopy.test.tsx +28 -0
  869. package/src/primitives/actionBar/ActionBarCopy.tsx +100 -0
  870. package/src/primitives/actionBar/ActionBarEdit.ts +63 -0
  871. package/src/primitives/actionBar/ActionBarExportMarkdown.test.tsx +83 -0
  872. package/src/primitives/actionBar/ActionBarExportMarkdown.tsx +65 -0
  873. package/src/primitives/actionBar/ActionBarFeedback.test.tsx +59 -0
  874. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +48 -0
  875. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +48 -0
  876. package/src/primitives/actionBar/ActionBarInteractionContext.ts +13 -0
  877. package/src/primitives/actionBar/ActionBarReload.ts +64 -0
  878. package/src/primitives/actionBar/ActionBarRoot.tsx +119 -0
  879. package/src/primitives/actionBar/ActionBarSpeak.ts +25 -0
  880. package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +24 -0
  881. package/src/primitives/actionBar/useActionBarFloatStatus.ts +48 -0
  882. package/src/primitives/actionBar.ts +9 -0
  883. package/src/primitives/actionBarMore/ActionBarMoreContent.tsx +45 -0
  884. package/src/primitives/actionBarMore/ActionBarMoreItem.tsx +22 -0
  885. package/src/primitives/actionBarMore/ActionBarMoreRoot.test.ts +70 -0
  886. package/src/primitives/actionBarMore/ActionBarMoreRoot.tsx +46 -0
  887. package/src/primitives/actionBarMore/ActionBarMoreSeparator.tsx +26 -0
  888. package/src/primitives/actionBarMore/ActionBarMoreTrigger.tsx +26 -0
  889. package/src/primitives/actionBarMore/scope.ts +6 -0
  890. package/src/primitives/actionBarMore.ts +5 -0
  891. package/src/primitives/assistantModal/AssistantModalAnchor.tsx +22 -0
  892. package/src/primitives/assistantModal/AssistantModalContent.tsx +85 -0
  893. package/src/primitives/assistantModal/AssistantModalRoot.test.tsx +153 -0
  894. package/src/primitives/assistantModal/AssistantModalRoot.tsx +48 -0
  895. package/src/primitives/assistantModal/AssistantModalTrigger.test.tsx +65 -0
  896. package/src/primitives/assistantModal/AssistantModalTrigger.tsx +22 -0
  897. package/src/primitives/assistantModal/popoverRenderPrimitives.ts +6 -0
  898. package/src/primitives/assistantModal/scope.ts +6 -0
  899. package/src/primitives/assistantModal.ts +4 -0
  900. package/src/primitives/attachment/AttachmentName.tsx +16 -0
  901. package/src/primitives/attachment/AttachmentRemove.ts +28 -0
  902. package/src/primitives/attachment/AttachmentRoot.tsx +52 -0
  903. package/src/primitives/attachment/AttachmentThumb.test.tsx +179 -0
  904. package/src/primitives/attachment/AttachmentThumb.tsx +41 -0
  905. package/src/primitives/attachment.ts +7 -0
  906. package/src/primitives/branchPicker/BranchPickerCount.tsx +33 -0
  907. package/src/primitives/branchPicker/BranchPickerNext.ts +42 -0
  908. package/src/primitives/branchPicker/BranchPickerNumber.tsx +16 -0
  909. package/src/primitives/branchPicker/BranchPickerPrevious.ts +42 -0
  910. package/src/primitives/branchPicker/BranchPickerRoot.tsx +64 -0
  911. package/src/primitives/branchPicker.ts +5 -0
  912. package/src/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.test.tsx +116 -0
  913. package/src/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.tsx +63 -0
  914. package/src/primitives/chainOfThought/ChainOfThoughtParts.tsx +3 -0
  915. package/src/primitives/chainOfThought/ChainOfThoughtRoot.tsx +33 -0
  916. package/src/primitives/chainOfThought.ts +14 -0
  917. package/src/primitives/composer/ComposerAddAttachment.test.tsx +101 -0
  918. package/src/primitives/composer/ComposerAddAttachment.thread-scope.test.tsx +225 -0
  919. package/src/primitives/composer/ComposerAddAttachment.ts +88 -0
  920. package/src/primitives/composer/ComposerAttachmentDropzone.test.tsx +351 -0
  921. package/src/primitives/composer/ComposerAttachmentDropzone.tsx +109 -0
  922. package/src/primitives/composer/ComposerAttachments.tsx +6 -0
  923. package/src/primitives/composer/ComposerCancel.focus.test.tsx +324 -0
  924. package/src/primitives/composer/ComposerCancel.ts +52 -0
  925. package/src/primitives/composer/ComposerCompactContext.tsx +10 -0
  926. package/src/primitives/composer/ComposerDictate.ts +37 -0
  927. package/src/primitives/composer/ComposerDictationTranscript.tsx +55 -0
  928. package/src/primitives/composer/ComposerDisabledThread.test.tsx +118 -0
  929. package/src/primitives/composer/ComposerIf.ts +4 -0
  930. package/src/primitives/composer/ComposerInput.focus-on-run-start.test.tsx +145 -0
  931. package/src/primitives/composer/ComposerInput.test.tsx +712 -0
  932. package/src/primitives/composer/ComposerInput.text-change.test.tsx +77 -0
  933. package/src/primitives/composer/ComposerInput.thread-scope.test.tsx +83 -0
  934. package/src/primitives/composer/ComposerInput.tsx +462 -0
  935. package/src/primitives/composer/ComposerInputPluginContext.tsx +80 -0
  936. package/src/primitives/composer/ComposerPreview.native.test.ts +157 -0
  937. package/src/primitives/composer/ComposerQueue.tsx +3 -0
  938. package/src/primitives/composer/ComposerQuote.tsx +143 -0
  939. package/src/primitives/composer/ComposerResume.ts +35 -0
  940. package/src/primitives/composer/ComposerRoot.test.tsx +429 -0
  941. package/src/primitives/composer/ComposerRoot.tsx +155 -0
  942. package/src/primitives/composer/ComposerSend.ts +43 -0
  943. package/src/primitives/composer/ComposerStopDictation.ts +43 -0
  944. package/src/primitives/composer/composerInputSelector.ts +4 -0
  945. package/src/primitives/composer/trigger/TriggerPopover.native.test.ts +309 -0
  946. package/src/primitives/composer/trigger/TriggerPopover.tsx +248 -0
  947. package/src/primitives/composer/trigger/TriggerPopoverAction.tsx +61 -0
  948. package/src/primitives/composer/trigger/TriggerPopoverBack.tsx +51 -0
  949. package/src/primitives/composer/trigger/TriggerPopoverBehavior.test.tsx +113 -0
  950. package/src/primitives/composer/trigger/TriggerPopoverCategories.tsx +123 -0
  951. package/src/primitives/composer/trigger/TriggerPopoverDirective.tsx +55 -0
  952. package/src/primitives/composer/trigger/TriggerPopoverExports.test.ts +61 -0
  953. package/src/primitives/composer/trigger/TriggerPopoverItems.tsx +121 -0
  954. package/src/primitives/composer/trigger/TriggerPopoverResource.ts +146 -0
  955. package/src/primitives/composer/trigger/TriggerPopoverRootContext.test.tsx +159 -0
  956. package/src/primitives/composer/trigger/TriggerPopoverRootContext.tsx +236 -0
  957. package/src/primitives/composer/trigger/detectTrigger.test.ts +197 -0
  958. package/src/primitives/composer/trigger/detectTrigger.ts +78 -0
  959. package/src/primitives/composer/trigger/index.ts +33 -0
  960. package/src/primitives/composer/trigger/matchesTriggerItemQuery.test.ts +52 -0
  961. package/src/primitives/composer/trigger/matchesTriggerItemQuery.ts +13 -0
  962. package/src/primitives/composer/trigger/triggerDetectionResource.ts +47 -0
  963. package/src/primitives/composer/trigger/triggerKeyboardResource.test.ts +233 -0
  964. package/src/primitives/composer/trigger/triggerKeyboardResource.ts +150 -0
  965. package/src/primitives/composer/trigger/triggerNavigationResource.ts +129 -0
  966. package/src/primitives/composer/trigger/triggerSelectionResource.test.ts +173 -0
  967. package/src/primitives/composer/trigger/triggerSelectionResource.ts +133 -0
  968. package/src/primitives/composer/useAuiState.composer.test.tsx +93 -0
  969. package/src/primitives/composer/useComposerCancelWithFocus.ts +51 -0
  970. package/src/primitives/composer/useComposerInputState.ts +58 -0
  971. package/src/primitives/composer/useTextareaAutosize.ts +140 -0
  972. package/src/primitives/composer.ts +88 -0
  973. package/src/primitives/dropdownMenuRenderPrimitives.test.tsx +64 -0
  974. package/src/primitives/dropdownMenuRenderPrimitives.ts +14 -0
  975. package/src/primitives/error/ErrorMessage.tsx +39 -0
  976. package/src/primitives/error/ErrorRoot.tsx +34 -0
  977. package/src/primitives/error.ts +2 -0
  978. package/src/primitives/message/MessageAttachments.tsx +6 -0
  979. package/src/primitives/message/MessageError.ts +13 -0
  980. package/src/primitives/message/MessageIf.test.tsx +83 -0
  981. package/src/primitives/message/MessageIf.ts +110 -0
  982. package/src/primitives/message/MessageParts.test.tsx +119 -0
  983. package/src/primitives/message/MessageParts.tsx +64 -0
  984. package/src/primitives/message/MessagePartsGrouped.test.tsx +682 -0
  985. package/src/primitives/message/MessagePartsGrouped.tool-interaction.test.tsx +97 -0
  986. package/src/primitives/message/MessagePartsGrouped.tsx +374 -0
  987. package/src/primitives/message/MessageRoot.anchors.test.ts +167 -0
  988. package/src/primitives/message/MessageRoot.test.tsx +272 -0
  989. package/src/primitives/message/MessageRoot.tsx +145 -0
  990. package/src/primitives/message.ts +15 -0
  991. package/src/primitives/messagePart/MessagePartImage.tsx +29 -0
  992. package/src/primitives/messagePart/MessagePartInProgress.ts +3 -0
  993. package/src/primitives/messagePart/MessagePartText.test.tsx +114 -0
  994. package/src/primitives/messagePart/MessagePartText.tsx +54 -0
  995. package/src/primitives/messagePart/useMessagePartData.test.ts +118 -0
  996. package/src/primitives/messagePart/useMessagePartData.ts +34 -0
  997. package/src/primitives/messagePart/useMessagePartFile.ts +42 -0
  998. package/src/primitives/messagePart/useMessagePartImage.ts +41 -0
  999. package/src/primitives/messagePart/useMessagePartReasoning.ts +42 -0
  1000. package/src/primitives/messagePart/useMessagePartSource.ts +43 -0
  1001. package/src/primitives/messagePart/useMessagePartText.ts +45 -0
  1002. package/src/primitives/messagePart.ts +4 -0
  1003. package/src/primitives/native-action-bindings.test.ts +181 -0
  1004. package/src/primitives/native-display-bindings.test.ts +159 -0
  1005. package/src/primitives/queueItem/QueueItemRemove.ts +36 -0
  1006. package/src/primitives/queueItem/QueueItemSteer.ts +36 -0
  1007. package/src/primitives/queueItem/QueueItemText.tsx +48 -0
  1008. package/src/primitives/queueItem.ts +3 -0
  1009. package/src/primitives/reasoning/useScrollLock.test.tsx +296 -0
  1010. package/src/primitives/reasoning/useScrollLock.ts +160 -0
  1011. package/src/primitives/selectionToolbar/SelectionToolbarQuote.tsx +56 -0
  1012. package/src/primitives/selectionToolbar/SelectionToolbarRoot.test.tsx +439 -0
  1013. package/src/primitives/selectionToolbar/SelectionToolbarRoot.tsx +206 -0
  1014. package/src/primitives/selectionToolbar.ts +8 -0
  1015. package/src/primitives/suggestion/SuggestionDescription.tsx +35 -0
  1016. package/src/primitives/suggestion/SuggestionTitle.tsx +43 -0
  1017. package/src/primitives/suggestion/SuggestionTrigger.ts +59 -0
  1018. package/src/primitives/suggestion.ts +3 -0
  1019. package/src/primitives/thread/ThreadEmpty.ts +19 -0
  1020. package/src/primitives/thread/ThreadIf.ts +42 -0
  1021. package/src/primitives/thread/ThreadLoadEarlier.tsx +34 -0
  1022. package/src/primitives/thread/ThreadMessages.tsx +9 -0
  1023. package/src/primitives/thread/ThreadRoot.test.tsx +419 -0
  1024. package/src/primitives/thread/ThreadRoot.tsx +119 -0
  1025. package/src/primitives/thread/ThreadRootElementContext.ts +9 -0
  1026. package/src/primitives/thread/ThreadScrollToBottom.ts +45 -0
  1027. package/src/primitives/thread/ThreadSuggestion.ts +55 -0
  1028. package/src/primitives/thread/ThreadSuggestions.tsx +7 -0
  1029. package/src/primitives/thread/ThreadViewport.thread-scope.test.tsx +58 -0
  1030. package/src/primitives/thread/ThreadViewport.tsx +219 -0
  1031. package/src/primitives/thread/ThreadViewportFooter.tsx +46 -0
  1032. package/src/primitives/thread/topAnchor/computeTopAnchorSlack.test.ts +131 -0
  1033. package/src/primitives/thread/topAnchor/computeTopAnchorSlack.ts +94 -0
  1034. package/src/primitives/thread/topAnchor/createReserveObservers.ts +50 -0
  1035. package/src/primitives/thread/topAnchor/mountTopAnchorReserve.test.ts +570 -0
  1036. package/src/primitives/thread/topAnchor/mountTopAnchorReserve.ts +221 -0
  1037. package/src/primitives/thread/topAnchor/topAnchorTurn.test.ts +115 -0
  1038. package/src/primitives/thread/topAnchor/topAnchorTurn.ts +59 -0
  1039. package/src/primitives/thread/topAnchor/topAnchorUtils.ts +58 -0
  1040. package/src/primitives/thread/topAnchor/useTopAnchorReserve.ts +23 -0
  1041. package/src/primitives/thread/useThreadViewportAutoScroll.test.tsx +1887 -0
  1042. package/src/primitives/thread/useThreadViewportAutoScroll.ts +140 -0
  1043. package/src/primitives/thread.ts +17 -0
  1044. package/src/primitives/threadList/ThreadListItems.tsx +6 -0
  1045. package/src/primitives/threadList/ThreadListLoadMore.tsx +25 -0
  1046. package/src/primitives/threadList/ThreadListNew.tsx +47 -0
  1047. package/src/primitives/threadList/ThreadListRoot.tsx +29 -0
  1048. package/src/primitives/threadList.ts +5 -0
  1049. package/src/primitives/threadListFocusGroup.ts +91 -0
  1050. package/src/primitives/threadListItem/ThreadListItemArchive.ts +23 -0
  1051. package/src/primitives/threadListItem/ThreadListItemDelete.ts +23 -0
  1052. package/src/primitives/threadListItem/ThreadListItemRoot.tsx +100 -0
  1053. package/src/primitives/threadListItem/ThreadListItemTitle.test.tsx +63 -0
  1054. package/src/primitives/threadListItem/ThreadListItemTitle.tsx +3 -0
  1055. package/src/primitives/threadListItem/ThreadListItemTrigger.tsx +51 -0
  1056. package/src/primitives/threadListItem/ThreadListItemUnarchive.test.tsx +55 -0
  1057. package/src/primitives/threadListItem/ThreadListItemUnarchive.ts +25 -0
  1058. package/src/primitives/threadListItem/ThreadListKeyboardNav.test.tsx +348 -0
  1059. package/src/primitives/threadListItem.ts +6 -0
  1060. package/src/primitives/threadListItemMore/ThreadListItemMoreContent.tsx +81 -0
  1061. package/src/primitives/threadListItemMore/ThreadListItemMoreItem.tsx +22 -0
  1062. package/src/primitives/threadListItemMore/ThreadListItemMoreRoot.tsx +79 -0
  1063. package/src/primitives/threadListItemMore/ThreadListItemMoreSeparator.tsx +26 -0
  1064. package/src/primitives/threadListItemMore/ThreadListItemMoreTrigger.tsx +62 -0
  1065. package/src/primitives/threadListItemMore/scope.ts +6 -0
  1066. package/src/primitives/threadListItemMore.ts +5 -0
  1067. package/src/sandbox-host/SandboxHost.test.tsx +579 -0
  1068. package/src/sandbox-host/SandboxHost.tsx +271 -0
  1069. package/src/tests/DataRenderers.test.tsx +218 -0
  1070. package/src/tests/MessageParts.loading.test.tsx +105 -0
  1071. package/src/tests/MessageParts.rendererOptions.test.tsx +125 -0
  1072. package/src/tests/RemoteThreadListRuntime.adapterProvider.test.tsx +187 -0
  1073. package/src/tests/RemoteThreadListRuntime.deferredProvider.test.tsx +99 -0
  1074. package/src/tests/RemoteThreadListRuntime.reloadMainThread.test.tsx +113 -0
  1075. package/src/tests/augmentations.test.ts +95 -0
  1076. package/src/tests/generative-ui.primitive.test.tsx +176 -0
  1077. package/src/tests/generative-ui.test.tsx +130 -0
  1078. package/src/tests/in-memory-thread-list.test.tsx +142 -0
  1079. package/src/tests/local-runtime-queue.test.tsx +506 -0
  1080. package/src/tests/messageAction.ts +67 -0
  1081. package/src/tests/messagePartSwitchRace.test.tsx +222 -0
  1082. package/src/tests/messagePartTypeMismatch.test.tsx +153 -0
  1083. package/src/tests/remote-thread-list-test-helpers.ts +40 -0
  1084. package/src/tests/setup.ts +5 -0
  1085. package/src/tests/threadListItemIsRunning.test.tsx +215 -0
  1086. package/src/tests/threadMessageById.test.tsx +293 -0
  1087. package/src/tests/toolCallTiming.test.tsx +324 -0
  1088. package/src/tests/vue.ts +124 -0
  1089. package/src/unstable/useComposerInput.test.tsx +201 -0
  1090. package/src/unstable/useComposerInput.ts +125 -0
  1091. package/src/unstable/useComposerInputHistory.test.tsx +207 -0
  1092. package/src/unstable/useComposerInputHistory.thread-scope.test.tsx +128 -0
  1093. package/src/unstable/useComposerInputHistory.ts +163 -0
  1094. package/src/unstable/useLiveCompletionAdapter.test.tsx +760 -0
  1095. package/src/unstable/useLiveCompletionAdapter.ts +217 -0
  1096. package/src/unstable/useMentionAdapter.test.tsx +380 -0
  1097. package/src/unstable/useMentionAdapter.ts +276 -0
  1098. package/src/unstable/useMessageStallDetection.lifecycle.test.ts +120 -0
  1099. package/src/unstable/useMessageStallDetection.test.tsx +59 -0
  1100. package/src/unstable/useMessageStallDetection.ts +147 -0
  1101. package/src/unstable/useModelContextSnapshot.test.tsx +181 -0
  1102. package/src/unstable/useModelContextSnapshot.ts +85 -0
  1103. package/src/unstable/useSlashCommandAdapter.test.tsx +172 -0
  1104. package/src/unstable/useSlashCommandAdapter.ts +145 -0
  1105. package/src/unstable/webmcp/WebMcpRegistrationResource.test.ts +150 -0
  1106. package/src/unstable/webmcp/WebMcpRegistrationResource.ts +92 -0
  1107. package/src/unstable/webmcp/__tests__/webmcp.fake.tsx +177 -0
  1108. package/src/unstable/webmcp/convertTools.test.ts +605 -0
  1109. package/src/unstable/webmcp/convertTools.ts +256 -0
  1110. package/src/unstable/webmcp/useWebMcpProvider.test.tsx +543 -0
  1111. package/src/unstable/webmcp/useWebMcpProvider.ts +185 -0
  1112. package/src/unstable/webmcp/webmcp-host.test.ts +142 -0
  1113. package/src/unstable/webmcp/webmcp-host.ts +83 -0
  1114. package/src/utils/Primitive.test.tsx +551 -0
  1115. package/src/utils/Primitive.tsx +363 -0
  1116. package/src/utils/RequireAtLeastOne.ts +7 -0
  1117. package/src/utils/createActionButton.child-cancel.test.tsx +82 -0
  1118. package/src/utils/createActionButton.test.tsx +114 -0
  1119. package/src/utils/createActionButton.tsx +75 -0
  1120. package/src/utils/getSelectionMessageId.test.ts +609 -0
  1121. package/src/utils/getSelectionMessageId.ts +133 -0
  1122. package/src/utils/hooks/useManagedRef.ts +19 -0
  1123. package/src/utils/hooks/useMediaQuery.test.tsx +60 -0
  1124. package/src/utils/hooks/useMediaQuery.ts +44 -0
  1125. package/src/utils/hooks/useOnScrollToBottom.ts +23 -0
  1126. package/src/utils/hooks/useSizeHandle.ts +39 -0
  1127. package/src/utils/isCompositionKey.ts +5 -0
  1128. package/src/utils/smooth/SmoothContext.test.tsx +224 -0
  1129. package/src/utils/smooth/SmoothContext.tsx +82 -0
  1130. package/src/utils/smooth/useSmooth.test.tsx +499 -0
  1131. package/src/utils/smooth/useSmooth.ts +266 -0
  1132. package/src/utils/useIsomorphicLayoutEffect.test.tsx +25 -0
  1133. package/src/utils/useIsomorphicLayoutEffect.ts +1 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 AgentbaseAI Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,13 @@
1
- # Temporary Holding Version
1
+ # @ulearning/ai-sdk
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Vue Web chat runtime bindings and primitives. This is the main SDK package; it reuses the shared core, store and tap packages. Vue 3.5.22 or newer is required.
4
+
5
+ ```sh
6
+ npm install @ulearning/ai-sdk @ulearning/ai-sdk-adapter ai @ai-sdk/vue vue
7
+ ```
8
+
9
+ Import Vue runtime primitives from `@ulearning/ai-sdk` and `useChatRuntime` from `@ulearning/ai-sdk-adapter`. Call composables in Vue setup and pass changing inputs through the supported refs/getters. The consuming application supplies its AI SDK transport and persistence adapters. No backend service is included.
10
+
11
+ Migration acceptance remains incomplete. The official AI SDK dependency graph currently has strict declaration errors; see the repository's `reports/vue3/REVISED-EXECUTION.md` before treating this branch as release ready.
12
+
13
+ Elements remains a private source component kit in this repository and is not included in this npm package.
@@ -0,0 +1,12 @@
1
+ // \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
10
+ return target;
11
+ };
12
+ export { __exportAll };
@@ -0,0 +1,22 @@
1
+ import { type RealtimeVoiceAdapter } from "@ulearning/ai-core";
2
+ /** Options for a browser WebRTC connection to OpenAI Realtime. */
3
+ export type OpenAIRealtimeVoiceAdapterOptions = {
4
+ /** Exchange the browser's SDP offer for an answer through your authenticated server. Keep the API key and session configuration on the server. */
5
+ exchangeSdp: (sdp: string, options: {
6
+ signal: AbortSignal;
7
+ }) => Promise<string>;
8
+ };
9
+ /**
10
+ * Connects browser microphone audio directly to OpenAI Realtime over WebRTC.
11
+ * Configure audio output, input transcription, and automatic turn detection on
12
+ * the server. Each connection starts a new conversation; existing thread history
13
+ * and assistant-ui tools are not sent to the voice model.
14
+ */
15
+ export declare class OpenAIRealtimeVoiceAdapter implements RealtimeVoiceAdapter {
16
+ private readonly options;
17
+ constructor(options: OpenAIRealtimeVoiceAdapterOptions);
18
+ connect(options: {
19
+ abortSignal?: AbortSignal;
20
+ }): RealtimeVoiceAdapter.Session;
21
+ }
22
+ //# sourceMappingURL=OpenAIRealtimeVoiceAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAIRealtimeVoiceAdapter.d.ts","mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB;AAE3B;AACA,MAAM,MAAM,iCAAiC,GAAG;IAC9C;IACA,WAAW,EAAE,CACX,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,MAAM,EAAE,WAAW;KAAE,KAC7B,OAAO,CAAC,MAAM,CAAC;CACrB;AAOD;;;;;;AAMA,qBAAa,0BAA2B,YAAW,oBAAoB;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAEZ,OAAO,EAAE,iCAAiC;IAItD,OAAO,CAAC,OAAO,EAAE;QACf,WAAW,CAAC,EAAE,WAAW;KAC1B,GAAG,oBAAoB,CAAC,OAAO","names":[],"ignoreList":[],"sources":["../../src/adapters/OpenAIRealtimeVoiceAdapter.ts"],"sourcesContent":[null]}
@@ -0,0 +1,296 @@
1
+ import { createVoiceSession } from "@ulearning/ai-core";
2
+ // src/adapters/OpenAIRealtimeVoiceAdapter.ts
3
+ const asRecord = (value) => value !== null && typeof value === "object" && !Array.isArray(value) ? value : void 0;
4
+ /**
5
+ * Connects browser microphone audio directly to OpenAI Realtime over WebRTC.
6
+ * Configure audio output, input transcription, and automatic turn detection on
7
+ * the server. Each connection starts a new conversation; existing thread history
8
+ * and assistant-ui tools are not sent to the voice model.
9
+ */
10
+ var OpenAIRealtimeVoiceAdapter = class {
11
+ options;
12
+ constructor(options) {
13
+ this.options = options;
14
+ }
15
+ connect(options) {
16
+ return createVoiceSession(options, async (session) => {
17
+ if (typeof RTCPeerConnection === "undefined" || typeof document === "undefined" || typeof navigator === "undefined" || !navigator.mediaDevices?.getUserMedia) throw new Error("OpenAI Realtime voice requires a browser with WebRTC and microphone access.");
18
+ const controller = new AbortController();
19
+ const peer = new RTCPeerConnection();
20
+ const channel = peer.createDataChannel("oai-events");
21
+ const audio = document.createElement("audio");
22
+ audio.autoplay = true;
23
+ let microphone;
24
+ let muted = false;
25
+ let closed = false;
26
+ let generating = false;
27
+ let speaking = false;
28
+ let transcribing = false;
29
+ let volumeTimer;
30
+ let connectionTimer;
31
+ let assistantTranscript;
32
+ const transcriptQueue = [];
33
+ const pendingTranscripts = /* @__PURE__ */ new Map();
34
+ const flushTranscripts = () => {
35
+ while (transcriptQueue[0]?.ready) {
36
+ const item = transcriptQueue[0];
37
+ item.ready = false;
38
+ if (item.value?.isFinal !== false) transcriptQueue.shift();
39
+ if (item.value) session.emitTranscript(item.value);
40
+ }
41
+ };
42
+ const finishUserTranscript = (id, value) => {
43
+ const item = typeof id === "string" ? pendingTranscripts.get(id) : void 0;
44
+ if (item) {
45
+ item.ready = true;
46
+ item.value = value;
47
+ pendingTranscripts.delete(id);
48
+ } else if (value) transcriptQueue.push({
49
+ ready: true,
50
+ value
51
+ });
52
+ flushTranscripts();
53
+ };
54
+ const pending = /* @__PURE__ */ new Map();
55
+ const disconnect = () => {
56
+ if (closed) return;
57
+ closed = true;
58
+ controller.abort();
59
+ clearInterval(volumeTimer);
60
+ clearTimeout(connectionTimer);
61
+ for (const id of pending.keys()) settle(id, /* @__PURE__ */ new Error("OpenAI Realtime session disconnected before accepting the message."));
62
+ pendingTranscripts.clear();
63
+ transcriptQueue.length = 0;
64
+ channel.onopen = channel.onmessage = channel.onclose = channel.onerror = null;
65
+ peer.ontrack = peer.onconnectionstatechange = null;
66
+ for (const track of microphone?.getTracks() ?? []) track.stop();
67
+ audio.pause();
68
+ audio.srcObject = null;
69
+ channel.close();
70
+ peer.close();
71
+ };
72
+ const end = (reason, error) => {
73
+ session.end(reason, error);
74
+ disconnect();
75
+ };
76
+ const send = (event) => {
77
+ if (closed || channel.readyState !== "open") throw new Error("OpenAI Realtime session is not connected.");
78
+ channel.send(JSON.stringify(event));
79
+ };
80
+ const request = (id, event) => new Promise((resolve, reject) => {
81
+ const timer = setTimeout(() => {
82
+ reject(/* @__PURE__ */ new Error("OpenAI Realtime did not acknowledge the message."));
83
+ }, 1e4);
84
+ pending.set(id, {
85
+ resolve,
86
+ reject,
87
+ timer
88
+ });
89
+ send({
90
+ ...event,
91
+ event_id: id
92
+ });
93
+ }).finally(() => settle(id));
94
+ const settle = (id, error) => {
95
+ if (typeof id !== "string") return false;
96
+ const message = pending.get(id);
97
+ if (!message) return false;
98
+ clearTimeout(message.timer);
99
+ pending.delete(id);
100
+ if (error) message.reject(error);
101
+ else message.resolve();
102
+ return true;
103
+ };
104
+ const setSpeaking = (value) => {
105
+ speaking = value;
106
+ session.emitMode(value ? "speaking" : "listening");
107
+ };
108
+ channel.onmessage = ({ data }) => {
109
+ if (closed) return;
110
+ let event;
111
+ try {
112
+ event = asRecord(JSON.parse(data));
113
+ } catch {
114
+ return;
115
+ }
116
+ if (!event) return;
117
+ switch (event.type) {
118
+ case "session.created":
119
+ case "session.updated": {
120
+ const audio = asRecord(asRecord(event.session)?.audio);
121
+ const input = asRecord(audio?.input);
122
+ transcribing = asRecord(input?.transcription) !== void 0;
123
+ break;
124
+ }
125
+ case "input_audio_buffer.committed":
126
+ if (transcribing && typeof event.item_id === "string" && !pendingTranscripts.has(event.item_id)) {
127
+ const item = {
128
+ ready: false,
129
+ value: void 0
130
+ };
131
+ pendingTranscripts.set(event.item_id, item);
132
+ transcriptQueue.push(item);
133
+ }
134
+ break;
135
+ case "conversation.item.input_audio_transcription.completed":
136
+ if (typeof event.transcript === "string") finishUserTranscript(event.item_id, {
137
+ role: "user",
138
+ text: event.transcript,
139
+ isFinal: true
140
+ });
141
+ break;
142
+ case "response.output_audio_transcript.delta":
143
+ case "response.output_audio_transcript.done": {
144
+ if (typeof event.item_id !== "string") break;
145
+ const final = event.type === "response.output_audio_transcript.done";
146
+ const text = final ? event.transcript : event.delta;
147
+ if (typeof text !== "string") break;
148
+ if (assistantTranscript?.id !== event.item_id) {
149
+ assistantTranscript = {
150
+ id: event.item_id,
151
+ ready: false,
152
+ value: void 0
153
+ };
154
+ transcriptQueue.push(assistantTranscript);
155
+ }
156
+ assistantTranscript.ready = true;
157
+ assistantTranscript.value = {
158
+ role: "assistant",
159
+ text: final ? text : (assistantTranscript.value?.text ?? "") + text,
160
+ isFinal: final
161
+ };
162
+ flushTranscripts();
163
+ break;
164
+ }
165
+ case "response.created":
166
+ generating = true;
167
+ settle(asRecord(asRecord(event.response)?.metadata)?.aui_request_id);
168
+ break;
169
+ case "response.done": {
170
+ generating = false;
171
+ const response = asRecord(event.response);
172
+ if (assistantTranscript?.value?.isFinal === false) {
173
+ assistantTranscript.value = {
174
+ ...assistantTranscript.value,
175
+ isFinal: true
176
+ };
177
+ assistantTranscript.ready = true;
178
+ flushTranscripts();
179
+ }
180
+ if (response?.status === "failed") console.warn("OpenAI Realtime response failed.", response.status_details);
181
+ break;
182
+ }
183
+ case "output_audio_buffer.started":
184
+ setSpeaking(true);
185
+ break;
186
+ case "output_audio_buffer.stopped":
187
+ case "output_audio_buffer.cleared":
188
+ setSpeaking(false);
189
+ break;
190
+ case "conversation.item.added":
191
+ settle(asRecord(event.item)?.id);
192
+ break;
193
+ case "conversation.item.input_audio_transcription.failed":
194
+ finishUserTranscript(event.item_id);
195
+ console.warn("OpenAI Realtime transcription failed.", event.error);
196
+ break;
197
+ case "error": {
198
+ const error = asRecord(event.error);
199
+ if (error?.code === "response_cancel_not_active") break;
200
+ if (!settle(error?.event_id, new Error(typeof error?.message === "string" ? error.message : "OpenAI Realtime rejected the message."))) console.warn("OpenAI Realtime error.", event.error);
201
+ break;
202
+ }
203
+ }
204
+ };
205
+ channel.onopen = () => {
206
+ if (closed) return;
207
+ clearTimeout(connectionTimer);
208
+ session.setStatus({ type: "running" });
209
+ if (closed) return;
210
+ session.emitMode("listening");
211
+ if (closed) return;
212
+ volumeTimer = setInterval(() => {
213
+ peer.getStats().then((report) => {
214
+ if (closed) return;
215
+ let volume = 0;
216
+ report.forEach((stat) => {
217
+ if ((stat.type === "inbound-rtp" || !muted && stat.type === "media-source") && typeof stat.audioLevel === "number") volume = Math.max(volume, stat.audioLevel);
218
+ });
219
+ session.emitVolume(Math.min(1, volume));
220
+ }).catch(() => {});
221
+ }, 100);
222
+ };
223
+ channel.onclose = () => end("finished");
224
+ channel.onerror = () => end("error", /* @__PURE__ */ new Error("OpenAI Realtime data channel failed."));
225
+ peer.onconnectionstatechange = () => {
226
+ if (peer.connectionState === "failed") end("error", /* @__PURE__ */ new Error("OpenAI Realtime connection failed."));
227
+ else if (peer.connectionState === "closed") end("finished");
228
+ };
229
+ peer.ontrack = ({ track }) => {
230
+ if (closed || track.kind !== "audio") return;
231
+ audio.srcObject = new MediaStream([track]);
232
+ audio.play().catch((error) => end("error", error));
233
+ };
234
+ const start = async () => {
235
+ const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
236
+ if (closed || session.isDisposed()) {
237
+ for (const track of stream.getTracks()) track.stop();
238
+ return;
239
+ }
240
+ microphone = stream;
241
+ for (const track of stream.getAudioTracks()) {
242
+ track.enabled = !muted;
243
+ peer.addTrack(track, stream);
244
+ }
245
+ connectionTimer = setTimeout(() => end("error", /* @__PURE__ */ new Error("OpenAI Realtime connection timed out.")), 3e4);
246
+ const offer = await peer.createOffer();
247
+ if (closed) return;
248
+ await peer.setLocalDescription(offer);
249
+ if (closed) return;
250
+ const answer = await this.options.exchangeSdp(offer.sdp, { signal: controller.signal });
251
+ if (closed) return;
252
+ await peer.setRemoteDescription({
253
+ type: "answer",
254
+ sdp: answer
255
+ });
256
+ };
257
+ start().catch((error) => end("error", error));
258
+ return {
259
+ disconnect,
260
+ mute: () => {
261
+ muted = true;
262
+ for (const track of microphone?.getAudioTracks() ?? []) track.enabled = false;
263
+ },
264
+ unmute: () => {
265
+ muted = false;
266
+ for (const track of microphone?.getAudioTracks() ?? []) track.enabled = true;
267
+ },
268
+ sendText: async (text) => {
269
+ if (generating) send({ type: "response.cancel" });
270
+ if (speaking) send({ type: "output_audio_buffer.clear" });
271
+ const id = crypto.randomUUID().replaceAll("-", "");
272
+ await request(id, {
273
+ type: "conversation.item.create",
274
+ item: {
275
+ id,
276
+ type: "message",
277
+ role: "user",
278
+ content: [{
279
+ type: "input_text",
280
+ text
281
+ }]
282
+ }
283
+ });
284
+ const responseId = crypto.randomUUID().replaceAll("-", "");
285
+ await request(responseId, {
286
+ type: "response.create",
287
+ response: { metadata: { aui_request_id: responseId } }
288
+ });
289
+ }
290
+ };
291
+ });
292
+ }
293
+ };
294
+ export { OpenAIRealtimeVoiceAdapter };
295
+
296
+ //# sourceMappingURL=OpenAIRealtimeVoiceAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAIRealtimeVoiceAdapter.js","names":[],"sources":["../../src/adapters/OpenAIRealtimeVoiceAdapter.ts"],"sourcesContent":["import {\n createVoiceSession,\n type RealtimeVoiceAdapter,\n} from \"@ulearning/ai-core\";\n\n/** Options for a browser WebRTC connection to OpenAI Realtime. */\nexport type OpenAIRealtimeVoiceAdapterOptions = {\n /** Exchange the browser's SDP offer for an answer through your authenticated server. Keep the API key and session configuration on the server. */\n exchangeSdp: (\n sdp: string,\n options: { signal: AbortSignal },\n ) => Promise<string>;\n};\n\nconst asRecord = (value: unknown): Record<string, unknown> | undefined =>\n value !== null && typeof value === \"object\" && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n\n/**\n * Connects browser microphone audio directly to OpenAI Realtime over WebRTC.\n * Configure audio output, input transcription, and automatic turn detection on\n * the server. Each connection starts a new conversation; existing thread history\n * and assistant-ui tools are not sent to the voice model.\n */\nexport class OpenAIRealtimeVoiceAdapter implements RealtimeVoiceAdapter {\n private readonly options: OpenAIRealtimeVoiceAdapterOptions;\n\n constructor(options: OpenAIRealtimeVoiceAdapterOptions) {\n this.options = options;\n }\n\n connect(options: {\n abortSignal?: AbortSignal;\n }): RealtimeVoiceAdapter.Session {\n return createVoiceSession(options, async (session) => {\n if (\n typeof RTCPeerConnection === \"undefined\" ||\n typeof document === \"undefined\" ||\n typeof navigator === \"undefined\" ||\n !navigator.mediaDevices?.getUserMedia\n ) {\n throw new Error(\n \"OpenAI Realtime voice requires a browser with WebRTC and microphone access.\",\n );\n }\n\n const controller = new AbortController();\n const peer = new RTCPeerConnection();\n const channel = peer.createDataChannel(\"oai-events\");\n const audio = document.createElement(\"audio\");\n audio.autoplay = true;\n let microphone: MediaStream | undefined;\n let muted = false;\n let closed = false;\n let generating = false;\n let speaking = false;\n let transcribing = false;\n let volumeTimer: ReturnType<typeof setInterval> | undefined;\n let connectionTimer: ReturnType<typeof setTimeout> | undefined;\n type Transcript = {\n ready: boolean;\n value: RealtimeVoiceAdapter.TranscriptItem | undefined;\n };\n let assistantTranscript: (Transcript & { id: string }) | undefined;\n const transcriptQueue: Transcript[] = [];\n const pendingTranscripts = new Map<string, Transcript>();\n const flushTranscripts = () => {\n while (transcriptQueue[0]?.ready) {\n const item = transcriptQueue[0];\n item.ready = false;\n if (item.value?.isFinal !== false) transcriptQueue.shift();\n if (item.value) session.emitTranscript(item.value);\n }\n };\n const finishUserTranscript = (\n id: unknown,\n value?: RealtimeVoiceAdapter.TranscriptItem,\n ) => {\n const item =\n typeof id === \"string\" ? pendingTranscripts.get(id) : undefined;\n if (item) {\n item.ready = true;\n item.value = value;\n pendingTranscripts.delete(id as string);\n } else if (value) transcriptQueue.push({ ready: true, value });\n flushTranscripts();\n };\n const pending = new Map<\n string,\n {\n resolve: () => void;\n reject: (error: Error) => void;\n timer: ReturnType<typeof setTimeout>;\n }\n >();\n\n const disconnect = () => {\n if (closed) return;\n closed = true;\n controller.abort();\n clearInterval(volumeTimer);\n clearTimeout(connectionTimer);\n for (const id of pending.keys())\n settle(\n id,\n new Error(\n \"OpenAI Realtime session disconnected before accepting the message.\",\n ),\n );\n pendingTranscripts.clear();\n transcriptQueue.length = 0;\n channel.onopen =\n channel.onmessage =\n channel.onclose =\n channel.onerror =\n null;\n peer.ontrack = peer.onconnectionstatechange = null;\n for (const track of microphone?.getTracks() ?? []) track.stop();\n audio.pause();\n audio.srcObject = null;\n channel.close();\n peer.close();\n };\n\n const end = (reason: \"finished\" | \"error\", error?: unknown) => {\n session.end(reason, error);\n disconnect();\n };\n\n const send = (event: Record<string, unknown>) => {\n if (closed || channel.readyState !== \"open\")\n throw new Error(\"OpenAI Realtime session is not connected.\");\n channel.send(JSON.stringify(event));\n };\n\n const request = (id: string, event: Record<string, unknown>) =>\n new Promise<void>((resolve, reject) => {\n const timer = setTimeout(() => {\n reject(\n new Error(\"OpenAI Realtime did not acknowledge the message.\"),\n );\n }, 10_000);\n pending.set(id, { resolve, reject, timer });\n send({ ...event, event_id: id });\n }).finally(() => settle(id));\n\n const settle = (id: unknown, error?: Error) => {\n if (typeof id !== \"string\") return false;\n const message = pending.get(id);\n if (!message) return false;\n clearTimeout(message.timer);\n pending.delete(id);\n if (error) message.reject(error);\n else message.resolve();\n return true;\n };\n\n const setSpeaking = (value: boolean) => {\n speaking = value;\n session.emitMode(value ? \"speaking\" : \"listening\");\n };\n\n channel.onmessage = ({ data }) => {\n if (closed) return;\n let event: Record<string, unknown> | undefined;\n try {\n event = asRecord(JSON.parse(data));\n } catch {\n return;\n }\n if (!event) return;\n switch (event.type) {\n case \"session.created\":\n case \"session.updated\": {\n const audio = asRecord(asRecord(event.session)?.audio);\n const input = asRecord(audio?.input);\n transcribing = asRecord(input?.transcription) !== undefined;\n break;\n }\n case \"input_audio_buffer.committed\":\n if (\n transcribing &&\n typeof event.item_id === \"string\" &&\n !pendingTranscripts.has(event.item_id)\n ) {\n const item = { ready: false, value: undefined };\n pendingTranscripts.set(event.item_id, item);\n transcriptQueue.push(item);\n }\n break;\n case \"conversation.item.input_audio_transcription.completed\":\n if (typeof event.transcript === \"string\")\n finishUserTranscript(event.item_id, {\n role: \"user\",\n text: event.transcript,\n isFinal: true,\n });\n break;\n case \"response.output_audio_transcript.delta\":\n case \"response.output_audio_transcript.done\": {\n if (typeof event.item_id !== \"string\") break;\n const final =\n event.type === \"response.output_audio_transcript.done\";\n const text = final ? event.transcript : event.delta;\n if (typeof text !== \"string\") break;\n if (assistantTranscript?.id !== event.item_id) {\n assistantTranscript = {\n id: event.item_id,\n ready: false,\n value: undefined,\n };\n transcriptQueue.push(assistantTranscript);\n }\n assistantTranscript.ready = true;\n assistantTranscript.value = {\n role: \"assistant\",\n text: final\n ? text\n : (assistantTranscript.value?.text ?? \"\") + text,\n isFinal: final,\n };\n flushTranscripts();\n break;\n }\n case \"response.created\":\n generating = true;\n settle(\n asRecord(asRecord(event.response)?.metadata)?.aui_request_id,\n );\n break;\n case \"response.done\": {\n generating = false;\n const response = asRecord(event.response);\n if (assistantTranscript?.value?.isFinal === false) {\n assistantTranscript.value = {\n ...assistantTranscript.value,\n isFinal: true,\n };\n assistantTranscript.ready = true;\n flushTranscripts();\n }\n if (response?.status === \"failed\")\n console.warn(\n \"OpenAI Realtime response failed.\",\n response.status_details,\n );\n break;\n }\n case \"output_audio_buffer.started\":\n setSpeaking(true);\n break;\n case \"output_audio_buffer.stopped\":\n case \"output_audio_buffer.cleared\":\n setSpeaking(false);\n break;\n case \"conversation.item.added\":\n settle(asRecord(event.item)?.id);\n break;\n case \"conversation.item.input_audio_transcription.failed\":\n finishUserTranscript(event.item_id);\n console.warn(\"OpenAI Realtime transcription failed.\", event.error);\n break;\n case \"error\": {\n const error = asRecord(event.error);\n if (error?.code === \"response_cancel_not_active\") break;\n if (\n !settle(\n error?.event_id,\n new Error(\n typeof error?.message === \"string\"\n ? error.message\n : \"OpenAI Realtime rejected the message.\",\n ),\n )\n )\n console.warn(\"OpenAI Realtime error.\", event.error);\n break;\n }\n }\n };\n channel.onopen = () => {\n if (closed) return;\n clearTimeout(connectionTimer);\n session.setStatus({ type: \"running\" });\n if (closed) return;\n session.emitMode(\"listening\");\n if (closed) return;\n volumeTimer = setInterval(() => {\n void peer\n .getStats()\n .then((report) => {\n if (closed) return;\n let volume = 0;\n report.forEach((stat) => {\n if (\n (stat.type === \"inbound-rtp\" ||\n (!muted && stat.type === \"media-source\")) &&\n typeof stat.audioLevel === \"number\"\n )\n volume = Math.max(volume, stat.audioLevel);\n });\n session.emitVolume(Math.min(1, volume));\n })\n .catch(() => {});\n }, 100);\n };\n channel.onclose = () => end(\"finished\");\n channel.onerror = () =>\n end(\"error\", new Error(\"OpenAI Realtime data channel failed.\"));\n peer.onconnectionstatechange = () => {\n if (peer.connectionState === \"failed\") {\n end(\"error\", new Error(\"OpenAI Realtime connection failed.\"));\n } else if (peer.connectionState === \"closed\") {\n end(\"finished\");\n }\n };\n peer.ontrack = ({ track }) => {\n if (closed || track.kind !== \"audio\") return;\n audio.srcObject = new MediaStream([track]);\n void audio.play().catch((error: unknown) => end(\"error\", error));\n };\n\n const start = async () => {\n const stream = await navigator.mediaDevices.getUserMedia({\n audio: true,\n });\n if (closed || session.isDisposed()) {\n for (const track of stream.getTracks()) track.stop();\n return;\n }\n microphone = stream;\n for (const track of stream.getAudioTracks()) {\n track.enabled = !muted;\n peer.addTrack(track, stream);\n }\n connectionTimer = setTimeout(\n () =>\n end(\"error\", new Error(\"OpenAI Realtime connection timed out.\")),\n 30_000,\n );\n const offer = await peer.createOffer();\n if (closed) return;\n await peer.setLocalDescription(offer);\n if (closed) return;\n const answer = await this.options.exchangeSdp(offer.sdp!, {\n signal: controller.signal,\n });\n if (closed) return;\n await peer.setRemoteDescription({ type: \"answer\", sdp: answer });\n };\n void start().catch((error: unknown) => end(\"error\", error));\n\n return {\n disconnect,\n mute: () => {\n muted = true;\n for (const track of microphone?.getAudioTracks() ?? [])\n track.enabled = false;\n },\n unmute: () => {\n muted = false;\n for (const track of microphone?.getAudioTracks() ?? [])\n track.enabled = true;\n },\n sendText: async (text) => {\n if (generating) send({ type: \"response.cancel\" });\n if (speaking) send({ type: \"output_audio_buffer.clear\" });\n const id = crypto.randomUUID().replaceAll(\"-\", \"\");\n await request(id, {\n type: \"conversation.item.create\",\n item: {\n id,\n type: \"message\",\n role: \"user\",\n content: [{ type: \"input_text\", text }],\n },\n });\n const responseId = crypto.randomUUID().replaceAll(\"-\", \"\");\n await request(responseId, {\n type: \"response.create\",\n response: { metadata: { aui_request_id: responseId } },\n });\n },\n };\n });\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { AssistantRuntime, UserCommands as CoreUserCommands } from "@ulearning/ai-core";
2
+ import type { AssistantTransportCommand as CoreAssistantTransportCommand, AssistantTransportConnectionMetadata as CoreAssistantTransportConnectionMetadata, AssistantTransportOptions as CoreAssistantTransportOptions, AssistantTransportProtocol, SendCommandsRequestBody as CoreSendCommandsRequestBody } from "@ulearning/ai-core/vue";
3
+ import type { UserCommands, UserExternalState } from "./augmentations.js";
4
+ import type { ShallowRef } from "vue";
5
+ export type { AssistantTransportProtocol };
6
+ export type SendCommandsRequestBody = {
7
+ [K in keyof CoreSendCommandsRequestBody as K extends "commands" ? never : K]: CoreSendCommandsRequestBody[K];
8
+ } & {
9
+ commands: AssistantTransportCommand[];
10
+ };
11
+ export type AssistantTransportCommand = Exclude<CoreAssistantTransportCommand, CoreUserCommands> | UserCommands;
12
+ export type AssistantTransportConnectionMetadata = Omit<CoreAssistantTransportConnectionMetadata, "pendingCommands"> & {
13
+ pendingCommands: AssistantTransportCommand[];
14
+ };
15
+ export type AssistantTransportStateConverter<T> = (state: T, connectionMetadata: AssistantTransportConnectionMetadata) => ReturnType<CoreAssistantTransportOptions<T>["converter"]>;
16
+ export type AssistantTransportOptions<T> = Omit<CoreAssistantTransportOptions<T>, "converter" | "prepareSendCommandsRequest" | "onError" | "onCancel"> & {
17
+ converter: AssistantTransportStateConverter<T>;
18
+ prepareSendCommandsRequest?: (body: SendCommandsRequestBody) => Record<string, unknown> | Promise<Record<string, unknown>>;
19
+ onError?: (error: Error, params: {
20
+ commands: AssistantTransportCommand[];
21
+ updateState: (updater: (state: T) => T) => void;
22
+ }) => void | Promise<void>;
23
+ onCancel?: (params: {
24
+ commands: AssistantTransportCommand[];
25
+ updateState: (updater: (state: T) => T) => void;
26
+ error?: Error;
27
+ }) => void;
28
+ };
29
+ export declare const useAssistantTransportRuntime: <T>(options: AssistantTransportOptions<T>) => AssistantRuntime;
30
+ export declare const useAssistantTransportSendCommand: () => (command: AssistantTransportCommand) => void;
31
+ export declare function useAssistantTransportState(): Readonly<ShallowRef<UserExternalState>>;
32
+ export declare function useAssistantTransportState<T>(selector: (state: UserExternalState) => T): Readonly<ShallowRef<T>>;
33
+ //# sourceMappingURL=assistant-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-transport.d.ts","mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,IAAI,gBAAgB,EAEjC,MAAM,oBAAoB;AAM3B,OAAO,KAAK,EACV,yBAAyB,IAAI,6BAA6B,EAC1D,oCAAoC,IAAI,wCAAwC,EAChF,yBAAyB,IAAI,6BAA6B,EAC1D,0BAA0B,EAC1B,uBAAuB,IAAI,2BAA2B,EACvD,MAAM,wBAAwB;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAiB;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK;AAErC,YAAY,EAAE,0BAA0B,EAAE;AAE1C,MAAM,MAAM,uBAAuB,GAAG;KAElC,CAAC,IAAI,MAAM,2BAA2B,IAAI,CAAC,SAAS,UAAU,GAAG,KAAK,GAAG,CAAC,GACzE,2BAA2B,CAAC,CAAC,CAAC;CAClC,GAAG;IACF,QAAQ,EAAE,yBAAyB,EAAE;CACtC;AAED,MAAM,MAAM,yBAAyB,GACjC,OAAO,CAAC,6BAA6B,EAAE,gBAAgB,CAAC,GACxD,YAAY;AAEhB,MAAM,MAAM,oCAAoC,GAAG,IAAI,CACrD,wCAAwC,EACxC,iBAAiB,CAClB,GAAG;IACF,eAAe,EAAE,yBAAyB,EAAE;CAC7C;AAED,MAAM,MAAM,gCAAgC,CAAC,CAAC,IAAI,CAChD,KAAK,EAAE,CAAC,EACR,kBAAkB,EAAE,oCAAoC,KACrD,UAAU,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAE9D,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI,IAAI,CAC7C,6BAA6B,CAAC,CAAC,CAAC,EAChC,WAAW,GAAG,4BAA4B,GAAG,SAAS,GAAG,UAAU,CACpE,GAAG;IACF,SAAS,EAAE,gCAAgC,CAAC,CAAC,CAAC;IAC9C,0BAA0B,CAAC,EAAE,CAC3B,IAAI,EAAE,uBAAuB,KAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE;QACN,QAAQ,EAAE,yBAAyB,EAAE;QACrC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI;KAChD,KACE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,yBAAyB,EAAE;QACrC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI;QAC/C,KAAK,CAAC,EAAE,KAAK;KACd,KAAK,IAAI;CACX;AAED,eAAO,MAAM,4BAA4B,GAAI,CAAC,EAC5C,SAAS,yBAAyB,CAAC,CAAC,CAAC,KACpC,gBAIF;AAED,eAAO,MAAM,gCAAgC,SAEnC,SAAS,yBAAyB,SAG3C;AAED,wBAAgB,0BAA0B,IAAI,QAAQ,CACpD,UAAU,CAAC,iBAAiB,CAAC,CAC9B;AACD,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,CAAC,GACxC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC","names":[],"ignoreList":[],"sources":["../src/assistant-transport.ts"],"sourcesContent":[null]}
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ import { useAssistantTransportRuntime as useAssistantTransportRuntime$1, useAssistantTransportSendCommand as useAssistantTransportSendCommand$1, useAssistantTransportState as useAssistantTransportState$1 } from "@ulearning/ai-core/vue";
3
+ // src/assistant-transport.ts
4
+ const useAssistantTransportRuntime = (options) => {
5
+ return useAssistantTransportRuntime$1(options);
6
+ };
7
+ const useAssistantTransportSendCommand = () => {
8
+ const send = useAssistantTransportSendCommand$1();
9
+ return (command) => {
10
+ send(command);
11
+ };
12
+ };
13
+ function useAssistantTransportState(selector = (state) => state) {
14
+ return useAssistantTransportState$1(selector);
15
+ }
16
+ export { useAssistantTransportRuntime, useAssistantTransportSendCommand, useAssistantTransportState };
17
+
18
+ //# sourceMappingURL=assistant-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant-transport.js","names":["useCoreAssistantTransportRuntime","useCoreAssistantTransportSendCommand","useCoreAssistantTransportState"],"sources":["../src/assistant-transport.ts"],"sourcesContent":["\"use client\";\n\nimport type {\n AssistantRuntime,\n UserCommands as CoreUserCommands,\n UserExternalState as CoreUserExternalState,\n} from \"@ulearning/ai-core\";\nimport {\n useAssistantTransportRuntime as useCoreAssistantTransportRuntime,\n useAssistantTransportSendCommand as useCoreAssistantTransportSendCommand,\n useAssistantTransportState as useCoreAssistantTransportState,\n} from \"@ulearning/ai-core/vue\";\nimport type {\n AssistantTransportCommand as CoreAssistantTransportCommand,\n AssistantTransportConnectionMetadata as CoreAssistantTransportConnectionMetadata,\n AssistantTransportOptions as CoreAssistantTransportOptions,\n AssistantTransportProtocol,\n SendCommandsRequestBody as CoreSendCommandsRequestBody,\n} from \"@ulearning/ai-core/vue\";\nimport type { UserCommands, UserExternalState } from \"./augmentations\";\nimport type { ShallowRef } from \"vue\";\n\nexport type { AssistantTransportProtocol };\n\nexport type SendCommandsRequestBody = {\n [\n K in keyof CoreSendCommandsRequestBody as K extends \"commands\" ? never : K\n ]: CoreSendCommandsRequestBody[K];\n} & {\n commands: AssistantTransportCommand[];\n};\n\nexport type AssistantTransportCommand =\n | Exclude<CoreAssistantTransportCommand, CoreUserCommands>\n | UserCommands;\n\nexport type AssistantTransportConnectionMetadata = Omit<\n CoreAssistantTransportConnectionMetadata,\n \"pendingCommands\"\n> & {\n pendingCommands: AssistantTransportCommand[];\n};\n\nexport type AssistantTransportStateConverter<T> = (\n state: T,\n connectionMetadata: AssistantTransportConnectionMetadata,\n) => ReturnType<CoreAssistantTransportOptions<T>[\"converter\"]>;\n\nexport type AssistantTransportOptions<T> = Omit<\n CoreAssistantTransportOptions<T>,\n \"converter\" | \"prepareSendCommandsRequest\" | \"onError\" | \"onCancel\"\n> & {\n converter: AssistantTransportStateConverter<T>;\n prepareSendCommandsRequest?: (\n body: SendCommandsRequestBody,\n ) => Record<string, unknown> | Promise<Record<string, unknown>>;\n onError?: (\n error: Error,\n params: {\n commands: AssistantTransportCommand[];\n updateState: (updater: (state: T) => T) => void;\n },\n ) => void | Promise<void>;\n onCancel?: (params: {\n commands: AssistantTransportCommand[];\n updateState: (updater: (state: T) => T) => void;\n error?: Error;\n }) => void;\n};\n\nexport const useAssistantTransportRuntime = <T>(\n options: AssistantTransportOptions<T>,\n): AssistantRuntime => {\n return useCoreAssistantTransportRuntime(\n options as CoreAssistantTransportOptions<T>,\n );\n};\n\nexport const useAssistantTransportSendCommand = () => {\n const send = useCoreAssistantTransportSendCommand();\n return (command: AssistantTransportCommand) => {\n send(command as CoreAssistantTransportCommand);\n };\n};\n\nexport function useAssistantTransportState(): Readonly<\n ShallowRef<UserExternalState>\n>;\nexport function useAssistantTransportState<T>(\n selector: (state: UserExternalState) => T,\n): Readonly<ShallowRef<T>>;\nexport function useAssistantTransportState<T>(\n selector: (state: UserExternalState) => T = (state) => state as T,\n): Readonly<ShallowRef<T | UserExternalState>> {\n return useCoreAssistantTransportState(\n selector as (state: CoreUserExternalState) => T,\n );\n}\n"],"mappings":";;;AAsEA,MAAa,gCACX,YACqB;CACrB,OAAOA,+BACL,OACF;AACF;AAEA,MAAa,yCAAyC;CACpD,MAAM,OAAOC,mCAAqC;CAClD,QAAQ,YAAuC;EAC7C,KAAK,OAAwC;CAC/C;AACF;AAQA,SAAgB,2BACd,YAA6C,UAAU,OACV;CAC7C,OAAOC,6BACL,QACF;AACF"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Module augmentation namespace for assistant-ui type extensions.
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * declare module "@ulearning/ai-sdk" {
7
+ * namespace Assistant {
8
+ * interface Commands {
9
+ * myCustomCommand: {
10
+ * type: "my-custom-command";
11
+ * data: string;
12
+ * };
13
+ * }
14
+ *
15
+ * interface ExternalState {
16
+ * myCustomState: {
17
+ * foo: string;
18
+ * };
19
+ * }
20
+ * }
21
+ * }
22
+ * ```
23
+ */
24
+ import type { Assistant as CoreAssistant } from "@ulearning/ai-core";
25
+ export declare namespace Assistant {
26
+ interface Commands extends CoreAssistant.Commands {
27
+ }
28
+ interface ExternalState extends CoreAssistant.ExternalState {
29
+ }
30
+ }
31
+ export type UserCommands = Assistant.Commands[keyof Assistant.Commands];
32
+ export type UserExternalState = keyof Assistant.ExternalState extends never ? Record<string, unknown> : Assistant.ExternalState[keyof Assistant.ExternalState];
33
+ //# sourceMappingURL=augmentations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"augmentations.d.ts","mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,oBAAoB;AAEpE,yBAAiB,SAAS,CAAC;IACzB,UAAiB,QAAS,SAAQ,aAAa,CAAC,QAAQ;;IAExD,UAAiB,aAAc,SAAQ,aAAa,CAAC,aAAa;;;AAGpE,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,MAAM,SAAS,CAAC,aAAa,SAAS,KAAK,GACvE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,SAAS,CAAC,aAAa,CAAC,MAAM,SAAS,CAAC,aAAa,CAAC","names":[],"ignoreList":[],"sources":["../src/augmentations.ts"],"sourcesContent":[null]}
File without changes
@@ -0,0 +1,4 @@
1
+ import type { StoreApi } from "zustand/vanilla";
2
+ export type ReadonlyStore<T> = Omit<StoreApi<T>, "setState" | "destroy">;
3
+ export declare const writableStore: <T>(store: ReadonlyStore<T> | undefined) => StoreApi<T>;
4
+ //# sourceMappingURL=ReadonlyStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadonlyStore.d.ts","mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB;AAE/C,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;AAExE,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,KACvC,QAAQ,CAAC,CAAC,CACtC","names":[],"ignoreList":[],"sources":["../../src/context/ReadonlyStore.ts"],"sourcesContent":[null]}
@@ -0,0 +1,7 @@
1
+ // src/context/ReadonlyStore.ts
2
+ const writableStore = (store) => {
3
+ return store;
4
+ };
5
+ export { writableStore };
6
+
7
+ //# sourceMappingURL=ReadonlyStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadonlyStore.js","names":[],"sources":["../../src/context/ReadonlyStore.ts"],"sourcesContent":["import type { StoreApi } from \"zustand/vanilla\";\n\nexport type ReadonlyStore<T> = Omit<StoreApi<T>, \"setState\" | \"destroy\">;\n\nexport const writableStore = <T>(store: ReadonlyStore<T> | undefined) => {\n return store as unknown as StoreApi<T>;\n};\n"],"mappings":";AAIA,MAAa,iBAAoB,UAAwC;CACvE,OAAO;AACT"}
@@ -0,0 +1,13 @@
1
+ export { AssistantRuntimeProvider } from "../legacy-runtime/AssistantRuntimeProvider.js";
2
+ export { ThreadListItemByIndexProvider, ThreadListItemRuntimeProvider, } from "./providers/ThreadListItemProvider.js";
3
+ export { MessageByIndexProvider } from "./providers/MessageByIndexProvider.js";
4
+ export { SuggestionByIndexProvider } from "./providers/SuggestionByIndexProvider.js";
5
+ export { PartByIndexProvider } from "./providers/PartByIndexProvider.js";
6
+ export { MessageAttachmentByIndexProvider, ComposerAttachmentByIndexProvider, } from "./providers/AttachmentByIndexProvider.js";
7
+ export { TextMessagePartProvider } from "./providers/TextMessagePartProvider.js";
8
+ export { MessageProvider } from "./providers/MessageProvider.js";
9
+ export { ChainOfThoughtByIndicesProvider } from "./providers/ChainOfThoughtByIndicesProvider.js";
10
+ export { ReadonlyThreadProvider } from "@ulearning/ai-core/vue";
11
+ export type { ThreadViewportState } from "./stores/ThreadViewport.js";
12
+ export { useThreadViewport, useThreadViewportStore, } from "./vue/ThreadViewportContext.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA4C;AACrF,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,uCAAoC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAoC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAAuC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAiC;AACrE,OAAO,EACL,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,0CAAuC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAqC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAA6B;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,gDAA6C;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB;AAE/D,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAAyB;AAElE,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,gCAA6B","names":[],"ignoreList":[],"sources":["../../src/context/index.ts"],"sourcesContent":[null]}
@@ -0,0 +1,12 @@
1
+ import { useThreadViewport, useThreadViewportStore } from "./vue/ThreadViewportContext.js";
2
+ import { AssistantRuntimeProvider } from "../legacy-runtime/AssistantRuntimeProvider.js";
3
+ import { ThreadListItemByIndexProvider, ThreadListItemRuntimeProvider } from "./providers/ThreadListItemProvider.js";
4
+ import { MessageByIndexProvider } from "./providers/MessageByIndexProvider.js";
5
+ import { SuggestionByIndexProvider } from "./providers/SuggestionByIndexProvider.js";
6
+ import { PartByIndexProvider } from "./providers/PartByIndexProvider.js";
7
+ import { ComposerAttachmentByIndexProvider, MessageAttachmentByIndexProvider } from "./providers/AttachmentByIndexProvider.js";
8
+ import { TextMessagePartProvider } from "./providers/TextMessagePartProvider.js";
9
+ import { MessageProvider } from "./providers/MessageProvider.js";
10
+ import { ChainOfThoughtByIndicesProvider } from "./providers/ChainOfThoughtByIndicesProvider.js";
11
+ import { ReadonlyThreadProvider } from "@ulearning/ai-core/vue";
12
+ export { AssistantRuntimeProvider, ChainOfThoughtByIndicesProvider, ComposerAttachmentByIndexProvider, MessageAttachmentByIndexProvider, MessageByIndexProvider, MessageProvider, PartByIndexProvider, ReadonlyThreadProvider, SuggestionByIndexProvider, TextMessagePartProvider, ThreadListItemByIndexProvider, ThreadListItemRuntimeProvider, useThreadViewport, useThreadViewportStore };
@@ -0,0 +1,2 @@
1
+ export { MessageAttachmentByIndexProvider, ComposerAttachmentByIndexProvider, } from "@ulearning/ai-core/vue";
2
+ //# sourceMappingURL=AttachmentByIndexProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentByIndexProvider.d.ts","mappings":"AAEA,OAAO,EACL,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,wBAAwB","names":[],"ignoreList":[],"sources":["../../../src/context/providers/AttachmentByIndexProvider.tsx"],"sourcesContent":[null]}
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ export { ComposerAttachmentByIndexProvider, MessageAttachmentByIndexProvider } from "@ulearning/ai-core/vue";
@@ -0,0 +1,2 @@
1
+ export { ChainOfThoughtByIndicesProvider } from "@ulearning/ai-core/vue";
2
+ //# sourceMappingURL=ChainOfThoughtByIndicesProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainOfThoughtByIndicesProvider.d.ts","mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB","names":[],"ignoreList":[],"sources":["../../../src/context/providers/ChainOfThoughtByIndicesProvider.tsx"],"sourcesContent":[null]}
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ export { ChainOfThoughtByIndicesProvider } from "@ulearning/ai-core/vue";
@@ -0,0 +1,2 @@
1
+ export { MessageByIndexProvider } from "@ulearning/ai-core/vue";
2
+ //# sourceMappingURL=MessageByIndexProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageByIndexProvider.d.ts","mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB","names":[],"ignoreList":[],"sources":["../../../src/context/providers/MessageByIndexProvider.tsx"],"sourcesContent":[null]}
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ export { MessageByIndexProvider } from "@ulearning/ai-core/vue";
@@ -0,0 +1,3 @@
1
+ import { type ThreadMessageClientProps } from "@ulearning/ai-core/store";
2
+ export declare const MessageProvider: import("vue").DefineSetupFnComponent<ThreadMessageClientProps, {}, {}, ThreadMessageClientProps & {}, import("vue").PublicProps>;
3
+ //# sourceMappingURL=MessageProvider.d.ts.map