@assistant-ui/core 0.3.20 → 0.3.21

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 (905) hide show
  1. package/dist/adapters/attachment.d.ts +42 -34
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +51 -21
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/adapters/directive-formatter.d.ts +1 -3
  6. package/dist/adapters/directive-formatter.d.ts.map +1 -1
  7. package/dist/adapters/feedback.d.ts +6 -7
  8. package/dist/adapters/feedback.d.ts.map +1 -1
  9. package/dist/adapters/index.d.ts +14 -9
  10. package/dist/adapters/index.d.ts.map +1 -0
  11. package/dist/adapters/index.js +1 -1
  12. package/dist/adapters/speech.d.ts +57 -58
  13. package/dist/adapters/speech.d.ts.map +1 -1
  14. package/dist/adapters/speech.js +16 -2
  15. package/dist/adapters/speech.js.map +1 -1
  16. package/dist/adapters/suggestion.d.ts +14 -16
  17. package/dist/adapters/suggestion.d.ts.map +1 -1
  18. package/dist/adapters/thread-history.d.ts +54 -51
  19. package/dist/adapters/thread-history.d.ts.map +1 -1
  20. package/dist/adapters/trigger.d.ts +7 -9
  21. package/dist/adapters/trigger.d.ts.map +1 -1
  22. package/dist/adapters/voice.d.ts +46 -40
  23. package/dist/adapters/voice.d.ts.map +1 -1
  24. package/dist/adapters/voice.js +17 -3
  25. package/dist/adapters/voice.js.map +1 -1
  26. package/dist/index.d.ts +70 -56
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +6 -6
  29. package/dist/index.js.map +1 -1
  30. package/dist/internal/duplicate-detection.d.ts +0 -2
  31. package/dist/internal/duplicate-detection.d.ts.map +1 -1
  32. package/dist/internal.d.ts +27 -58
  33. package/dist/internal.d.ts.map +1 -0
  34. package/dist/internal.js +8 -6
  35. package/dist/model-context/frame/host.d.ts +19 -21
  36. package/dist/model-context/frame/host.d.ts.map +1 -1
  37. package/dist/model-context/frame/host.js +3 -1
  38. package/dist/model-context/frame/host.js.map +1 -1
  39. package/dist/model-context/frame/provider.d.ts +27 -28
  40. package/dist/model-context/frame/provider.d.ts.map +1 -1
  41. package/dist/model-context/frame/provider.js +6 -0
  42. package/dist/model-context/frame/provider.js.map +1 -1
  43. package/dist/model-context/frame/types.d.ts +19 -21
  44. package/dist/model-context/frame/types.d.ts.map +1 -1
  45. package/dist/model-context/frame/validate.d.ts +3 -0
  46. package/dist/model-context/frame/validate.d.ts.map +1 -0
  47. package/dist/model-context/frame/validate.js +26 -0
  48. package/dist/model-context/frame/validate.js.map +1 -0
  49. package/dist/model-context/interactable-composer-metadata.d.ts +42 -29
  50. package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
  51. package/dist/model-context/interactable-composer-metadata.js +30 -6
  52. package/dist/model-context/interactable-composer-metadata.js.map +1 -1
  53. package/dist/model-context/registry-handles.d.ts +6 -8
  54. package/dist/model-context/registry-handles.d.ts.map +1 -1
  55. package/dist/model-context/registry.d.ts +14 -16
  56. package/dist/model-context/registry.d.ts.map +1 -1
  57. package/dist/model-context/tool-call-text.d.ts +13 -14
  58. package/dist/model-context/tool-call-text.d.ts.map +1 -1
  59. package/dist/model-context/tool.d.ts +10 -11
  60. package/dist/model-context/tool.d.ts.map +1 -1
  61. package/dist/model-context/types.d.ts +32 -34
  62. package/dist/model-context/types.d.ts.map +1 -1
  63. package/dist/react/AssistantProvider.d.ts +6 -8
  64. package/dist/react/AssistantProvider.d.ts.map +1 -1
  65. package/dist/react/AssistantRuntimeProvider.d.ts +23 -25
  66. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  67. package/dist/react/RuntimeAdapter.d.ts +2 -5
  68. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  69. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +24 -18
  70. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  71. package/dist/react/adapters/LocalStorageThreadListAdapter.js +58 -25
  72. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  73. package/dist/react/adapters/TitleGenerationAdapter.d.ts +2 -4
  74. package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
  75. package/dist/react/client/AdaptedRemoteThread.d.ts +5 -7
  76. package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -1
  77. package/dist/react/client/DataRenderers.d.ts +1 -3
  78. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  79. package/dist/react/client/InMemoryThreadList.d.ts +6 -8
  80. package/dist/react/client/InMemoryThreadList.d.ts.map +1 -1
  81. package/dist/react/client/Interactables.d.ts +2 -4
  82. package/dist/react/client/Interactables.d.ts.map +1 -1
  83. package/dist/react/client/Interactables.js +306 -101
  84. package/dist/react/client/Interactables.js.map +1 -1
  85. package/dist/react/client/RemoteThreadList.d.ts +32 -34
  86. package/dist/react/client/RemoteThreadList.d.ts.map +1 -1
  87. package/dist/react/client/RemoteThreadList.js +2 -1
  88. package/dist/react/client/RemoteThreadList.js.map +1 -1
  89. package/dist/react/client/Tools.d.ts +9 -11
  90. package/dist/react/client/Tools.d.ts.map +1 -1
  91. package/dist/react/client/Tools.js +4 -8
  92. package/dist/react/client/Tools.js.map +1 -1
  93. package/dist/react/client/interactable-model-context.d.ts +9 -10
  94. package/dist/react/client/interactable-model-context.d.ts.map +1 -1
  95. package/dist/react/client/interactable-model-context.js +32 -22
  96. package/dist/react/client/interactable-model-context.js.map +1 -1
  97. package/dist/react/index.d.ts +160 -122
  98. package/dist/react/index.d.ts.map +1 -0
  99. package/dist/react/index.js +5 -5
  100. package/dist/react/interactables-legacy/Interactables.d.ts +1 -3
  101. package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
  102. package/dist/react/interactables-legacy/Interactables.js +15 -8
  103. package/dist/react/interactables-legacy/Interactables.js.map +1 -1
  104. package/dist/react/interactables-legacy/interactable-model-context.d.ts +6 -8
  105. package/dist/react/interactables-legacy/interactable-model-context.d.ts.map +1 -1
  106. package/dist/react/interactables-legacy/interactable-model-context.js +13 -14
  107. package/dist/react/interactables-legacy/interactable-model-context.js.map +1 -1
  108. package/dist/react/interactables-legacy/scopes.d.ts +33 -36
  109. package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
  110. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +6 -8
  111. package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
  112. package/dist/react/interactables-legacy/useInteractableState.d.ts +6 -7
  113. package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
  114. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts +23 -13
  115. package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts.map +1 -1
  116. package/dist/react/interactables-shared/useInteractablePersistenceQueue.js +54 -25
  117. package/dist/react/interactables-shared/useInteractablePersistenceQueue.js.map +1 -1
  118. package/dist/react/model-context/define-mcp-toolkit.d.ts +11 -13
  119. package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
  120. package/dist/react/model-context/define-toolkit.d.ts +12 -4
  121. package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
  122. package/dist/react/model-context/external-tool.d.ts +0 -2
  123. package/dist/react/model-context/external-tool.d.ts.map +1 -1
  124. package/dist/react/model-context/human-tool.d.ts +0 -2
  125. package/dist/react/model-context/human-tool.d.ts.map +1 -1
  126. package/dist/react/model-context/interactableTool.d.ts +23 -25
  127. package/dist/react/model-context/interactableTool.d.ts.map +1 -1
  128. package/dist/react/model-context/makeAssistantDataUI.d.ts +4 -6
  129. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  130. package/dist/react/model-context/makeAssistantTool.d.ts +4 -6
  131. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  132. package/dist/react/model-context/makeAssistantToolUI.d.ts +4 -6
  133. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  134. package/dist/react/model-context/provider-tool.d.ts +3 -4
  135. package/dist/react/model-context/provider-tool.d.ts.map +1 -1
  136. package/dist/react/model-context/stub-tool.d.ts +0 -2
  137. package/dist/react/model-context/stub-tool.d.ts.map +1 -1
  138. package/dist/react/model-context/toolbox.d.ts +37 -24
  139. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  140. package/dist/react/model-context/useAssistantContext.d.ts +2 -5
  141. package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
  142. package/dist/react/model-context/useAssistantDataUI.d.ts +5 -7
  143. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  144. package/dist/react/model-context/useAssistantInstructions.d.ts +2 -5
  145. package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
  146. package/dist/react/model-context/useAssistantTool.d.ts +8 -11
  147. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  148. package/dist/react/model-context/useAssistantToolUI.d.ts +11 -13
  149. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  150. package/dist/react/model-context/useAuiToolOverrides.d.ts +2 -3
  151. package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
  152. package/dist/react/model-context/useInlineRender.d.ts +2 -4
  153. package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
  154. package/dist/react/model-context/useInteractable.d.ts +37 -36
  155. package/dist/react/model-context/useInteractable.d.ts.map +1 -1
  156. package/dist/react/model-context/useInteractableState.d.ts +10 -8
  157. package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
  158. package/dist/react/model-context/useInteractableVersions.d.ts +3 -5
  159. package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
  160. package/dist/react/model-context/useToolArgsStatus.d.ts +5 -6
  161. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  162. package/dist/react/primitive-hooks/useActionBarCopy.d.ts +6 -8
  163. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  164. package/dist/react/primitive-hooks/useActionBarEdit.d.ts +2 -4
  165. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  166. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +4 -6
  167. package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
  168. package/dist/react/primitive-hooks/useActionBarReload.d.ts +2 -4
  169. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  170. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +2 -4
  171. package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
  172. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +2 -4
  173. package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
  174. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +2 -4
  175. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  176. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +2 -4
  177. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  178. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +3 -5
  179. package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
  180. package/dist/react/primitive-hooks/useComposerCancel.d.ts +2 -4
  181. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  182. package/dist/react/primitive-hooks/useComposerDictate.d.ts +2 -4
  183. package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
  184. package/dist/react/primitive-hooks/useComposerSend.d.ts +3 -5
  185. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  186. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +1 -3
  187. package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
  188. package/dist/react/primitive-hooks/useEditComposerSend.d.ts +2 -4
  189. package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
  190. package/dist/react/primitive-hooks/useMessageBranching.d.ts +4 -6
  191. package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
  192. package/dist/react/primitive-hooks/useMessageError.d.ts +0 -2
  193. package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
  194. package/dist/react/primitive-hooks/useMessageReload.d.ts +2 -4
  195. package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
  196. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +6 -8
  197. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
  198. package/dist/react/primitive-hooks/useSuggestionTrigger.js +4 -4
  199. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  200. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +0 -2
  201. package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
  202. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +0 -2
  203. package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
  204. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +1 -3
  205. package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
  206. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +1 -3
  207. package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
  208. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +1 -3
  209. package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
  210. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +1 -3
  211. package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
  212. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +2 -4
  213. package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
  214. package/dist/react/primitive-hooks/useThreadListNew.d.ts +1 -3
  215. package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
  216. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts +0 -2
  217. package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
  218. package/dist/react/primitive-hooks/useThreadMessages.d.ts +1 -3
  219. package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
  220. package/dist/react/primitive-hooks/useVoice.d.ts +5 -7
  221. package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
  222. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +25 -26
  223. package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
  224. package/dist/react/primitives/composer/ComposerAttachments.d.ts +22 -23
  225. package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  226. package/dist/react/primitives/composer/ComposerIf.d.ts +10 -9
  227. package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
  228. package/dist/react/primitives/composer/ComposerQueue.d.ts +11 -14
  229. package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
  230. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +26 -28
  231. package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
  232. package/dist/react/primitives/generativeUI/GenerativeUI.js +16 -6
  233. package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
  234. package/dist/react/primitives/message/MessageAttachments.d.ts +26 -23
  235. package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
  236. package/dist/react/primitives/message/MessageAttachments.js +14 -15
  237. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  238. package/dist/react/primitives/message/MessageGroupedParts.d.ts +120 -117
  239. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  240. package/dist/react/primitives/message/MessageGroupedParts.js +3 -3
  241. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  242. package/dist/react/primitives/message/MessageParts.d.ts +199 -185
  243. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  244. package/dist/react/primitives/message/MessageParts.js +124 -82
  245. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  246. package/dist/react/primitives/message/MessageQuote.d.ts +6 -8
  247. package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
  248. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +2 -4
  249. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
  250. package/dist/react/primitives/part/PartMessages.d.ts +13 -15
  251. package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
  252. package/dist/react/primitives/thread/ThreadMessages.d.ts +54 -56
  253. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  254. package/dist/react/primitives/thread/ThreadSuggestions.d.ts +20 -21
  255. package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
  256. package/dist/react/primitives/thread/ThreadSuggestions.js +24 -5
  257. package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
  258. package/dist/react/primitives/threadList/ThreadListItems.d.ts +22 -23
  259. package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  260. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +4 -6
  261. package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
  262. package/dist/react/providers/AttachmentByIndexProvider.d.ts +3 -5
  263. package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  264. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +3 -5
  265. package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
  266. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +2 -4
  267. package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
  268. package/dist/react/providers/MessageByIdProvider.d.ts +2 -4
  269. package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
  270. package/dist/react/providers/MessageByIndexProvider.d.ts +2 -4
  271. package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
  272. package/dist/react/providers/PartByIndexProvider.d.ts +2 -4
  273. package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
  274. package/dist/react/providers/QueueItemByIndexProvider.d.ts +2 -4
  275. package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
  276. package/dist/react/providers/ReadonlyThreadProvider.d.ts +5 -7
  277. package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
  278. package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
  279. package/dist/react/providers/SuggestionByIndexProvider.d.ts +2 -4
  280. package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
  281. package/dist/react/providers/TextMessagePartProvider.d.ts +3 -5
  282. package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
  283. package/dist/react/providers/TextMessagePartProvider.js +5 -1
  284. package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
  285. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +3 -5
  286. package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
  287. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +3 -6
  288. package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
  289. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +209 -219
  290. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  291. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +53 -39
  292. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  293. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +185 -196
  294. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  295. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +13 -4
  296. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  297. package/dist/react/runtimes/RemoteThreadResource.d.ts +14 -19
  298. package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -1
  299. package/dist/react/runtimes/RemoteThreadResource.js +3 -1
  300. package/dist/react/runtimes/RemoteThreadResource.js.map +1 -1
  301. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +8 -9
  302. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  303. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +9 -11
  304. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -1
  305. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +4 -5
  306. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts.map +1 -1
  307. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js +9 -2
  308. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js.map +1 -1
  309. package/dist/react/runtimes/assistant-transport/runManager.d.ts +7 -9
  310. package/dist/react/runtimes/assistant-transport/runManager.d.ts.map +1 -1
  311. package/dist/react/runtimes/assistant-transport/runManager.js +4 -1
  312. package/dist/react/runtimes/assistant-transport/runManager.js.map +1 -1
  313. package/dist/react/runtimes/assistant-transport/types.d.ts +106 -100
  314. package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -1
  315. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +3 -5
  316. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  317. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js +17 -6
  318. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  319. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts +2 -4
  320. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -1
  321. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +1 -3
  322. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -1
  323. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -7
  324. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  325. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +410 -213
  326. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  327. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +14 -16
  328. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  329. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +8 -4
  330. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  331. package/dist/react/runtimes/cloud/auiV0.d.ts +136 -123
  332. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  333. package/dist/react/runtimes/cloud/auiV0.js +60 -9
  334. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  335. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts +9 -10
  336. package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts.map +1 -1
  337. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts +4 -5
  338. package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts.map +1 -1
  339. package/dist/react/runtimes/cloud/sdkIdentity.d.ts +1 -3
  340. package/dist/react/runtimes/cloud/sdkIdentity.d.ts.map +1 -1
  341. package/dist/react/runtimes/cloud/sdkIdentity.js +1 -1
  342. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +2 -4
  343. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  344. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +8 -9
  345. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  346. package/dist/react/runtimes/createMessageConverter.d.ts +14 -17
  347. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
  348. package/dist/react/runtimes/createMessageConverter.js.map +1 -1
  349. package/dist/react/runtimes/createRuntimeExtras.d.ts +11 -13
  350. package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
  351. package/dist/react/runtimes/external-message-converter.d.ts +14 -18
  352. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  353. package/dist/react/runtimes/external-store-history-copy.d.ts +25 -0
  354. package/dist/react/runtimes/external-store-history-copy.d.ts.map +1 -0
  355. package/dist/react/runtimes/external-store-history-copy.js +148 -0
  356. package/dist/react/runtimes/external-store-history-copy.js.map +1 -0
  357. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +2 -4
  358. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  359. package/dist/react/runtimes/useExternalStoreRuntime.js +72 -35
  360. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
  361. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +1 -3
  362. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
  363. package/dist/react/runtimes/useLocalRuntime.d.ts +26 -37
  364. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  365. package/dist/react/runtimes/useLocalRuntime.js +142 -34
  366. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  367. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +2 -4
  368. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  369. package/dist/react/runtimes/useRuntimeAdapters.d.ts +1 -3
  370. package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -1
  371. package/dist/react/runtimes/useStreamingTiming.d.ts +3 -5
  372. package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
  373. package/dist/react/types/MessagePartComponentTypes.d.ts +46 -43
  374. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  375. package/dist/react/types/scopes/dataRenderers.d.ts +8 -11
  376. package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
  377. package/dist/react/types/scopes/interactables.d.ts +50 -49
  378. package/dist/react/types/scopes/interactables.d.ts.map +1 -1
  379. package/dist/react/types/scopes/tools.d.ts +17 -19
  380. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  381. package/dist/react/types/store-augmentation.d.ts +10 -11
  382. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  383. package/dist/react/utils/getMessageQuote.d.ts +5 -6
  384. package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
  385. package/dist/react/utils/groupParts.d.ts +28 -29
  386. package/dist/react/utils/groupParts.d.ts.map +1 -1
  387. package/dist/react/utils/useJSONEqual.d.ts +1 -3
  388. package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
  389. package/dist/react/utils/useJSONSchemaDependency.d.ts +2 -4
  390. package/dist/react/utils/useJSONSchemaDependency.d.ts.map +1 -1
  391. package/dist/runtime/api/assistant-runtime.d.ts +26 -28
  392. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  393. package/dist/runtime/api/attachment-runtime.d.ts +46 -43
  394. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  395. package/dist/runtime/api/attachment-runtime.js.map +1 -1
  396. package/dist/runtime/api/bindings.d.ts +31 -30
  397. package/dist/runtime/api/bindings.d.ts.map +1 -1
  398. package/dist/runtime/api/composer-runtime.d.ts +207 -193
  399. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  400. package/dist/runtime/api/composer-runtime.js +4 -0
  401. package/dist/runtime/api/composer-runtime.js.map +1 -1
  402. package/dist/runtime/api/message-part-runtime.d.ts +28 -26
  403. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  404. package/dist/runtime/api/message-part-runtime.js +22 -0
  405. package/dist/runtime/api/message-part-runtime.js.map +1 -1
  406. package/dist/runtime/api/message-runtime.d.ts +87 -84
  407. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  408. package/dist/runtime/api/message-runtime.js +1 -1
  409. package/dist/runtime/api/message-runtime.js.map +1 -1
  410. package/dist/runtime/api/paths.d.ts +48 -50
  411. package/dist/runtime/api/paths.d.ts.map +1 -1
  412. package/dist/runtime/api/thread-list-item-runtime.d.ts +64 -66
  413. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  414. package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
  415. package/dist/runtime/api/thread-list-runtime.d.ts +73 -76
  416. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  417. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  418. package/dist/runtime/api/thread-runtime.d.ts +299 -300
  419. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  420. package/dist/runtime/api/thread-runtime.js +2 -1
  421. package/dist/runtime/api/thread-runtime.js.map +1 -1
  422. package/dist/runtime/base/base-assistant-runtime-core.d.ts +8 -10
  423. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  424. package/dist/runtime/base/base-composer-runtime-core.d.ts +149 -99
  425. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  426. package/dist/runtime/base/base-composer-runtime-core.js +400 -122
  427. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  428. package/dist/runtime/base/base-thread-runtime-core.d.ts +120 -108
  429. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  430. package/dist/runtime/base/base-thread-runtime-core.js +109 -41
  431. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  432. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +29 -29
  433. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  434. package/dist/runtime/base/default-edit-composer-runtime-core.js +10 -1
  435. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  436. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +27 -29
  437. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  438. package/dist/runtime/base/default-thread-composer-runtime-core.js +21 -6
  439. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  440. package/dist/runtime/branch/external-thread-branch-adapter.d.ts +14 -16
  441. package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
  442. package/dist/runtime/interfaces/assistant-runtime-core.d.ts +7 -9
  443. package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
  444. package/dist/runtime/interfaces/composer-runtime-core.d.ts +88 -72
  445. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  446. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +63 -65
  447. package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
  448. package/dist/runtime/interfaces/thread-runtime-core.d.ts +210 -197
  449. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  450. package/dist/runtime/internal.d.ts +25 -20
  451. package/dist/runtime/internal.d.ts.map +1 -0
  452. package/dist/runtime/queue/external-thread-queue-adapter.d.ts +35 -37
  453. package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
  454. package/dist/runtime/queue/message-queue.d.ts +29 -31
  455. package/dist/runtime/queue/message-queue.d.ts.map +1 -1
  456. package/dist/runtime/queue/message-queue.js +1 -1
  457. package/dist/runtime/queue/queue-item.d.ts +5 -7
  458. package/dist/runtime/queue/queue-item.d.ts.map +1 -1
  459. package/dist/runtime/utils/abortable-thread-load.d.ts +7 -8
  460. package/dist/runtime/utils/abortable-thread-load.d.ts.map +1 -1
  461. package/dist/runtime/utils/attachment-add-operations.d.ts +13 -11
  462. package/dist/runtime/utils/attachment-add-operations.d.ts.map +1 -1
  463. package/dist/runtime/utils/attachment-add-operations.js +24 -2
  464. package/dist/runtime/utils/attachment-add-operations.js.map +1 -1
  465. package/dist/runtime/utils/attachment-send-operations.d.ts +12 -0
  466. package/dist/runtime/utils/attachment-send-operations.d.ts.map +1 -0
  467. package/dist/runtime/utils/attachment-send-operations.js +34 -0
  468. package/dist/runtime/utils/attachment-send-operations.js.map +1 -0
  469. package/dist/runtime/utils/auto-status.d.ts +4 -5
  470. package/dist/runtime/utils/auto-status.d.ts.map +1 -1
  471. package/dist/runtime/utils/auto-status.js +3 -5
  472. package/dist/runtime/utils/auto-status.js.map +1 -1
  473. package/dist/runtime/utils/chat-model-adapter.d.ts +26 -27
  474. package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
  475. package/dist/runtime/utils/external-message-conversion.d.ts +32 -32
  476. package/dist/runtime/utils/external-message-conversion.d.ts.map +1 -1
  477. package/dist/runtime/utils/external-message-conversion.js +3 -3
  478. package/dist/runtime/utils/external-message-conversion.js.map +1 -1
  479. package/dist/runtime/utils/external-store-message.d.ts +2 -4
  480. package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
  481. package/dist/runtime/utils/message-repository-session.d.ts +21 -23
  482. package/dist/runtime/utils/message-repository-session.d.ts.map +1 -1
  483. package/dist/runtime/utils/message-repository.d.ts +50 -51
  484. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  485. package/dist/runtime/utils/message-repository.js +8 -7
  486. package/dist/runtime/utils/message-repository.js.map +1 -1
  487. package/dist/runtime/utils/pending-tool-calls.d.ts +10 -11
  488. package/dist/runtime/utils/pending-tool-calls.d.ts.map +1 -1
  489. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +6 -8
  490. package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
  491. package/dist/runtime/utils/runtime-extras-brand.d.ts +4 -6
  492. package/dist/runtime/utils/runtime-extras-brand.d.ts.map +1 -1
  493. package/dist/runtime/utils/stored-message-parts.d.ts +5 -5
  494. package/dist/runtime/utils/stored-message-parts.d.ts.map +1 -1
  495. package/dist/runtime/utils/stored-message-parts.js +22 -2
  496. package/dist/runtime/utils/stored-message-parts.js.map +1 -1
  497. package/dist/runtime/utils/streaming-timing.d.ts +19 -21
  498. package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
  499. package/dist/runtime/utils/thread-message-like.d.ts +36 -32
  500. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  501. package/dist/runtime/utils/thread-message-like.js +16 -6
  502. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  503. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +4 -5
  504. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -1
  505. package/dist/runtime/utils/thread-runtime-lifecycle.js +31 -4
  506. package/dist/runtime/utils/thread-runtime-lifecycle.js.map +1 -1
  507. package/dist/runtime/utils/tool-call-tree.d.ts +6 -8
  508. package/dist/runtime/utils/tool-call-tree.d.ts.map +1 -1
  509. package/dist/runtime/utils/tool-interactions.d.ts +10 -0
  510. package/dist/runtime/utils/tool-interactions.d.ts.map +1 -0
  511. package/dist/runtime/utils/tool-interactions.js +92 -0
  512. package/dist/runtime/utils/tool-interactions.js.map +1 -0
  513. package/dist/runtimes/assistant-transport/utils.d.ts +0 -2
  514. package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
  515. package/dist/runtimes/external-store/external-store-adapter.d.ts +215 -198
  516. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  517. package/dist/runtimes/external-store/external-store-runtime-core.d.ts +5 -6
  518. package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
  519. package/dist/runtimes/external-store/external-store-runtime-core.js +4 -1
  520. package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
  521. package/dist/runtimes/external-store/external-store-shared-options.d.ts +1 -3
  522. package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -1
  523. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +38 -40
  524. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  525. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +2 -2
  526. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  527. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +117 -124
  528. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  529. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +44 -14
  530. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  531. package/dist/runtimes/external-store/thread-message-converter.d.ts +3 -5
  532. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  533. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +94 -95
  534. package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -1
  535. package/dist/runtimes/inert/InertThreadRuntimeCore.js +3 -0
  536. package/dist/runtimes/inert/InertThreadRuntimeCore.js.map +1 -1
  537. package/dist/runtimes/internal.d.ts +20 -16
  538. package/dist/runtimes/internal.d.ts.map +1 -0
  539. package/dist/runtimes/local/local-runtime-core.d.ts +6 -8
  540. package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
  541. package/dist/runtimes/local/local-runtime-options.d.ts +40 -42
  542. package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
  543. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +40 -42
  544. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  545. package/dist/runtimes/local/local-thread-runtime-core.d.ts +93 -97
  546. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  547. package/dist/runtimes/local/local-thread-runtime-core.js +178 -31
  548. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  549. package/dist/runtimes/local/should-continue.d.ts +1 -3
  550. package/dist/runtimes/local/should-continue.d.ts.map +1 -1
  551. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +76 -53
  552. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  553. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +28 -1
  554. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  555. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +11 -13
  556. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  557. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts +2 -4
  558. package/dist/runtimes/remote-thread-list/adapter-changed.d.ts.map +1 -1
  559. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +1 -3
  560. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  561. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +33 -29
  562. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  563. package/dist/runtimes/remote-thread-list/optimistic-state.js +8 -3
  564. package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
  565. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +44 -46
  566. package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
  567. package/dist/runtimes/remote-thread-list/remote-thread-state.js +1 -1
  568. package/dist/runtimes/remote-thread-list/title-generation.d.ts +25 -26
  569. package/dist/runtimes/remote-thread-list/title-generation.d.ts.map +1 -1
  570. package/dist/runtimes/remote-thread-list/title.d.ts +3 -5
  571. package/dist/runtimes/remote-thread-list/title.d.ts.map +1 -1
  572. package/dist/runtimes/remote-thread-list/types.d.ts +111 -112
  573. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  574. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +144 -145
  575. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  576. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +22 -7
  577. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  578. package/dist/store/clients/chain-of-thought-client.d.ts +7 -9
  579. package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
  580. package/dist/store/clients/external-thread.d.ts +53 -54
  581. package/dist/store/clients/external-thread.d.ts.map +1 -1
  582. package/dist/store/clients/external-thread.js +1256 -731
  583. package/dist/store/clients/external-thread.js.map +1 -1
  584. package/dist/store/clients/model-context-client.d.ts +1 -3
  585. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  586. package/dist/store/clients/no-op-composer-client.d.ts +2 -4
  587. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  588. package/dist/store/clients/no-op-composer-client.js +3 -1
  589. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  590. package/dist/store/clients/runtime-adapter.d.ts +1 -3
  591. package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
  592. package/dist/store/clients/single-thread-list.d.ts +3 -4
  593. package/dist/store/clients/single-thread-list.d.ts.map +1 -1
  594. package/dist/store/clients/submission-message.d.ts +8 -0
  595. package/dist/store/clients/submission-message.d.ts.map +1 -0
  596. package/dist/store/clients/submission-message.js +22 -0
  597. package/dist/store/clients/submission-message.js.map +1 -0
  598. package/dist/store/clients/suggestions.d.ts +5 -7
  599. package/dist/store/clients/suggestions.d.ts.map +1 -1
  600. package/dist/store/clients/thread-message-client.d.ts +10 -9
  601. package/dist/store/clients/thread-message-client.d.ts.map +1 -1
  602. package/dist/store/clients/thread-message-client.js +81 -82
  603. package/dist/store/clients/thread-message-client.js.map +1 -1
  604. package/dist/store/clients/thread-selection-events.d.ts +0 -2
  605. package/dist/store/clients/thread-selection-events.d.ts.map +1 -1
  606. package/dist/store/clients/thread-tasks.d.ts +4 -6
  607. package/dist/store/clients/thread-tasks.d.ts.map +1 -1
  608. package/dist/store/env.d.ts +0 -2
  609. package/dist/store/env.d.ts.map +1 -1
  610. package/dist/store/index.d.ts +33 -36
  611. package/dist/store/index.d.ts.map +1 -0
  612. package/dist/store/index.js +5 -5
  613. package/dist/store/internal.d.ts +12 -12
  614. package/dist/store/internal.d.ts.map +1 -0
  615. package/dist/store/internal.js +2 -2
  616. package/dist/store/primitive-predicates.d.ts +3 -4
  617. package/dist/store/primitive-predicates.d.ts.map +1 -1
  618. package/dist/store/primitive-predicates.js +9 -4
  619. package/dist/store/primitive-predicates.js.map +1 -1
  620. package/dist/store/runtime-clients/attachment-runtime-client.d.ts +3 -5
  621. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  622. package/dist/store/runtime-clients/composer-runtime-client.d.ts +10 -12
  623. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  624. package/dist/store/runtime-clients/composer-runtime-client.js +65 -62
  625. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  626. package/dist/store/runtime-clients/handle-runtime-action.d.ts +0 -2
  627. package/dist/store/runtime-clients/handle-runtime-action.d.ts.map +1 -1
  628. package/dist/store/runtime-clients/handle-thread-list-action.d.ts +0 -2
  629. package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -1
  630. package/dist/store/runtime-clients/liveRef.d.ts +1 -3
  631. package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
  632. package/dist/store/runtime-clients/message-part-runtime-client.d.ts +3 -5
  633. package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
  634. package/dist/store/runtime-clients/message-part-runtime-client.js +26 -16
  635. package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
  636. package/dist/store/runtime-clients/message-runtime-client.d.ts +9 -9
  637. package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
  638. package/dist/store/runtime-clients/message-runtime-client.js +121 -113
  639. package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
  640. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +4 -6
  641. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  642. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +5 -7
  643. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  644. package/dist/store/runtime-clients/thread-runtime-client.d.ts +3 -5
  645. package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
  646. package/dist/store/runtime-clients/thread-runtime-client.js +221 -158
  647. package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
  648. package/dist/store/runtime-clients/useSubscribable.d.ts +2 -4
  649. package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
  650. package/dist/store/scope-registration.d.ts +28 -29
  651. package/dist/store/scope-registration.d.ts.map +1 -1
  652. package/dist/store/scopes/attachment.d.ts +15 -17
  653. package/dist/store/scopes/attachment.d.ts.map +1 -1
  654. package/dist/store/scopes/chain-of-thought.d.ts +28 -29
  655. package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
  656. package/dist/store/scopes/composer.d.ts +141 -128
  657. package/dist/store/scopes/composer.d.ts.map +1 -1
  658. package/dist/store/scopes/message.d.ts +114 -107
  659. package/dist/store/scopes/message.d.ts.map +1 -1
  660. package/dist/store/scopes/model-context.d.ts +7 -9
  661. package/dist/store/scopes/model-context.d.ts.map +1 -1
  662. package/dist/store/scopes/part.d.ts +49 -45
  663. package/dist/store/scopes/part.d.ts.map +1 -1
  664. package/dist/store/scopes/queue-item.d.ts +18 -20
  665. package/dist/store/scopes/queue-item.d.ts.map +1 -1
  666. package/dist/store/scopes/suggestion.d.ts +10 -12
  667. package/dist/store/scopes/suggestion.d.ts.map +1 -1
  668. package/dist/store/scopes/suggestions.d.ts +13 -15
  669. package/dist/store/scopes/suggestions.d.ts.map +1 -1
  670. package/dist/store/scopes/task.d.ts +23 -25
  671. package/dist/store/scopes/task.d.ts.map +1 -1
  672. package/dist/store/scopes/thread-list-item.d.ts +63 -65
  673. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  674. package/dist/store/scopes/thread.d.ts +192 -194
  675. package/dist/store/scopes/thread.d.ts.map +1 -1
  676. package/dist/store/scopes/threads.d.ts +45 -47
  677. package/dist/store/scopes/threads.d.ts.map +1 -1
  678. package/dist/subscribable/subscribable.d.ts +58 -53
  679. package/dist/subscribable/subscribable.d.ts.map +1 -1
  680. package/dist/subscribable/subscribable.js +35 -7
  681. package/dist/subscribable/subscribable.js.map +1 -1
  682. package/dist/types/attachment.d.ts +26 -27
  683. package/dist/types/attachment.d.ts.map +1 -1
  684. package/dist/types/augmentations.d.ts +4 -4
  685. package/dist/types/augmentations.d.ts.map +1 -1
  686. package/dist/types/directive.d.ts +11 -13
  687. package/dist/types/directive.d.ts.map +1 -1
  688. package/dist/types/error.d.ts +7 -8
  689. package/dist/types/error.d.ts.map +1 -1
  690. package/dist/types/index.d.ts +7 -7
  691. package/dist/types/index.d.ts.map +1 -0
  692. package/dist/types/message.d.ts +322 -284
  693. package/dist/types/message.d.ts.map +1 -1
  694. package/dist/types/message.js.map +1 -1
  695. package/dist/types/quote.d.ts +2 -4
  696. package/dist/types/quote.d.ts.map +1 -1
  697. package/dist/types/trigger.d.ts +8 -10
  698. package/dist/types/trigger.d.ts.map +1 -1
  699. package/dist/types/unsubscribe.d.ts +0 -2
  700. package/dist/types/unsubscribe.d.ts.map +1 -1
  701. package/dist/utils/abortable-iterable.d.ts +0 -2
  702. package/dist/utils/abortable-iterable.d.ts.map +1 -1
  703. package/dist/utils/composite-context-provider.d.ts +8 -11
  704. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  705. package/dist/utils/data-url.d.ts +10 -12
  706. package/dist/utils/data-url.d.ts.map +1 -1
  707. package/dist/utils/getGroupStatus.d.ts +17 -18
  708. package/dist/utils/getGroupStatus.d.ts.map +1 -1
  709. package/dist/utils/id.d.ts +0 -2
  710. package/dist/utils/id.d.ts.map +1 -1
  711. package/dist/utils/image-media-type.d.ts +0 -2
  712. package/dist/utils/image-media-type.d.ts.map +1 -1
  713. package/dist/utils/invoke-user-callback.d.ts +0 -2
  714. package/dist/utils/invoke-user-callback.d.ts.map +1 -1
  715. package/dist/utils/json/is-json-equal.d.ts +0 -2
  716. package/dist/utils/json/is-json-equal.d.ts.map +1 -1
  717. package/dist/utils/json/is-json.d.ts +1 -3
  718. package/dist/utils/json/is-json.d.ts.map +1 -1
  719. package/dist/utils/json/stable-stringify-tool-args.d.ts +1 -3
  720. package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -1
  721. package/dist/utils/normalizePartStatus.d.ts +2 -3
  722. package/dist/utils/normalizePartStatus.d.ts.map +1 -1
  723. package/dist/utils/normalizePartStatus.js +3 -2
  724. package/dist/utils/normalizePartStatus.js.map +1 -1
  725. package/dist/utils/notify-event-listeners.d.ts +1 -2
  726. package/dist/utils/notify-event-listeners.d.ts.map +1 -1
  727. package/dist/utils/record.d.ts +0 -2
  728. package/dist/utils/record.d.ts.map +1 -1
  729. package/dist/utils/silent-runtime-action.d.ts +0 -2
  730. package/dist/utils/silent-runtime-action.d.ts.map +1 -1
  731. package/dist/utils/text.d.ts +1 -3
  732. package/dist/utils/text.d.ts.map +1 -1
  733. package/dist/utils/wire-media.d.ts +0 -2
  734. package/dist/utils/wire-media.d.ts.map +1 -1
  735. package/package.json +11 -10
  736. package/src/adapters/attachment.test.ts +98 -1
  737. package/src/adapters/attachment.ts +70 -20
  738. package/src/adapters/speech.test.ts +94 -0
  739. package/src/adapters/speech.ts +16 -2
  740. package/src/adapters/thread-history.ts +16 -5
  741. package/src/adapters/voice.test.ts +169 -0
  742. package/src/adapters/voice.ts +25 -4
  743. package/src/index.ts +14 -2
  744. package/src/internal.ts +7 -0
  745. package/src/model-context/frame/host.test.ts +51 -1
  746. package/src/model-context/frame/host.ts +3 -1
  747. package/src/model-context/frame/provider.test.ts +61 -0
  748. package/src/model-context/frame/provider.ts +8 -1
  749. package/src/model-context/frame/validate.ts +57 -0
  750. package/src/model-context/interactable-composer-metadata.test.ts +82 -0
  751. package/src/model-context/interactable-composer-metadata.ts +45 -2
  752. package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +594 -0
  753. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +98 -35
  754. package/src/react/client/Interactables.test.ts +853 -1
  755. package/src/react/client/Interactables.ts +325 -45
  756. package/src/react/client/RemoteThreadList.initialize-failure.test.ts +124 -0
  757. package/src/react/client/RemoteThreadList.ts +6 -0
  758. package/src/react/client/Tools.ts +2 -3
  759. package/src/react/client/interactable-model-context.test.ts +56 -13
  760. package/src/react/client/interactable-model-context.ts +48 -23
  761. package/src/react/index.ts +2 -2
  762. package/src/react/interactables-legacy/Interactables.test.ts +212 -1
  763. package/src/react/interactables-legacy/Interactables.ts +25 -14
  764. package/src/react/interactables-legacy/interactable-model-context.ts +26 -24
  765. package/src/react/interactables-shared/useInteractablePersistenceQueue.test.tsx +22 -2
  766. package/src/react/interactables-shared/useInteractablePersistenceQueue.ts +63 -11
  767. package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +33 -0
  768. package/src/react/primitive-hooks/useSuggestionTrigger.ts +7 -4
  769. package/src/react/primitives/generativeUI/GenerativeUI.test.tsx +124 -8
  770. package/src/react/primitives/generativeUI/GenerativeUI.tsx +35 -15
  771. package/src/react/primitives/message/MessageAttachments.test.tsx +2 -6
  772. package/src/react/primitives/message/MessageAttachments.tsx +14 -8
  773. package/src/react/primitives/message/MessageGroupedParts.test.tsx +151 -7
  774. package/src/react/primitives/message/MessageGroupedParts.tsx +19 -6
  775. package/src/react/primitives/message/MessageParts.test.tsx +84 -0
  776. package/src/react/primitives/message/MessageParts.tool-interaction.test.tsx +69 -0
  777. package/src/react/primitives/message/MessageParts.tsx +29 -8
  778. package/src/react/primitives/thread/ThreadSuggestions.test.tsx +97 -0
  779. package/src/react/primitives/thread/ThreadSuggestions.tsx +29 -6
  780. package/src/react/providers/ReadonlyThreadProvider.tsx +2 -2
  781. package/src/react/providers/TextMessagePartProvider.tsx +3 -0
  782. package/src/react/runtimes/RemoteThreadListHookInstanceManager.running.test.tsx +93 -0
  783. package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +160 -3
  784. package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +38 -0
  785. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +73 -53
  786. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +19 -3
  787. package/src/react/runtimes/RemoteThreadResource.ts +5 -2
  788. package/src/react/runtimes/assistant-transport/replayBoundaryStream.test.ts +3 -1
  789. package/src/react/runtimes/assistant-transport/replayBoundaryStream.ts +10 -2
  790. package/src/react/runtimes/assistant-transport/runManager.ts +3 -0
  791. package/src/react/runtimes/assistant-transport/transport-parentid.test.tsx +57 -0
  792. package/src/react/runtimes/assistant-transport/transport-thread-id.test.tsx +571 -0
  793. package/src/react/runtimes/assistant-transport/types.ts +9 -1
  794. package/src/react/runtimes/assistant-transport/useAssistantTransport.spec.md +10 -0
  795. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +42 -0
  796. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.ts +33 -9
  797. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.integration.test.tsx +289 -0
  798. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.test.tsx +471 -0
  799. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.engagement.test.tsx +330 -0
  800. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.ts +78 -2
  801. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +361 -2
  802. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +571 -216
  803. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +25 -0
  804. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +7 -3
  805. package/src/react/runtimes/cloud/auiV0.ts +158 -9
  806. package/src/react/runtimes/cloud/auiV0DecodeSafely.test.ts +352 -1
  807. package/src/react/runtimes/createMessageConverter.ts +9 -3
  808. package/src/react/runtimes/external-store-history-copy.ts +223 -0
  809. package/src/react/runtimes/useExternalStoreRuntime.history-copy.test.tsx +483 -0
  810. package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +76 -1
  811. package/src/react/runtimes/useExternalStoreRuntime.ts +25 -5
  812. package/src/react/runtimes/useLocalRuntime.test.tsx +145 -1
  813. package/src/react/runtimes/useLocalRuntime.ts +8 -5
  814. package/src/react/types/MessagePartComponentTypes.ts +10 -0
  815. package/src/react/types/scopes/interactables.ts +3 -0
  816. package/src/runtime/api/attachment-runtime.ts +10 -5
  817. package/src/runtime/api/bindings.ts +6 -1
  818. package/src/runtime/api/composer-runtime.ts +29 -6
  819. package/src/runtime/api/message-part-runtime.test.ts +215 -0
  820. package/src/runtime/api/message-part-runtime.ts +40 -0
  821. package/src/runtime/api/message-runtime.test.ts +112 -2
  822. package/src/runtime/api/message-runtime.ts +10 -5
  823. package/src/runtime/api/thread-list-item-runtime.ts +5 -5
  824. package/src/runtime/api/thread-list-runtime.ts +3 -3
  825. package/src/runtime/api/thread-runtime.test.ts +59 -0
  826. package/src/runtime/api/thread-runtime.ts +21 -11
  827. package/src/runtime/base/base-composer-runtime-core.ts +548 -153
  828. package/src/runtime/base/base-thread-runtime-core.test.ts +744 -9
  829. package/src/runtime/base/base-thread-runtime-core.ts +154 -27
  830. package/src/runtime/base/default-edit-composer-runtime-core.ts +13 -1
  831. package/src/runtime/base/default-thread-composer-runtime-core.ts +29 -10
  832. package/src/runtime/interfaces/composer-runtime-core.ts +19 -0
  833. package/src/runtime/interfaces/thread-runtime-core.ts +22 -1
  834. package/src/runtime/utils/attachment-add-operations.ts +45 -2
  835. package/src/runtime/utils/attachment-send-operations.ts +54 -0
  836. package/src/runtime/utils/auto-status.test.ts +54 -0
  837. package/src/runtime/utils/auto-status.ts +3 -10
  838. package/src/runtime/utils/external-message-conversion.test.ts +48 -0
  839. package/src/runtime/utils/external-message-conversion.ts +3 -4
  840. package/src/runtime/utils/message-repository.test.ts +69 -1
  841. package/src/runtime/utils/message-repository.ts +14 -7
  842. package/src/runtime/utils/stored-message-parts.ts +43 -1
  843. package/src/runtime/utils/thread-message-like.test.ts +58 -0
  844. package/src/runtime/utils/thread-message-like.ts +72 -46
  845. package/src/runtime/utils/thread-runtime-lifecycle.test.ts +67 -0
  846. package/src/runtime/utils/thread-runtime-lifecycle.ts +42 -8
  847. package/src/runtime/utils/tool-interactions.test.ts +193 -0
  848. package/src/runtime/utils/tool-interactions.ts +147 -0
  849. package/src/runtimes/external-store/external-store-adapter.ts +22 -1
  850. package/src/runtimes/external-store/external-store-runtime-core.ts +10 -2
  851. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +2 -2
  852. package/src/runtimes/external-store/external-store-thread-runtime-core.test.ts +49 -0
  853. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +76 -29
  854. package/src/runtimes/inert/InertThreadRuntimeCore.test.ts +127 -56
  855. package/src/runtimes/inert/InertThreadRuntimeCore.ts +10 -1
  856. package/src/runtimes/local/local-thread-runtime-core.edit-cancellation.test.ts +70 -0
  857. package/src/runtimes/local/local-thread-runtime-core.test.ts +1649 -108
  858. package/src/runtimes/local/local-thread-runtime-core.ts +301 -47
  859. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +53 -1
  860. package/src/runtimes/remote-thread-list/optimistic-state.ts +8 -3
  861. package/src/runtimes/tool-invocations/EDGE_CASES.md +19 -4
  862. package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +392 -39
  863. package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +31 -8
  864. package/src/store/clients/external-thread.test.ts +145 -0
  865. package/src/store/clients/external-thread.ts +635 -131
  866. package/src/store/clients/model-context-client.test.ts +8 -8
  867. package/src/store/clients/no-op-composer-client.ts +2 -0
  868. package/src/store/clients/submission-message.ts +27 -0
  869. package/src/store/clients/thread-message-client.test.ts +39 -0
  870. package/src/store/clients/thread-message-client.ts +13 -6
  871. package/src/store/index.ts +2 -2
  872. package/src/store/internal.ts +1 -0
  873. package/src/store/primitive-predicates.test.ts +103 -0
  874. package/src/store/primitive-predicates.ts +15 -3
  875. package/src/store/runtime-clients/composer-runtime-client.ts +4 -3
  876. package/src/store/runtime-clients/message-part-runtime-client.test.ts +42 -0
  877. package/src/store/runtime-clients/message-part-runtime-client.ts +4 -0
  878. package/src/store/runtime-clients/message-runtime-client.ts +5 -0
  879. package/src/store/runtime-clients/thread-runtime-client.test.tsx +138 -5
  880. package/src/store/runtime-clients/thread-runtime-client.ts +46 -9
  881. package/src/store/scopes/composer.ts +22 -4
  882. package/src/store/scopes/message.ts +8 -0
  883. package/src/store/scopes/part.ts +8 -0
  884. package/src/subscribable/subscribable.test.ts +198 -1
  885. package/src/subscribable/subscribable.ts +49 -7
  886. package/src/tests/RemoteThreadListThreadListRuntimeCore-errors.test.ts +95 -1
  887. package/src/tests/auiV0Encode.test.ts +408 -1
  888. package/src/tests/base-composer-runtime-core-send.test.ts +722 -29
  889. package/src/tests/base-composer-runtime-core.test.ts +196 -0
  890. package/src/tests/composer-can-send.test.ts +98 -1
  891. package/src/tests/composer-submission.test.tsx +796 -0
  892. package/src/tests/default-edit-composer-runtime-core.test.ts +102 -2
  893. package/src/tests/external-store-thread-list-runtime-core.test.ts +111 -0
  894. package/src/tests/external-store-thread-runtime-core-adapter.test.ts +581 -1
  895. package/src/tests/external-store-thread-runtime-core.test.ts +186 -0
  896. package/src/tests/external-thread-attachments.test.tsx +741 -3
  897. package/src/tests/external-thread-isLast.test.tsx +69 -0
  898. package/src/tests/get-thread-state-isRunning.test.ts +2 -2
  899. package/src/tests/remote-thread-list-adapter-switch.test.ts +45 -1
  900. package/src/types/message.ts +49 -2
  901. package/src/utils/normalizePartStatus.ts +14 -1
  902. package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -15
  903. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +0 -1
  904. package/dist/tests/remote-thread-list-test-helpers.js +0 -59
  905. package/dist/tests/remote-thread-list-test-helpers.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"external-thread.js","names":["useState","useMemo","useEffect","useCallback","useRef","resource","withKey","ClientElement","ClientOutput","useClientLookup","attachTransformScopes","useClientResource","Derived","AppendMessage","MessagePartStatus","ThreadAssistantMessagePart","ThreadUserMessagePart","ThreadMessage","ToolCallMessagePartStatus","Attachment","CreateAttachment","PendingAttachment","isAttachmentComplete","isCreateAttachment","AddToolResultOptions","RespondToToolApprovalOptions","ResumeToolCallOptions","SpeechState","ThreadSuggestion","ExternalThreadQueueAdapter","QueuePlacement","ExternalThreadBranchAdapter","AttachmentAdapter","FeedbackAdapter","SpeechSynthesisAdapter","ToolResponse","ReadonlyJSONValue","QueueItemState","ComposerSendOptions","fileMatchesAccept","getThreadMessageText","resolveToolApprovalResponse","AttachmentAddOperations","drainAttachmentAdd","toMessagePartStatus","generateId","ModelContext","ThreadSuggestions","createTaskDeriver","getTaskKey","TaskClient","Tools","DataRenderers","SingleThreadList","EMPTY_QUEUE_ITEMS","EMPTY_BRANCH_IDS","EMPTY_SUGGESTIONS","ExternalThreadMessage","id","COMPLETE_STATUS","Object","freeze","type","derivePartStatus","message","partIndex","part","status","ExternalThreadProps","messages","isRunning","isLoading","state","extras","isSendDisabled","onNew","onEdit","onReload","parentId","onStartRun","onCancel","onResume","onRefetchThread","Promise","onAddToolResult","options","onResumeToolCall","onLoadExternalState","attachmentAdapter","feedbackAdapter","speechAdapter","queue","branches","onRespondToToolApproval","MessageClientProps","index","submittedFeedback","comment","onSubmitFeedback","feedback","speech","onSpeak","onStopSpeaking","useMessageClient","t0","$","_c","isCopied","setIsCopied","isHovering","setIsHovering","t1","content","map","idx","PartResource","messageId","partClients","t2","attachments","t3","_temp2","attachmentClients","t4","Error","handleBeginEdit","t5","msg","sourceId","handleSendEdit","t6","ComposerClientResource","canCancel","onBeginEdit","onSend","composerClient","branchIds","t7","getBranches","indexOf","branchIndex","branchNumber","branchCount","length","t8","role","metadata","messageWithFeedback","t9","t10","isLast","parts","composer","t11","t12","methods","t13","t14","t15","position","branchId","target","undefined","switchToBranch","t16","selector","get","findIndex","p","toolCallId","t17","selector_0","key","t18","getState","delete","_temp3","reload","speak","stopSpeaking","submitFeedback","getCopyText","attachment","MessageClient","PartResourceProps","usePartResource","result","response","toResponse","toolName","isError","artifact","modelContent","payload","response_0","approval","approved","resolution","resolve","error","reject","addToolResult","resumeToolCall","respondToToolApproval","AttachmentResourceProps","onRemove","useAttachmentResource","remove","AttachmentResource","ComposerClientResourceProps","useQueueItemClient","item","onMove","placement","steer","lane","insertAfter","move","QueueItemClient","useLiveState","initial","setState","ref","Symbol","for","next","current","prev","T","set","const","removeAttachmentThroughAdapter","setAttachments","String","candidate","reason","useComposerClientResource","isEditing","setIsEditing","isEditingRef","text","setText","textRef","setRole","roleRef","runConfig","setRunConfig","runConfigRef","attachmentsRef","quote","setQuote","quoteRef","attachmentAddOperations","messageText","filter","_temp4","_temp5","join","updateFromMessage","cancel","a","removed","all","_temp6","a_1","removePendingAttachments","attachment_0","prev_0","a_2","upsertAttachment","steerItems","laneItems","items","queueItems","queueItemClients","accept","isEmpty","trim","canSend","attachmentAccept","dictation","fileOrAttachment","file","name","contentType","operation","start","add","attachment_1","finish","isCancelled","newAttachment","prev_1","newAttachment_0","prev_2","cancelAll","removed_0","removed_1","t19","opts","currentQuote","currentText","currentRole","currentRunConfig","currentAttachments","isEmpty_0","dispatch","sendAttachments","composedMessage","createdAt","Date","startRun","custom","enqueue","attachment_2","send","then","error_0","prev_3","prev_4","prev_5","console","t20","removed_2","catch","_temp7","t21","t22","t23","addAttachment","clearAttachments","reset","beginEdit","startDictation","_temp8","stopDictation","_temp9","queueItem","createSpeechController","notify","session","clear","adapter","utterance","unsub","subscribe","stop","stopMessage","dispose","dedupeMessagesById","seenIds","Set","deduped","i","has","warn","push","reverse","useExternalThread","messagesProp","threadState","setSubmittedFeedback","entry","external","feedbackFor","live","entries","entry_0","msg_0","find","m","keys","fromEntries","submittedFeedback_0","submit","handleSubmitFeedback","speechState","setSpeech","speechController","hasSpeechAdapter","message_0","handleSpeak","messageIndex","m_0","handleReload","msg_1","props","feedback_0","messageClients","taskDeriver","tasks","_temp0","taskClients","__internal_notifyCancelled","handleCancelRun","message_1","at","handleSendNew","headId","hasCancel","hasRefetchThread","t24","message_2","message_3","composerQueue","t25","t26","t27","suggestionsClient","hasQueue","hasBranches","hasEdit","hasReload","hasAttachments","hasFeedback","hasSpeech","t28","_temp1","messageStates","t29","t30","edit","refetchThread","voice","switchBranchDuringRun","unstable_copy","t31","t32","isDisabled","capabilities","suggestions","t33","t34","t35","t36","task_0","task","t37","message_4","appendMessage","t38","t39","t40","unstable_refetchThread","t41","state_0","t42","t43","append","deleteMessage","_temp10","resumeRun","cancelRun","importExternalState","getModelContext","_temp11","export","_temp12","import","_temp13","_temp14","connectVoice","_temp15","disconnectVoice","_temp16","getVoiceVolume","_temp17","subscribeVoiceVolume","_temp19","muteVoice","_temp20","unmuteVoice","_temp21","ExternalThread","scopes","parent","threads","source","threadElement","thread","query","aui","threadListItem","modelContext","tools","dataRenderers","_temp","part_0","a_0","error_1","s","arr","config","_temp18"],"sources":["../../../src/store/clients/external-thread.ts"],"sourcesContent":["import { useState, useMemo, useEffect, useCallback, useRef } from \"react\";\nimport { resource, withKey } from \"@assistant-ui/tap\";\nimport type { ClientElement, ClientOutput } from \"@assistant-ui/store\";\nimport {\n useClientLookup,\n attachTransformScopes,\n useClientResource,\n Derived,\n} from \"@assistant-ui/store/client\";\n\nimport type {\n AppendMessage,\n MessagePartStatus,\n ThreadAssistantMessagePart,\n ThreadUserMessagePart,\n ThreadMessage,\n ToolCallMessagePartStatus,\n} from \"../../types/message\";\nimport type {\n Attachment,\n CreateAttachment,\n PendingAttachment,\n} from \"../../types/attachment\";\nimport {\n isAttachmentComplete,\n isCreateAttachment,\n} from \"../../types/attachment\";\nimport type {\n AddToolResultOptions,\n RespondToToolApprovalOptions,\n ResumeToolCallOptions,\n SpeechState,\n ThreadSuggestion,\n} from \"../../runtime/interfaces/thread-runtime-core\";\nimport type {\n ExternalThreadQueueAdapter,\n QueuePlacement,\n} from \"../../runtime/queue/external-thread-queue-adapter\";\nimport type { ExternalThreadBranchAdapter } from \"../../runtime/branch/external-thread-branch-adapter\";\nimport type { AttachmentAdapter } from \"../../adapters/attachment\";\nimport type { FeedbackAdapter } from \"../../adapters/feedback\";\nimport type { SpeechSynthesisAdapter } from \"../../adapters/speech\";\nimport { ToolResponse } from \"assistant-stream\";\nimport type { ReadonlyJSONValue } from \"assistant-stream/utils\";\nimport type { QueueItemState } from \"../scopes/queue-item\";\nimport type { ComposerSendOptions } from \"../scopes/composer\";\nimport { fileMatchesAccept } from \"../../adapters/attachment\";\nimport { getThreadMessageText } from \"../../utils/text\";\nimport { resolveToolApprovalResponse } from \"../../runtime/utils/resolveToolApprovalResponse\";\nimport {\n AttachmentAddOperations,\n drainAttachmentAdd,\n} from \"../../runtime/utils/attachment-add-operations\";\nimport { toMessagePartStatus } from \"../../utils/normalizePartStatus\";\nimport { generateId } from \"../../utils/id\";\nimport { ModelContext } from \"./model-context-client\";\nimport { ThreadSuggestions } from \"./suggestions\";\nimport { createTaskDeriver, getTaskKey, TaskClient } from \"./thread-tasks\";\nimport { Tools } from \"../../react/client/Tools\";\nimport { DataRenderers } from \"../../react/client/DataRenderers\";\nimport { SingleThreadList } from \"./single-thread-list\";\n\nconst EMPTY_QUEUE_ITEMS: readonly QueueItemState[] = [];\nconst EMPTY_BRANCH_IDS: readonly string[] = [];\nconst EMPTY_SUGGESTIONS: readonly ThreadSuggestion[] = [];\n\nexport type ExternalThreadMessage = ThreadMessage & {\n id: string;\n};\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst derivePartStatus = (\n message: ExternalThreadMessage,\n partIndex: number,\n part: ThreadAssistantMessagePart | ThreadUserMessagePart,\n): ToolCallMessagePartStatus => {\n if (!message.status) return COMPLETE_STATUS;\n return toMessagePartStatus(message, partIndex, part);\n};\n\nexport type ExternalThreadProps = {\n messages: readonly ExternalThreadMessage[];\n isRunning?: boolean;\n isLoading?: boolean | undefined;\n state?: ReadonlyJSONValue | undefined;\n extras?: unknown;\n /**\n * Whether sending new messages is currently disabled. When `true`, the\n * thread composer's input remains usable but `send()` is a no-op and\n * `composer.canSend` is `false`. Edit composers (saving message edits)\n * intentionally ignore this flag.\n */\n isSendDisabled?: boolean;\n /**\n * Callback for new messages (non-queue runtimes).\n * @note Unused when `queue` is provided — new messages are routed through `queue.enqueue` instead.\n */\n onNew?: (message: AppendMessage) => void;\n onEdit?: (message: AppendMessage) => void;\n onReload?: (parentId: string | null) => void;\n onStartRun?: () => void;\n onCancel?: () => void;\n onResume?: (() => void) | undefined;\n /**\n * Handler for re-fetching this thread's state in place, driving\n * `threads.reloadMainThread()`. Unrelated to `onReload`, which re-generates\n * an assistant message. Presence enables the `refetchThread` capability;\n * rejections propagate to the caller.\n */\n onRefetchThread?: (() => Promise<void>) | undefined;\n onAddToolResult?: ((options: AddToolResultOptions) => void) | undefined;\n /** Callback for resuming a tool call that is waiting for human input. */\n onResumeToolCall?: ((options: ResumeToolCallOptions) => void) | undefined;\n onLoadExternalState?: ((state: unknown) => void) | undefined;\n attachmentAdapter?: AttachmentAdapter | undefined;\n feedbackAdapter?: FeedbackAdapter | undefined;\n speechAdapter?: SpeechSynthesisAdapter | undefined;\n /** Queue adapter for runtimes that support message queuing and steering. */\n queue?: ExternalThreadQueueAdapter;\n /** Branch adapter for runtimes that track sibling variants of messages. */\n branches?: ExternalThreadBranchAdapter;\n /** Callback for tool approval decisions. Absent: responding to an approval throws a capability error. */\n onRespondToToolApproval?: (\n options: RespondToToolApprovalOptions,\n ) => void | Promise<void>;\n};\n\ntype MessageClientProps = {\n message: ExternalThreadMessage;\n index: number;\n parentId: string | null;\n onEdit?: (message: AppendMessage) => void;\n onReload?: () => void;\n queue?: ExternalThreadQueueAdapter | undefined;\n branches?: ExternalThreadBranchAdapter | undefined;\n onRespondToToolApproval?:\n | ((options: RespondToToolApprovalOptions) => void | Promise<void>)\n | undefined;\n onAddToolResult?: ((options: AddToolResultOptions) => void) | undefined;\n onResumeToolCall?: ((options: ResumeToolCallOptions) => void) | undefined;\n attachmentAdapter?: AttachmentAdapter | undefined;\n submittedFeedback:\n | { type: \"positive\" | \"negative\"; comment?: string }\n | undefined;\n onSubmitFeedback: (feedback: {\n type: \"positive\" | \"negative\";\n comment?: string;\n }) => void;\n speech: SpeechState | undefined;\n onSpeak: () => void;\n onStopSpeaking: () => void;\n};\n\n// Message Client - minimal implementation\nconst useMessageClient = ({\n message,\n index,\n parentId,\n onEdit,\n onReload,\n queue,\n branches,\n onRespondToToolApproval,\n onAddToolResult,\n onResumeToolCall,\n attachmentAdapter,\n submittedFeedback,\n onSubmitFeedback,\n speech,\n onSpeak,\n onStopSpeaking,\n}: MessageClientProps): ClientOutput<\"message\"> => {\n const [isCopied, setIsCopied] = useState(false);\n const [isHovering, setIsHovering] = useState(false);\n\n const partClients = useClientLookup(\n message.content.map((part, idx) =>\n withKey(\n idx,\n PartResource({\n part,\n status: derivePartStatus(message, idx, part),\n messageId: message.id,\n onRespondToToolApproval,\n onAddToolResult,\n onResumeToolCall,\n }),\n ),\n ),\n );\n\n const attachmentClients = useClientLookup(\n (message.attachments ?? []).map((attachment) =>\n withKey(\n attachment.id,\n AttachmentResource({\n attachment,\n onRemove: () => {},\n }),\n ),\n ),\n );\n\n const handleBeginEdit = () => {\n if (!onEdit) throw new Error(\"Runtime does not support editing.\");\n };\n\n const handleSendEdit = (msg: AppendMessage) => {\n if (!onEdit) throw new Error(\"Runtime does not support editing.\");\n onEdit({\n ...msg,\n parentId,\n sourceId: message.id,\n });\n };\n\n const composerClient = useClientResource(\n ComposerClientResource({\n type: \"edit\",\n canCancel: true,\n onBeginEdit: handleBeginEdit,\n onSend: handleSendEdit,\n message,\n queue,\n attachmentAdapter,\n }),\n );\n\n const branchIds = branches?.getBranches(message.id) ?? EMPTY_BRANCH_IDS;\n const branchIndex = branchIds.indexOf(message.id);\n const branchNumber = branchIndex === -1 ? 1 : branchIndex + 1;\n const branchCount = branchIndex === -1 ? 1 : branchIds.length;\n\n const state = useMemo(() => {\n const messageWithFeedback: ExternalThreadMessage =\n submittedFeedback && message.role === \"assistant\"\n ? {\n ...message,\n metadata: {\n ...message.metadata,\n submittedFeedback,\n },\n }\n : message;\n return {\n ...messageWithFeedback,\n attachments: message.attachments ?? [],\n parentId,\n isLast: false, // Will be set by thread\n branchNumber,\n branchCount,\n speech,\n parts: partClients.state,\n isCopied,\n isHovering,\n index,\n composer: composerClient.state,\n };\n }, [\n message,\n parentId,\n isCopied,\n isHovering,\n index,\n composerClient.state,\n partClients.state,\n branchNumber,\n branchCount,\n submittedFeedback,\n speech,\n ]);\n\n return {\n getState: () => state,\n composer: () => composerClient.methods,\n delete: () => {},\n reload: () => {\n onReload?.();\n },\n speak: onSpeak,\n stopSpeaking: onStopSpeaking,\n submitFeedback: onSubmitFeedback,\n switchToBranch: ({ position, branchId }) => {\n if (!branches) return;\n const target =\n branchId ??\n (branchIndex === -1\n ? undefined\n : position === \"previous\"\n ? branchIds[branchIndex - 1]\n : position === \"next\"\n ? branchIds[branchIndex + 1]\n : undefined);\n if (target !== undefined && target !== message.id)\n branches.switchToBranch(target);\n },\n getCopyText: () => getThreadMessageText(message),\n part: (selector) => {\n if (\"index\" in selector) {\n return partClients.get(selector);\n }\n const partIndex = state.parts.findIndex(\n (p) => p.type === \"tool-call\" && p.toolCallId === selector.toolCallId,\n );\n return partClients.get({ index: partIndex });\n },\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachmentClients.get({ key: selector.id });\n }\n return attachmentClients.get(selector);\n },\n setIsCopied,\n setIsHovering,\n };\n};\n\nconst MessageClient = resource(useMessageClient);\n\ntype PartResourceProps = {\n part: ThreadAssistantMessagePart | ThreadUserMessagePart;\n status: ToolCallMessagePartStatus;\n messageId: string;\n onRespondToToolApproval?:\n | ((options: RespondToToolApprovalOptions) => void | Promise<void>)\n | undefined;\n onAddToolResult?: ((options: AddToolResultOptions) => void) | undefined;\n onResumeToolCall?: ((options: ResumeToolCallOptions) => void) | undefined;\n};\n\n// Part Client - minimal implementation\nconst usePartResource = ({\n part,\n status,\n messageId,\n onRespondToToolApproval,\n onAddToolResult,\n onResumeToolCall,\n}: PartResourceProps): ClientOutput<\"part\"> => {\n const state = useMemo(\n () => ({ ...part, status: status as MessagePartStatus }),\n [part, status],\n );\n\n return {\n getState: () => state,\n addToolResult: (result) => {\n if (!onAddToolResult)\n throw new Error(\n \"Runtime does not support tool results (onAddToolResult is not set).\",\n );\n if (part.type !== \"tool-call\")\n throw new Error(\"Tried to add tool result on non-tool message part\");\n\n const response = ToolResponse.toResponse(result);\n onAddToolResult({\n messageId,\n toolName: part.toolName,\n toolCallId: part.toolCallId,\n result: response.result as ReadonlyJSONValue,\n isError: response.isError,\n ...(response.artifact !== undefined && { artifact: response.artifact }),\n ...(response.modelContent !== undefined && {\n modelContent: response.modelContent,\n }),\n });\n },\n resumeToolCall: (payload) => {\n if (!onResumeToolCall)\n throw new Error(\n \"Runtime does not support resuming tool calls (onResumeToolCall is not set).\",\n );\n if (part.type !== \"tool-call\")\n throw new Error(\"Tried to resume tool call on non-tool message part\");\n\n onResumeToolCall({ toolCallId: part.toolCallId, payload });\n },\n respondToToolApproval: (response) => {\n if (!onRespondToToolApproval)\n throw new Error(\"Runtime does not support tool approvals.\");\n\n if (part.type !== \"tool-call\")\n throw new Error(\n \"Tried to respond to tool approval on non-tool message part\",\n );\n\n if (\n !part.approval ||\n part.approval.approved !== undefined ||\n part.approval.resolution !== undefined\n )\n throw new Error(\"Tool call has no pending approval\");\n\n const options = resolveToolApprovalResponse(part.approval, response);\n try {\n return Promise.resolve(onRespondToToolApproval(options));\n } catch (error) {\n return Promise.reject(error);\n }\n },\n };\n};\n\nconst PartResource = resource(usePartResource);\n\ntype AttachmentResourceProps = {\n attachment: Attachment;\n onRemove?: () => void | Promise<void>;\n};\n\n// Attachment Client - minimal implementation\nconst useAttachmentResource = ({\n attachment,\n onRemove,\n}: AttachmentResourceProps): ClientOutput<\"attachment\"> => {\n return {\n getState: () => attachment,\n remove: async () => {\n await onRemove?.();\n },\n };\n};\n\nconst AttachmentResource = resource(useAttachmentResource);\n\ntype ComposerClientResourceProps = {\n type: \"thread\" | \"edit\";\n canCancel: boolean;\n isRunning?: boolean;\n isSendDisabled?: boolean;\n onCancel?: () => void;\n onBeginEdit?: () => void;\n onSend?: (message: AppendMessage) => void;\n message?: ExternalThreadMessage;\n queue?: ExternalThreadQueueAdapter | undefined;\n attachmentAdapter?: AttachmentAdapter | undefined;\n};\n\nconst useQueueItemClient = ({\n item,\n onMove,\n onRemove,\n}: {\n item: QueueItemState;\n onMove: (placement: QueuePlacement) => void;\n onRemove: () => void;\n}): ClientOutput<\"queueItem\"> => {\n return {\n getState: () => item,\n steer: () => onMove({ lane: \"steer\", insertAfter: null }),\n move: onMove,\n remove: onRemove,\n };\n};\n\nconst QueueItemClient = resource(useQueueItemClient);\n\n// State whose setter tracks the latest value in a ref, so imperative\n// call sequences (setText immediately followed by send) observe the write\n// before React re-renders — legacy composer parity.\nconst useLiveState = <T>(initial: T) => {\n const [state, setState] = useState(initial);\n const ref = useRef(state);\n const set = useCallback((next: T | ((prev: T) => T)) => {\n ref.current =\n typeof next === \"function\" ? (next as (prev: T) => T)(ref.current) : next;\n setState(ref.current);\n }, []);\n return [state, set, ref] as const;\n};\n\n// A try/catch inside the resource makes the React Compiler bail out of the\n// whole hook, so the adapter call and its failure status live at module scope.\nconst removeAttachmentThroughAdapter = async (\n attachment: Attachment,\n attachmentAdapter: AttachmentAdapter | undefined,\n setAttachments: (\n next:\n | readonly Attachment[]\n | ((prev: readonly Attachment[]) => readonly Attachment[]),\n ) => void,\n) => {\n try {\n await attachmentAdapter?.remove(attachment);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n setAttachments((prev) =>\n prev.map((candidate) =>\n candidate.id === attachment.id && !isAttachmentComplete(candidate)\n ? {\n ...candidate,\n status: { type: \"incomplete\", reason: \"error\", message },\n }\n : candidate,\n ),\n );\n throw error;\n }\n};\n\n// Composer Client - minimal implementation\nconst useComposerClientResource = ({\n type,\n canCancel,\n isRunning = false,\n isSendDisabled = false,\n onCancel,\n onBeginEdit,\n onSend,\n message,\n queue,\n attachmentAdapter,\n}: ComposerClientResourceProps): ClientOutput<\"composer\"> => {\n const [isEditing, setIsEditing, isEditingRef] = useLiveState(\n type === \"thread\",\n );\n const [text, setText, textRef] = useLiveState(\"\");\n const [role, setRole, roleRef] = useLiveState<\n \"user\" | \"assistant\" | \"system\"\n >(\"user\");\n const [runConfig, setRunConfig, runConfigRef] = useLiveState<\n Record<string, unknown>\n >({});\n const [attachments, setAttachments, attachmentsRef] = useLiveState<\n readonly Attachment[]\n >([]);\n const [quote, setQuote, quoteRef] = useLiveState<\n { readonly text: string; readonly messageId: string } | undefined\n >(undefined);\n const attachmentAddOperations = useMemo(\n () => new AttachmentAddOperations(),\n [],\n );\n\n const updateFromMessage = () => {\n if (!message) return;\n const messageText = message.content\n .filter((part) => part.type === \"text\")\n .map((part) => part.text)\n .join(\"\\n\\n\");\n setText(messageText);\n setRole(message.role);\n setAttachments(message.attachments ?? []);\n };\n\n const attachmentClients = useClientLookup(\n attachments.map((attachment) =>\n withKey(\n attachment.id,\n AttachmentResource({\n attachment,\n onRemove: async () => {\n attachmentAddOperations.cancel(attachment.id);\n if (!isAttachmentComplete(attachment)) {\n await removeAttachmentThroughAdapter(\n attachment,\n attachmentAdapter,\n setAttachments,\n );\n }\n setAttachments((prev) =>\n prev.filter((a) => a.id !== attachment.id),\n );\n },\n }),\n ),\n ),\n );\n\n const removePendingAttachments = async (removed: readonly Attachment[]) => {\n if (!attachmentAdapter) return;\n await Promise.all(\n removed\n .filter((a) => a.status.type !== \"complete\")\n .map(async (a) => attachmentAdapter.remove(a)),\n );\n };\n\n const upsertAttachment = (attachment: Attachment) => {\n setAttachments((prev) => {\n const idx = prev.findIndex((a) => a.id === attachment.id);\n if (idx === -1) return [...prev, attachment];\n const next = [...prev];\n next[idx] = attachment;\n return next;\n });\n };\n\n const steerItems = queue?.steerItems ?? EMPTY_QUEUE_ITEMS;\n const laneItems = queue?.items ?? EMPTY_QUEUE_ITEMS;\n const queueItems = useMemo(\n () =>\n steerItems.length === 0\n ? laneItems\n : laneItems.length === 0\n ? steerItems\n : [...steerItems, ...laneItems],\n [steerItems, laneItems],\n );\n const queueItemClients = useClientLookup(\n queueItems.map((item) =>\n withKey(\n item.id,\n QueueItemClient({\n item,\n onMove: (placement) => queue?.move(item.id, placement),\n onRemove: () => queue?.remove(item.id),\n }),\n ),\n ),\n );\n\n const state = useMemo(() => {\n const isEmpty = !text.trim() && !attachments.length;\n return {\n text,\n role,\n attachments: attachmentClients.state,\n runConfig,\n isEditing,\n canCancel,\n canSend: isEditing && !isEmpty && !isSendDisabled,\n attachmentAccept: attachmentAdapter?.accept ?? \"*\",\n isEmpty,\n type,\n dictation: undefined,\n quote,\n queue: queueItems,\n };\n }, [\n text,\n role,\n attachmentClients.state,\n runConfig,\n isEditing,\n canCancel,\n isSendDisabled,\n type,\n attachments.length,\n quote,\n queueItems,\n attachmentAdapter?.accept,\n ]);\n\n return {\n getState: () => state,\n setText,\n setRole,\n setRunConfig,\n addAttachment: async (fileOrAttachment: File | CreateAttachment) => {\n if (attachmentAdapter) {\n const file = isCreateAttachment(fileOrAttachment)\n ? {\n name: fileOrAttachment.name,\n type: fileOrAttachment.contentType ?? \"\",\n }\n : { name: fileOrAttachment.name, type: fileOrAttachment.type };\n if (!fileMatchesAccept(file, attachmentAdapter.accept))\n throw new Error(\n `File type ${file.type || \"unknown\"} is not accepted. Accepted types: ${attachmentAdapter.accept}`,\n );\n }\n if (!isCreateAttachment(fileOrAttachment) && attachmentAdapter) {\n const operation = attachmentAddOperations.start();\n try {\n await drainAttachmentAdd(\n attachmentAdapter.add({ file: fileOrAttachment }),\n (attachment) => {\n if (!attachmentAddOperations.accept(operation, attachment.id))\n return false;\n upsertAttachment(attachment);\n return true;\n },\n );\n attachmentAddOperations.finish(operation);\n } catch (error) {\n attachmentAddOperations.finish(operation);\n if (!attachmentAddOperations.isCancelled(operation)) throw error;\n }\n } else if (!isCreateAttachment(fileOrAttachment)) {\n const newAttachment: Attachment = {\n id: generateId(),\n type: \"file\",\n name: fileOrAttachment.name,\n contentType: fileOrAttachment.type,\n file: fileOrAttachment,\n status: { type: \"complete\" },\n content: [],\n };\n setAttachments((prev) => [...prev, newAttachment]);\n } else {\n const newAttachment: Attachment = {\n id: fileOrAttachment.id ?? generateId(),\n type: fileOrAttachment.type ?? \"document\",\n name: fileOrAttachment.name,\n contentType: fileOrAttachment.contentType,\n content: fileOrAttachment.content,\n status: { type: \"complete\" },\n };\n setAttachments((prev) => [...prev, newAttachment]);\n }\n },\n clearAttachments: async () => {\n attachmentAddOperations.cancelAll();\n const removed = attachmentsRef.current;\n setAttachments([]);\n await removePendingAttachments(removed);\n },\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachmentClients.get({ key: selector.id });\n }\n return attachmentClients.get(selector);\n },\n reset: async () => {\n attachmentAddOperations.cancelAll();\n const removed = attachmentsRef.current;\n setText(\"\");\n setRole(\"user\");\n setRunConfig({});\n setAttachments([]);\n setQuote(undefined);\n await removePendingAttachments(removed);\n },\n send: (opts?: ComposerSendOptions) => {\n const currentQuote = quoteRef.current;\n const currentText = textRef.current;\n const currentRole = roleRef.current;\n const currentRunConfig = runConfigRef.current;\n const currentAttachments = attachmentsRef.current;\n const isEmpty = !currentText.trim() && !currentAttachments.length;\n if (!isEditingRef.current) throw new Error(\"Composer is not available\");\n if (isEmpty || isSendDisabled) return;\n\n attachmentAddOperations.cancelAll();\n setText(\"\");\n setAttachments([]);\n setQuote(undefined);\n\n const dispatch = (sendAttachments: readonly Attachment[]) => {\n const composedMessage: AppendMessage = {\n role: currentRole,\n content: currentText\n ? [{ type: \"text\" as const, text: currentText }]\n : [],\n attachments: sendAttachments as any,\n createdAt: new Date(),\n parentId: null,\n sourceId: null,\n runConfig: currentRunConfig,\n startRun: opts?.startRun,\n metadata: {\n custom: { ...(currentQuote ? { quote: currentQuote } : {}) },\n },\n };\n // edit sends carry a sourceId contract; only thread sends queue\n if (queue && type === \"thread\") {\n if (opts?.steer ?? isRunning) queue.steer(composedMessage);\n else queue.enqueue(composedMessage);\n } else {\n onSend?.(composedMessage);\n }\n if (type === \"edit\") setIsEditing(false);\n };\n\n if (attachmentAdapter && currentAttachments.length > 0) {\n void Promise.all(\n currentAttachments.map((attachment) =>\n attachment.status.type === \"complete\"\n ? attachment\n : attachmentAdapter.send(attachment as PendingAttachment),\n ),\n ).then(dispatch, (error) => {\n // Upload failed: merge the failed send back into the draft.\n setText((prev) =>\n currentText && prev\n ? currentText + \"\\n\" + prev\n : currentText || prev,\n );\n setQuote((prev) => prev ?? currentQuote);\n setAttachments((prev) => [...currentAttachments, ...prev]);\n console.error(\"Failed to send attachments\", error);\n });\n } else {\n dispatch(currentAttachments);\n }\n },\n cancel: () => {\n // An edit session ends here, so its in-flight adapter adds must not\n // land in a later session; the thread composer's cancel stops the run\n // and leaves the draft (and its pending adds) alone.\n if (type === \"edit\") {\n attachmentAddOperations.cancelAll();\n const removed = attachmentsRef.current;\n setAttachments([]);\n removePendingAttachments(removed).catch((error) => {\n console.error(\"Failed to remove cancelled edit attachments\", error);\n });\n }\n onCancel?.();\n if (type === \"edit\") setIsEditing(false);\n },\n beginEdit: () => {\n onBeginEdit?.();\n if (type === \"thread\") return;\n if (isEditingRef.current) throw new Error(\"Edit already in progress\");\n setIsEditing(true);\n updateFromMessage();\n },\n startDictation: () => {},\n stopDictation: () => {},\n setQuote,\n queueItem: (selector: { index: number } | { id: string }) => {\n if (\"id\" in selector) {\n return queueItemClients.get({ key: selector.id });\n }\n return queueItemClients.get(selector);\n },\n };\n};\n\nconst ComposerClientResource = resource(useComposerClientResource);\n\nconst createSpeechController = (\n notify: (speech: SpeechState | undefined) => void,\n) => {\n let session: { messageId: string; cancel: () => void } | undefined;\n\n const clear = () => {\n if (!session) return;\n session.cancel();\n session = undefined;\n notify(undefined);\n };\n\n return {\n speak: (\n adapter: SpeechSynthesisAdapter,\n message: ExternalThreadMessage,\n ) => {\n clear();\n\n const utterance = adapter.speak(getThreadMessageText(message));\n let unsub: (() => void) | undefined;\n unsub = utterance.subscribe(() => {\n if (utterance.status.type === \"ended\") {\n unsub?.();\n session = undefined;\n notify(undefined);\n } else {\n notify({ messageId: message.id, status: utterance.status });\n }\n });\n\n if (utterance.status.type === \"ended\") {\n unsub();\n notify(undefined);\n return;\n }\n\n session = {\n messageId: message.id,\n cancel: () => {\n unsub!();\n utterance.cancel();\n },\n };\n notify({ messageId: message.id, status: utterance.status });\n },\n stop: () => {\n if (!session) throw new Error(\"No message is being spoken\");\n clear();\n },\n stopMessage: (messageId: string) => {\n if (session?.messageId !== messageId)\n throw new Error(\"Message is not being spoken\");\n clear();\n },\n dispose: clear,\n };\n};\n\nconst dedupeMessagesById = (messages: readonly ExternalThreadMessage[]) => {\n const seenIds = new Set<string>();\n const deduped: ExternalThreadMessage[] = [];\n for (let i = messages.length - 1; i >= 0; i--) {\n const message = messages[i]!;\n if (seenIds.has(message.id)) {\n console.warn(\n `ExternalThread: duplicate message id \"${message.id}\" in the provided messages array; keeping the last occurrence.`,\n );\n continue;\n }\n seenIds.add(message.id);\n deduped.push(message);\n }\n return deduped.length === messages.length ? messages : deduped.reverse();\n};\n\n// External Thread Client\nconst useExternalThread = ({\n messages: messagesProp,\n isRunning = false,\n isLoading = false,\n state: threadState,\n extras,\n isSendDisabled = false,\n onNew,\n onEdit,\n onReload,\n onStartRun,\n onCancel,\n onResume,\n onRefetchThread,\n onAddToolResult,\n onResumeToolCall,\n onLoadExternalState,\n attachmentAdapter,\n feedbackAdapter,\n speechAdapter,\n queue,\n branches,\n onRespondToToolApproval,\n}: ExternalThreadProps): ClientOutput<\"thread\"> => {\n const messages = useMemo(\n () => dedupeMessagesById(messagesProp),\n [messagesProp],\n );\n\n // Local entries are optimistic: they apply only while the message's\n // external submittedFeedback still equals the value seen at click time.\n const [submittedFeedback, setSubmittedFeedback] = useState<\n Record<\n string,\n {\n feedback: { type: \"positive\" | \"negative\"; comment?: string };\n external:\n | {\n readonly type: \"positive\" | \"negative\";\n readonly comment?: string;\n }\n | undefined;\n }\n >\n >({});\n\n const feedbackFor = (msg: ExternalThreadMessage) => {\n const entry = submittedFeedback[msg.id];\n const external = msg.metadata.submittedFeedback;\n return entry &&\n external?.type === entry.external?.type &&\n external?.comment === entry.external?.comment\n ? entry.feedback\n : undefined;\n };\n\n // `messages` changes identity on every streamed token, and this body fans out\n // to one client per message, so pruning during render would re-run the whole\n // fan-out per token. The effect bails out on an unchanged map instead.\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setSubmittedFeedback((prev) => {\n const live = Object.entries(prev).filter(([id, entry]) => {\n const msg = messages.find((m) => m.id === id);\n return (\n !!msg &&\n msg.metadata.submittedFeedback?.type === entry.external?.type &&\n msg.metadata.submittedFeedback?.comment === entry.external?.comment\n );\n });\n return live.length === Object.keys(prev).length\n ? prev\n : Object.fromEntries(live);\n });\n }, [messages]);\n\n const handleSubmitFeedback = (\n message: ExternalThreadMessage,\n feedback: { type: \"positive\" | \"negative\"; comment?: string },\n ) => {\n const comment = feedback.comment?.trim();\n const submittedFeedback = {\n type: feedback.type,\n ...(comment ? { comment } : undefined),\n };\n feedbackAdapter?.submit({ message, ...submittedFeedback });\n\n if (message.role === \"assistant\") {\n setSubmittedFeedback((prev) => ({\n ...prev,\n [message.id]: {\n feedback: submittedFeedback,\n external: message.metadata.submittedFeedback,\n },\n }));\n }\n };\n\n const [speechState, setSpeech] = useState<SpeechState | undefined>(undefined);\n const [speechController] = useState(() => createSpeechController(setSpeech));\n\n const hasSpeechAdapter = !!speechAdapter;\n const speech = hasSpeechAdapter ? speechState : undefined;\n useEffect(() => {\n if (!hasSpeechAdapter) speechController.dispose();\n }, [hasSpeechAdapter, speechController]);\n\n useEffect(() => () => speechController.dispose(), [speechController]);\n\n const handleSpeak = (message: ExternalThreadMessage) => {\n if (!speechAdapter) throw new Error(\"Speech adapter not configured\");\n speechController.speak(speechAdapter, message);\n };\n\n const handleReload = (messageId: string) => {\n const messageIndex = messages.findIndex((m) => m.id === messageId);\n if (messageIndex === -1) return;\n\n const parentId = messageIndex > 0 ? messages[messageIndex - 1]!.id : null;\n onReload?.(parentId);\n };\n\n const messageClients = useClientLookup(\n messages.map((msg, index) => {\n const props: MessageClientProps = {\n message: msg,\n index,\n parentId: index > 0 ? messages[index - 1]!.id : null,\n onReload: () => handleReload(msg.id),\n queue,\n branches,\n onRespondToToolApproval,\n onAddToolResult,\n onResumeToolCall,\n attachmentAdapter,\n submittedFeedback: feedbackFor(msg),\n onSubmitFeedback: (feedback) => handleSubmitFeedback(msg, feedback),\n speech: speech?.messageId === msg.id ? speech : undefined,\n onSpeak: () => handleSpeak(msg),\n onStopSpeaking: () => speechController.stopMessage(msg.id),\n };\n if (onEdit) props.onEdit = onEdit;\n return withKey(msg.id, MessageClient(props));\n }),\n );\n\n const taskDeriver = useMemo(() => createTaskDeriver(), []);\n const tasks = useMemo(() => taskDeriver(messages), [taskDeriver, messages]);\n const taskClients = useClientLookup(\n tasks.map((task) =>\n withKey(getTaskKey(task), TaskClient({ task }), [task]),\n ),\n );\n\n const handleCancelRun = () => {\n // Nothing is aborted without a handler, so pausing the queue would hold\n // the pending items against a run that keeps going.\n if (!onCancel) return;\n\n // Before the run is aborted, so the settle it produces keeps the pending\n // items instead of dispatching the next one at the moment the user\n // stopped.\n queue?.__internal_notifyCancelled?.();\n onCancel();\n };\n\n const handleSendNew = (message: AppendMessage) => {\n // The composer does not know the thread; stamp the current head as the\n // parent (legacy composer parity).\n onNew?.({ ...message, parentId: messages.at(-1)?.id ?? null });\n };\n\n const headId = messages.at(-1)?.id ?? null;\n const hasCancel = !!onCancel;\n const hasRefetchThread = !!onRefetchThread;\n const composerQueue = useMemo(\n (): ExternalThreadQueueAdapter | undefined =>\n queue && {\n ...queue,\n enqueue: (message) =>\n queue.enqueue({ ...message, parentId: message.parentId ?? headId }),\n steer: (message) =>\n queue.steer({ ...message, parentId: message.parentId ?? headId }),\n },\n [queue, headId],\n );\n\n const composerClient = useClientResource(\n ComposerClientResource({\n type: \"thread\",\n canCancel: isRunning && hasCancel,\n isRunning,\n isSendDisabled,\n onCancel: handleCancelRun,\n onSend: handleSendNew,\n queue: composerQueue,\n attachmentAdapter,\n }),\n );\n const suggestionsClient = useClientResource(\n ThreadSuggestions(EMPTY_SUGGESTIONS),\n );\n\n const hasQueue = !!queue;\n const hasBranches = !!branches;\n const hasEdit = !!onEdit;\n const hasReload = !!onReload;\n const hasAttachments = !!attachmentAdapter;\n const hasFeedback = !!feedbackAdapter;\n const hasSpeech = !!speechAdapter;\n const state = useMemo(() => {\n const messageStates = messageClients.state.map((s, idx, arr) => ({\n ...s,\n isLast: idx === arr.length - 1,\n }));\n\n return {\n isEmpty: messages.length === 0 && !isLoading,\n isDisabled: false,\n isLoading,\n isRunning,\n capabilities: {\n edit: hasEdit,\n delete: false,\n reload: hasReload,\n refetchThread: hasRefetchThread,\n cancel: hasCancel,\n speech: hasSpeech,\n attachments: hasAttachments,\n feedback: hasFeedback,\n voice: false,\n switchToBranch: hasBranches,\n switchBranchDuringRun: false,\n unstable_copy: false,\n dictation: false,\n queue: hasQueue,\n },\n messages: messageStates,\n tasks,\n state: threadState ?? {},\n suggestions: EMPTY_SUGGESTIONS,\n extras,\n speech,\n voice: undefined,\n composer: composerClient.state,\n };\n }, [\n messages,\n isRunning,\n isLoading,\n threadState,\n extras,\n hasQueue,\n hasBranches,\n hasEdit,\n hasReload,\n hasCancel,\n hasRefetchThread,\n hasAttachments,\n hasFeedback,\n hasSpeech,\n speech,\n messageClients.state,\n composerClient.state,\n tasks,\n ]);\n\n return {\n getState: () => state,\n composer: () => composerClient.methods,\n suggestions: () => suggestionsClient.methods,\n task: (selector) => {\n if (\"id\" in selector) {\n const task = tasks.find((candidate) => candidate.id === selector.id);\n return taskClients.get({ key: task ? getTaskKey(task) : selector.id });\n }\n return taskClients.get(selector);\n },\n append: (message) => {\n const appendMessage: AppendMessage =\n typeof message === \"string\"\n ? {\n createdAt: new Date(),\n parentId: messages.at(-1)?.id ?? null,\n sourceId: null,\n runConfig: {},\n role: \"user\",\n content: [{ type: \"text\", text: message }],\n attachments: [],\n metadata: { custom: {} },\n }\n : {\n createdAt: message.createdAt ?? new Date(),\n parentId:\n message.parentId === undefined\n ? (messages.at(-1)?.id ?? null)\n : message.parentId,\n sourceId: message.sourceId ?? null,\n role: message.role ?? \"user\",\n content: message.content,\n attachments: message.attachments ?? [],\n metadata: message.metadata ?? { custom: {} },\n runConfig: message.runConfig ?? {},\n startRun: message.startRun,\n };\n if (queue) {\n queue.enqueue(appendMessage);\n } else {\n onNew?.(appendMessage);\n }\n },\n deleteMessage: () => {},\n startRun: () => {\n onStartRun?.();\n },\n resumeRun: () => {\n if (!onResume)\n throw new Error(\n \"Runtime does not support resuming runs (onResume is not set).\",\n );\n onResume();\n },\n cancelRun: handleCancelRun,\n ...(onRefetchThread && { unstable_refetchThread: onRefetchThread }),\n importExternalState: (state: unknown) => {\n if (!onLoadExternalState)\n throw new Error(\n \"Runtime does not support importing external states (onLoadExternalState is not set).\",\n );\n onLoadExternalState(state);\n },\n getModelContext: () => ({ tools: {}, config: {} }),\n export: () => ({ messages: [] }),\n import: () => {},\n reset: () => {},\n message: (selector) => {\n if (\"id\" in selector) {\n return messageClients.get({ key: selector.id });\n }\n return messageClients.get(selector);\n },\n stopSpeaking: speechController.stop,\n connectVoice: () => {},\n disconnectVoice: () => {},\n getVoiceVolume: () => 0,\n subscribeVoiceVolume: () => () => {},\n muteVoice: () => {},\n unmuteVoice: () => {},\n };\n};\n\nexport const ExternalThread = resource(useExternalThread);\n\nattachTransformScopes(useExternalThread, (scopes, parent) => {\n if (!scopes.threads && parent.threads.source === null) {\n const threadElement = scopes.thread as ClientElement<\"thread\">;\n scopes.threads = SingleThreadList({ thread: threadElement });\n // scopes mount in key order; re-declare thread after the threads source it resolves from\n delete scopes.thread;\n scopes.thread = Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads.thread(\"main\"),\n });\n }\n\n if (!scopes.threadListItem && parent.threadListItem.source === null) {\n scopes.threadListItem = Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads.item(\"main\"),\n });\n }\n\n scopes.composer ??= Derived({\n source: \"thread\",\n query: {},\n get: (aui) => aui.thread.composer(),\n });\n\n if (!scopes.modelContext && parent.modelContext.source === null) {\n scopes.modelContext = ModelContext();\n }\n if (!scopes.tools && parent.tools.source === null) {\n scopes.tools = Tools({});\n }\n if (!scopes.dataRenderers && parent.dataRenderers.source === null) {\n scopes.dataRenderers = DataRenderers();\n }\n if (!scopes.suggestions && parent.suggestions.source === null) {\n scopes.suggestions = Derived({\n source: \"thread\",\n query: {},\n get: (aui) => aui.thread.suggestions(),\n });\n }\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA8DA,MAAMsD,oBAA+C,CAAA;AACrD,MAAMC,mBAAsC,CAAA;AAC5C,MAAMC,oBAAiD,CAAA;AAMvD,MAAMG,kBAAqCC,OAAOC,OAAO,EACvDC,MAAM,WACR,CAAC;AAED,MAAMC,oBACJC,SACAC,WACAC,SAC8B;CAC9B,IAAI,CAACF,QAAQG,QAAQ,OAAOR;CAC5B,OAAOf,oBAAoBoB,SAASC,WAAWC,IAAI;AACrD;AA4EA,MAAMqC,oBAAmBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAA1C,SAAA+B,OAAAjB,UAAAF,QAAAC,UAAAc,OAAAC,UAAAC,yBAAAT,iBAAAE,kBAAAE,mBAAAQ,mBAAAE,kBAAAE,QAAAC,SAAAC,mBAAAE;CAkBxB,MAAA,CAAAG,UAAAC,eAAgC5G,SAAS,KAAK;CAC9C,MAAA,CAAA6G,YAAAC,iBAAoC9G,SAAS,KAAK;CAAE,IAAA+G;CAAA,IAAAN,EAAA,OAAAzC,WAAAyC,EAAA,OAAArB,mBAAAqB,EAAA,OAAAZ,2BAAAY,EAAA,OAAAnB,kBAAA;EAGlDyB,KAAA/C,QAAOgD,QAAQC,KAAK/C,MAAAgD,QAClB5G,QACE4G,KACAC,aAAa;GAAAjD;GAAAC,QAEHJ,iBAAiBC,SAASkD,KAAKhD,IAAI;GAACkD,WACjCpD,QAAON;GAAGmC;GAAAT;GAAAE;EAIvB,CAAC,CACH,CACF;EAACmB,EAAA,KAAAzC;EAAAyC,EAAA,KAAArB;EAAAqB,EAAA,KAAAZ;EAAAY,EAAA,KAAAnB;EAAAmB,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAbH,MAAAY,cAAoB5G,gBAClBsG,EAaF;CAAE,IAAAO;CAAA,IAAAb,EAAA,OAAAzC,QAAAuD,aAAA;EAGCD,KAAAtD,QAAOuD,eAAP,CAAA;EAAyBd,EAAA,KAAAzC,QAAAuD;EAAAd,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CAAA,IAAAe;CAAA,IAAAf,EAAA,OAAAa,IAAA;EAA1BE,KAACF,GAAyBL,IAAMQ,MAQhC;EAAChB,EAAA,KAAAa;EAAAb,EAAA,KAAAe;CAAA,OAAAA,KAAAf,EAAA;CATH,MAAAiB,oBAA0BjH,gBACxB+G,EASF;CAAE,IAAAG;CAAA,IAAAlB,EAAA,OAAA7B,QAAA;EAEsB+C,WAAA;GACtB,IAAI,CAAC/C,QAAQ,MAAM,IAAIgD,MAAM,mCAAmC;EAAE;EACnEnB,EAAA,KAAA7B;EAAA6B,EAAA,MAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAFD,MAAAoB,kBAAwBF;CAEtB,IAAAG;CAAA,IAAArB,EAAA,QAAAzC,QAAAN,MAAA+C,EAAA,QAAA7B,UAAA6B,EAAA,QAAA3B,UAAA;EAEqBgD,MAAAC,QAAA;GACrB,IAAI,CAACnD,QAAQ,MAAM,IAAIgD,MAAM,mCAAmC;GAChEhD,OAAO;IAAA,GACFmD;IAAGjD;IAAAkD,UAEIhE,QAAON;GACnB,CAAC;EAAC;EACH+C,EAAA,MAAAzC,QAAAN;EAAA+C,EAAA,MAAA7B;EAAA6B,EAAA,MAAA3B;EAAA2B,EAAA,MAAAqB;CAAA,OAAAA,KAAArB,EAAA;CAPD,MAAAwB,iBAAuBH;CAOrB,IAAAI;CAAA,IAAAzB,EAAA,QAAAjB,qBAAAiB,EAAA,QAAAoB,mBAAApB,EAAA,QAAAwB,kBAAAxB,EAAA,QAAAzC,WAAAyC,EAAA,QAAAd,OAAA;EAGAuC,KAAAC,uBAAuB;GAAArE,MACf;GAAMsE,WACD;GAAIC,aACFR;GAAeS,QACpBL;GAAcjE;GAAA2B;GAAAH;EAIxB,CAAC;EAACiB,EAAA,MAAAjB;EAAAiB,EAAA,MAAAoB;EAAApB,EAAA,MAAAwB;EAAAxB,EAAA,MAAAzC;EAAAyC,EAAA,MAAAd;EAAAc,EAAA,MAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CATJ,MAAA8B,iBAAuB5H,kBACrBuH,EASF;CAAE,IAAAM;CAAA,IAAAC;CAAA,IAAAhC,EAAA,QAAAb,YAAAa,EAAA,QAAAzC,QAAAN,IAAA;EAEF8E,YAAkB5C,UAAQ8C,YAAc1E,QAAON,EAAuB,KAApDH;EACEkF,KAAAD,UAASG,QAAS3E,QAAON,EAAG;EAAC+C,EAAA,MAAAb;EAAAa,EAAA,MAAAzC,QAAAN;EAAA+C,EAAA,MAAA+B;EAAA/B,EAAA,MAAAgC;CAAA,OAAA;EAAAD,YAAA/B,EAAA;EAAAgC,KAAAhC,EAAA;CAAA;CAAjD,MAAAmC,cAAoBH;CACpB,MAAAI,eAAqBD,gBAAgB,KAAhB,IAAyBA,cAAc;CAC5D,MAAAE,cAAoBF,gBAAgB,KAAhB,IAAyBJ,UAASO;CAAQ,IAAAC;CAAA,IAAAvC,EAAA,QAAAzC,WAAAyC,EAAA,QAAAT,mBAAA;EAI1DgD,KAAAhD,qBAAqBhC,QAAOiF,SAAU,cAAtC;GAAA,GAESjF;GAAOkF,UACA;IAAA,GACLlF,QAAOkF;IAASlD;GAErB;EAEI,IARVhC;EAQWyC,EAAA,MAAAzC;EAAAyC,EAAA,MAAAT;EAAAS,EAAA,MAAAuC;CAAA,OAAAA,KAAAvC,EAAA;CATb,MAAA0C,sBACEH;CAQY,IAAAI;CAAA,IAAA3C,EAAA,QAAAzC,QAAAuD,aAAA;EAGC6B,KAAApF,QAAOuD,eAAP,CAAA;EAAyBd,EAAA,MAAAzC,QAAAuD;EAAAd,EAAA,MAAA2C;CAAA,OAAAA,KAAA3C,EAAA;CAAA,IAAA4C;CAAA,IAAA5C,EAAA,QAAAqC,eAAArC,EAAA,QAAAoC,gBAAApC,EAAA,QAAA8B,eAAA/D,SAAAiC,EAAA,QAAAV,SAAAU,EAAA,QAAAE,YAAAF,EAAA,QAAAI,cAAAJ,EAAA,QAAA0C,uBAAA1C,EAAA,QAAA3B,YAAA2B,EAAA,QAAAY,YAAA7C,SAAAiC,EAAA,QAAAL,UAAAK,EAAA,QAAA2C,IAAA;EAFjCC,MAAA;GAAA,GACFF;GAAmB5B,aACT6B;GAAyBtE;GAAAwE,QAE9B;GAAKT;GAAAC;GAAA1C;GAAAmD,OAINlC,YAAW7C;GAAMmC;GAAAE;GAAAd;GAAAyD,UAIdjB,eAAc/D;EAC1B;EAACiC,EAAA,MAAAqC;EAAArC,EAAA,MAAAoC;EAAApC,EAAA,MAAA8B,eAAA/D;EAAAiC,EAAA,MAAAV;EAAAU,EAAA,MAAAE;EAAAF,EAAA,MAAAI;EAAAJ,EAAA,MAAA0C;EAAA1C,EAAA,MAAA3B;EAAA2B,EAAA,MAAAY,YAAA7C;EAAAiC,EAAA,MAAAL;EAAAK,EAAA,MAAA2C;EAAA3C,EAAA,MAAA4C;CAAA,OAAAA,MAAA5C,EAAA;CAxBH,MAAAjC,QAWE6E;CA0BC,IAAAI;CAAA,IAAAhD,EAAA,QAAAjC,OAAA;EAGSiF,YAAMjF;EAAKiC,EAAA,MAAAjC;EAAAiC,EAAA,MAAAgD;CAAA,OAAAA,MAAAhD,EAAA;CAAA,IAAAiD;CAAA,IAAAjD,EAAA,QAAA8B,eAAAoB,SAAA;EACXD,YAAMnB,eAAcoB;EAAQlD,EAAA,MAAA8B,eAAAoB;EAAAlD,EAAA,MAAAiD;CAAA,OAAAA,MAAAjD,EAAA;CAAA,IAAAmD;CAAA,IAAAnD,EAAA,QAAA5B,UAAA;EAE9B+E,YAAA;GACN/E,WAAW;EAAC;EACb4B,EAAA,MAAA5B;EAAA4B,EAAA,MAAAmD;CAAA,OAAAA,MAAAnD,EAAA;CAAA,IAAAoD;CAAA,IAAApD,EAAA,QAAA+B,aAAA/B,EAAA,QAAAmC,eAAAnC,EAAA,QAAAb,YAAAa,EAAA,QAAAzC,QAAAN,IAAA;EAIemG,OAAAC,QAAA;GAAC,MAAA,EAAAC,UAAAC,aAAAF;GACf,IAAI,CAAClE,UAAQ;GACb,MAAAqE,SACED,aACCpB,gBAAgB,KAAhBsB,KAAAA,IAEGH,aAAa,aACXvB,UAAUI,cAAc,KACxBmB,aAAa,SACXvB,UAAUI,cAAc,KAD1BsB,KAAAA;GAGR,IAAID,WAAWC,KAAAA,KAAaD,WAAWjG,QAAON,IAC5CkC,SAAQuE,eAAgBF,MAAM;EAAE;EACnCxD,EAAA,MAAA+B;EAAA/B,EAAA,MAAAmC;EAAAnC,EAAA,MAAAb;EAAAa,EAAA,MAAAzC,QAAAN;EAAA+C,EAAA,MAAAoD;CAAA,OAAAA,MAAApD,EAAA;CAAA,IAAAqD;CAAA,IAAArD,EAAA,QAAAzC,SAAA;EACY8F,YAAMtH,qBAAqBwB,OAAO;EAACyC,EAAA,MAAAzC;EAAAyC,EAAA,MAAAqD;CAAA,OAAAA,MAAArD,EAAA;CAAA,IAAA2D;CAAA,IAAA3D,EAAA,QAAAY,eAAAZ,EAAA,QAAAjC,OAAA;EAC1C4F,OAAAC,aAAA;GACJ,IAAI,WAAWA,UAAQ,OACdhD,YAAWiD,IAAKD,QAAQ;GAEjC,MAAApG,YAAkBO,MAAK+E,MAAMgB,WAC3BC,MAAOA,EAAC1G,SAAU,eAAe0G,EAACC,eAAgBJ,SAAQI,UAC5D;GAAE,OACKpD,YAAWiD,IAAK,EAAAvE,OAAS9B,UAAU,CAAC;EAAC;EAC7CwC,EAAA,MAAAY;EAAAZ,EAAA,MAAAjC;EAAAiC,EAAA,MAAA2D;CAAA,OAAAA,MAAA3D,EAAA;CAAA,IAAAiE;CAAA,IAAAjE,EAAA,QAAAiB,mBAAA;EACWgD,OAAAC,eAAA;GACV,IAAI,QAAQN,YAAQ,OACX3C,kBAAiB4C,IAAK,EAAAM,KAAOP,WAAQ3G,GAAI,CAAC;GAClD,OACMgE,kBAAiB4C,IAAKD,UAAQ;EAAC;EACvC5D,EAAA,MAAAiB;EAAAjB,EAAA,MAAAiE;CAAA,OAAAA,MAAAjE,EAAA;CAAA,IAAAoE;CAAA,IAAApE,EAAA,QAAAJ,WAAAI,EAAA,QAAAH,kBAAAG,EAAA,QAAAP,oBAAAO,EAAA,QAAAgD,OAAAhD,EAAA,QAAAiD,OAAAjD,EAAA,QAAAmD,OAAAnD,EAAA,QAAAoD,OAAApD,EAAA,QAAAqD,OAAArD,EAAA,QAAA2D,OAAA3D,EAAA,QAAAiE,KAAA;EAvCIG,MAAA;GAAAC,UACKrB;GAAWD,UACXE;GAA4BqB,QAC9BC;GAAQC,QACRrB;GAEPsB,OACM7E;GAAO8E,cACA7E;GAAc8E,gBACZlF;GAAgBiE,gBAChBN;GAafwB,aACYvB;GAAmC5F,MAC1CkG;GAQLkB,YACWZ;GAKX9D;GAAAE;EAGH;EAACL,EAAA,MAAAJ;EAAAI,EAAA,MAAAH;EAAAG,EAAA,MAAAP;EAAAO,EAAA,MAAAgD;EAAAhD,EAAA,MAAAiD;EAAAjD,EAAA,MAAAmD;EAAAnD,EAAA,MAAAoD;EAAApD,EAAA,MAAAqD;EAAArD,EAAA,MAAA2D;EAAA3D,EAAA,MAAAiE;EAAAjE,EAAA,MAAAoE;CAAA,OAAAA,MAAApE,EAAA;CAAA,OA1CMoE;AA0CN;AAGH,MAAMU,gBAAgBlL,SAASkG,gBAAgB;AAc/C,MAAMkF,mBAAkBjF,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAAxC,MAAAC,QAAAiD,WAAAvB,yBAAAT,iBAAAE,qBAAAkB;CASK,MAAAO,KAAA5C;CAA2B,IAAAmD;CAAA,IAAAb,EAAA,OAAAvC,QAAAuC,EAAA,OAAAM,IAAA;EAA9CO,KAAA;GAAA,GAAKpD;GAAIC,QAAU4C;EAA4B;EAACN,EAAA,KAAAvC;EAAAuC,EAAA,KAAAM;EAAAN,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CADzD,MAAAjC,QACS8C;CAEP,IAAAE;CAAA,IAAAf,EAAA,OAAAjC,OAAA;EAGUgD,WAAMhD;EAAKiC,EAAA,KAAAjC;EAAAiC,EAAA,KAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAA,IAAAkB;CAAA,IAAAlB,EAAA,OAAAW,aAAAX,EAAA,OAAArB,mBAAAqB,EAAA,OAAAvC,MAAA;EACNyD,MAAA+D,WAAA;GACb,IAAI,CAACtG,iBACH,MAAM,IAAIwC,MACR,qEACF;GACF,IAAI1D,KAAIJ,SAAU,aAChB,MAAM,IAAI8D,MAAM,mDAAmD;GAErE,MAAA+D,WAAiBxJ,aAAYyJ,WAAYF,MAAM;GAC/CtG,gBAAgB;IAAAgC;IAAAyE,UAEJ3H,KAAI2H;IAASpB,YACXvG,KAAIuG;IAAWiB,QACnBC,SAAQD;IAA4BI,SACnCH,SAAQG;IAAQ,GACrBH,SAAQI,aAAc7B,KAAAA,KAAtB,EAAA6B,UAA+CJ,SAAQI,SAAU;IAAC,GAClEJ,SAAQK,iBAAkB9B,KAAAA,KAA1B,EAAA8B,cACYL,SAAQK,aACxB;GACF,CAAC;EAAC;EACHvF,EAAA,KAAAW;EAAAX,EAAA,KAAArB;EAAAqB,EAAA,KAAAvC;EAAAuC,EAAA,KAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAAA,IAAAqB;CAAA,IAAArB,EAAA,OAAAnB,oBAAAmB,EAAA,QAAAvC,MAAA;EACe4D,MAAAmE,YAAA;GACd,IAAI,CAAC3G,kBACH,MAAM,IAAIsC,MACR,6EACF;GACF,IAAI1D,KAAIJ,SAAU,aAChB,MAAM,IAAI8D,MAAM,oDAAoD;GAEtEtC,iBAAiB;IAAAmF,YAAcvG,KAAIuG;IAAWwB;GAAU,CAAC;EAAC;EAC3DxF,EAAA,KAAAnB;EAAAmB,EAAA,MAAAvC;EAAAuC,EAAA,MAAAqB;CAAA,OAAAA,KAAArB,EAAA;CAAA,IAAAyB;CAAA,IAAAzB,EAAA,QAAAZ,2BAAAY,EAAA,QAAAvC,MAAA;EACsBgE,MAAAgE,eAAA;GACrB,IAAI,CAACrG,yBACH,MAAM,IAAI+B,MAAM,0CAA0C;GAE5D,IAAI1D,KAAIJ,SAAU,aAChB,MAAM,IAAI8D,MACR,4DACF;GAEF,IACE,CAAC1D,KAAIiI,YACLjI,KAAIiI,SAASC,aAAclC,KAAAA,KAC3BhG,KAAIiI,SAASE,eAAgBnC,KAAAA,GAE7B,MAAM,IAAItC,MAAM,mCAAmC;GAErD,MAAAvC,UAAgB5C,4BAA4ByB,KAAIiI,UAAWR,UAAQ;GACnE,IAAA;IAAA,OACSxG,QAAOmH,QAASzG,wBAAwBR,OAAO,CAAC;GAAC,SAAAoD,IAAA;IACjD8D,MAAAA,QAAAA;IAAK,OACLpH,QAAOqH,OAAQD,KAAK;GAAC;EAC7B;EACF9F,EAAA,MAAAZ;EAAAY,EAAA,MAAAvC;EAAAuC,EAAA,MAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAAA,IAAAgC;CAAA,IAAAhC,EAAA,QAAAe,MAAAf,EAAA,QAAAkB,MAAAlB,EAAA,QAAAqB,MAAArB,EAAA,QAAAyB,IAAA;EAvDIO,KAAA;GAAAqC,UACKtD;GAAWiF,eACN9E;GAoBd+E,gBACe5E;GASf6E,uBACsBzE;EAuBzB;EAACzB,EAAA,MAAAe;EAAAf,EAAA,MAAAkB;EAAAlB,EAAA,MAAAqB;EAAArB,EAAA,MAAAyB;EAAAzB,EAAA,MAAAgC;CAAA,OAAAA,KAAAhC,EAAA;CAAA,OAxDMgC;AAwDN;AAGH,MAAMtB,eAAe9G,SAASoL,eAAe;AAQ7C,MAAMqB,yBAAyB,EAC7BxB,YACAuB,eACyD;CACzD,OAAO;EACL/B,gBAAgBQ;EAChByB,QAAQ,YAAY;GAClB,MAAMF,WAAW;EACnB;CACF;AACF;AAEA,MAAMG,qBAAqB3M,SAASyM,qBAAqB;AAezD,MAAMI,sBAAsB,EAC1BC,MACAC,QACAP,eAK+B;CAC/B,OAAO;EACL/B,gBAAgBqC;EAChBG,aAAaF,OAAO;GAAEG,MAAM;GAASC,aAAa;EAAK,CAAC;EACxDC,MAAML;EACNL,QAAQF;CACV;AACF;AAEA,MAAMa,kBAAkBrN,SAAS6M,kBAAkB;AAKnD,MAAMS,gBAAeC,YAAA;CAAA,MAAAnH,IAAAC,EAAA,CAAA;CACnB,MAAA,CAAAlC,OAAAqJ,YAA0B7N,SAAS4N,OAAO;CAC1C,MAAAE,MAAY1N,OAAOoE,KAAK;CAAE,IAAAgC;CAAA,IAAAC,EAAA,OAAAsH,OAAAC,IAAA,2BAAA,GAAA;EACFxH,MAAAyH,SAAA;GACtBH,IAAGI,UACD,OAAOD,SAAS,aAAcA,KAAwBH,IAAGI,OAAe,IAAxED;GACFJ,SAASC,IAAGI,OAAQ;EAAC;EACtBzH,EAAA,KAAAD;CAAA,OAAAA,KAAAC,EAAA;CAJD,MAAA4H,MAAY7H;CAIL,IAAAO;CAAA,IAAAN,EAAA,OAAAjC,OAAA;EACAuC,KAAA;GAACvC;GAAO6J;GAAKP;EAAG;EAACrH,EAAA,KAAAjC;EAAAiC,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAAjBM;AAA0B;AAKnC,MAAMwH,iCAAiC,OACrCjD,YACA9F,mBACAgJ,mBAKG;CACH,IAAI;EACF,MAAMhJ,mBAAmBuH,OAAOzB,UAAU;CAC5C,SAASiB,OAAO;EACd,MAAMvI,UAAUuI,iBAAiB3E,QAAQ2E,MAAMvI,UAAUyK,OAAOlC,KAAK;EACrEiC,gBAAgBL,SACdA,KAAKlH,KAAKyH,cACRA,UAAUhL,OAAO4H,WAAW5H,MAAM,CAACpC,qBAAqBoN,SAAS,IAC7D;GACE,GAAGA;GACHvK,QAAQ;IAAEL,MAAM;IAAc6K,QAAQ;IAAS3K;GAAQ;EACzD,IACA0K,SACN,CACF;EACA,MAAMnC;CACR;AACF;AAGA,MAAMqC,6BAA4BpI,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAC,MAAA,EAAA5C,MAAAsE,WAAA9D,WAAAyC,IAAArC,gBAAA4C,IAAAtC,UAAAqD,aAAAC,QAAAtE,SAAA2B,OAAAH,sBAAAgB;CAGjC,MAAAlC,YAAAyC,OAAAmD,KAAAA,IAAA,QAAAnD;CACA,MAAArC,iBAAA4C,OAAA4C,KAAAA,IAAA,QAAA5C;CAQA,MAAA,CAAAuH,WAAAC,cAAAC,gBAAgDpB,aAC9C7J,SAAS,QACX;CACA,MAAA,CAAAkL,MAAAC,SAAAC,WAAiCvB,aAAa,EAAE;CAChD,MAAA,CAAA1E,MAAAkG,SAAAC,WAAiCzB,aAE/B,MAAM;CAAE,IAAAnG;CAAA,IAAAf,EAAA,OAAAsH,OAAAC,IAAA,2BAAA,GAAA;EAGRxG,KAAA,CAAC;EAACf,EAAA,KAAAe;CAAA,OAAAA,KAAAf,EAAA;CAFJ,MAAA,CAAA4I,WAAAC,cAAAC,gBAAgD5B,aAE9CnG,EAAE;CAAE,IAAAG;CAAA,IAAAlB,EAAA,OAAAsH,OAAAC,IAAA,2BAAA,GAAA;EAGJrG,KAAA,CAAA;EAAElB,EAAA,KAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAFJ,MAAA,CAAAc,aAAAiH,gBAAAgB,kBAAsD7B,aAEpDhG,EAAE;CACJ,MAAA,CAAA8H,OAAAC,UAAAC,YAAoChC,aAElCzD,KAAAA,CAAS;CAAE,IAAApC;CAAA,IAAArB,EAAA,OAAAsH,OAAAC,IAAA,2BAAA,GAAA;EAELlG,KAAA,IAAIpF,wBAAwB;EAAC+D,EAAA,KAAAqB;CAAA,OAAAA,KAAArB,EAAA;CADrC,MAAAmJ,0BACQ9H;CAEN,IAAAI;CAAA,IAAAzB,EAAA,OAAAzC,WAAAyC,EAAA,OAAA+H,kBAAA/H,EAAA,OAAA0I,WAAA1I,EAAA,OAAAwI,SAAA;EAEwB/G,WAAA;GACxB,IAAI,CAAClE,SAAO;GACZ,MAAA6L,cAAoB7L,QAAOgD,QAAQ8I,OACzBC,MAA8B,CAAC,CAAA9I,IAClC+I,MAAmB,CAAC,CAAAC,KACnB,MAAM;GACdhB,QAAQY,WAAW;GACnBV,QAAQnL,QAAOiF,IAAK;GACpBuF,eAAexK,QAAOuD,eAAP,CAAA,CAAyB;EAAC;EAC1Cd,EAAA,KAAAzC;EAAAyC,EAAA,KAAA+H;EAAA/H,EAAA,KAAA0I;EAAA1I,EAAA,KAAAwI;EAAAxI,EAAA,KAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CATD,MAAAyJ,oBAA0BhI;CASxB,IAAAO;CAAA,IAAAhC,EAAA,OAAAjB,qBAAAiB,EAAA,OAAAc,eAAAd,EAAA,QAAA+H,gBAAA;EAAA,IAAAxF;EAAA,IAAAvC,EAAA,QAAAjB,qBAAAiB,EAAA,QAAA+H,gBAAA;GAGgBxF,MAAAsC,eACdhL,QACEgL,WAAU5H,IACVsJ,mBAAmB;IAAA1B;IAAAuB,UAEP,YAAA;KACR+C,wBAAuBO,OAAQ7E,WAAU5H,EAAG;KAC5C,IAAI,CAACpC,qBAAqBgK,UAAU,GAClC,MAAMiD,+BACJjD,YACA9F,mBACAgJ,cACF;KAEFA,gBAAeL,SACbA,KAAI2B,QAAQM,MAAOA,EAAC1M,OAAQ4H,WAAU5H,EAAG,CAC3C;IAAC;GAEL,CAAC,CACH;GAAC+C,EAAA,MAAAjB;GAAAiB,EAAA,MAAA+H;GAAA/H,EAAA,MAAAuC;EAAA,OAAAA,KAAAvC,EAAA;EAnBHgC,KAAAlB,YAAWN,IAAK+B,EAoBhB;EAACvC,EAAA,KAAAjB;EAAAiB,EAAA,KAAAc;EAAAd,EAAA,MAAA+H;EAAA/H,EAAA,MAAAgC;CAAA,OAAAA,KAAAhC,EAAA;CArBH,MAAAiB,oBAA0BjH,gBACxBgI,EAqBF;CAAE,IAAAO;CAAA,IAAAvC,EAAA,QAAAjB,mBAAA;EAE+BwD,KAAA,OAAAqH,YAAA;GAC/B,IAAI,CAAC7K,mBAAiB;GACtB,MAAML,QAAOmL,IACXD,QAAOP,OACGS,MAAmC,CAAC,CAAAtJ,IACvC,OAAAuJ,QAAahL,kBAAiBuH,OAAQqD,GAAC,CAAC,CACjD;EAAC;EACF3J,EAAA,MAAAjB;EAAAiB,EAAA,MAAAuC;CAAA,OAAAA,KAAAvC,EAAA;CAPD,MAAAgK,2BAAiCzH;CAO/B,IAAAI;CAAA,IAAA3C,EAAA,QAAA+H,gBAAA;EAEuBpF,MAAAsH,iBAAA;GACvBlC,gBAAemC,WAAA;IACb,MAAAzJ,MAAYiH,OAAI5D,WAAWqG,QAAOR,IAAC1M,OAAQ4H,aAAU5H,EAAG;IACxD,IAAIwD,QAAQ,IAAE,OAAS,CAAA,GAAIiH,QAAM7C,YAAU;IAC3C,MAAA2C,OAAa,CAAA,GAAIE,MAAI;IACrBF,KAAK/G,OAAOoE;IAAH,OACF2C;GAAI,CACZ;EAAC;EACHxH,EAAA,MAAA+H;EAAA/H,EAAA,MAAA2C;CAAA,OAAAA,KAAA3C,EAAA;CARD,MAAAoK,mBAAyBzH;CAUzB,MAAA0H,aAAmBnL,OAAKmL,cAALxN;CACnB,MAAAyN,YAAkBpL,OAAKqL,SAAL1N;CAAkC,IAAA+F;CAAA,IAAA5C,EAAA,QAAAsK,aAAAtK,EAAA,QAAAqK,YAAA;EAGhDzH,MAAAyH,WAAU/H,WAAY,IAAtBgI,YAEIA,UAAShI,WAAY,IAArB+H,aAAA,CAAA,GAEMA,YAAU,GAAKC,SAAS;EAACtK,EAAA,MAAAsK;EAAAtK,EAAA,MAAAqK;EAAArK,EAAA,MAAA4C;CAAA,OAAAA,MAAA5C,EAAA;CANvC,MAAAwK,aAEI5H;CAMF,IAAAI;CAAA,IAAAhD,EAAA,QAAAd,SAAAc,EAAA,QAAAwK,YAAA;EAAA,IAAAvH;EAAA,IAAAjD,EAAA,QAAAd,OAAA;GAEe+D,OAAAyD,SACb7M,QACE6M,KAAIzJ,IACJgK,gBAAgB;IAAAP;IAAAC,SAENC,cAAe1H,OAAK8H,KAAON,KAAIzJ,IAAK2J,SAAS;IAACR,gBACtClH,OAAKoH,OAASI,KAAIzJ,EAAG;GACvC,CAAC,CACH;GAAC+C,EAAA,MAAAd;GAAAc,EAAA,MAAAiD;EAAA,OAAAA,MAAAjD,EAAA;EARHgD,MAAAwH,WAAUhK,IAAKyC,GASf;EAACjD,EAAA,MAAAd;EAAAc,EAAA,MAAAwK;EAAAxK,EAAA,MAAAgD;CAAA,OAAAA,MAAAhD,EAAA;CAVH,MAAAyK,mBAAyBzQ,gBACvBgJ,GAUF;CAAE,IAAAC;CAAA,IAAAjD,EAAA,QAAAjB,mBAAA2L,UAAA1K,EAAA,QAAAiB,kBAAAlD,SAAAiC,EAAA,QAAAc,YAAAwB,UAAAtC,EAAA,QAAA2B,aAAA3B,EAAA,QAAAoI,aAAApI,EAAA,QAAA/B,kBAAA+B,EAAA,QAAAwK,cAAAxK,EAAA,QAAAgJ,SAAAhJ,EAAA,QAAAwC,QAAAxC,EAAA,QAAA4I,aAAA5I,EAAA,QAAAuI,QAAAvI,EAAA,QAAA3C,MAAA;EAEoB4F,YAAA;GACpB,MAAA0H,UAAgB,CAACpC,KAAIqC,KAAM,KAAX,CAAiB9J,YAAWwB;GAAQ,OAC7C;IAAAiG;IAAA/F;IAAA1B,aAGQG,kBAAiBlD;IAAM6K;IAAAR;IAAAzG;IAAAkJ,SAI3BzC,aAAA,CAAcuC,WAAd,CAA0B1M;IAAc6M,kBAC/B/L,mBAAiB2L,UAAjB;IAAgCC;IAAAtN;IAAA0N,WAGvCtH,KAAAA;IAASuF;IAAA9J,OAEbsL;GACT;EAAC;EACFxK,EAAA,MAAAjB,mBAAA2L;EAAA1K,EAAA,MAAAiB,kBAAAlD;EAAAiC,EAAA,MAAAc,YAAAwB;EAAAtC,EAAA,MAAA2B;EAAA3B,EAAA,MAAAoI;EAAApI,EAAA,MAAA/B;EAAA+B,EAAA,MAAAwK;EAAAxK,EAAA,MAAAgJ;EAAAhJ,EAAA,MAAAwC;EAAAxC,EAAA,MAAA4I;EAAA5I,EAAA,MAAAuI;EAAAvI,EAAA,MAAA3C;EAAA2C,EAAA,MAAAiD;CAAA,OAAAA,MAAAjD,EAAA;CAYCjB,mBAAiB2L;CAAQ,IAAAvH;CAAA,IAAAnD,EAAA,QAAAiD,KAAA;EA7BbE,MAAQF,IA8BrB;EAACjD,EAAA,MAAAiD;EAAAjD,EAAA,MAAAmD;CAAA,OAAAA,MAAAnD,EAAA;CA9BF,MAAAjC,QAAcoF;CA8BX,IAAAC;CAAA,IAAApD,EAAA,QAAAjC,OAAA;EAGSqF,YAAMrF;EAAKiC,EAAA,MAAAjC;EAAAiC,EAAA,MAAAoD;CAAA,OAAAA,MAAApD,EAAA;CAAA,IAAAqD;CAAA,IAAArD,EAAA,QAAAjB,qBAAAiB,EAAA,QAAA+H,kBAAA/H,EAAA,QAAAoK,kBAAA;EAIN/G,MAAA,OAAA2H,qBAAA;GACb,IAAIjM,mBAAiB;IACnB,MAAAkM,OAAanQ,mBAAmBkQ,gBAK+B,IALlD;KAAAE,MAEDF,iBAAgBE;KAAK7N,MACrB2N,iBAAgBG,eAAhB;IAEmD,IALlD;KAAAD,MAKDF,iBAAgBE;KAAK7N,MAAQ2N,iBAAgB3N;IAAM;IAC/D,IAAI,CAACvB,kBAAkBmP,MAAMlM,kBAAiB2L,MAAO,GACnD,MAAM,IAAIvJ,MACR,aAAa8J,KAAI5N,QAAJ,UAAsB,oCAAqC0B,kBAAiB2L,QAC3F;GAAE;GAEN,IAAI,CAAC5P,mBAAmBkQ,gBAAgB,KAApCjM,mBAA0D;IAC5D,MAAAqM,YAAkBjC,wBAAuBkC,MAAO;IAChD,IAAA;KACE,MAAMnP,mBACJ6C,kBAAiBuM,IAAK,EAAAL,MAAQD,iBAAiB,CAAC,IAChDO,iBAAA;MACE,IAAI,CAACpC,wBAAuBuB,OAAQU,WAAWvG,aAAU5H,EAAG,GAAC,OACpD;MACTmN,iBAAiBvF,YAAU;MAAC,OACrB;KAAI,CAEf;KACAsE,wBAAuBqC,OAAQJ,SAAS;IAAC,SAAAzH,KAAA;KAClCmC,MAAAA,QAAAA;KACPqD,wBAAuBqC,OAAQJ,SAAS;KACxC,IAAI,CAACjC,wBAAuBsC,YAAaL,SAAS,GAAG,MAAMtF;IAAM;GAClE,OACI,IAAI,CAAChL,mBAAmBkQ,gBAAgB,GAAC;IAC9C,MAAAU,gBAAkC;KAAAzO,IAC5Bb,WAAW;KAACiB,MACV;KAAM6N,MACNF,iBAAgBE;KAAKC,aACdH,iBAAgB3N;KAAK4N,MAC5BD;KAAgBtN,QACd,EAAAL,MAAQ,WAAW;KAACkD,SACnB,CAAA;IACX;IACAwH,gBAAe4D,WAAU,CAAA,GAAIjE,QAAMgE,aAAa,CAAC;GAAC,OAAA;IAElD,MAAAE,kBAAkC;KAAA3O,IAC5B+N,iBAAgB/N,MAAOb,WAAW;KAACiB,MACjC2N,iBAAgB3N,QAAhB;KAAmC6N,MACnCF,iBAAgBE;KAAKC,aACdH,iBAAgBG;KAAY5K,SAChCyK,iBAAgBzK;KAAQ7C,QACzB,EAAAL,MAAQ,WAAW;IAC7B;IACA0K,gBAAe8D,WAAU,CAAA,GAAInE,QAAMgE,eAAa,CAAC;GAAC;EACnD;EACF1L,EAAA,MAAAjB;EAAAiB,EAAA,MAAA+H;EAAA/H,EAAA,MAAAoK;EAAApK,EAAA,MAAAqD;CAAA,OAAAA,MAAArD,EAAA;CAAA,IAAA2D;CAAA,IAAA3D,EAAA,QAAA+I,kBAAA/I,EAAA,QAAAgK,4BAAAhK,EAAA,QAAA+H,gBAAA;EACiBpE,MAAA,YAAA;GAChBwF,wBAAuB2C,UAAW;GAClC,MAAAC,YAAgBhD,eAActB;GAC9BM,eAAe,CAAA,CAAE;GACjB,MAAMiC,yBAAyBJ,SAAO;EAAC;EACxC5J,EAAA,MAAA+I;EAAA/I,EAAA,MAAAgK;EAAAhK,EAAA,MAAA+H;EAAA/H,EAAA,MAAA2D;CAAA,OAAAA,MAAA3D,EAAA;CAAA,IAAAiE;CAAA,IAAAjE,EAAA,QAAAiB,mBAAA;EACWgD,OAAAL,aAAA;GACV,IAAI,QAAQA,UAAQ,OACX3C,kBAAiB4C,IAAK,EAAAM,KAAOP,SAAQ3G,GAAI,CAAC;GAClD,OACMgE,kBAAiB4C,IAAKD,QAAQ;EAAC;EACvC5D,EAAA,MAAAiB;EAAAjB,EAAA,MAAAiE;CAAA,OAAAA,MAAAjE,EAAA;CAAA,IAAAoE;CAAA,IAAApE,EAAA,QAAA+I,kBAAA/I,EAAA,QAAAgK,4BAAAhK,EAAA,QAAA+H,kBAAA/H,EAAA,QAAAiJ,YAAAjJ,EAAA,QAAA0I,WAAA1I,EAAA,QAAA6I,gBAAA7I,EAAA,QAAAwI,SAAA;EACMpE,MAAA,YAAA;GACL+E,wBAAuB2C,UAAW;GAClC,MAAAE,YAAgBjD,eAActB;GAC9Be,QAAQ,EAAE;GACVE,QAAQ,MAAM;GACdG,aAAa,CAAC,CAAC;GACfd,eAAe,CAAA,CAAE;GACjBkB,SAASxF,KAAAA,CAAS;GAClB,MAAMuG,yBAAyBJ,SAAO;EAAC;EACxC5J,EAAA,MAAA+I;EAAA/I,EAAA,MAAAgK;EAAAhK,EAAA,MAAA+H;EAAA/H,EAAA,MAAAiJ;EAAAjJ,EAAA,MAAA0I;EAAA1I,EAAA,MAAA6I;EAAA7I,EAAA,MAAAwI;EAAAxI,EAAA,MAAAoE;CAAA,OAAAA,MAAApE,EAAA;CAAA,IAAAiM;CAAA,IAAAjM,EAAA,QAAAjB,qBAAAiB,EAAA,QAAA+I,kBAAA/I,EAAA,QAAAsI,gBAAAtI,EAAA,QAAAnC,aAAAmC,EAAA,QAAA/B,kBAAA+B,EAAA,QAAA6B,UAAA7B,EAAA,QAAAd,SAAAc,EAAA,QAAAkJ,YAAAlJ,EAAA,QAAA2I,WAAA3I,EAAA,QAAA8I,gBAAA9I,EAAA,QAAA+H,kBAAA/H,EAAA,QAAAqI,gBAAArI,EAAA,QAAAiJ,YAAAjJ,EAAA,QAAAwI,WAAAxI,EAAA,QAAAyI,WAAAzI,EAAA,QAAA3C,MAAA;EACK4O,OAAAC,SAAA;GACJ,MAAAC,eAAqBjD,SAAQzB;GAC7B,MAAA2E,cAAoB3D,QAAOhB;GAC3B,MAAA4E,cAAoB1D,QAAOlB;GAC3B,MAAA6E,mBAAyBxD,aAAYrB;GACrC,MAAA8E,qBAA2BxD,eAActB;GACzC,MAAA+E,YAAgB,CAACJ,YAAWxB,KAAM,KAAlB,CAAwB2B,mBAAkBjK;GAC1D,IAAI,CAACgG,aAAYb,SAAU,MAAM,IAAItG,MAAM,2BAA2B;GACtE,IAAIqL,aAAAvO,gBAAyB;GAE7BkL,wBAAuB2C,UAAW;GAClCtD,QAAQ,EAAE;GACVT,eAAe,CAAA,CAAE;GACjBkB,SAASxF,KAAAA,CAAS;GAElB,MAAAgJ,YAAiBC,oBAAA;IACf,MAAAC,kBAAuC;KAAAnK,MAC/B6J;KAAW9L,SACR6L,cAAA,CACJ;MAAA/O,MAAQ;MAAekL,MAAQ6D;KAAY,CAAC,IADxC,CAAA;KAEHtL,aACO4L;KAAsBE,2BACxB,IAAIC,KAAK;KAACxO,UACX;KAAIkD,UACJ;KAAIqH,WACH0D;KAAgBQ,UACjBZ,MAAIY;KAAUrK,UACd,EAAAsK,QACA,EAAA,GAAMZ,eAAA,EAAAnD,OAAwBmD,aAAkB,IAA1C,CAA0C,EAAG,EAC7D;IACF;IAEA,IAAIjN,SAAS7B,SAAS,UAAQ;KAC5B,IAAI6O,MAAIrF,SAAJhJ,WAA0BqB,MAAK2H,MAAO8F,eAAe;UACpDzN,MAAK8N,QAASL,eAAe;IAAE,OAEpC9K,SAAS8K,eAAe;IAE1B,IAAItP,SAAS,QAAQgL,aAAa,KAAK;GAAE;GAG3C,IAAItJ,qBAAqBwN,mBAAkBjK,SAAU,GAC9C5D,QAAOmL,IACV0C,mBAAkB/L,KAAKyM,iBACrBpI,aAAUnH,OAAOL,SAAU,aAA3B4P,eAEIlO,kBAAiBmO,KAAMrI,YAA+B,CAC5D,CACF,CAAC,CAAAsI,KAAMV,WAAUW,YAAA;IAEf5E,SAAQ6E,WACNjB,eAAAiB,SACIjB,cAAc,OAAO1E,SACrB0E,eAAAiB,MACN;IACApE,UAASqE,WAAUA,UAAAnB,YAAoB;IACvCpE,gBAAewF,WAAU,CAAA,GAAIhB,oBAAkB,GAAK7E,MAAI,CAAC;IACzD8F,QAAO1H,MAAO,8BAA8BA,OAAK;GAAC,CACnD;QAED2G,SAASF,kBAAkB;EAC5B;EACFvM,EAAA,MAAAjB;EAAAiB,EAAA,MAAA+I;EAAA/I,EAAA,MAAAsI;EAAAtI,EAAA,MAAAnC;EAAAmC,EAAA,MAAA/B;EAAA+B,EAAA,MAAA6B;EAAA7B,EAAA,MAAAd;EAAAc,EAAA,MAAAkJ;EAAAlJ,EAAA,MAAA2I;EAAA3I,EAAA,MAAA8I;EAAA9I,EAAA,MAAA+H;EAAA/H,EAAA,MAAAqI;EAAArI,EAAA,MAAAiJ;EAAAjJ,EAAA,MAAAwI;EAAAxI,EAAA,MAAAyI;EAAAzI,EAAA,MAAA3C;EAAA2C,EAAA,MAAAiM;CAAA,OAAAA,MAAAjM,EAAA;CAAA,IAAAyN;CAAA,IAAAzN,EAAA,QAAA+I,kBAAA/I,EAAA,QAAAzB,YAAAyB,EAAA,QAAAgK,4BAAAhK,EAAA,QAAA+H,kBAAA/H,EAAA,QAAAqI,gBAAArI,EAAA,QAAA3C,MAAA;EACOoQ,YAAA;GAIN,IAAIpQ,SAAS,QAAM;IACjB8L,wBAAuB2C,UAAW;IAClC,MAAA4B,YAAgB3E,eAActB;IAC9BM,eAAe,CAAA,CAAE;IACjBiC,yBAAyBJ,SAAO,CAAC,CAAA+D,MAAOC,MAEvC;GAAC;GAEJrP,WAAW;GACX,IAAIlB,SAAS,QAAQgL,aAAa,KAAK;EAAE;EAC1CrI,EAAA,MAAA+I;EAAA/I,EAAA,MAAAzB;EAAAyB,EAAA,MAAAgK;EAAAhK,EAAA,MAAA+H;EAAA/H,EAAA,MAAAqI;EAAArI,EAAA,MAAA3C;EAAA2C,EAAA,MAAAyN;CAAA,OAAAA,MAAAzN,EAAA;CAAA,IAAA6N;CAAA,IAAA7N,EAAA,QAAAsI,gBAAAtI,EAAA,QAAA4B,eAAA5B,EAAA,QAAAqI,gBAAArI,EAAA,QAAA3C,QAAA2C,EAAA,QAAAyJ,mBAAA;EACUoE,YAAA;GACTjM,cAAc;GACd,IAAIvE,SAAS,UAAQ;GACrB,IAAIiL,aAAYb,SAAU,MAAM,IAAItG,MAAM,0BAA0B;GACpEkH,aAAa,IAAI;GACjBoB,kBAAkB;EAAC;EACpBzJ,EAAA,MAAAsI;EAAAtI,EAAA,MAAA4B;EAAA5B,EAAA,MAAAqI;EAAArI,EAAA,MAAA3C;EAAA2C,EAAA,MAAAyJ;EAAAzJ,EAAA,MAAA6N;CAAA,OAAAA,MAAA7N,EAAA;CAAA,IAAA8N;CAAA,IAAA9N,EAAA,QAAAyK,kBAAA;EAIUqD,OAAA5J,eAAA;GACT,IAAI,QAAQN,YAAQ,OACX6G,iBAAgB5G,IAAK,EAAAM,KAAOP,WAAQ3G,GAAI,CAAC;GACjD,OACMwN,iBAAgB5G,IAAKD,UAAQ;EAAC;EACtC5D,EAAA,MAAAyK;EAAAzK,EAAA,MAAA8N;CAAA,OAAAA,MAAA9N,EAAA;CAAA,IAAA+N;CAAA,IAAA/N,EAAA,QAAAiJ,YAAAjJ,EAAA,QAAA0I,WAAA1I,EAAA,QAAA6I,gBAAA7I,EAAA,QAAAwI,WAAAxI,EAAA,QAAAoD,OAAApD,EAAA,QAAAqD,OAAArD,EAAA,SAAA2D,OAAA3D,EAAA,SAAAiE,OAAAjE,EAAA,SAAAoE,OAAApE,EAAA,SAAAiM,OAAAjM,EAAA,SAAAyN,OAAAzN,EAAA,SAAA6N,OAAA7N,EAAA,SAAA8N,KAAA;EA7KIC,MAAA;GAAA1J,UACKjB;GAAWoF;GAAAE;GAAAG;GAAAmF,eAIN3K;GAoDd4K,kBACiBtK;GAKjBkB,YACWZ;GAKXiK,OACM9J;GASN8I,MACKjB;GA8DLvC,QACO+D;GAcPU,WACUN;GAMVO,gBACeC;GAAQC,eACTC;GAAQtF;GAAAuF,WAEZV;EAMb;EAAC9N,EAAA,MAAAiJ;EAAAjJ,EAAA,MAAA0I;EAAA1I,EAAA,MAAA6I;EAAA7I,EAAA,MAAAwI;EAAAxI,EAAA,MAAAoD;EAAApD,EAAA,MAAAqD;EAAArD,EAAA,OAAA2D;EAAA3D,EAAA,OAAAiE;EAAAjE,EAAA,OAAAoE;EAAApE,EAAA,OAAAiM;EAAAjM,EAAA,OAAAyN;EAAAzN,EAAA,OAAA6N;EAAA7N,EAAA,OAAA8N;EAAA9N,EAAA,OAAA+N;CAAA,OAAAA,MAAA/N,EAAA;CAAA,OA9KM+N;AA8KN;AAGH,MAAMrM,yBAAyB9H,SAASuO,yBAAyB;AAEjE,MAAMsG,0BACJC,WACG;CACH,IAAIC;CAEJ,MAAMC,cAAc;EAClB,IAAI,CAACD,SAAS;EACdA,QAAQjF,OAAO;EACfiF,UAAUlL,KAAAA;EACViL,OAAOjL,KAAAA,CAAS;CAClB;CAEA,OAAO;EACLgB,QACEoK,SACAtR,YACG;GACHqR,MAAM;GAEN,MAAME,YAAYD,QAAQpK,MAAM1I,qBAAqBwB,OAAO,CAAC;GAC7D,IAAIwR;GACJA,QAAQD,UAAUE,gBAAgB;IAChC,IAAIF,UAAUpR,OAAOL,SAAS,SAAS;KACrC0R,QAAQ;KACRJ,UAAUlL,KAAAA;KACViL,OAAOjL,KAAAA,CAAS;IAClB,OACEiL,OAAO;KAAE/N,WAAWpD,QAAQN;KAAIS,QAAQoR,UAAUpR;IAAO,CAAC;GAE9D,CAAC;GAED,IAAIoR,UAAUpR,OAAOL,SAAS,SAAS;IACrC0R,MAAM;IACNL,OAAOjL,KAAAA,CAAS;IAChB;GACF;GAEAkL,UAAU;IACRhO,WAAWpD,QAAQN;IACnByM,cAAc;KACZqF,MAAO;KACPD,UAAUpF,OAAO;IACnB;GACF;GACAgF,OAAO;IAAE/N,WAAWpD,QAAQN;IAAIS,QAAQoR,UAAUpR;GAAO,CAAC;EAC5D;EACAuR,YAAY;GACV,IAAI,CAACN,SAAS,MAAM,IAAIxN,MAAM,4BAA4B;GAC1DyN,MAAM;EACR;EACAM,cAAcvO,cAAsB;GAClC,IAAIgO,SAAShO,cAAcA,WACzB,MAAM,IAAIQ,MAAM,6BAA6B;GAC/CyN,MAAM;EACR;EACAO,SAASP;CACX;AACF;AAEA,MAAMQ,sBAAsBxR,aAA+C;CACzE,MAAMyR,0BAAU,IAAIC,IAAY;CAChC,MAAMC,UAAmC,CAAA;CACzC,KAAK,IAAIC,IAAI5R,SAAS0E,SAAS,GAAGkN,KAAK,GAAGA,KAAK;EAC7C,MAAMjS,UAAUK,SAAS4R;EACzB,IAAIH,QAAQI,IAAIlS,QAAQN,EAAE,GAAG;GAC3BuQ,QAAQkC,KACN,yCAAyCnS,QAAQN,GAAE,+DACrD;GACA;EACF;EACAoS,QAAQ/D,IAAI/N,QAAQN,EAAE;EACtBsS,QAAQI,KAAKpS,OAAO;CACtB;CACA,OAAOgS,QAAQjN,WAAW1E,SAAS0E,SAAS1E,WAAW2R,QAAQK,QAAQ;AACzE;AAGA,MAAMC,qBAAoB9P,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAC,MAAA,EAAArC,UAAAkS,cAAAjS,WAAAyC,IAAAxC,WAAA+C,IAAA9C,OAAAgS,aAAA/R,QAAAC,gBAAA8C,IAAA7C,OAAAC,QAAAC,UAAAE,YAAAC,UAAAC,UAAAC,iBAAAE,iBAAAE,kBAAAC,qBAAAC,mBAAAC,iBAAAC,eAAAC,OAAAC,UAAAC,4BAAAW;CAEzB,MAAAlC,YAAAyC,OAAAmD,KAAAA,IAAA,QAAAnD;CACA,MAAAxC,YAAA+C,OAAA4C,KAAAA,IAAA,QAAA5C;CAGA,MAAA5C,iBAAA8C,OAAA0C,KAAAA,IAAA,QAAA1C;CAAsB,IAAAG;CAAA,IAAAlB,EAAA,OAAA8P,cAAA;EAmBd5O,KAAAkO,mBAAmBU,YAAY;EAAC9P,EAAA,KAAA8P;EAAA9P,EAAA,KAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CADxC,MAAApC,WACQsD;CAEN,IAAAG;CAAA,IAAArB,EAAA,OAAAsH,OAAAC,IAAA,2BAAA,GAAA;EAiBAlG,KAAA,CAAC;EAACrB,EAAA,KAAAqB;CAAA,OAAAA,KAAArB,EAAA;CAbJ,MAAA,CAAAT,mBAAAyQ,wBAAkDzW,SAahD8H,EAAE;CAAE,IAAAI;CAAA,IAAAzB,EAAA,OAAAT,mBAAA;EAEckC,MAAAH,QAAA;GAClB,MAAA2O,QAAc1Q,kBAAkB+B,IAAGrE;GACnC,MAAAiT,WAAiB5O,IAAGmB,SAASlD;GAAmB,OACzC0Q,SACLC,UAAQ7S,SAAW4S,MAAKC,UAAe7S,QACvC6S,UAAQ1Q,YAAcyQ,MAAKC,UAAkB1Q,UAC3CyQ,MAAKvQ,WAHF+D,KAAAA;EAIM;EACdzD,EAAA,KAAAT;EAAAS,EAAA,KAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CARD,MAAAmQ,cAAoB1O;CAQlB,IAAAO;CAAA,IAAAO;CAAA,IAAAvC,EAAA,OAAApC,UAAA;EAKQoE,WAAA;GAERgO,sBAAqBtI,SAAA;IACnB,MAAA0I,OAAajT,OAAMkT,QAAS3I,IAAI,CAAC,CAAA2B,QAAQ1G,OAAA;KAAC,MAAA,CAAA1F,IAAAqT,WAAA3N;KACxC,MAAA4N,QAAY3S,SAAQ4S,MAAMC,MAAOA,EAACxT,OAAQA,EAAE;KAAE,OAE5C,CAAC,CAACqE,SACFA,MAAGmB,SAASlD,mBAAwBlC,SAAK4S,QAAKC,UAAe7S,QAC7DiE,MAAGmB,SAASlD,mBAA2BC,YAAKyQ,QAAKC,UAAkB1Q;IAAA,CAEtE;IAAE,OACI4Q,KAAI9N,WAAYnF,OAAMuT,KAAMhJ,IAAI,CAAC,CAAApF,SAAjCoF,OAEHvK,OAAMwT,YAAaP,IAAI;GAAC,CAC7B;EAAC;EACD7N,KAAA,CAAC3E,QAAQ;EAACoC,EAAA,KAAApC;EAAAoC,EAAA,KAAAgC;EAAAhC,EAAA,KAAAuC;CAAA,OAAA;EAAAP,KAAAhC,EAAA;EAAAuC,KAAAvC,EAAA;CAAA;CAfbvG,UAAUuI,IAePO,EAAU;CAAC,IAAAI;CAAA,IAAA3C,EAAA,OAAAhB,iBAAA;EAEe2D,MAAApF,SAAAmC,aAAA;GAI3B,MAAAF,UAAgBE,SAAQF,SAAcoL,KAAC;GACvC,MAAAgG,sBAA0B;IAAAvT,MAClBqC,SAAQrC;IAAK,GACfmC,UAAA,EAAAA,QAAgC,IAAhCiE,KAAAA;GACN;GACAzE,iBAAe6R,OAAS;IAAAtT;IAAA,GAAcgC;GAAkB,CAAC;GAEzD,IAAIhC,QAAOiF,SAAU,aACnBwN,sBAAqB9F,YAAW;IAAA,GAC3BxC;KACFnK,QAAON,KAAM;KAAAyC,UACFH;KAAiB2Q,UACjB3S,QAAOkF,SAASlD;IAC5B;GACF,EAAE;EACH;EACFS,EAAA,KAAAhB;EAAAgB,EAAA,KAAA2C;CAAA,OAAAA,KAAA3C,EAAA;CApBD,MAAA8Q,uBAA6BnO;CAsB7B,MAAA,CAAAoO,aAAAC,aAAiCzX,SAAkCkK,KAAAA,CAAS;CAAE,IAAAb;CAAA,IAAA5C,EAAA,QAAAsH,OAAAC,IAAA,2BAAA,GAAA;EAC1C3E,YAAM6L,uBAAuBuC,SAAS;EAAChR,EAAA,MAAA4C;CAAA,OAAAA,MAAA5C,EAAA;CAA3E,MAAA,CAAAiR,oBAA2B1X,SAASqJ,GAAuC;CAE3E,MAAAsO,mBAAyB,CAAC,CAACjS;CAC3B,MAAAU,SAAeuR,mBAAAH,cAAAtN,KAAAA;CAA2C,IAAAT;CAAA,IAAAC;CAAA,IAAAjD,EAAA,QAAAkR,oBAAAlR,EAAA,QAAAiR,kBAAA;EAChDjO,YAAA;GACR,IAAI,CAACkO,kBAAkBD,iBAAgB9B,QAAS;EAAE;EACjDlM,MAAA,CAACiO,kBAAkBD,gBAAgB;EAACjR,EAAA,MAAAkR;EAAAlR,EAAA,MAAAiR;EAAAjR,EAAA,MAAAgD;EAAAhD,EAAA,MAAAiD;CAAA,OAAA;EAAAD,MAAAhD,EAAA;EAAAiD,MAAAjD,EAAA;CAAA;CAFvCvG,UAAUuJ,KAEPC,GAAoC;CAAC,IAAAE;CAAA,IAAAC;CAAA,IAAApD,EAAA,QAAAiR,kBAAA;EAE9B9N,kBAAY8N,iBAAgB9B,QAAS;EAAG/L,MAAA,CAAC6N,gBAAgB;EAACjR,EAAA,MAAAiR;EAAAjR,EAAA,MAAAmD;EAAAnD,EAAA,MAAAoD;CAAA,OAAA;EAAAD,MAAAnD,EAAA;EAAAoD,MAAApD,EAAA;CAAA;CAApEvG,UAAU0J,KAAwCC,GAAkB;CAAC,IAAAC;CAAA,IAAArD,EAAA,QAAAf,iBAAAe,EAAA,QAAAiR,kBAAA;EAEjD5N,OAAA8N,cAAA;GAClB,IAAI,CAAClS,eAAe,MAAM,IAAIkC,MAAM,+BAA+B;GACnE8P,iBAAgBxM,MAAOxF,eAAe1B,SAAO;EAAC;EAC/CyC,EAAA,MAAAf;EAAAe,EAAA,MAAAiR;EAAAjR,EAAA,MAAAqD;CAAA,OAAAA,MAAArD,EAAA;CAHD,MAAAoR,cAAoB/N;CAGlB,IAAAM;CAAA,IAAA3D,EAAA,QAAApC,YAAAoC,EAAA,QAAA5B,UAAA;EAEmBuF,OAAAhD,cAAA;GACnB,MAAA0Q,eAAqBzT,SAAQkG,WAAWwN,QAAOb,IAACxT,OAAQ0D,SAAS;GACjE,IAAI0Q,iBAAiB,IAAE;GAEvB,MAAAhT,WAAiBgT,eAAe,IAAIzT,SAASyT,eAAe,EAAE,CAAApU,KAA7C;GACjBmB,WAAWC,QAAQ;EAAC;EACrB2B,EAAA,MAAApC;EAAAoC,EAAA,MAAA5B;EAAA4B,EAAA,MAAA2D;CAAA,OAAAA,MAAA3D,EAAA;CAND,MAAAuR,eAAqB5N;CAMnB,IAAAM;CAAA,IAAAjE,EAAA,QAAAjB,qBAAAiB,EAAA,QAAAb,YAAAa,EAAA,QAAAmQ,eAAAnQ,EAAA,QAAAuR,gBAAAvR,EAAA,QAAAoR,eAAApR,EAAA,QAAA8Q,wBAAA9Q,EAAA,QAAApC,YAAAoC,EAAA,QAAArB,mBAAAqB,EAAA,QAAA7B,UAAA6B,EAAA,QAAAZ,2BAAAY,EAAA,QAAAnB,oBAAAmB,EAAA,QAAAd,SAAAc,EAAA,QAAAL,UAAAK,EAAA,QAAAiR,kBAAA;EAGAhN,MAAArG,SAAQ4C,KAAKgR,OAAAlS,UAAA;GACX,MAAAmS,QAAkC;IAAAlU,SACvB+D;IAAGhC;IAAAjB,UAEFiB,QAAQ,IAAI1B,SAAS0B,QAAQ,EAAE,CAAArC,KAA/B;IAA0CmB,gBACpCmT,aAAajQ,MAAGrE,EAAG;IAACiC;IAAAC;IAAAC;IAAAT;IAAAE;IAAAE;IAAAQ,mBAOjB4Q,YAAY7O,KAAG;IAAC7B,mBACjBiS,eAAcZ,qBAAqBxP,OAAK5B,UAAQ;IAACC,QAC3DA,QAAMgB,cAAgBW,MAAGrE,KAAzB0C,SAAA8D,KAAAA;IAAiD7D,eAC1CwR,YAAY9P,KAAG;IAACzB,sBACToR,iBAAgB/B,YAAa5N,MAAGrE,EAAG;GAC3D;GACA,IAAIkB,QAAQsT,MAAKtT,SAAUA;GAAO,OAC3BtE,QAAQyH,MAAGrE,IAAK6H,cAAc2M,KAAK,CAAC;EAAC,CAC7C;EAACzR,EAAA,MAAAjB;EAAAiB,EAAA,MAAAb;EAAAa,EAAA,MAAAmQ;EAAAnQ,EAAA,MAAAuR;EAAAvR,EAAA,MAAAoR;EAAApR,EAAA,MAAA8Q;EAAA9Q,EAAA,MAAApC;EAAAoC,EAAA,MAAArB;EAAAqB,EAAA,MAAA7B;EAAA6B,EAAA,MAAAZ;EAAAY,EAAA,MAAAnB;EAAAmB,EAAA,MAAAd;EAAAc,EAAA,MAAAL;EAAAK,EAAA,MAAAiR;EAAAjR,EAAA,MAAAiE;CAAA,OAAAA,MAAAjE,EAAA;CArBJ,MAAA2R,iBAAuB3X,gBACrBiK,GAqBF;CAAE,IAAAG;CAAA,IAAApE,EAAA,QAAAsH,OAAAC,IAAA,2BAAA,GAAA;EAEgCnD,MAAA7H,kBAAkB;EAACyD,EAAA,MAAAoE;CAAA,OAAAA,MAAApE,EAAA;CAArD,MAAA4R,cAAkCxN;CAAyB,IAAA6H;CAAA,IAAAjM,EAAA,QAAApC,UAAA;EAC/BqO,MAAA2F,YAAYhU,QAAQ;EAACoC,EAAA,MAAApC;EAAAoC,EAAA,MAAAiM;CAAA,OAAAA,MAAAjM,EAAA;CAAjD,MAAA6R,QAA4B5F;CAAgD,IAAAwB;CAAA,IAAAzN,EAAA,QAAA6R,OAAA;EAE1EpE,MAAAoE,MAAKrR,IAAKsR,MAEV;EAAC9R,EAAA,MAAA6R;EAAA7R,EAAA,MAAAyN;CAAA,OAAAA,MAAAzN,EAAA;CAHH,MAAA+R,cAAoB/X,gBAClByT,GAGF;CAAE,IAAAI;CAAA,IAAA7N,EAAA,QAAAzB,YAAAyB,EAAA,QAAAd,OAAA;EAEsB2O,YAAA;GAGtB,IAAI,CAACtP,UAAQ;GAKbW,OAAK8S,6BAA+B;GACpCzT,SAAS;EAAC;EACXyB,EAAA,MAAAzB;EAAAyB,EAAA,MAAAd;EAAAc,EAAA,MAAA6N;CAAA,OAAAA,MAAA7N,EAAA;CAVD,MAAAiS,kBAAwBpE;CAUtB,IAAAC;CAAA,IAAA9N,EAAA,QAAApC,YAAAoC,EAAA,QAAA9B,OAAA;EAEoB4P,OAAAoE,cAAA;GAGpBhU,QAAQ;IAAA,GAAKX;IAAOc,UAAYT,SAAQuU,GAAI,EAAM,CAAC,EAAAlV,MAAnB;GAA4B,CAAC;EAAC;EAC/D+C,EAAA,MAAApC;EAAAoC,EAAA,MAAA9B;EAAA8B,EAAA,MAAA8N;CAAA,OAAAA,MAAA9N,EAAA;CAJD,MAAAoS,gBAAsBtE;CAIpB,IAAAC;CAAA,IAAA/N,EAAA,QAAApC,UAAA;EAEamQ,MAAAnQ,SAAQuU,GAAI,EAAM,CAAC,EAAAlV,MAAnB;EAA2B+C,EAAA,MAAApC;EAAAoC,EAAA,MAAA+N;CAAA,OAAAA,MAAA/N,EAAA;CAA1C,MAAAqS,SAAetE;CACf,MAAAuE,YAAkB,CAAC,CAAC/T;CACpB,MAAAgU,mBAAyB,CAAC,CAAC9T;CAAgB,IAAA+T;CAAA,IAAAxS,EAAA,QAAAqS,UAAArS,EAAA,QAAAd,OAAA;EAGvCsT,MAAAtT,SAAA;GAAA,GACKA;GAAK8N,UACCyF,cACPvT,MAAK8N,QAAS;IAAA,GAAKzP;IAAOc,UAAYd,UAAOc,YAAPgU;GAA2B,CAAC;GAACxL,QAC9D6L,cACLxT,MAAK2H,MAAO;IAAA,GAAKtJ;IAAOc,UAAYd,UAAOc,YAAPgU;GAA2B,CAAC;EACpE;EAACrS,EAAA,MAAAqS;EAAArS,EAAA,MAAAd;EAAAc,EAAA,MAAAwS;CAAA,OAAAA,MAAAxS,EAAA;CARL,MAAA2S,gBAEIH;CAaW,MAAAI,MAAA/U,aAAAyU;CAAsB,IAAAO;CAAA,IAAA7S,EAAA,QAAAjB,qBAAAiB,EAAA,QAAA2S,iBAAA3S,EAAA,QAAAiS,mBAAAjS,EAAA,QAAAoS,iBAAApS,EAAA,QAAAnC,aAAAmC,EAAA,QAAA/B,kBAAA+B,EAAA,QAAA4S,KAAA;EAFnCC,MAAAnR,uBAAuB;GAAArE,MACf;GAAQsE,WACHiR;GAAsB/U;GAAAI;GAAAM,UAGvB0T;GAAepQ,QACjBuQ;GAAalT,OACdyT;GAAa5T;EAEtB,CAAC;EAACiB,EAAA,MAAAjB;EAAAiB,EAAA,MAAA2S;EAAA3S,EAAA,MAAAiS;EAAAjS,EAAA,MAAAoS;EAAApS,EAAA,MAAAnC;EAAAmC,EAAA,MAAA/B;EAAA+B,EAAA,MAAA4S;EAAA5S,EAAA,MAAA6S;CAAA,OAAAA,MAAA7S,EAAA;CAVJ,MAAA8B,iBAAuB5H,kBACrB2Y,GAUF;CAAE,IAAAC;CAAA,IAAA9S,EAAA,QAAAsH,OAAAC,IAAA,2BAAA,GAAA;EAEAuL,MAAAxW,kBAAkBS,iBAAiB;EAACiD,EAAA,MAAA8S;CAAA,OAAAA,MAAA9S,EAAA;CADtC,MAAA+S,oBAA0B7Y,kBACxB4Y,GACF;CAEA,MAAAE,WAAiB,CAAC,CAAC9T;CACnB,MAAA+T,cAAoB,CAAC,CAAC9T;CACtB,MAAA+T,UAAgB,CAAC,CAAC/U;CAClB,MAAAgV,YAAkB,CAAC,CAAC/U;CACpB,MAAAgV,iBAAuB,CAAC,CAACrU;CACzB,MAAAsU,cAAoB,CAAC,CAACrU;CACtB,MAAAsU,YAAkB,CAAC,CAACrU;CAAc,IAAAsU;CAAA,IAAAvT,EAAA,QAAA2R,eAAA5T,OAAA;EAEVwV,MAAA5B,eAAc5T,MAAMyC,IAAKgT,MAG7C;EAACxT,EAAA,MAAA2R,eAAA5T;EAAAiC,EAAA,MAAAuT;CAAA,OAAAA,MAAAvT,EAAA;CAHH,MAAAyT,gBAAsBF;CAMX,MAAAG,MAAA9V,SAAQ0E,WAAY,KAApB,CAA0BxE;CAAS,IAAA6V;CAAA,IAAA3T,EAAA,QAAAoT,kBAAApT,EAAA,QAAAiT,eAAAjT,EAAA,QAAAsS,aAAAtS,EAAA,QAAAkT,WAAAlT,EAAA,QAAAqT,eAAArT,EAAA,QAAAgT,YAAAhT,EAAA,QAAAuS,oBAAAvS,EAAA,QAAAmT,aAAAnT,EAAA,QAAAsT,WAAA;EAI9BK,MAAA;GAAAC,MACNV;GAAO5O,QACL;GAAKE,QACL2O;GAASU,eACFtB;GAAgB7I,QACvB4I;GAAS3S,QACT2T;GAASxS,aACJsS;GAAc1T,UACjB2T;GAAWS,OACd;GAAKpQ,gBACIuP;GAAWc,uBACJ;GAAKC,eACb;GAAKjJ,WACT;GAAK7L,OACT8T;EACT;EAAChT,EAAA,MAAAoT;EAAApT,EAAA,MAAAiT;EAAAjT,EAAA,MAAAsS;EAAAtS,EAAA,MAAAkT;EAAAlT,EAAA,MAAAqT;EAAArT,EAAA,MAAAgT;EAAAhT,EAAA,MAAAuS;EAAAvS,EAAA,MAAAmT;EAAAnT,EAAA,MAAAsT;EAAAtT,EAAA,MAAA2T;CAAA,OAAAA,MAAA3T,EAAA;CAAA,IAAAiU;CAAA,IAAAjU,EAAA,QAAA+P,aAAA;EAGMkE,MAAAlE,eAAA,CAAgB;EAAC/P,EAAA,MAAA+P;EAAA/P,EAAA,MAAAiU;CAAA,OAAAA,MAAAjU,EAAA;CAAA,IAAAkU;CAAA,IAAAlU,EAAA,QAAA8B,eAAA/D,SAAAiC,EAAA,QAAAhC,UAAAgC,EAAA,QAAAlC,aAAAkC,EAAA,QAAAnC,aAAAmC,EAAA,QAAAyT,iBAAAzT,EAAA,QAAAL,UAAAK,EAAA,QAAA0T,OAAA1T,EAAA,QAAA2T,OAAA3T,EAAA,QAAAiU,OAAAjU,EAAA,QAAA6R,OAAA;EAvBnBqC,MAAA;GAAAvJ,SACI+I;GAAmCS,YAChC;GAAKrW;GAAAD;GAAAuW,cAGHT;GAeb/V,UACS6V;GAAa5B;GAAA9T,OAEhBkW;GAAiBI,aACXtX;GAAiBiB;GAAA2B;GAAAmU,OAGvBrQ,KAAAA;GAASV,UACNjB,eAAc/D;EAC1B;EAACiC,EAAA,MAAA8B,eAAA/D;EAAAiC,EAAA,MAAAhC;EAAAgC,EAAA,MAAAlC;EAAAkC,EAAA,MAAAnC;EAAAmC,EAAA,MAAAyT;EAAAzT,EAAA,MAAAL;EAAAK,EAAA,MAAA0T;EAAA1T,EAAA,MAAA2T;EAAA3T,EAAA,MAAAiU;EAAAjU,EAAA,MAAA6R;EAAA7R,EAAA,MAAAkU;CAAA,OAAAA,MAAAlU,EAAA;CAnCH,MAAAjC,QAMEmW;CAiDC,IAAAI;CAAA,IAAAtU,EAAA,QAAAjC,OAAA;EAGSuW,YAAMvW;EAAKiC,EAAA,MAAAjC;EAAAiC,EAAA,MAAAsU;CAAA,OAAAA,MAAAtU,EAAA;CAAA,IAAAuU;CAAA,IAAAvU,EAAA,QAAA8B,eAAAoB,SAAA;EACXqR,YAAMzS,eAAcoB;EAAQlD,EAAA,MAAA8B,eAAAoB;EAAAlD,EAAA,MAAAuU;CAAA,OAAAA,MAAAvU,EAAA;CAAA,IAAAwU;CAAA,IAAAxU,EAAA,QAAA+S,mBAAA;EACzByB,YAAMzB,kBAAiB7P;EAAQlD,EAAA,MAAA+S;EAAA/S,EAAA,MAAAwU;CAAA,OAAAA,MAAAxU,EAAA;CAAA,IAAAyU;CAAA,IAAAzU,EAAA,QAAA+R,eAAA/R,EAAA,QAAA6R,OAAA;EACtC4C,OAAA7Q,aAAA;GACJ,IAAI,QAAQA,UAAQ;IAClB,MAAA8Q,SAAa7C,MAAKrB,MAAMvI,cAAeA,UAAShL,OAAQ2G,SAAQ3G,EAAG;IAAE,OAC9D8U,YAAWlO,IAAK,EAAAM,KAAOwQ,SAAOnY,WAAWmY,MAAkB,IAAV/Q,SAAQ3G,GAAI,CAAC;GAAC;GACvE,OACM8U,YAAWlO,IAAKD,QAAQ;EAAC;EACjC5D,EAAA,MAAA+R;EAAA/R,EAAA,MAAA6R;EAAA7R,EAAA,MAAAyU;CAAA,OAAAA,MAAAzU,EAAA;CAAA,IAAA4U;CAAA,IAAA5U,EAAA,QAAApC,YAAAoC,EAAA,QAAA9B,SAAA8B,EAAA,SAAAd,OAAA;EACO0V,OAAAC,cAAA;GACN,MAAAC,gBACE,OAAOvX,cAAY,WAAnB;IAAAqP,2BAEiB,IAAIC,KAAK;IAACxO,UACXT,SAAQuU,GAAI,EAAM,CAAC,EAAAlV,MAAnB;IAA2BsE,UAC3B;IAAIqH,WACH,CAAC;IAACpG,MACP;IAAMjC,SACH,CAAC;KAAAlD,MAAQ;KAAMkL,MAAQhL;IAAQ,CAAC;IAACuD,aAC7B,CAAA;IAAE2B,UACL,EAAAsK,QAAU,CAAC,EAAE;GAezB,IAxBJ;IAAAH,WAYiBrP,UAAOqP,6BAAP,IAAyBC,KAAK;IAACxO,UAExCd,UAAOc,aAAcoF,KAAAA,IAChB7F,SAAQuU,GAAI,EAAM,CAAC,EAAAlV,MAAnB,OACDM,UAAOc;IAASkD,UACZhE,UAAOgE,YAAP;IAAwBiB,MAC5BjF,UAAOiF,QAAP;IAAsBjC,SACnBhD,UAAOgD;IAAQO,aACXvD,UAAOuD,eAAP,CAAA;IAAyB2B,UAC5BlF,UAAOkF,YAAP,EAAAsK,QAA8B,CAAC,EAAE;IAACnE,WACjCrL,UAAOqL,aAAP,CAAsB;IAACkE,UACxBvP,UAAOuP;GACnB;GACN,IAAI5N,OACFA,MAAK8N,QAAS8H,aAAa;QAE3B5W,QAAQ4W,aAAa;EACtB;EACF9U,EAAA,MAAApC;EAAAoC,EAAA,MAAA9B;EAAA8B,EAAA,OAAAd;EAAAc,EAAA,OAAA4U;CAAA,OAAAA,MAAA5U,EAAA;CAAA,IAAA+U;CAAA,IAAA/U,EAAA,SAAA1B,YAAA;EAESyW,YAAA;GACRzW,aAAa;EAAC;EACf0B,EAAA,OAAA1B;EAAA0B,EAAA,OAAA+U;CAAA,OAAAA,MAAA/U,EAAA;CAAA,IAAAgV;CAAA,IAAAhV,EAAA,SAAAxB,UAAA;EACUwW,YAAA;GACT,IAAI,CAACxW,UACH,MAAM,IAAI2C,MACR,+DACF;GACF3C,SAAS;EAAC;EACXwB,EAAA,OAAAxB;EAAAwB,EAAA,OAAAgV;CAAA,OAAAA,MAAAhV,EAAA;CAAA,IAAAiV;CAAA,IAAAjV,EAAA,SAAAvB,iBAAA;EAEGwW,MAAAxW,mBAAA,EAAAyW,wBAA6CzW,gBAAgB;EAACuB,EAAA,OAAAvB;EAAAuB,EAAA,OAAAiV;CAAA,OAAAA,MAAAjV,EAAA;CAAA,IAAAmV;CAAA,IAAAnV,EAAA,SAAAlB,qBAAA;EAC7CqW,OAAAC,YAAA;GACnB,IAAI,CAACtW,qBACH,MAAM,IAAIqC,MACR,sFACF;GACFrC,oBAAoBf,OAAK;EAAC;EAC3BiC,EAAA,OAAAlB;EAAAkB,EAAA,OAAAmV;CAAA,OAAAA,MAAAnV,EAAA;CAAA,IAAAqV;CAAA,IAAArV,EAAA,SAAA2R,gBAAA;EAKQ0D,OAAAnR,eAAA;GACP,IAAI,QAAQN,YAAQ,OACX+N,eAAc9N,IAAK,EAAAM,KAAOP,WAAQ3G,GAAI,CAAC;GAC/C,OACM0U,eAAc9N,IAAKD,UAAQ;EAAC;EACpC5D,EAAA,OAAA2R;EAAA3R,EAAA,OAAAqV;CAAA,OAAAA,MAAArV,EAAA;CAAA,IAAAsV;CAAA,IAAAtV,EAAA,SAAAiS,mBAAAjS,EAAA,SAAAiR,iBAAAhC,QAAAjP,EAAA,SAAAsU,OAAAtU,EAAA,SAAAuU,OAAAvU,EAAA,SAAAwU,OAAAxU,EAAA,SAAAyU,OAAAzU,EAAA,SAAA4U,OAAA5U,EAAA,SAAA+U,OAAA/U,EAAA,SAAAgV,OAAAhV,EAAA,SAAAiV,OAAAjV,EAAA,SAAAmV,OAAAnV,EAAA,SAAAqV,KAAA;EAzEIC,MAAA;GAAAjR,UACKiQ;GAAWvR,UACXwR;GAA4BF,aACzBG;GAA+BG,MACtCF;GAMLc,QACOX;GAgCPY,eACcC;GAAQ3I,UACbiI;GAETW,WACUV;GAMVW,WACU1D;GAAe,GACtBgD;GAA8DW,qBAC7CT;GAMpBU,iBACgBC;GAAiCC,QAC1CC;GAAwBC,QACxBC;GAAQhI,OACTiI;GAAQ5Y,SACN8X;GAKR3Q,cACauM,iBAAgBhC;GAAKmH,cACrBC;GAAQC,iBACLC;GAAQC,gBACTC;GAAOC,sBACDC;GAAcC,WACzBC;GAAQC,aACNC;EACf;EAAC/W,EAAA,OAAAiS;EAAAjS,EAAA,OAAAiR,iBAAAhC;EAAAjP,EAAA,OAAAsU;EAAAtU,EAAA,OAAAuU;EAAAvU,EAAA,OAAAwU;EAAAxU,EAAA,OAAAyU;EAAAzU,EAAA,OAAA4U;EAAA5U,EAAA,OAAA+U;EAAA/U,EAAA,OAAAgV;EAAAhV,EAAA,OAAAiV;EAAAjV,EAAA,OAAAmV;EAAAnV,EAAA,OAAAqV;EAAArV,EAAA,OAAAsV;CAAA,OAAAA,MAAAtV,EAAA;CAAA,OAjFMsV;AAiFN;AAGH,MAAa0B,iBAAiBpd,SAASiW,iBAAiB;AAExD5V,sBAAsB4V,oBAAoBoH,QAAQC,WAAW;CAC3D,IAAI,CAACD,OAAOE,WAAWD,OAAOC,QAAQC,WAAW,MAAM;EACrD,MAAMC,gBAAgBJ,OAAOK;EAC7BL,OAAOE,UAAUva,iBAAiB,EAAE0a,QAAQD,cAAc,CAAC;EAE3D,OAAOJ,OAAOK;EACdL,OAAOK,SAASnd,QAAQ;GACtBid,QAAQ;GACRG,OAAO,EAAEla,MAAM,OAAO;GACtBwG,MAAM2T,QAAQA,IAAIL,QAAQG,OAAO,MAAM;EACzC,CAAC;CACH;CAEA,IAAI,CAACL,OAAOQ,kBAAkBP,OAAOO,eAAeL,WAAW,MAC7DH,OAAOQ,iBAAiBtd,QAAQ;EAC9Bid,QAAQ;EACRG,OAAO,EAAEla,MAAM,OAAO;EACtBwG,MAAM2T,QAAQA,IAAIL,QAAQzQ,KAAK,MAAM;CACvC,CAAC;CAGHuQ,OAAOlU,aAAa5I,QAAQ;EAC1Bid,QAAQ;EACRG,OAAO,CAAC;EACR1T,MAAM2T,QAAQA,IAAIF,OAAOvU,SAAS;CACpC,CAAC;CAED,IAAI,CAACkU,OAAOS,gBAAgBR,OAAOQ,aAAaN,WAAW,MACzDH,OAAOS,eAAerb,aAAa;CAErC,IAAI,CAAC4a,OAAOU,SAAST,OAAOS,MAAMP,WAAW,MAC3CH,OAAOU,QAAQjb,MAAM,CAAC,CAAC;CAEzB,IAAI,CAACua,OAAOW,iBAAiBV,OAAOU,cAAcR,WAAW,MAC3DH,OAAOW,gBAAgBjb,cAAc;CAEvC,IAAI,CAACsa,OAAO5C,eAAe6C,OAAO7C,YAAY+C,WAAW,MACvDH,OAAO5C,cAAcla,QAAQ;EAC3Bid,QAAQ;EACRG,OAAO,CAAC;EACR1T,MAAM2T,QAAQA,IAAIF,OAAOjD,YAAY;CACvC,CAAC;AAEL,CAAC;AAtnCwB,SAAAwD,QAAA,CAAA;AAAA,SAAA7W,OAAA6D,YAAA;CAAA,OAuCnBhL,QACEgL,WAAU5H,IACVsJ,mBAAmB;EAAA1B;EAAAuB,UAEPyR;CACZ,CAAC,CACH;AAAC;AA7CkB,SAAAtT,SAAA,CAAA;AA2VS,SAAA+E,OAAA7L,MAAA;CAAA,OAoCVA,KAAIJ,SAAU;AAAM;AApCV,SAAAkM,OAAAuO,QAAA;CAAA,OAqCbra,OAAI8K;AAAK;AArCI,SAAAuB,OAAAiO,KAAA;CAAA,OAwEXpO,IAACjM,OAAOL,SAAU;AAAU;AAxEjB,SAAAuQ,OAAAoK,SAAA;CAuSxBxK,QAAO1H,MAAO,+CAA+CA,OAAK;AAAC;AAvS3C,SAAAuI,SAAA,CAAA;AAAA,SAAAE,SAAA,CAAA;AA+YR,SAAAuD,OAAA6C,MAAA;CAAA,OAsJpB9a,QAAQ2C,WAAWmY,IAAI,GAAGlY,WAAW,EAAAkY,KAAO,CAAC,GAAG,CAACA,IAAI,CAAC;AAAC;AAtJnC,SAAAnB,OAAAyE,GAAAxX,KAAAyX,KAAA;CAAA,OAmN2C;EAAA,GAC5DD;EAACpV,QACIpC,QAAQyX,IAAG5V,SAAU;CAC/B;AAAC;AAtNqB,SAAAmT,UAAA,CAAA;AAAA,SAAAK,UAAA;CAAA,OA2UE;EAAA6B,OAAS,CAAC;EAACQ,QAAU,CAAC;CAAE;AAAC;AA3U3B,SAAAnC,UAAA;CAAA,OA4UP,EAAApY,UAAY,CAAA,EAAG;AAAC;AA5UT,SAAAsY,UAAA,CAAA;AAAA,SAAAC,UAAA,CAAA;AAAA,SAAAE,UAAA,CAAA;AAAA,SAAAE,UAAA,CAAA;AAAA,SAAAE,UAAA;CAAA,OAwVA;AAAC;AAxVD,SAAA2B,UAAA,CAAA;AAAA,SAAAzB,UAAA;CAAA,OAyVMyB;AAAQ;AAzVd,SAAAvB,UAAA,CAAA;AAAA,SAAAE,UAAA,CAAA"}
1
+ {"version":3,"file":"external-thread.js","names":["useState","useMemo","useEffect","useCallback","useRef","resource","withKey","ClientElement","ClientOutput","useAssistantClientDestroySignal","useClientLookup","attachTransformScopes","useClientResource","Derived","AppendMessage","MessagePartStatus","ThreadAssistantMessagePart","ThreadUserMessagePart","ThreadMessage","ToolCallMessagePartStatus","Attachment","CompleteAttachment","CreateAttachment","isAttachmentComplete","isCreateAttachment","AddToolResultOptions","RespondToToolApprovalOptions","ResumeToolCallOptions","SpeechState","ThreadSuggestion","Unstable_RecordToolInteractionOptions","Unstable_ToolInteractionInput","ExternalThreadQueueAdapter","QueuePlacement","ExternalThreadBranchAdapter","ComposerSubmission","AttachmentAdapter","FeedbackAdapter","SpeechSynthesisAdapter","ToolResponse","ReadonlyJSONValue","QueueItemState","ComposerSendOptions","fileMatchesAccept","getThreadMessageText","resolveToolApprovalResponse","createToolInteraction","AttachmentAddOperations","drainAttachmentAdd","AttachmentSendOperations","ThreadMessageClient","submissionThreadMessage","toMessagePartStatus","generateId","ModelContext","ThreadSuggestions","createTaskDeriver","getTaskKey","TaskClient","Tools","DataRenderers","SingleThreadList","EMPTY_QUEUE_ITEMS","EMPTY_BRANCH_IDS","EMPTY_SUGGESTIONS","ExternalThreadMessage","id","COMPLETE_STATUS","Object","freeze","type","derivePartStatus","message","partIndex","part","status","ExternalThreadProps","messages","isRunning","isLoading","state","extras","isSendDisabled","onNew","onEdit","onReload","parentId","onStartRun","onCancel","onResume","onRefetchThread","Promise","onAddToolResult","options","onResumeToolCall","onLoadExternalState","attachmentAdapter","feedbackAdapter","speechAdapter","queue","branches","onRespondToToolApproval","unstable_onRecordToolInteraction","MessageClientProps","index","isLast","submittedFeedback","comment","onSubmitFeedback","feedback","speech","onSpeak","onStopSpeaking","useMessageClient","t0","$","_c","isCopied","setIsCopied","isHovering","setIsHovering","t1","content","map","idx","PartResource","messageId","partClients","t2","attachments","t3","_temp2","attachmentClients","t4","Error","handleBeginEdit","t5","msg","sourceId","handleSendEdit","t6","ComposerClientResource","canCancel","onBeginEdit","onSend","composerClient","branchIds","t7","getBranches","indexOf","branchIndex","branchNumber","branchCount","length","t8","role","metadata","messageWithFeedback","t9","t10","parts","composer","t11","t12","methods","t13","t14","t15","position","branchId","target","undefined","switchToBranch","t16","selector","get","findIndex","p","toolCallId","t17","selector_0","key","t18","getState","delete","_temp3","reload","speak","stopSpeaking","submitFeedback","getCopyText","attachment","MessageClient","PartResourceProps","usePartResource","result","response","toResponse","toolName","isError","artifact","modelContent","payload","resolve","then","interaction","catch","_temp4","response_0","approval","approved","resolution","error","reject","input","addToolResult","resumeToolCall","respondToToolApproval","unstable_recordInteraction","AttachmentResourceProps","onRemove","useAttachmentResource","remove","AttachmentResource","EMPTY_MESSAGE_KEYS","ComposerClientResourceProps","messageKeys","useQueueItemClient","item","onMove","placement","steer","lane","insertAfter","move","QueueItemClient","useLiveState","initial","setState","ref","Symbol","for","next","current","prev","T","set","const","removeAttachmentThroughAdapter","onError","String","dispatchSafely","dispatch","abortOnDestroy","destroySignal","AbortSignal","controller","AbortController","abort","reason","aborted","unlink","removeEventListener","signal","addEventListener","once","InTransitEntry","submission","known","ReadonlySet","EMPTY_IN_TRANSIT","useComposerClientResource","isEditing","setIsEditing","isEditingRef","text","setText","textRef","setRole","roleRef","runConfig","setRunConfig","runConfigRef","setAttachments","attachmentsRef","quote","setQuote","quoteRef","attachmentAddOperations","attachmentSends","setSubmission","submissionRef","submissionSend","inTransit","setInTransit","messageKeysRef","sendGeneration","claimed","landed","Set","entry","find","candidate","has","endsWith","add","shown","entry_0","filter","_temp5","inTransitSubmissions","size","entry_2","entry_3","messageText","_temp6","_temp7","join","restored","unmarkRemoved","updateFromMessage","attachment_0","cancel","markRemoved","message_0","prev_0","candidate_0","transfer","prev_1","a","handleRemoveAttachment","attachment_1","message_1","prev_2","candidate_1","failed","prev_3","a_0","handleRemoveSubmittedAttachment","attachment_2","attachment_3","some","a_1","attachment_4","submittedAttachmentClients","removed","all","_temp8","a_3","removePendingAttachments","attachment_5","a_5","a_4","prev_4","a_6","upsertAttachment","steerItems","laneItems","items","t19","queueItems","t20","t21","queueItemClients","accept","isEmpty","trim","canSend","attachmentAccept","dictation","t22","t23","endSubmission","t24","returned","Map","_temp9","prev_5","attachment_7","kept","attachment_8","isRemoved","prev_6","prev_7","Boolean","prev_8","returnToDraft","t25","current_0","cancelSubmission","t26","current_1","drafted","_temp0","attachment_9","discardSubmission","t27","sent","settled","current_2","failures","forEach","attachments_0","attachment_10","failure","console","returnSubmissionToDraft","t28","current_3","attachments_1","context","isSubmission","composedMessage","createdAt","Date","startRun","custom","sent_0","queued","delivered","_temp1","prev_9","attachment_12","entry_4","prev_10","failure_0","enqueue","prev_11","candidate_2","cancelAll","dispatchMessage","t29","generation","context_0","uploads","flatMap","attachment_13","upload","whenSendable","current_4","sent_1","attachment_14","attachment_15","settled_0","allSettled","attachment_16","send","rejection","_temp10","finalAttachments","result_1","index_0","value","prepareSubmission","t30","t31","fileOrAttachment","file","name","contentType","operation","start","attachment_17","finish","t32","isCancelled","newAttachment","prev_12","newAttachment_0","prev_13","removed_0","attachment_18","t33","submitted","attachment_19","inDraft","attachment_20","t34","discarded","removed_1","t35","opts","currentAttachments","attachment_21","isEmpty_0","submitted_0","context_1","complete","ready","detached","prev_14","attachment_22","generation_0","release","finally","t36","removed_2","_temp11","t37","t38","t39","addAttachment","clearAttachments","reset","beginEdit","startDictation","_temp12","stopDictation","_temp13","queueItem","createSpeechController","notify","session","clear","adapter","utterance","unsub","subscribe","stop","stopMessage","dispose","dedupeMessagesById","seenIds","deduped","i","warn","push","reverse","useExternalThread","messagesProp","threadState","setSubmittedFeedback","external","feedbackFor","live","entries","msg_0","m","keys","fromEntries","submittedFeedback_0","submit","handleSubmitFeedback","speechState","setSpeech","speechController","hasSpeechAdapter","handleSpeak","messageIndex","m_0","handleReload","_temp14","__internal_notifyCancelled","handleCancelRun","message_2","at","handleSendNew","headId","hasCancel","hasRefetchThread","message_3","message_4","composerQueue","pending","hasPending","msg_1","props","feedback_0","messageClients","pendingMessages","row","pendingClients","taskDeriver","tasks","_temp15","taskClients","suggestionsClient","hasQueue","hasBranches","hasEdit","hasReload","hasAttachments","hasFeedback","hasSpeech","messageStates","edit","refetchThread","voice","switchBranchDuringRun","unstable_copy","isDisabled","capabilities","suggestions","t40","t41","t42","task_0","task","t43","message_5","appendMessage","t44","t45","t46","unstable_refetchThread","t47","state_0","t48","row_0","t49","append","deleteMessage","_temp16","resumeRun","cancelRun","importExternalState","getModelContext","_temp17","export","_temp18","import","_temp19","_temp20","connectVoice","_temp21","disconnectVoice","_temp22","getVoiceVolume","_temp23","subscribeVoiceVolume","_temp25","muteVoice","_temp26","unmuteVoice","_temp27","ExternalThread","scopes","parent","threads","source","threadElement","thread","query","aui","threadListItem","modelContext","tools","dataRenderers","_temp","entry_1","part_0","a_2","attachment_6","a_7","attachment_11","result_0","error_0","config","_temp24"],"sources":["../../../src/store/clients/external-thread.ts"],"sourcesContent":["import { useState, useMemo, useEffect, useCallback, useRef } from \"react\";\nimport { resource, withKey } from \"@assistant-ui/tap\";\nimport type { ClientElement, ClientOutput } from \"@assistant-ui/store\";\nimport { useAssistantClientDestroySignal } from \"@assistant-ui/store/internal\";\nimport {\n useClientLookup,\n attachTransformScopes,\n useClientResource,\n Derived,\n} from \"@assistant-ui/store/client\";\n\nimport type {\n AppendMessage,\n MessagePartStatus,\n ThreadAssistantMessagePart,\n ThreadUserMessagePart,\n ThreadMessage,\n ToolCallMessagePartStatus,\n} from \"../../types/message\";\nimport type {\n Attachment,\n CompleteAttachment,\n CreateAttachment,\n} from \"../../types/attachment\";\nimport {\n isAttachmentComplete,\n isCreateAttachment,\n} from \"../../types/attachment\";\nimport type {\n AddToolResultOptions,\n RespondToToolApprovalOptions,\n ResumeToolCallOptions,\n SpeechState,\n ThreadSuggestion,\n Unstable_RecordToolInteractionOptions,\n} from \"../../runtime/interfaces/thread-runtime-core\";\nimport type { Unstable_ToolInteractionInput } from \"../../types/message\";\nimport type {\n ExternalThreadQueueAdapter,\n QueuePlacement,\n} from \"../../runtime/queue/external-thread-queue-adapter\";\nimport type { ExternalThreadBranchAdapter } from \"../../runtime/branch/external-thread-branch-adapter\";\nimport type { ComposerSubmission } from \"../../runtime/interfaces/composer-runtime-core\";\nimport type { AttachmentAdapter } from \"../../adapters/attachment\";\nimport type { FeedbackAdapter } from \"../../adapters/feedback\";\nimport type { SpeechSynthesisAdapter } from \"../../adapters/speech\";\nimport { ToolResponse } from \"assistant-stream\";\nimport type { ReadonlyJSONValue } from \"assistant-stream/utils\";\nimport type { QueueItemState } from \"../scopes/queue-item\";\nimport type { ComposerSendOptions } from \"../scopes/composer\";\nimport { fileMatchesAccept } from \"../../adapters/attachment\";\nimport { getThreadMessageText } from \"../../utils/text\";\nimport { resolveToolApprovalResponse } from \"../../runtime/utils/resolveToolApprovalResponse\";\nimport { createToolInteraction } from \"../../runtime/utils/tool-interactions\";\nimport {\n AttachmentAddOperations,\n drainAttachmentAdd,\n} from \"../../runtime/utils/attachment-add-operations\";\nimport { AttachmentSendOperations } from \"../../runtime/utils/attachment-send-operations\";\nimport { ThreadMessageClient } from \"./thread-message-client\";\nimport { submissionThreadMessage } from \"./submission-message\";\nimport { toMessagePartStatus } from \"../../utils/normalizePartStatus\";\nimport { generateId } from \"../../utils/id\";\nimport { ModelContext } from \"./model-context-client\";\nimport { ThreadSuggestions } from \"./suggestions\";\nimport { createTaskDeriver, getTaskKey, TaskClient } from \"./thread-tasks\";\nimport { Tools } from \"../../react/client/Tools\";\nimport { DataRenderers } from \"../../react/client/DataRenderers\";\nimport { SingleThreadList } from \"./single-thread-list\";\n\nconst EMPTY_QUEUE_ITEMS: readonly QueueItemState[] = [];\nconst EMPTY_BRANCH_IDS: readonly string[] = [];\nconst EMPTY_SUGGESTIONS: readonly ThreadSuggestion[] = [];\n\nexport type ExternalThreadMessage = ThreadMessage & {\n id: string;\n};\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst derivePartStatus = (\n message: ExternalThreadMessage,\n partIndex: number,\n part: ThreadAssistantMessagePart | ThreadUserMessagePart,\n): ToolCallMessagePartStatus => {\n if (!message.status) return COMPLETE_STATUS;\n return toMessagePartStatus(message, partIndex, part);\n};\n\nexport type ExternalThreadProps = {\n messages: readonly ExternalThreadMessage[];\n isRunning?: boolean;\n isLoading?: boolean | undefined;\n state?: ReadonlyJSONValue | undefined;\n extras?: unknown;\n /**\n * Whether sending new messages is currently disabled. When `true`, the\n * thread composer's input remains usable but `send()` is a no-op and\n * `composer.canSend` is `false`. Edit composers (saving message edits)\n * intentionally ignore this flag.\n */\n isSendDisabled?: boolean;\n /**\n * Callback for new messages (non-queue runtimes).\n * @note Unused when `queue` is provided — new messages are routed through `queue.enqueue` instead.\n */\n onNew?: (message: AppendMessage) => void;\n onEdit?: (message: AppendMessage) => void;\n onReload?: (parentId: string | null) => void;\n onStartRun?: () => void;\n onCancel?: () => void;\n onResume?: (() => void) | undefined;\n /**\n * Handler for re-fetching this thread's state in place, driving\n * `threads.reloadMainThread()`. Unrelated to `onReload`, which re-generates\n * an assistant message. Presence enables the `refetchThread` capability;\n * rejections propagate to the caller.\n */\n onRefetchThread?: (() => Promise<void>) | undefined;\n onAddToolResult?: ((options: AddToolResultOptions) => void) | undefined;\n /** Callback for resuming a tool call that is waiting for human input. */\n onResumeToolCall?: ((options: ResumeToolCallOptions) => void) | undefined;\n onLoadExternalState?: ((state: unknown) => void) | undefined;\n attachmentAdapter?: AttachmentAdapter | undefined;\n feedbackAdapter?: FeedbackAdapter | undefined;\n speechAdapter?: SpeechSynthesisAdapter | undefined;\n /** Queue adapter for runtimes that support message queuing and steering. */\n queue?: ExternalThreadQueueAdapter;\n /** Branch adapter for runtimes that track sibling variants of messages. */\n branches?: ExternalThreadBranchAdapter;\n /** Callback for tool approval decisions. Absent: responding to an approval throws a capability error. */\n onRespondToToolApproval?: (\n options: RespondToToolApprovalOptions,\n ) => void | Promise<void>;\n unstable_onRecordToolInteraction?:\n | ((options: Unstable_RecordToolInteractionOptions) => void | Promise<void>)\n | undefined;\n};\n\ntype MessageClientProps = {\n message: ExternalThreadMessage;\n index: number;\n isLast: boolean;\n parentId: string | null;\n onEdit?: (message: AppendMessage) => void;\n onReload?: () => void;\n queue?: ExternalThreadQueueAdapter | undefined;\n branches?: ExternalThreadBranchAdapter | undefined;\n onRespondToToolApproval?:\n | ((options: RespondToToolApprovalOptions) => void | Promise<void>)\n | undefined;\n unstable_onRecordToolInteraction?:\n | ((options: Unstable_RecordToolInteractionOptions) => void | Promise<void>)\n | undefined;\n onAddToolResult?: ((options: AddToolResultOptions) => void) | undefined;\n onResumeToolCall?: ((options: ResumeToolCallOptions) => void) | undefined;\n attachmentAdapter?: AttachmentAdapter | undefined;\n submittedFeedback:\n | { type: \"positive\" | \"negative\"; comment?: string }\n | undefined;\n onSubmitFeedback: (feedback: {\n type: \"positive\" | \"negative\";\n comment?: string;\n }) => void;\n speech: SpeechState | undefined;\n onSpeak: () => void;\n onStopSpeaking: () => void;\n};\n\n// Message Client - minimal implementation\nconst useMessageClient = ({\n message,\n index,\n isLast,\n parentId,\n onEdit,\n onReload,\n queue,\n branches,\n onRespondToToolApproval,\n unstable_onRecordToolInteraction,\n onAddToolResult,\n onResumeToolCall,\n attachmentAdapter,\n submittedFeedback,\n onSubmitFeedback,\n speech,\n onSpeak,\n onStopSpeaking,\n}: MessageClientProps): ClientOutput<\"message\"> => {\n const [isCopied, setIsCopied] = useState(false);\n const [isHovering, setIsHovering] = useState(false);\n\n const partClients = useClientLookup(\n message.content.map((part, idx) =>\n withKey(\n idx,\n PartResource({\n part,\n status: derivePartStatus(message, idx, part),\n messageId: message.id,\n onRespondToToolApproval,\n unstable_onRecordToolInteraction,\n onAddToolResult,\n onResumeToolCall,\n }),\n ),\n ),\n );\n\n const attachmentClients = useClientLookup(\n (message.attachments ?? []).map((attachment) =>\n withKey(\n attachment.id,\n AttachmentResource({\n attachment,\n onRemove: () => {},\n }),\n ),\n ),\n );\n\n const handleBeginEdit = () => {\n if (!onEdit) throw new Error(\"Runtime does not support editing.\");\n };\n\n const handleSendEdit = (msg: AppendMessage) => {\n if (!onEdit) throw new Error(\"Runtime does not support editing.\");\n onEdit({\n ...msg,\n parentId,\n sourceId: message.id,\n });\n };\n\n const composerClient = useClientResource(\n ComposerClientResource({\n type: \"edit\",\n canCancel: true,\n onBeginEdit: handleBeginEdit,\n onSend: handleSendEdit,\n message,\n queue,\n attachmentAdapter,\n }),\n );\n\n const branchIds = branches?.getBranches(message.id) ?? EMPTY_BRANCH_IDS;\n const branchIndex = branchIds.indexOf(message.id);\n const branchNumber = branchIndex === -1 ? 1 : branchIndex + 1;\n const branchCount = branchIndex === -1 ? 1 : branchIds.length;\n\n const state = useMemo(() => {\n const messageWithFeedback: ExternalThreadMessage =\n submittedFeedback && message.role === \"assistant\"\n ? {\n ...message,\n metadata: {\n ...message.metadata,\n submittedFeedback,\n },\n }\n : message;\n return {\n ...messageWithFeedback,\n attachments: message.attachments ?? [],\n parentId,\n isLast,\n branchNumber,\n branchCount,\n speech,\n parts: partClients.state,\n isCopied,\n isHovering,\n index,\n composer: composerClient.state,\n };\n }, [\n message,\n isLast,\n parentId,\n isCopied,\n isHovering,\n index,\n composerClient.state,\n partClients.state,\n branchNumber,\n branchCount,\n submittedFeedback,\n speech,\n ]);\n\n return {\n getState: () => state,\n composer: () => composerClient.methods,\n delete: () => {},\n reload: () => {\n onReload?.();\n },\n speak: onSpeak,\n stopSpeaking: onStopSpeaking,\n submitFeedback: onSubmitFeedback,\n switchToBranch: ({ position, branchId }) => {\n if (!branches) return;\n const target =\n branchId ??\n (branchIndex === -1\n ? undefined\n : position === \"previous\"\n ? branchIds[branchIndex - 1]\n : position === \"next\"\n ? branchIds[branchIndex + 1]\n : undefined);\n if (target !== undefined && target !== message.id)\n branches.switchToBranch(target);\n },\n getCopyText: () => getThreadMessageText(message),\n part: (selector) => {\n if (\"index\" in selector) {\n return partClients.get(selector);\n }\n const partIndex = state.parts.findIndex(\n (p) => p.type === \"tool-call\" && p.toolCallId === selector.toolCallId,\n );\n return partClients.get({ index: partIndex });\n },\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachmentClients.get({ key: selector.id });\n }\n return attachmentClients.get(selector);\n },\n setIsCopied,\n setIsHovering,\n };\n};\n\nconst MessageClient = resource(useMessageClient);\n\ntype PartResourceProps = {\n part: ThreadAssistantMessagePart | ThreadUserMessagePart;\n status: ToolCallMessagePartStatus;\n messageId: string;\n onRespondToToolApproval?:\n | ((options: RespondToToolApprovalOptions) => void | Promise<void>)\n | undefined;\n unstable_onRecordToolInteraction?:\n | ((options: Unstable_RecordToolInteractionOptions) => void | Promise<void>)\n | undefined;\n onAddToolResult?: ((options: AddToolResultOptions) => void) | undefined;\n onResumeToolCall?: ((options: ResumeToolCallOptions) => void) | undefined;\n};\n\n// Part Client - minimal implementation\nconst usePartResource = ({\n part,\n status,\n messageId,\n onRespondToToolApproval,\n unstable_onRecordToolInteraction,\n onAddToolResult,\n onResumeToolCall,\n}: PartResourceProps): ClientOutput<\"part\"> => {\n const state = useMemo(\n () => ({ ...part, status: status as MessagePartStatus }),\n [part, status],\n );\n\n return {\n getState: () => state,\n addToolResult: (result) => {\n if (!onAddToolResult)\n throw new Error(\n \"Runtime does not support tool results (onAddToolResult is not set).\",\n );\n if (part.type !== \"tool-call\")\n throw new Error(\"Tried to add tool result on non-tool message part\");\n\n const response = ToolResponse.toResponse(result);\n onAddToolResult({\n messageId,\n toolName: part.toolName,\n toolCallId: part.toolCallId,\n result: response.result as ReadonlyJSONValue,\n isError: response.isError,\n ...(response.artifact !== undefined && { artifact: response.artifact }),\n ...(response.modelContent !== undefined && {\n modelContent: response.modelContent,\n }),\n });\n },\n resumeToolCall: (payload) => {\n if (!onResumeToolCall)\n throw new Error(\n \"Runtime does not support resuming tool calls (onResumeToolCall is not set).\",\n );\n if (part.type !== \"tool-call\")\n throw new Error(\"Tried to resume tool call on non-tool message part\");\n\n onResumeToolCall({ toolCallId: part.toolCallId, payload });\n void Promise.resolve()\n .then(() =>\n unstable_onRecordToolInteraction?.({\n messageId,\n toolCallId: part.toolCallId,\n interaction: createToolInteraction({\n type: \"human-response\",\n payload,\n }),\n }),\n )\n .catch(() => {});\n },\n respondToToolApproval: (response) => {\n if (!onRespondToToolApproval)\n throw new Error(\"Runtime does not support tool approvals.\");\n\n if (part.type !== \"tool-call\")\n throw new Error(\n \"Tried to respond to tool approval on non-tool message part\",\n );\n\n if (\n !part.approval ||\n part.approval.approved !== undefined ||\n part.approval.resolution !== undefined\n )\n throw new Error(\"Tool call has no pending approval\");\n\n const options = resolveToolApprovalResponse(part.approval, response);\n try {\n return Promise.resolve(onRespondToToolApproval(options));\n } catch (error) {\n return Promise.reject(error);\n }\n },\n unstable_recordInteraction: async (\n input: Unstable_ToolInteractionInput,\n ) => {\n if (!unstable_onRecordToolInteraction)\n throw new Error(\n \"Runtime does not support recording tool interactions.\",\n );\n if (part.type !== \"tool-call\")\n throw new Error(\"Tried to record interaction on non-tool message part\");\n\n await unstable_onRecordToolInteraction({\n messageId,\n toolCallId: part.toolCallId,\n interaction: createToolInteraction(input),\n });\n },\n };\n};\n\nconst PartResource = resource(usePartResource);\n\ntype AttachmentResourceProps = {\n attachment: Attachment;\n onRemove?: () => void | Promise<void>;\n};\n\n// Attachment Client - minimal implementation\nconst useAttachmentResource = ({\n attachment,\n onRemove,\n}: AttachmentResourceProps): ClientOutput<\"attachment\"> => {\n return {\n getState: () => attachment,\n remove: async () => {\n await onRemove?.();\n },\n };\n};\n\nconst AttachmentResource = resource(useAttachmentResource);\n\nconst EMPTY_MESSAGE_KEYS: readonly string[] = Object.freeze([]);\n\ntype ComposerClientResourceProps = {\n type: \"thread\" | \"edit\";\n canCancel: boolean;\n isRunning?: boolean;\n isSendDisabled?: boolean;\n onCancel?: () => void;\n onBeginEdit?: () => void;\n onSend?: (message: AppendMessage) => void;\n message?: ExternalThreadMessage;\n queue?: ExternalThreadQueueAdapter | undefined;\n attachmentAdapter?: AttachmentAdapter | undefined;\n /** `id|role` of each thread message, used to tell when a send has landed. */\n messageKeys?: readonly string[] | undefined;\n};\n\nconst useQueueItemClient = ({\n item,\n onMove,\n onRemove,\n}: {\n item: QueueItemState;\n onMove: (placement: QueuePlacement) => void;\n onRemove: () => void;\n}): ClientOutput<\"queueItem\"> => {\n return {\n getState: () => item,\n steer: () => onMove({ lane: \"steer\", insertAfter: null }),\n move: onMove,\n remove: onRemove,\n };\n};\n\nconst QueueItemClient = resource(useQueueItemClient);\n\n// State whose setter tracks the latest value in a ref, so imperative\n// call sequences (setText immediately followed by send) observe the write\n// before React re-renders — legacy composer parity.\nconst useLiveState = <T>(initial: T) => {\n const [state, setState] = useState(initial);\n const ref = useRef(state);\n const set = useCallback((next: T | ((prev: T) => T)) => {\n ref.current =\n typeof next === \"function\" ? (next as (prev: T) => T)(ref.current) : next;\n setState(ref.current);\n }, []);\n return [state, set, ref] as const;\n};\n\n// A try/catch inside the resource makes the React Compiler bail out of the\n// whole hook, so calls that can throw go through these module-scope helpers.\nconst removeAttachmentThroughAdapter = async (\n attachment: Attachment,\n attachmentAdapter: AttachmentAdapter | undefined,\n onError: (message: string) => void,\n) => {\n try {\n await attachmentAdapter?.remove(attachment);\n } catch (error) {\n onError(error instanceof Error ? error.message : String(error));\n throw error;\n }\n};\n\nconst dispatchSafely = (dispatch: () => void) => {\n try {\n dispatch();\n return undefined;\n } catch (error) {\n return { error };\n }\n};\n\n// A hidden thread keeps preparing its send, so only the owner's permanent\n// teardown aborts it, never an effect cleanup.\nconst abortOnDestroy = (\n destroySignal: AbortSignal | undefined,\n controller: AbortController,\n) => {\n if (!destroySignal) return () => {};\n const abort = () => controller.abort(destroySignal.reason);\n if (destroySignal.aborted) {\n abort();\n return () => {};\n }\n // A cancelled send can stay unsettled forever, so its abort unlinks too.\n const unlink = () => {\n destroySignal.removeEventListener(\"abort\", abort);\n controller.signal.removeEventListener(\"abort\", unlink);\n };\n destroySignal.addEventListener(\"abort\", abort, { once: true });\n controller.signal.addEventListener(\"abort\", unlink, { once: true });\n return unlink;\n};\n\ntype InTransitEntry = {\n readonly submission: ComposerSubmission;\n /** `id|role` of each thread message when the submission was dispatched. */\n readonly known: ReadonlySet<string>;\n};\n\nconst EMPTY_IN_TRANSIT: readonly InTransitEntry[] = Object.freeze([]);\n\n// Composer Client - minimal implementation\nconst useComposerClientResource = ({\n type,\n canCancel,\n isRunning = false,\n isSendDisabled = false,\n onCancel,\n onBeginEdit,\n onSend,\n message,\n queue,\n attachmentAdapter,\n messageKeys = EMPTY_MESSAGE_KEYS,\n}: ComposerClientResourceProps): ClientOutput<\"composer\"> => {\n const [isEditing, setIsEditing, isEditingRef] = useLiveState(\n type === \"thread\",\n );\n const [text, setText, textRef] = useLiveState(\"\");\n const [role, setRole, roleRef] = useLiveState<\n \"user\" | \"assistant\" | \"system\"\n >(\"user\");\n const [runConfig, setRunConfig, runConfigRef] = useLiveState<\n Record<string, unknown>\n >({});\n const [attachments, setAttachments, attachmentsRef] = useLiveState<\n readonly Attachment[]\n >([]);\n const [quote, setQuote, quoteRef] = useLiveState<\n { readonly text: string; readonly messageId: string } | undefined\n >(undefined);\n const attachmentAddOperations = useMemo(\n () => new AttachmentAddOperations(),\n [],\n );\n const attachmentSends = useMemo(() => new AttachmentSendOperations(), []);\n const destroySignal = useAssistantClientDestroySignal();\n const [submission, setSubmission, submissionRef] = useLiveState<\n ComposerSubmission | undefined\n >(undefined);\n const submissionSend = useRef<\n | {\n readonly options: ComposerSendOptions | undefined;\n readonly runConfig: Record<string, unknown>;\n readonly controller: AbortController;\n }\n | undefined\n >(undefined);\n const [inTransit, setInTransit] =\n useLiveState<readonly InTransitEntry[]>(EMPTY_IN_TRANSIT);\n const messageKeysRef = useRef(messageKeys);\n const sendGeneration = useRef(0);\n\n // A dispatched message stays on screen until the host shows it, so the two\n // never swap through an empty frame. Each new message of a send's role\n // stands in for the oldest send still waiting for one, and a shown send\n // leaves in the same render its message arrives in.\n const shown = useMemo(() => {\n const claimed = new Set<string>();\n const landed = new Set<InTransitEntry>();\n for (const entry of inTransit) {\n const key = messageKeys.find(\n (candidate) =>\n !entry.known.has(candidate) &&\n !claimed.has(candidate) &&\n candidate.endsWith(`|${entry.submission.role}`),\n );\n if (key === undefined) continue;\n claimed.add(key);\n landed.add(entry);\n }\n return { landed, claimed };\n }, [inTransit, messageKeys]);\n const inTransitSubmissions = useMemo(\n () =>\n inTransit\n .filter((entry) => !shown.landed.has(entry))\n .map((entry) => entry.submission),\n [inTransit, shown],\n );\n useEffect(() => {\n messageKeysRef.current = messageKeys;\n if (shown.landed.size === 0) return;\n // A message stands in for one send only, so the sends still waiting stop\n // counting it as new.\n setInTransit((prev) =>\n prev\n .filter((entry) => !shown.landed.has(entry))\n .map((entry) => ({\n ...entry,\n known: new Set([...entry.known, ...shown.claimed]),\n })),\n );\n }, [messageKeys, shown, setInTransit]);\n\n const updateFromMessage = () => {\n if (!message) return;\n const messageText = message.content\n .filter((part) => part.type === \"text\")\n .map((part) => part.text)\n .join(\"\\n\\n\");\n setText(messageText);\n setRole(message.role);\n // Re-seeding from the message abandons any removal begun in a previous\n // edit session, so the restored objects must shed their removal marks.\n const restored = message.attachments ?? [];\n for (const attachment of restored)\n attachmentSends.unmarkRemoved(attachment);\n setAttachments(restored);\n };\n\n const handleRemoveAttachment = useCallback(\n async (attachment: Attachment) => {\n attachmentAddOperations.cancel(attachment.id);\n attachmentSends.markRemoved(attachment);\n if (!isAttachmentComplete(attachment)) {\n await removeAttachmentThroughAdapter(\n attachment,\n attachmentAdapter,\n (message) =>\n setAttachments((prev) =>\n prev.map((candidate) =>\n candidate.id === attachment.id &&\n !isAttachmentComplete(candidate)\n ? attachmentSends.transfer(candidate, {\n ...candidate,\n status: { type: \"incomplete\", reason: \"error\", message },\n })\n : candidate,\n ),\n ),\n );\n }\n setAttachments((prev) => prev.filter((a) => a.id !== attachment.id));\n },\n [\n attachmentAddOperations,\n attachmentAdapter,\n attachmentSends,\n setAttachments,\n ],\n );\n\n // A submission is not delivered yet, so its attachments stay reachable by id\n // and can still be taken out of the message that is being sent.\n const handleRemoveSubmittedAttachment = useCallback(\n async (attachment: Attachment) => {\n attachmentAddOperations.cancel(attachment.id);\n attachmentSends.markRemoved(attachment);\n if (!isAttachmentComplete(attachment)) {\n // An attachment whose removal failed stays out of the message it was\n // taken from and shows why, so the removal can be tried again.\n await removeAttachmentThroughAdapter(\n attachment,\n attachmentAdapter,\n (message) =>\n setSubmission((prev) =>\n prev\n ? {\n ...prev,\n attachments: prev.attachments.map((candidate) => {\n if (\n candidate.id !== attachment.id ||\n isAttachmentComplete(candidate)\n )\n return candidate;\n const failed = attachmentSends.transfer(candidate, {\n ...candidate,\n status: {\n type: \"incomplete\",\n reason: \"error\",\n message,\n },\n });\n attachmentSends.markRemoved(failed);\n return failed;\n }),\n }\n : prev,\n ),\n );\n }\n setSubmission((prev) =>\n prev\n ? {\n ...prev,\n attachments: prev.attachments.filter(\n (a) => a.id !== attachment.id,\n ),\n }\n : prev,\n );\n },\n [\n attachmentAddOperations,\n attachmentAdapter,\n attachmentSends,\n setSubmission,\n ],\n );\n\n const attachmentClients = useClientLookup(\n attachments.map((attachment) =>\n withKey(\n attachment.id,\n AttachmentResource({\n attachment,\n onRemove: () => handleRemoveAttachment(attachment),\n }),\n ),\n ),\n );\n\n const submittedAttachmentClients = useClientLookup(\n (submission?.attachments ?? [])\n .filter((attachment) => !attachments.some((a) => a.id === attachment.id))\n .map((attachment) =>\n withKey(\n attachment.id,\n AttachmentResource({\n attachment,\n onRemove: () => handleRemoveSubmittedAttachment(attachment),\n }),\n ),\n ),\n );\n\n const removePendingAttachments = async (removed: readonly Attachment[]) => {\n if (!attachmentAdapter) return;\n await Promise.all(\n removed\n .filter((a) => a.status.type !== \"complete\")\n .map(async (a) => attachmentAdapter.remove(a)),\n );\n };\n\n const upsertAttachment = (attachment: Attachment) => {\n const current = submissionRef.current;\n if (current?.attachments.some((a) => a.id === attachment.id)) {\n setSubmission({\n ...current,\n attachments: current.attachments.map((a) =>\n a.id === attachment.id ? attachmentSends.transfer(a, attachment) : a,\n ),\n });\n return;\n }\n setAttachments((prev) => {\n const idx = prev.findIndex((a) => a.id === attachment.id);\n if (idx === -1) return [...prev, attachment];\n const next = [...prev];\n next[idx] = attachment;\n return next;\n });\n };\n\n const steerItems = queue?.steerItems ?? EMPTY_QUEUE_ITEMS;\n const laneItems = queue?.items ?? EMPTY_QUEUE_ITEMS;\n const queueItems = useMemo(\n () =>\n steerItems.length === 0\n ? laneItems\n : laneItems.length === 0\n ? steerItems\n : [...steerItems, ...laneItems],\n [steerItems, laneItems],\n );\n const queueItemClients = useClientLookup(\n queueItems.map((item) =>\n withKey(\n item.id,\n QueueItemClient({\n item,\n onMove: (placement) => queue?.move(item.id, placement),\n onRemove: () => queue?.remove(item.id),\n }),\n ),\n ),\n );\n\n const state = useMemo(() => {\n const isEmpty = !text.trim() && !attachments.length;\n return {\n text,\n role,\n attachments: attachmentClients.state,\n runConfig,\n isEditing,\n canCancel: canCancel || submission !== undefined,\n canSend:\n isEditing && !isEmpty && !isSendDisabled && submission === undefined,\n attachmentAccept: attachmentAdapter?.accept ?? \"*\",\n isEmpty,\n type,\n dictation: undefined,\n quote,\n queue: queueItems,\n submission,\n inTransit: inTransitSubmissions,\n };\n }, [\n text,\n role,\n attachmentClients.state,\n runConfig,\n isEditing,\n canCancel,\n isSendDisabled,\n submission,\n inTransitSubmissions,\n type,\n attachments.length,\n quote,\n queueItems,\n attachmentAdapter?.accept,\n ]);\n\n /** Ends the send being prepared, so nothing it started can dispatch it. */\n const endSubmission = () => {\n sendGeneration.current++;\n submissionSend.current = undefined;\n setSubmission(undefined);\n };\n\n // Takes a send's content back into the draft, ahead of anything written\n // since. An edit composer kept its draft, so it only takes back the state\n // the attachments came back in, such as the reason one failed.\n const returnToDraft = (content: ComposerSubmission) => {\n if (type !== \"thread\") {\n const returned = new Map(\n content.attachments.map((attachment) => [attachment.id, attachment]),\n );\n setAttachments((prev) =>\n prev.map((attachment) => returned.get(attachment.id) ?? attachment),\n );\n return;\n }\n const kept = content.attachments.filter(\n (attachment) => !attachmentSends.isRemoved(attachment),\n );\n setAttachments((prev) => [...kept, ...prev]);\n setText((prev) => [content.text, prev].filter(Boolean).join(\"\\n\"));\n setQuote((prev) => prev ?? content.quote);\n };\n\n const cancelSubmission = () => {\n const current = submissionRef.current;\n if (!current) return;\n submissionSend.current?.controller.abort();\n endSubmission();\n returnToDraft(current);\n };\n\n const discardSubmission = async () => {\n const current = submissionRef.current;\n if (!current) return;\n submissionSend.current?.controller.abort();\n endSubmission();\n // An attachment the draft still holds is removed along with the draft.\n const drafted = new Set(attachmentsRef.current.map((a) => a.id));\n await removePendingAttachments(\n current.attachments.filter((attachment) => !drafted.has(attachment.id)),\n );\n };\n\n const returnSubmissionToDraft = (\n sent: readonly Attachment[],\n settled: readonly PromiseSettledResult<CompleteAttachment>[],\n reason: unknown,\n ) => {\n const current = submissionRef.current;\n if (!current) return;\n const failures = new Map<string, unknown>();\n settled.forEach((result, index) => {\n if (result.status === \"rejected\")\n failures.set(sent[index]!.id, result.reason);\n });\n // Each attachment that could not be prepared carries its own reason, so\n // the draft it returns to shows which file needs another try.\n const attachments = current.attachments.map((attachment) => {\n if (!failures.has(attachment.id) || isAttachmentComplete(attachment))\n return attachment;\n const failure = failures.get(attachment.id);\n return attachmentSends.transfer(attachment, {\n ...attachment,\n status: {\n type: \"incomplete\",\n reason: \"error\",\n message: failure instanceof Error ? failure.message : String(failure),\n },\n });\n });\n endSubmission();\n returnToDraft({ ...current, attachments });\n console.error(\"Failed to send attachments\", reason);\n };\n\n const dispatchMessage = (\n current: ComposerSubmission,\n attachments: readonly CompleteAttachment[],\n context: {\n readonly options: ComposerSendOptions | undefined;\n readonly runConfig: Record<string, unknown>;\n },\n isSubmission: boolean,\n ) => {\n const composedMessage: AppendMessage = {\n role: current.role,\n content: current.text\n ? [{ type: \"text\" as const, text: current.text }]\n : [],\n attachments,\n createdAt: new Date(),\n parentId: null,\n sourceId: null,\n runConfig: context.runConfig,\n startRun: context.options?.startRun,\n metadata: {\n custom: { ...(current.quote ? { quote: current.quote } : {}) },\n },\n };\n const sent: ComposerSubmission = { ...current, attachments };\n // edit sends carry a sourceId contract; only thread sends queue\n const queued = queue && type === \"thread\";\n if (isSubmission) {\n submissionSend.current = undefined;\n setSubmission(undefined);\n }\n // An edit keeps its draft, whose copies of these attachments are the\n // delivered ones now, so clearing that draft must not remove their uploads.\n if (isSubmission && type !== \"thread\") {\n const delivered = new Map(\n attachments.map((attachment) => [attachment.id, attachment]),\n );\n setAttachments((prev) =>\n prev.map((attachment) => delivered.get(attachment.id) ?? attachment),\n );\n }\n // A queued message has its own place in the UI, so only a thread send\n // stays in transit until the host shows it.\n const entry: InTransitEntry | undefined =\n isSubmission && type === \"thread\" && !queued\n ? { submission: sent, known: new Set(messageKeysRef.current) }\n : undefined;\n if (entry) setInTransit((prev) => [...prev, entry]);\n\n const failure = dispatchSafely(() => {\n if (queued) {\n if (context.options?.steer ?? isRunning) queue.steer(composedMessage);\n else queue.enqueue(composedMessage);\n } else {\n onSend?.(composedMessage);\n }\n });\n if (failure) {\n console.error(\"[assistant-ui] Failed to send the message\", failure.error);\n if (entry)\n setInTransit((prev) => prev.filter((candidate) => candidate !== entry));\n returnToDraft(sent);\n return;\n }\n if (type === \"edit\") {\n attachmentAddOperations.cancelAll();\n setIsEditing(false);\n }\n };\n\n const prepareSubmission = async (generation: number) => {\n const context = submissionSend.current;\n if (!context) return;\n const { signal } = context.controller;\n if (signal.aborted) return;\n\n const uploads = (submissionRef.current?.attachments ?? []).flatMap(\n (attachment) => {\n const upload = attachmentAddOperations.whenSendable(attachment.id);\n return upload ? [upload] : [];\n },\n );\n if (uploads.length > 0) {\n // An attachment still uploading in `add()` cannot be finalized yet, so\n // the submission waits for its latest state.\n await Promise.all(uploads);\n if (generation !== sendGeneration.current || signal.aborted) return;\n }\n\n const current = submissionRef.current;\n if (!current) return;\n const sent = current.attachments.filter(\n (attachment) => !attachmentSends.isRemoved(attachment),\n );\n for (const attachment of sent)\n attachmentAddOperations.cancel(attachment.id);\n\n const settled = await Promise.allSettled(\n sent.map((attachment) =>\n attachmentSends.send(attachment, attachmentAdapter, signal),\n ),\n );\n if (generation !== sendGeneration.current || signal.aborted) return;\n\n const rejection = settled.find((result) => result.status === \"rejected\");\n if (rejection) {\n returnSubmissionToDraft(sent, settled, rejection.reason);\n return;\n }\n\n // An attachment removed mid-upload can't be cancelled, but it can still be\n // dropped from the outgoing message instead of silently being sent anyway.\n const finalAttachments = settled.flatMap((result, index) =>\n attachmentSends.isRemoved(sent[index]!) || result.status === \"rejected\"\n ? []\n : [result.value],\n );\n dispatchMessage(\n submissionRef.current ?? current,\n finalAttachments,\n context,\n true,\n );\n };\n\n return {\n getState: () => state,\n setText,\n setRole,\n setRunConfig,\n addAttachment: async (fileOrAttachment: File | CreateAttachment) => {\n if (attachmentAdapter) {\n const file = isCreateAttachment(fileOrAttachment)\n ? {\n name: fileOrAttachment.name,\n type: fileOrAttachment.contentType ?? \"\",\n }\n : { name: fileOrAttachment.name, type: fileOrAttachment.type };\n if (!fileMatchesAccept(file, attachmentAdapter.accept))\n throw new Error(\n `File type ${file.type || \"unknown\"} is not accepted. Accepted types: ${attachmentAdapter.accept}`,\n );\n }\n if (!isCreateAttachment(fileOrAttachment) && attachmentAdapter) {\n const operation = attachmentAddOperations.start();\n try {\n await drainAttachmentAdd(\n attachmentAdapter.add({ file: fileOrAttachment }),\n (attachment) => {\n if (!attachmentAddOperations.accept(operation, attachment))\n return false;\n upsertAttachment(attachment);\n return true;\n },\n );\n attachmentAddOperations.finish(operation);\n } catch (error) {\n attachmentAddOperations.finish(operation);\n if (!attachmentAddOperations.isCancelled(operation)) throw error;\n }\n } else if (!isCreateAttachment(fileOrAttachment)) {\n const newAttachment: Attachment = {\n id: generateId(),\n type: \"file\",\n name: fileOrAttachment.name,\n contentType: fileOrAttachment.type,\n file: fileOrAttachment,\n status: { type: \"complete\" },\n content: [],\n };\n setAttachments((prev) => [...prev, newAttachment]);\n } else {\n const newAttachment: Attachment = {\n id: fileOrAttachment.id ?? generateId(),\n type: fileOrAttachment.type ?? \"document\",\n name: fileOrAttachment.name,\n contentType: fileOrAttachment.contentType,\n content: fileOrAttachment.content,\n status: { type: \"complete\" },\n };\n setAttachments((prev) => [...prev, newAttachment]);\n }\n },\n clearAttachments: async () => {\n attachmentAddOperations.cancelAll();\n const removed = attachmentsRef.current;\n if (submissionRef.current) {\n for (const attachment of removed)\n attachmentSends.markRemoved(attachment);\n }\n setAttachments([]);\n await removePendingAttachments(removed);\n },\n attachment: (selector) => {\n if (\"id\" in selector) {\n const submitted = submission?.attachments.some(\n (attachment) => attachment.id === selector.id,\n );\n const inDraft = attachments.some(\n (attachment) => attachment.id === selector.id,\n );\n if (submitted && !inDraft)\n return submittedAttachmentClients.get({ key: selector.id });\n return attachmentClients.get({ key: selector.id });\n }\n return attachmentClients.get(selector);\n },\n reset: async () => {\n attachmentAddOperations.cancelAll();\n sendGeneration.current++;\n const discarded = discardSubmission();\n const removed = attachmentsRef.current;\n setText(\"\");\n setRole(\"user\");\n setRunConfig({});\n setAttachments([]);\n setQuote(undefined);\n await Promise.all([removePendingAttachments(removed), discarded]);\n },\n send: (opts?: ComposerSendOptions) => {\n // An attachment whose removal is still awaiting the adapter is excluded\n // up front, or a send started mid-removal would upload and dispatch it.\n const currentAttachments = attachmentsRef.current.filter(\n (attachment) => !attachmentSends.isRemoved(attachment),\n );\n const isEmpty = !textRef.current.trim() && !currentAttachments.length;\n if (!isEditingRef.current) throw new Error(\"Composer is not available\");\n if (isEmpty || isSendDisabled || submissionRef.current) return;\n\n const submitted: ComposerSubmission = {\n id: generateId(),\n role: roleRef.current,\n text: textRef.current,\n quote: quoteRef.current,\n attachments: currentAttachments,\n };\n const context = { options: opts, runConfig: runConfigRef.current };\n // Only a send whose attachments still need the adapter becomes a\n // submission; one with nothing left to prepare goes out right away, as\n // it always has, and never shows up as a row of its own.\n const complete = currentAttachments.filter(isAttachmentComplete);\n const ready = complete.length === currentAttachments.length;\n const controller = ready ? undefined : new AbortController();\n if (controller) {\n submissionSend.current = { ...context, controller };\n setSubmission(submitted);\n }\n if (type === \"thread\") {\n const detached = new Set(currentAttachments);\n setAttachments((prev) =>\n prev.filter((attachment) => !detached.has(attachment)),\n );\n setText(\"\");\n setQuote(undefined);\n }\n const generation = ++sendGeneration.current;\n if (!controller) {\n dispatchMessage(submitted, complete, context, false);\n return;\n }\n const release = abortOnDestroy(destroySignal, controller);\n void prepareSubmission(generation).finally(release);\n },\n cancel: () => {\n // Stopping takes a send still being prepared back into the draft and\n // still stops a run that is going, so the one control never loses either.\n if (type === \"thread\" && submissionRef.current) {\n cancelSubmission();\n if (canCancel) onCancel?.();\n return;\n }\n // An edit session ends here, so its in-flight adapter adds must not\n // land in a later session; the thread composer's cancel stops the run\n // and leaves the draft (and its pending adds) alone.\n if (type === \"edit\") {\n attachmentAddOperations.cancelAll();\n sendGeneration.current++;\n void discardSubmission();\n const removed = attachmentsRef.current;\n setAttachments([]);\n removePendingAttachments(removed).catch((error) => {\n console.error(\"Failed to remove cancelled edit attachments\", error);\n });\n }\n onCancel?.();\n if (type === \"edit\") setIsEditing(false);\n },\n beginEdit: () => {\n onBeginEdit?.();\n if (type === \"thread\") return;\n if (isEditingRef.current) throw new Error(\"Edit already in progress\");\n setIsEditing(true);\n updateFromMessage();\n },\n startDictation: () => {},\n stopDictation: () => {},\n setQuote,\n queueItem: (selector: { index: number } | { id: string }) => {\n if (\"id\" in selector) {\n return queueItemClients.get({ key: selector.id });\n }\n return queueItemClients.get(selector);\n },\n };\n};\n\nconst ComposerClientResource = resource(useComposerClientResource);\n\nconst createSpeechController = (\n notify: (speech: SpeechState | undefined) => void,\n) => {\n let session: { messageId: string; cancel: () => void } | undefined;\n\n const clear = () => {\n if (!session) return;\n session.cancel();\n session = undefined;\n notify(undefined);\n };\n\n return {\n speak: (\n adapter: SpeechSynthesisAdapter,\n message: ExternalThreadMessage,\n ) => {\n clear();\n\n const utterance = adapter.speak(getThreadMessageText(message));\n let unsub: (() => void) | undefined;\n unsub = utterance.subscribe(() => {\n if (utterance.status.type === \"ended\") {\n unsub?.();\n session = undefined;\n notify(undefined);\n } else {\n notify({ messageId: message.id, status: utterance.status });\n }\n });\n\n if (utterance.status.type === \"ended\") {\n unsub();\n notify(undefined);\n return;\n }\n\n session = {\n messageId: message.id,\n cancel: () => {\n unsub!();\n utterance.cancel();\n },\n };\n notify({ messageId: message.id, status: utterance.status });\n },\n stop: () => {\n if (!session) throw new Error(\"No message is being spoken\");\n clear();\n },\n stopMessage: (messageId: string) => {\n if (session?.messageId !== messageId)\n throw new Error(\"Message is not being spoken\");\n clear();\n },\n dispose: clear,\n };\n};\n\nconst dedupeMessagesById = (messages: readonly ExternalThreadMessage[]) => {\n const seenIds = new Set<string>();\n const deduped: ExternalThreadMessage[] = [];\n for (let i = messages.length - 1; i >= 0; i--) {\n const message = messages[i]!;\n if (seenIds.has(message.id)) {\n console.warn(\n `ExternalThread: duplicate message id \"${message.id}\" in the provided messages array; keeping the last occurrence.`,\n );\n continue;\n }\n seenIds.add(message.id);\n deduped.push(message);\n }\n return deduped.length === messages.length ? messages : deduped.reverse();\n};\n\n// External Thread Client\nconst useExternalThread = ({\n messages: messagesProp,\n isRunning = false,\n isLoading = false,\n state: threadState,\n extras,\n isSendDisabled = false,\n onNew,\n onEdit,\n onReload,\n onStartRun,\n onCancel,\n onResume,\n onRefetchThread,\n onAddToolResult,\n onResumeToolCall,\n unstable_onRecordToolInteraction,\n onLoadExternalState,\n attachmentAdapter,\n feedbackAdapter,\n speechAdapter,\n queue,\n branches,\n onRespondToToolApproval,\n}: ExternalThreadProps): ClientOutput<\"thread\"> => {\n const messages = useMemo(\n () => dedupeMessagesById(messagesProp),\n [messagesProp],\n );\n\n // Local entries are optimistic: they apply only while the message's\n // external submittedFeedback still equals the value seen at click time.\n const [submittedFeedback, setSubmittedFeedback] = useState<\n Record<\n string,\n {\n feedback: { type: \"positive\" | \"negative\"; comment?: string };\n external:\n | {\n readonly type: \"positive\" | \"negative\";\n readonly comment?: string;\n }\n | undefined;\n }\n >\n >({});\n\n const feedbackFor = (msg: ExternalThreadMessage) => {\n const entry = submittedFeedback[msg.id];\n const external = msg.metadata.submittedFeedback;\n return entry &&\n external?.type === entry.external?.type &&\n external?.comment === entry.external?.comment\n ? entry.feedback\n : undefined;\n };\n\n // `messages` changes identity on every streamed token, and this body fans out\n // to one client per message, so pruning during render would re-run the whole\n // fan-out per token. The effect bails out on an unchanged map instead.\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setSubmittedFeedback((prev) => {\n const live = Object.entries(prev).filter(([id, entry]) => {\n const msg = messages.find((m) => m.id === id);\n return (\n !!msg &&\n msg.metadata.submittedFeedback?.type === entry.external?.type &&\n msg.metadata.submittedFeedback?.comment === entry.external?.comment\n );\n });\n return live.length === Object.keys(prev).length\n ? prev\n : Object.fromEntries(live);\n });\n }, [messages]);\n\n const handleSubmitFeedback = (\n message: ExternalThreadMessage,\n feedback: { type: \"positive\" | \"negative\"; comment?: string },\n ) => {\n const comment = feedback.comment?.trim();\n const submittedFeedback = {\n type: feedback.type,\n ...(comment ? { comment } : undefined),\n };\n feedbackAdapter?.submit({ message, ...submittedFeedback });\n\n if (message.role === \"assistant\") {\n setSubmittedFeedback((prev) => ({\n ...prev,\n [message.id]: {\n feedback: submittedFeedback,\n external: message.metadata.submittedFeedback,\n },\n }));\n }\n };\n\n const [speechState, setSpeech] = useState<SpeechState | undefined>(undefined);\n const [speechController] = useState(() => createSpeechController(setSpeech));\n\n const hasSpeechAdapter = !!speechAdapter;\n const speech = hasSpeechAdapter ? speechState : undefined;\n useEffect(() => {\n if (!hasSpeechAdapter) speechController.dispose();\n }, [hasSpeechAdapter, speechController]);\n\n useEffect(() => () => speechController.dispose(), [speechController]);\n\n const handleSpeak = (message: ExternalThreadMessage) => {\n if (!speechAdapter) throw new Error(\"Speech adapter not configured\");\n speechController.speak(speechAdapter, message);\n };\n\n const handleReload = (messageId: string) => {\n const messageIndex = messages.findIndex((m) => m.id === messageId);\n if (messageIndex === -1) return;\n\n const parentId = messageIndex > 0 ? messages[messageIndex - 1]!.id : null;\n onReload?.(parentId);\n };\n\n const messageKeys = useMemo(\n () => messages.map((message) => `${message.id}|${message.role}`),\n [messages],\n );\n\n const handleCancelRun = () => {\n // Nothing is aborted without a handler, so pausing the queue would hold\n // the pending items against a run that keeps going.\n if (!onCancel) return;\n\n // Before the run is aborted, so the settle it produces keeps the pending\n // items instead of dispatching the next one at the moment the user\n // stopped.\n queue?.__internal_notifyCancelled?.();\n onCancel();\n };\n\n const handleSendNew = (message: AppendMessage) => {\n // The composer does not know the thread; stamp the current head as the\n // parent (legacy composer parity).\n onNew?.({ ...message, parentId: messages.at(-1)?.id ?? null });\n };\n\n const headId = messages.at(-1)?.id ?? null;\n const hasCancel = !!onCancel;\n const hasRefetchThread = !!onRefetchThread;\n const composerQueue = useMemo(\n (): ExternalThreadQueueAdapter | undefined =>\n queue && {\n ...queue,\n enqueue: (message) =>\n queue.enqueue({ ...message, parentId: message.parentId ?? headId }),\n steer: (message) =>\n queue.steer({ ...message, parentId: message.parentId ?? headId }),\n },\n [queue, headId],\n );\n\n const composerClient = useClientResource(\n ComposerClientResource({\n type: \"thread\",\n canCancel: isRunning && hasCancel,\n isRunning,\n isSendDisabled,\n onCancel: handleCancelRun,\n onSend: handleSendNew,\n queue: composerQueue,\n attachmentAdapter,\n messageKeys,\n }),\n );\n const submission = composerClient.state.submission;\n const inTransit = composerClient.state.inTransit;\n // Messages the composer sent that the host does not show yet render after\n // the thread's own, oldest first, so a send never leaves the conversation.\n const pending = useMemo(\n () => [...(inTransit ?? []), ...(submission ? [submission] : [])],\n [inTransit, submission],\n );\n const hasPending = pending.length > 0;\n const messageClients = useClientLookup(\n messages.map((msg, index) => {\n const props: MessageClientProps = {\n message: msg,\n index,\n isLast: index === messages.length - 1 && !hasPending,\n parentId: index > 0 ? messages[index - 1]!.id : null,\n onReload: () => handleReload(msg.id),\n queue,\n branches,\n onRespondToToolApproval,\n unstable_onRecordToolInteraction,\n onAddToolResult,\n onResumeToolCall,\n attachmentAdapter,\n submittedFeedback: feedbackFor(msg),\n onSubmitFeedback: (feedback) => handleSubmitFeedback(msg, feedback),\n speech: speech?.messageId === msg.id ? speech : undefined,\n onSpeak: () => handleSpeak(msg),\n onStopSpeaking: () => speechController.stopMessage(msg.id),\n };\n if (onEdit) props.onEdit = onEdit;\n return withKey(msg.id, MessageClient(props));\n }),\n );\n\n const pendingMessages = useMemo(\n () => pending.map(submissionThreadMessage),\n [pending],\n );\n const pendingClients = useClientLookup(\n pending.map((row, index) =>\n withKey(\n row.id,\n ThreadMessageClient({\n message: pendingMessages[index]!,\n submission: row,\n index: messages.length + index,\n isLast: index === pending.length - 1,\n }),\n [pendingMessages[index], row, messages.length, index, pending.length],\n ),\n ),\n );\n\n const taskDeriver = useMemo(() => createTaskDeriver(), []);\n const tasks = useMemo(() => taskDeriver(messages), [taskDeriver, messages]);\n const taskClients = useClientLookup(\n tasks.map((task) =>\n withKey(getTaskKey(task), TaskClient({ task }), [task]),\n ),\n );\n\n const suggestionsClient = useClientResource(\n ThreadSuggestions(EMPTY_SUGGESTIONS),\n );\n\n const hasQueue = !!queue;\n const hasBranches = !!branches;\n const hasEdit = !!onEdit;\n const hasReload = !!onReload;\n const hasAttachments = !!attachmentAdapter;\n const hasFeedback = !!feedbackAdapter;\n const hasSpeech = !!speechAdapter;\n const state = useMemo(() => {\n const messageStates =\n pendingClients.state.length === 0\n ? messageClients.state\n : [...messageClients.state, ...pendingClients.state];\n\n return {\n isEmpty: messageStates.length === 0 && !isLoading,\n isDisabled: false,\n isLoading,\n isRunning,\n capabilities: {\n edit: hasEdit,\n delete: false,\n reload: hasReload,\n refetchThread: hasRefetchThread,\n cancel: hasCancel,\n speech: hasSpeech,\n attachments: hasAttachments,\n feedback: hasFeedback,\n voice: false,\n switchToBranch: hasBranches,\n switchBranchDuringRun: false,\n unstable_copy: false,\n dictation: false,\n queue: hasQueue,\n },\n messages: messageStates,\n tasks,\n state: threadState ?? {},\n suggestions: EMPTY_SUGGESTIONS,\n extras,\n speech,\n voice: undefined,\n composer: composerClient.state,\n };\n }, [\n isRunning,\n isLoading,\n threadState,\n extras,\n hasQueue,\n hasBranches,\n hasEdit,\n hasReload,\n hasCancel,\n hasRefetchThread,\n hasAttachments,\n hasFeedback,\n hasSpeech,\n speech,\n messageClients.state,\n pendingClients.state,\n composerClient.state,\n tasks,\n ]);\n\n return {\n getState: () => state,\n composer: () => composerClient.methods,\n suggestions: () => suggestionsClient.methods,\n task: (selector) => {\n if (\"id\" in selector) {\n const task = tasks.find((candidate) => candidate.id === selector.id);\n return taskClients.get({ key: task ? getTaskKey(task) : selector.id });\n }\n return taskClients.get(selector);\n },\n append: (message) => {\n const appendMessage: AppendMessage =\n typeof message === \"string\"\n ? {\n createdAt: new Date(),\n parentId: messages.at(-1)?.id ?? null,\n sourceId: null,\n runConfig: {},\n role: \"user\",\n content: [{ type: \"text\", text: message }],\n attachments: [],\n metadata: { custom: {} },\n }\n : {\n createdAt: message.createdAt ?? new Date(),\n parentId:\n message.parentId === undefined\n ? (messages.at(-1)?.id ?? null)\n : message.parentId,\n sourceId: message.sourceId ?? null,\n role: message.role ?? \"user\",\n content: message.content,\n attachments: message.attachments ?? [],\n metadata: message.metadata ?? { custom: {} },\n runConfig: message.runConfig ?? {},\n startRun: message.startRun,\n };\n if (queue) {\n queue.enqueue(appendMessage);\n } else {\n onNew?.(appendMessage);\n }\n },\n deleteMessage: () => {},\n startRun: () => {\n onStartRun?.();\n },\n resumeRun: () => {\n if (!onResume)\n throw new Error(\n \"Runtime does not support resuming runs (onResume is not set).\",\n );\n onResume();\n },\n cancelRun: handleCancelRun,\n ...(onRefetchThread && { unstable_refetchThread: onRefetchThread }),\n importExternalState: (state: unknown) => {\n if (!onLoadExternalState)\n throw new Error(\n \"Runtime does not support importing external states (onLoadExternalState is not set).\",\n );\n onLoadExternalState(state);\n },\n getModelContext: () => ({ tools: {}, config: {} }),\n export: () => ({ messages: [] }),\n import: () => {},\n reset: () => {},\n message: (selector) => {\n if (\"id\" in selector) {\n if (pending.some((row) => row.id === selector.id))\n return pendingClients.get({ key: selector.id });\n return messageClients.get({ key: selector.id });\n }\n if (selector.index >= messageClients.state.length)\n return pendingClients.get({\n index: selector.index - messageClients.state.length,\n });\n return messageClients.get(selector);\n },\n stopSpeaking: speechController.stop,\n connectVoice: () => {},\n disconnectVoice: () => {},\n getVoiceVolume: () => 0,\n subscribeVoiceVolume: () => () => {},\n muteVoice: () => {},\n unmuteVoice: () => {},\n };\n};\n\nexport const ExternalThread = resource(useExternalThread);\n\nattachTransformScopes(useExternalThread, (scopes, parent) => {\n if (!scopes.threads && parent.threads.source === null) {\n const threadElement = scopes.thread as ClientElement<\"thread\">;\n scopes.threads = SingleThreadList({ thread: threadElement });\n // scopes mount in key order; re-declare thread after the threads source it resolves from\n delete scopes.thread;\n scopes.thread = Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads.thread(\"main\"),\n });\n }\n\n if (!scopes.threadListItem && parent.threadListItem.source === null) {\n scopes.threadListItem = Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads.item(\"main\"),\n });\n }\n\n scopes.composer ??= Derived({\n source: \"thread\",\n query: {},\n get: (aui) => aui.thread.composer(),\n });\n\n if (!scopes.modelContext && parent.modelContext.source === null) {\n scopes.modelContext = ModelContext();\n }\n if (!scopes.tools && parent.tools.source === null) {\n scopes.tools = Tools({});\n }\n if (!scopes.dataRenderers && parent.dataRenderers.source === null) {\n scopes.dataRenderers = DataRenderers();\n }\n if (!scopes.suggestions && parent.suggestions.source === null) {\n scopes.suggestions = Derived({\n source: \"thread\",\n query: {},\n get: (aui) => aui.thread.suggestions(),\n });\n }\n});\n"],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- import { ClientOutput } from "@assistant-ui/store";
2
- //#region src/store/clients/model-context-client.d.ts
1
+ import type { ClientOutput } from "@assistant-ui/store";
3
2
  export declare const ModelContext: import("@assistant-ui/tap").Resource<ClientOutput<"modelContext">, []>;
4
- //#endregion
5
3
  //# sourceMappingURL=model-context-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-context-client.d.ts","names":[],"sources":["../../../src/store/clients/model-context-client.ts"],"mappings":";;qBAwDa,0CAAY,SAAA"}
1
+ {"version":3,"file":"model-context-client.d.ts","sourceRoot":"","sources":["../../../src/store/clients/model-context-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAsDxD,eAAO,MAAM,YAAY,wEAA4B,CAAC"}
@@ -1,7 +1,5 @@
1
- import { ClientOutput } from "@assistant-ui/store";
2
- //#region src/store/clients/no-op-composer-client.d.ts
1
+ import type { ClientOutput } from "@assistant-ui/store";
3
2
  export declare const NoOpComposerClient: import("@assistant-ui/tap").Resource<ClientOutput<"composer">, [{
4
- type: "edit" | "thread";
3
+ type: "edit" | "thread";
5
4
  }]>;
6
- //#endregion
7
5
  //# sourceMappingURL=no-op-composer-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-op-composer-client.d.ts","names":[],"sources":["../../../src/store/clients/no-op-composer-client.ts"],"mappings":";;qBA2Ea,gDAAkB,SAAA;EAnEvB"}
1
+ {"version":3,"file":"no-op-composer-client.d.ts","sourceRoot":"","sources":["../../../src/store/clients/no-op-composer-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA2ExD,eAAO,MAAM,kBAAkB;UArEvB,MAAM,GAAG,QAAQ;GAqEwC,CAAC"}
@@ -35,7 +35,9 @@ const useNoOpComposerClient = (t0) => {
35
35
  type,
36
36
  dictation: void 0,
37
37
  quote: void 0,
38
- queue: t3
38
+ queue: t3,
39
+ submission: void 0,
40
+ inTransit: void 0
39
41
  };
40
42
  $[3] = type;
41
43
  $[4] = t4;
@@ -1 +1 @@
1
- {"version":3,"file":"no-op-composer-client.js","names":["useMemo","resource","ClientOutput","ComposerState","useNoOpComposerClient","t0","$","_c","type","t1","Symbol","for","t2","t3","t4","isEditing","isEmpty","text","attachmentAccept","attachments","role","runConfig","canCancel","canSend","dictation","undefined","quote","queue","state","t5","getState","setText","_temp","setRole","_temp2","setRunConfig","_temp3","addAttachment","_temp4","clearAttachments","_temp5","attachment","_temp6","reset","_temp7","send","_temp8","cancel","_temp9","startDictation","_temp0","stopDictation","_temp1","beginEdit","_temp10","setQuote","_temp11","queueItem","_temp12","NoOpComposerClient","Error"],"sources":["../../../src/store/clients/no-op-composer-client.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport type { ComposerState } from \"../scopes/composer\";\n\nconst useNoOpComposerClient = ({\n type,\n}: {\n type: \"edit\" | \"thread\";\n}): ClientOutput<\"composer\"> => {\n const state = useMemo<ComposerState>(() => {\n return {\n isEditing: false,\n isEmpty: true,\n text: \"\",\n attachmentAccept: \"*\",\n attachments: [],\n role: \"user\",\n runConfig: {},\n canCancel: false,\n canSend: false,\n type: type,\n dictation: undefined,\n quote: undefined,\n queue: [],\n };\n }, [type]);\n\n return {\n getState: () => state,\n setText: () => {\n throw new Error(\"Not supported\");\n },\n setRole: () => {\n throw new Error(\"Not supported\");\n },\n setRunConfig: () => {\n throw new Error(\"Not supported\");\n },\n addAttachment: () => {\n throw new Error(\"Not supported\");\n },\n clearAttachments: () => {\n throw new Error(\"Not supported\");\n },\n attachment: () => {\n throw new Error(\"Not supported\");\n },\n reset: () => {\n throw new Error(\"Not supported\");\n },\n send: () => {\n throw new Error(\"Not supported\");\n },\n cancel: () => {\n throw new Error(\"Not supported\");\n },\n startDictation: () => {\n throw new Error(\"Not supported\");\n },\n stopDictation: () => {\n throw new Error(\"Not supported\");\n },\n beginEdit: () => {\n throw new Error(\"Not supported\");\n },\n setQuote: () => {\n throw new Error(\"Not supported\");\n },\n queueItem: () => {\n throw new Error(\"Not supported\");\n },\n };\n};\n\nexport const NoOpComposerClient = resource(useNoOpComposerClient);\n"],"mappings":";;;;AAKA,MAAMI,yBAAwBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAC,SAAAH;CAI9B,IAAAI;CAAA,IAAAH,EAAA,OAAAI,OAAAC,IAAA,2BAAA,GAAA;EAOkBF,KAAA,CAAA;EAAEH,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,IAAAM;CAAA,IAAAN,EAAA,OAAAI,OAAAC,IAAA,2BAAA,GAAA;EAEJC,KAAA,CAAC;EAACN,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAO;CAAA,IAAAP,EAAA,OAAAI,OAAAC,IAAA,2BAAA,GAAA;EAMNE,KAAA,CAAA;EAAEP,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,OAAAE,MAAA;EAbJM,KAAA;GAAAC,WACM;GAAKC,SACP;GAAIC,MACP;GAAEC,kBACU;GAAGC,aACRV;GAAEW,MACT;GAAMC,WACDT;GAAEU,WACF;GAAKC,SACP;GAAKf;GAAAgB,WAEHC,KAAAA;GAASC,OACbD,KAAAA;GAASE,OACTd;EACT;EAACP,EAAA,KAAAE;EAAAF,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAfH,MAAAsB,QACEd;CAeS,IAAAe;CAAA,IAAAvB,EAAA,OAAAsB,OAAA;EAEJC,KAAA;GAAAC,gBACWF;GAAKG,SACZC;GAERC,SACQC;GAERC,cACaC;GAEbC,eACcC;GAEdC,kBACiBC;GAEjBC,YACWC;GAEXC,OACMC;GAENC,MACKC;GAELC,QACOC;GAEPC,gBACeC;GAEfC,eACcC;GAEdC,WACUC;GAEVC,UACSC;GAETC,WACUC;EAGb;EAACpD,EAAA,KAAAsB;EAAAtB,EAAA,KAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAAA,OA5CMuB;AA4CN;AAGH,MAAa8B,qBAAqB1D,SAASG,qBAAqB;AAtElC,SAAA4B,QAAA;CA0BxB,MAAM,IAAI4B,MAAM,eAAe;AAAE;AA1BT,SAAA1B,SAAA;CA6BxB,MAAM,IAAI0B,MAAM,eAAe;AAAE;AA7BT,SAAAxB,SAAA;CAgCxB,MAAM,IAAIwB,MAAM,eAAe;AAAE;AAhCT,SAAAtB,SAAA;CAmCxB,MAAM,IAAIsB,MAAM,eAAe;AAAE;AAnCT,SAAApB,SAAA;CAsCxB,MAAM,IAAIoB,MAAM,eAAe;AAAE;AAtCT,SAAAlB,SAAA;CAyCxB,MAAM,IAAIkB,MAAM,eAAe;AAAE;AAzCT,SAAAhB,SAAA;CA4CxB,MAAM,IAAIgB,MAAM,eAAe;AAAE;AA5CT,SAAAd,SAAA;CA+CxB,MAAM,IAAIc,MAAM,eAAe;AAAE;AA/CT,SAAAZ,SAAA;CAkDxB,MAAM,IAAIY,MAAM,eAAe;AAAE;AAlDT,SAAAV,SAAA;CAqDxB,MAAM,IAAIU,MAAM,eAAe;AAAE;AArDT,SAAAR,SAAA;CAwDxB,MAAM,IAAIQ,MAAM,eAAe;AAAE;AAxDT,SAAAN,UAAA;CA2DxB,MAAM,IAAIM,MAAM,eAAe;AAAE;AA3DT,SAAAJ,UAAA;CA8DxB,MAAM,IAAII,MAAM,eAAe;AAAE;AA9DT,SAAAF,UAAA;CAiExB,MAAM,IAAIE,MAAM,eAAe;AAAE"}
1
+ {"version":3,"file":"no-op-composer-client.js","names":["useMemo","resource","ClientOutput","ComposerState","useNoOpComposerClient","t0","$","_c","type","t1","Symbol","for","t2","t3","t4","isEditing","isEmpty","text","attachmentAccept","attachments","role","runConfig","canCancel","canSend","dictation","undefined","quote","queue","submission","inTransit","state","t5","getState","setText","_temp","setRole","_temp2","setRunConfig","_temp3","addAttachment","_temp4","clearAttachments","_temp5","attachment","_temp6","reset","_temp7","send","_temp8","cancel","_temp9","startDictation","_temp0","stopDictation","_temp1","beginEdit","_temp10","setQuote","_temp11","queueItem","_temp12","NoOpComposerClient","Error"],"sources":["../../../src/store/clients/no-op-composer-client.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport type { ComposerState } from \"../scopes/composer\";\n\nconst useNoOpComposerClient = ({\n type,\n}: {\n type: \"edit\" | \"thread\";\n}): ClientOutput<\"composer\"> => {\n const state = useMemo<ComposerState>(() => {\n return {\n isEditing: false,\n isEmpty: true,\n text: \"\",\n attachmentAccept: \"*\",\n attachments: [],\n role: \"user\",\n runConfig: {},\n canCancel: false,\n canSend: false,\n type: type,\n dictation: undefined,\n quote: undefined,\n queue: [],\n submission: undefined,\n inTransit: undefined,\n };\n }, [type]);\n\n return {\n getState: () => state,\n setText: () => {\n throw new Error(\"Not supported\");\n },\n setRole: () => {\n throw new Error(\"Not supported\");\n },\n setRunConfig: () => {\n throw new Error(\"Not supported\");\n },\n addAttachment: () => {\n throw new Error(\"Not supported\");\n },\n clearAttachments: () => {\n throw new Error(\"Not supported\");\n },\n attachment: () => {\n throw new Error(\"Not supported\");\n },\n reset: () => {\n throw new Error(\"Not supported\");\n },\n send: () => {\n throw new Error(\"Not supported\");\n },\n cancel: () => {\n throw new Error(\"Not supported\");\n },\n startDictation: () => {\n throw new Error(\"Not supported\");\n },\n stopDictation: () => {\n throw new Error(\"Not supported\");\n },\n beginEdit: () => {\n throw new Error(\"Not supported\");\n },\n setQuote: () => {\n throw new Error(\"Not supported\");\n },\n queueItem: () => {\n throw new Error(\"Not supported\");\n },\n };\n};\n\nexport const NoOpComposerClient = resource(useNoOpComposerClient);\n"],"mappings":";;;;AAKA,MAAMI,yBAAwBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAC,SAAAH;CAI9B,IAAAI;CAAA,IAAAH,EAAA,OAAAI,OAAAC,IAAA,2BAAA,GAAA;EAOkBF,KAAA,CAAA;EAAEH,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,IAAAM;CAAA,IAAAN,EAAA,OAAAI,OAAAC,IAAA,2BAAA,GAAA;EAEJC,KAAA,CAAC;EAACN,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAO;CAAA,IAAAP,EAAA,OAAAI,OAAAC,IAAA,2BAAA,GAAA;EAMNE,KAAA,CAAA;EAAEP,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,OAAAE,MAAA;EAbJM,KAAA;GAAAC,WACM;GAAKC,SACP;GAAIC,MACP;GAAEC,kBACU;GAAGC,aACRV;GAAEW,MACT;GAAMC,WACDT;GAAEU,WACF;GAAKC,SACP;GAAKf;GAAAgB,WAEHC,KAAAA;GAASC,OACbD,KAAAA;GAASE,OACTd;GAAEe,YACGH,KAAAA;GAASI,WACVJ,KAAAA;EACb;EAACnB,EAAA,KAAAE;EAAAF,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAjBH,MAAAwB,QACEhB;CAiBS,IAAAiB;CAAA,IAAAzB,EAAA,OAAAwB,OAAA;EAEJC,KAAA;GAAAC,gBACWF;GAAKG,SACZC;GAERC,SACQC;GAERC,cACaC;GAEbC,eACcC;GAEdC,kBACiBC;GAEjBC,YACWC;GAEXC,OACMC;GAENC,MACKC;GAELC,QACOC;GAEPC,gBACeC;GAEfC,eACcC;GAEdC,WACUC;GAEVC,UACSC;GAETC,WACUC;EAGb;EAACtD,EAAA,KAAAwB;EAAAxB,EAAA,KAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAAA,OA5CMyB;AA4CN;AAGH,MAAa8B,qBAAqB5D,SAASG,qBAAqB;AAxElC,SAAA8B,QAAA;CA4BxB,MAAM,IAAI4B,MAAM,eAAe;AAAE;AA5BT,SAAA1B,SAAA;CA+BxB,MAAM,IAAI0B,MAAM,eAAe;AAAE;AA/BT,SAAAxB,SAAA;CAkCxB,MAAM,IAAIwB,MAAM,eAAe;AAAE;AAlCT,SAAAtB,SAAA;CAqCxB,MAAM,IAAIsB,MAAM,eAAe;AAAE;AArCT,SAAApB,SAAA;CAwCxB,MAAM,IAAIoB,MAAM,eAAe;AAAE;AAxCT,SAAAlB,SAAA;CA2CxB,MAAM,IAAIkB,MAAM,eAAe;AAAE;AA3CT,SAAAhB,SAAA;CA8CxB,MAAM,IAAIgB,MAAM,eAAe;AAAE;AA9CT,SAAAd,SAAA;CAiDxB,MAAM,IAAIc,MAAM,eAAe;AAAE;AAjDT,SAAAZ,SAAA;CAoDxB,MAAM,IAAIY,MAAM,eAAe;AAAE;AApDT,SAAAV,SAAA;CAuDxB,MAAM,IAAIU,MAAM,eAAe;AAAE;AAvDT,SAAAR,SAAA;CA0DxB,MAAM,IAAIQ,MAAM,eAAe;AAAE;AA1DT,SAAAN,UAAA;CA6DxB,MAAM,IAAIM,MAAM,eAAe;AAAE;AA7DT,SAAAJ,UAAA;CAgExB,MAAM,IAAII,MAAM,eAAe;AAAE;AAhET,SAAAF,UAAA;CAmExB,MAAM,IAAIE,MAAM,eAAe;AAAE"}
@@ -1,5 +1,3 @@
1
- import { AssistantClient, ScopesConfig } from "@assistant-ui/store";
2
- //#region src/store/clients/runtime-adapter.d.ts
1
+ import type { AssistantClient, ScopesConfig } from "@assistant-ui/store";
3
2
  export declare const baseRuntimeAdapterTransformScopes: (scopes: ScopesConfig, parent: AssistantClient) => void;
4
- //#endregion
5
3
  //# sourceMappingURL=runtime-adapter.d.ts.map