@assistant-ui/core 0.3.13 → 0.3.14

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 (396) hide show
  1. package/dist/adapters/speech.d.ts.map +1 -1
  2. package/dist/adapters/speech.js +9 -15
  3. package/dist/adapters/speech.js.map +1 -1
  4. package/dist/adapters/thread-history.d.ts +2 -0
  5. package/dist/adapters/thread-history.d.ts.map +1 -1
  6. package/dist/adapters/voice.d.ts.map +1 -1
  7. package/dist/adapters/voice.js +27 -15
  8. package/dist/adapters/voice.js.map +1 -1
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/internal.d.ts +1 -1
  12. package/dist/internal.js +6 -6
  13. package/dist/model-context/frame/host.d.ts.map +1 -1
  14. package/dist/model-context/frame/host.js +2 -1
  15. package/dist/model-context/frame/host.js.map +1 -1
  16. package/dist/model-context/registry.d.ts.map +1 -1
  17. package/dist/model-context/registry.js +16 -4
  18. package/dist/model-context/registry.js.map +1 -1
  19. package/dist/react/RuntimeAdapter.d.ts +8 -1
  20. package/dist/react/RuntimeAdapter.d.ts.map +1 -1
  21. package/dist/react/RuntimeAdapter.js +23 -18
  22. package/dist/react/RuntimeAdapter.js.map +1 -1
  23. package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
  24. package/dist/react/adapters/LocalStorageThreadListAdapter.js +28 -12
  25. package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
  26. package/dist/react/client/AdaptedRemoteThread.d.ts +11 -0
  27. package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -0
  28. package/dist/react/client/AdaptedRemoteThread.js +27 -0
  29. package/dist/react/client/AdaptedRemoteThread.js.map +1 -0
  30. package/dist/react/client/InMemoryThreadList.d.ts +19 -0
  31. package/dist/react/client/InMemoryThreadList.d.ts.map +1 -0
  32. package/dist/react/client/InMemoryThreadList.js +418 -0
  33. package/dist/react/client/InMemoryThreadList.js.map +1 -0
  34. package/dist/react/client/Interactables.d.ts.map +1 -1
  35. package/dist/react/client/Interactables.js +159 -102
  36. package/dist/react/client/Interactables.js.map +1 -1
  37. package/dist/react/client/RemoteThreadList.d.ts +34 -0
  38. package/dist/react/client/RemoteThreadList.d.ts.map +1 -0
  39. package/dist/react/client/RemoteThreadList.js +826 -0
  40. package/dist/react/client/RemoteThreadList.js.map +1 -0
  41. package/dist/react/client/Tools.d.ts.map +1 -1
  42. package/dist/react/client/Tools.js +38 -27
  43. package/dist/react/client/Tools.js.map +1 -1
  44. package/dist/react/index.d.ts +7 -2
  45. package/dist/react/index.js +5 -2
  46. package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
  47. package/dist/react/interactables-legacy/Interactables.js +145 -110
  48. package/dist/react/interactables-legacy/Interactables.js.map +1 -1
  49. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  50. package/dist/react/primitive-hooks/useActionBarCopy.js +13 -18
  51. package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
  52. package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
  53. package/dist/react/primitive-hooks/useActionBarEdit.js +2 -4
  54. package/dist/react/primitive-hooks/useActionBarEdit.js.map +1 -1
  55. package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
  56. package/dist/react/primitive-hooks/useActionBarReload.js +2 -4
  57. package/dist/react/primitive-hooks/useActionBarReload.js.map +1 -1
  58. package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
  59. package/dist/react/primitive-hooks/useBranchPickerNext.js +2 -6
  60. package/dist/react/primitive-hooks/useBranchPickerNext.js.map +1 -1
  61. package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
  62. package/dist/react/primitive-hooks/useBranchPickerPrevious.js +2 -6
  63. package/dist/react/primitive-hooks/useBranchPickerPrevious.js.map +1 -1
  64. package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
  65. package/dist/react/primitive-hooks/useComposerCancel.js +2 -4
  66. package/dist/react/primitive-hooks/useComposerCancel.js.map +1 -1
  67. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  68. package/dist/react/primitive-hooks/useComposerSend.js +2 -4
  69. package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
  70. package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
  71. package/dist/react/primitive-hooks/useSuggestionTrigger.js +6 -2
  72. package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
  73. package/dist/react/primitives/message/MessageParts.d.ts +13 -0
  74. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  75. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  76. package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
  77. package/dist/react/primitives/thread/ThreadMessages.js +1 -1
  78. package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
  79. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +22 -10
  80. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  81. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +109 -71
  82. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  83. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +8 -2
  84. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  85. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +40 -13
  86. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  87. package/dist/react/runtimes/RemoteThreadResource.d.ts +30 -0
  88. package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -0
  89. package/dist/react/runtimes/RemoteThreadResource.js +134 -0
  90. package/dist/react/runtimes/RemoteThreadResource.js.map +1 -0
  91. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +3 -10
  92. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  93. package/dist/react/runtimes/RuntimeAdapterProvider.js +3 -6
  94. package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -1
  95. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +17 -0
  96. package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -0
  97. package/dist/react/runtimes/assistant-transport/commandQueue.js +55 -0
  98. package/dist/react/runtimes/assistant-transport/commandQueue.js.map +1 -0
  99. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +11 -0
  100. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts.map +1 -0
  101. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js +165 -0
  102. package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js.map +1 -0
  103. package/dist/react/runtimes/assistant-transport/runManager.d.ts +15 -0
  104. package/dist/react/runtimes/assistant-transport/runManager.d.ts.map +1 -0
  105. package/dist/react/runtimes/assistant-transport/runManager.js +86 -0
  106. package/dist/react/runtimes/assistant-transport/runManager.js.map +1 -0
  107. package/dist/react/runtimes/assistant-transport/types.d.ts +130 -0
  108. package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -0
  109. package/dist/react/runtimes/assistant-transport/types.js +0 -0
  110. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +14 -0
  111. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -0
  112. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js +296 -0
  113. package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js.map +1 -0
  114. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts +7 -0
  115. package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -0
  116. package/dist/react/runtimes/assistant-transport/useConvertedState.js +25 -0
  117. package/dist/react/runtimes/assistant-transport/useConvertedState.js.map +1 -0
  118. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +7 -0
  119. package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -0
  120. package/dist/react/runtimes/assistant-transport/useLatestRef.js +27 -0
  121. package/dist/react/runtimes/assistant-transport/useLatestRef.js.map +1 -0
  122. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
  123. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +39 -13
  124. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
  125. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +2 -1
  126. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  127. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +3 -3
  128. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
  129. package/dist/react/runtimes/cloud/auiV0.d.ts +4 -0
  130. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  131. package/dist/react/runtimes/cloud/auiV0.js +7 -0
  132. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  133. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  134. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +22 -12
  135. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
  136. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +16 -0
  137. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -0
  138. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.js +36 -0
  139. package/dist/react/runtimes/cloud/useCloudThreadListRuntime.js.map +1 -0
  140. package/dist/react/runtimes/external-message-converter.js +14 -14
  141. package/dist/react/runtimes/external-message-converter.js.map +1 -1
  142. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
  143. package/dist/react/runtimes/useExternalStoreRuntime.js +44 -28
  144. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
  145. package/dist/react/runtimes/useExternalStoreSharedOptions.js.map +1 -1
  146. package/dist/react/runtimes/useLocalRuntime.js +1 -1
  147. package/dist/react/runtimes/useRuntimeAdapters.d.ts +9 -0
  148. package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -0
  149. package/dist/react/runtimes/useRuntimeAdapters.js +20 -0
  150. package/dist/react/runtimes/useRuntimeAdapters.js.map +1 -0
  151. package/dist/runtime/api/composer-runtime.d.ts +5 -0
  152. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  153. package/dist/runtime/api/composer-runtime.js.map +1 -1
  154. package/dist/runtime/api/message-runtime.js +1 -1
  155. package/dist/runtime/api/thread-list-runtime.d.ts +1 -0
  156. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  157. package/dist/runtime/api/thread-list-runtime.js +4 -2
  158. package/dist/runtime/api/thread-list-runtime.js.map +1 -1
  159. package/dist/runtime/api/thread-runtime.d.ts +12 -2
  160. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  161. package/dist/runtime/api/thread-runtime.js +8 -2
  162. package/dist/runtime/api/thread-runtime.js.map +1 -1
  163. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  164. package/dist/runtime/base/base-composer-runtime-core.js +8 -7
  165. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  166. package/dist/runtime/base/base-thread-runtime-core.d.ts +1 -0
  167. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  168. package/dist/runtime/base/base-thread-runtime-core.js +3 -3
  169. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  170. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +0 -1
  171. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  172. package/dist/runtime/base/default-thread-composer-runtime-core.js +10 -4
  173. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  174. package/dist/runtime/interfaces/thread-runtime-core.d.ts +6 -0
  175. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  176. package/dist/runtime/internal.js +5 -5
  177. package/dist/runtime/queue/message-queue.d.ts.map +1 -1
  178. package/dist/runtime/queue/message-queue.js +2 -1
  179. package/dist/runtime/queue/message-queue.js.map +1 -1
  180. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +8 -0
  181. package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -0
  182. package/dist/runtime/utils/thread-runtime-lifecycle.js +11 -0
  183. package/dist/runtime/utils/thread-runtime-lifecycle.js.map +1 -0
  184. package/dist/runtimes/external-store/external-store-shared-options.js.map +1 -1
  185. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  186. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +4 -1
  187. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  188. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +8 -0
  189. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  190. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +35 -13
  191. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  192. package/dist/runtimes/internal.d.ts +1 -1
  193. package/dist/runtimes/local/local-thread-runtime-core.d.ts +3 -0
  194. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  195. package/dist/runtimes/local/local-thread-runtime-core.js +53 -13
  196. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  197. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +1 -0
  198. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  199. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +3 -0
  200. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  201. package/dist/runtimes/remote-thread-list/empty-thread-core.js +3 -0
  202. package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
  203. package/dist/runtimes/remote-thread-list/types.d.ts +29 -1
  204. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  205. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +1 -12
  206. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  207. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +67 -38
  208. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  209. package/dist/store/clients/suggestions.js +2 -2
  210. package/dist/store/clients/suggestions.js.map +1 -1
  211. package/dist/store/clients/thread-selection-events.d.ts +10 -0
  212. package/dist/store/clients/thread-selection-events.d.ts.map +1 -0
  213. package/dist/store/clients/thread-selection-events.js +40 -0
  214. package/dist/store/clients/thread-selection-events.js.map +1 -0
  215. package/dist/store/env.d.ts +5 -0
  216. package/dist/store/env.d.ts.map +1 -0
  217. package/dist/store/env.js +12 -0
  218. package/dist/store/env.js.map +1 -0
  219. package/dist/store/index.d.ts +5 -3
  220. package/dist/store/index.js +4 -2
  221. package/dist/store/internal.d.ts +4 -1
  222. package/dist/store/internal.js +4 -1
  223. package/dist/store/primitive-predicates.d.ts +19 -0
  224. package/dist/store/primitive-predicates.d.ts.map +1 -0
  225. package/dist/store/primitive-predicates.js +19 -0
  226. package/dist/store/primitive-predicates.js.map +1 -0
  227. package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
  228. package/dist/store/runtime-clients/attachment-runtime-client.js +18 -11
  229. package/dist/store/runtime-clients/attachment-runtime-client.js.map +1 -1
  230. package/dist/store/runtime-clients/handle-runtime-action.d.ts +5 -0
  231. package/dist/store/runtime-clients/handle-runtime-action.d.ts.map +1 -0
  232. package/dist/store/runtime-clients/handle-runtime-action.js +12 -0
  233. package/dist/store/runtime-clients/handle-runtime-action.js.map +1 -0
  234. package/dist/store/runtime-clients/handle-thread-list-action.d.ts +5 -0
  235. package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -0
  236. package/dist/store/runtime-clients/handle-thread-list-action.js +7 -0
  237. package/dist/store/runtime-clients/handle-thread-list-action.js.map +1 -0
  238. package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
  239. package/dist/store/runtime-clients/thread-list-item-runtime-client.js +62 -29
  240. package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
  241. package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
  242. package/dist/store/runtime-clients/thread-list-runtime-client.js +5 -6
  243. package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
  244. package/dist/store/scopes/composer.d.ts +9 -4
  245. package/dist/store/scopes/composer.d.ts.map +1 -1
  246. package/dist/store/scopes/thread-list-item.d.ts +7 -6
  247. package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
  248. package/dist/store/scopes/thread.d.ts +8 -7
  249. package/dist/store/scopes/thread.d.ts.map +1 -1
  250. package/dist/store/scopes/threads.d.ts +17 -1
  251. package/dist/store/scopes/threads.d.ts.map +1 -1
  252. package/dist/subscribable/subscribable.d.ts +2 -1
  253. package/dist/subscribable/subscribable.d.ts.map +1 -1
  254. package/dist/subscribable/subscribable.js +23 -18
  255. package/dist/subscribable/subscribable.js.map +1 -1
  256. package/dist/utils/composite-context-provider.d.ts +1 -0
  257. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  258. package/dist/utils/composite-context-provider.js +25 -9
  259. package/dist/utils/composite-context-provider.js.map +1 -1
  260. package/dist/utils/notify-event-listeners.d.ts +2 -2
  261. package/dist/utils/notify-event-listeners.d.ts.map +1 -1
  262. package/dist/utils/notify-event-listeners.js +2 -2
  263. package/dist/utils/notify-event-listeners.js.map +1 -1
  264. package/package.json +7 -7
  265. package/src/adapters/speech.test.ts +118 -1
  266. package/src/adapters/speech.ts +21 -22
  267. package/src/adapters/thread-history.ts +2 -0
  268. package/src/adapters/voice.test.ts +69 -0
  269. package/src/adapters/voice.ts +27 -27
  270. package/src/index.ts +1 -0
  271. package/src/model-context/frame/host.test.ts +23 -0
  272. package/src/model-context/frame/host.ts +2 -1
  273. package/src/model-context/registry.test.ts +131 -0
  274. package/src/model-context/registry.ts +16 -6
  275. package/src/react/RuntimeAdapter.test.ts +2 -0
  276. package/src/react/RuntimeAdapter.ts +20 -8
  277. package/src/react/adapters/LocalStorageThreadListAdapter.tsx +34 -17
  278. package/src/react/client/AdaptedRemoteThread.ts +41 -0
  279. package/src/react/client/InMemoryThreadList.test.tsx +148 -0
  280. package/src/react/client/InMemoryThreadList.ts +290 -0
  281. package/src/react/client/Interactables.test.ts +326 -2
  282. package/src/react/client/Interactables.ts +227 -110
  283. package/src/react/client/RemoteThreadList.test.ts +1026 -0
  284. package/src/react/client/RemoteThreadList.ts +1067 -0
  285. package/src/react/client/Tools.ts +36 -29
  286. package/src/react/index.ts +13 -0
  287. package/src/react/interactables-legacy/Interactables.test.ts +317 -0
  288. package/src/react/interactables-legacy/Interactables.ts +204 -128
  289. package/src/react/primitive-hooks/useActionBarCopy.ts +2 -7
  290. package/src/react/primitive-hooks/useActionBarEdit.ts +2 -1
  291. package/src/react/primitive-hooks/useActionBarReload.ts +2 -6
  292. package/src/react/primitive-hooks/useBranchPickerNext.ts +2 -7
  293. package/src/react/primitive-hooks/useBranchPickerPrevious.ts +2 -7
  294. package/src/react/primitive-hooks/useComposerCancel.ts +2 -1
  295. package/src/react/primitive-hooks/useComposerSend.ts +2 -5
  296. package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +11 -0
  297. package/src/react/primitive-hooks/useSuggestionTrigger.ts +4 -5
  298. package/src/react/primitives/message/MessageParts.tsx +0 -1
  299. package/src/react/primitives/thread/ThreadMessages.tsx +2 -1
  300. package/src/react/runtimes/RemoteThreadListHookInstanceManager.retry.test.tsx +116 -0
  301. package/src/react/runtimes/RemoteThreadListHookInstanceManager.running.test.tsx +1 -1
  302. package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +57 -6
  303. package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +272 -0
  304. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +159 -124
  305. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +59 -20
  306. package/src/react/runtimes/RemoteThreadResource.test.ts +141 -0
  307. package/src/react/runtimes/RemoteThreadResource.ts +231 -0
  308. package/src/react/runtimes/RuntimeAdapterProvider.tsx +8 -20
  309. package/src/react/runtimes/assistant-transport/commandQueue.ts +68 -0
  310. package/src/react/runtimes/assistant-transport/replayBoundaryStream.test.ts +455 -0
  311. package/src/react/runtimes/assistant-transport/replayBoundaryStream.ts +172 -0
  312. package/src/react/runtimes/assistant-transport/runManager.ts +124 -0
  313. package/src/react/runtimes/assistant-transport/transport-delivery.test.tsx +79 -0
  314. package/src/react/runtimes/assistant-transport/transport-parentid.test.tsx +97 -0
  315. package/src/react/runtimes/assistant-transport/transport-scheduling.test.ts +414 -0
  316. package/src/react/runtimes/assistant-transport/types.ts +170 -0
  317. package/src/react/runtimes/assistant-transport/useAssistantTransport.spec.md +141 -0
  318. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +625 -0
  319. package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.ts +481 -0
  320. package/src/react/runtimes/assistant-transport/useConvertedState.ts +20 -0
  321. package/src/react/runtimes/assistant-transport/useLatestRef.ts +9 -0
  322. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +131 -6
  323. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +61 -15
  324. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +6 -4
  325. package/src/react/runtimes/cloud/auiV0.ts +17 -1
  326. package/src/react/runtimes/cloud/useCloudThreadListAdapter.tsx +36 -21
  327. package/src/react/runtimes/cloud/useCloudThreadListRuntime.test.tsx +56 -0
  328. package/src/react/runtimes/cloud/useCloudThreadListRuntime.ts +31 -0
  329. package/src/react/runtimes/external-message-converter.test.ts +143 -0
  330. package/src/react/runtimes/external-message-converter.ts +41 -41
  331. package/src/react/runtimes/remote-thread-hook-on-tap.test.ts +58 -0
  332. package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +83 -0
  333. package/src/react/runtimes/useExternalStoreRuntime.suggestions.test.tsx +13 -3
  334. package/src/react/runtimes/useExternalStoreRuntime.ts +7 -0
  335. package/src/react/runtimes/useExternalStoreSharedOptions.ts +3 -1
  336. package/src/react/runtimes/useLocalRuntime.test.tsx +130 -4
  337. package/src/react/runtimes/useRuntimeAdapters.test.tsx +62 -0
  338. package/src/react/runtimes/useRuntimeAdapters.ts +28 -0
  339. package/src/runtime/api/composer-runtime.ts +5 -0
  340. package/src/runtime/api/thread-list-runtime.ts +3 -1
  341. package/src/runtime/api/thread-runtime.ts +20 -2
  342. package/src/runtime/base/base-composer-runtime-core.ts +6 -5
  343. package/src/runtime/base/base-thread-runtime-core.test.ts +191 -0
  344. package/src/runtime/base/base-thread-runtime-core.ts +11 -2
  345. package/src/runtime/base/default-thread-composer-runtime-core.ts +12 -4
  346. package/src/runtime/interfaces/thread-runtime-core.ts +6 -0
  347. package/src/runtime/queue/message-queue.ts +2 -1
  348. package/src/runtime/utils/thread-runtime-lifecycle.ts +18 -0
  349. package/src/runtimes/external-store/external-store-shared-options.ts +3 -1
  350. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +4 -1
  351. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +99 -34
  352. package/src/runtimes/local/local-thread-runtime-core.test.ts +373 -4
  353. package/src/runtimes/local/local-thread-runtime-core.ts +79 -14
  354. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +4 -0
  355. package/src/runtimes/remote-thread-list/empty-thread-core.ts +4 -0
  356. package/src/runtimes/remote-thread-list/types.ts +30 -0
  357. package/src/runtimes/tool-invocations/EDGE_CASES.md +17 -6
  358. package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +243 -0
  359. package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +127 -61
  360. package/src/store/clients/model-context-client.test.ts +16 -8
  361. package/src/store/clients/suggestions.ts +2 -2
  362. package/src/store/clients/thread-selection-events.ts +21 -0
  363. package/src/store/env.ts +11 -0
  364. package/src/store/index.ts +14 -1
  365. package/src/store/internal.ts +13 -0
  366. package/src/store/primitive-predicates.test.ts +184 -0
  367. package/src/store/primitive-predicates.ts +43 -0
  368. package/src/store/runtime-clients/attachment-runtime-client.test.ts +41 -0
  369. package/src/store/runtime-clients/attachment-runtime-client.ts +2 -1
  370. package/src/store/runtime-clients/handle-runtime-action.ts +11 -0
  371. package/src/store/runtime-clients/handle-thread-list-action.test.ts +69 -0
  372. package/src/store/runtime-clients/handle-thread-list-action.ts +6 -0
  373. package/src/store/runtime-clients/thread-list-item-runtime-client.ts +15 -7
  374. package/src/store/runtime-clients/thread-list-runtime-client.ts +9 -6
  375. package/src/store/scopes/composer.ts +9 -4
  376. package/src/store/scopes/thread-list-item.ts +7 -6
  377. package/src/store/scopes/thread.ts +8 -7
  378. package/src/store/scopes/threads.ts +14 -0
  379. package/src/subscribable/subscribable.test.ts +77 -1
  380. package/src/subscribable/subscribable.ts +38 -23
  381. package/src/tests/RemoteThreadListThreadListRuntimeCore-switchToThread-unarchive.test.ts +25 -0
  382. package/src/tests/auiV0Encode.test.ts +66 -0
  383. package/src/tests/base-composer-runtime-core-send.test.ts +30 -0
  384. package/src/tests/base-composer-runtime-core.test.ts +28 -0
  385. package/src/tests/composer-can-cancel.test.ts +101 -0
  386. package/src/tests/external-store-thread-list-runtime-core.test.ts +101 -0
  387. package/src/tests/external-store-thread-runtime-core-adapter.test.ts +191 -1
  388. package/src/tests/external-store-thread-runtime-core.test.ts +124 -0
  389. package/src/tests/interactables-toolui-migration.test.tsx +66 -0
  390. package/src/tests/message-queue.test.ts +28 -0
  391. package/src/tests/session-reset-notification.test.ts +145 -0
  392. package/src/tests/thread-switch-events.test.tsx +99 -1
  393. package/src/tests/tools-scope-migration.test.tsx +58 -0
  394. package/src/utils/composite-context-provider.test.ts +139 -0
  395. package/src/utils/composite-context-provider.ts +26 -8
  396. package/src/utils/notify-event-listeners.ts +10 -5
@@ -0,0 +1,418 @@
1
+ import { generateId } from "../../utils/id.js";
2
+ import { useThreadSelectionEvents } from "../../store/clients/thread-selection-events.js";
3
+ import { ModelContext } from "../../store/clients/model-context-client.js";
4
+ import { DataRenderers } from "./DataRenderers.js";
5
+ import { Tools } from "./Tools.js";
6
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
7
+ import { useState } from "@assistant-ui/tap/react-shim";
8
+ import { resource, withKey } from "@assistant-ui/tap";
9
+ import { Derived, attachTransformScopes, useClientLookup, useClientResource } from "@assistant-ui/store/client";
10
+ //#region src/react/client/InMemoryThreadList.ts
11
+ const RESOLVED_PROMISE = Promise.resolve();
12
+ const useThreadListItemClient = (props) => {
13
+ const $ = c(19);
14
+ const { data, isRunning, onSwitchTo, onRename, onUpdateCustom, onArchive, onUnarchive, onDelete } = props;
15
+ let t0;
16
+ if ($[0] !== data.custom || $[1] !== data.id || $[2] !== data.status || $[3] !== data.title || $[4] !== isRunning) {
17
+ t0 = {
18
+ id: data.id,
19
+ remoteId: void 0,
20
+ externalId: void 0,
21
+ title: data.title,
22
+ status: data.status,
23
+ custom: data.custom,
24
+ isRunning
25
+ };
26
+ $[0] = data.custom;
27
+ $[1] = data.id;
28
+ $[2] = data.status;
29
+ $[3] = data.title;
30
+ $[4] = isRunning;
31
+ $[5] = t0;
32
+ } else t0 = $[5];
33
+ const state = t0;
34
+ let t1;
35
+ if ($[6] !== state) {
36
+ t1 = () => state;
37
+ $[6] = state;
38
+ $[7] = t1;
39
+ } else t1 = $[7];
40
+ let t2;
41
+ if ($[8] !== data.id) {
42
+ t2 = async () => ({
43
+ remoteId: data.id,
44
+ externalId: void 0
45
+ });
46
+ $[8] = data.id;
47
+ $[9] = t2;
48
+ } else t2 = $[9];
49
+ let t3;
50
+ if ($[10] !== onArchive || $[11] !== onDelete || $[12] !== onRename || $[13] !== onSwitchTo || $[14] !== onUnarchive || $[15] !== onUpdateCustom || $[16] !== t1 || $[17] !== t2) {
51
+ t3 = {
52
+ getState: t1,
53
+ switchTo: onSwitchTo,
54
+ rename: onRename,
55
+ updateCustom: onUpdateCustom,
56
+ archive: onArchive,
57
+ unarchive: onUnarchive,
58
+ delete: onDelete,
59
+ generateTitle: _temp,
60
+ initialize: t2,
61
+ detach: _temp2
62
+ };
63
+ $[10] = onArchive;
64
+ $[11] = onDelete;
65
+ $[12] = onRename;
66
+ $[13] = onSwitchTo;
67
+ $[14] = onUnarchive;
68
+ $[15] = onUpdateCustom;
69
+ $[16] = t1;
70
+ $[17] = t2;
71
+ $[18] = t3;
72
+ } else t3 = $[18];
73
+ return t3;
74
+ };
75
+ const ThreadListItemClient = resource(useThreadListItemClient);
76
+ const useInMemoryThreadList = (props) => {
77
+ const $ = c(61);
78
+ const { thread: threadFactory, onSwitchToThread, onSwitchToNewThread, onDelete } = props;
79
+ const [t0, setListState] = useState(_temp3);
80
+ const { threads, mainThreadId } = t0;
81
+ let t1;
82
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
83
+ t1 = (update) => setListState((prev) => ({
84
+ ...prev,
85
+ threads: update(prev.threads)
86
+ }));
87
+ $[0] = t1;
88
+ } else t1 = $[0];
89
+ const setThreads = t1;
90
+ useThreadSelectionEvents(mainThreadId);
91
+ let t2;
92
+ if ($[1] !== onSwitchToThread) {
93
+ t2 = (threadId) => {
94
+ setListState((prev_0) => ({
95
+ ...prev_0,
96
+ mainThreadId: threadId
97
+ }));
98
+ onSwitchToThread?.(threadId);
99
+ };
100
+ $[1] = onSwitchToThread;
101
+ $[2] = t2;
102
+ } else t2 = $[2];
103
+ const handleSwitchToThread = t2;
104
+ let t3;
105
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
106
+ t3 = (threadId_0, title) => {
107
+ setThreads((prev_1) => prev_1.map((t) => t.id === threadId_0 ? {
108
+ ...t,
109
+ title
110
+ } : t));
111
+ };
112
+ $[3] = t3;
113
+ } else t3 = $[3];
114
+ const handleRename = t3;
115
+ let t4;
116
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
117
+ t4 = (threadId_1) => {
118
+ setThreads((prev_2) => prev_2.map((t_0) => t_0.id === threadId_1 ? {
119
+ ...t_0,
120
+ status: "archived"
121
+ } : t_0));
122
+ };
123
+ $[4] = t4;
124
+ } else t4 = $[4];
125
+ const handleArchive = t4;
126
+ let t5;
127
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
128
+ t5 = (threadId_2) => {
129
+ setThreads((prev_3) => prev_3.map((t_1) => t_1.id === threadId_2 ? {
130
+ ...t_1,
131
+ status: "regular"
132
+ } : t_1));
133
+ };
134
+ $[5] = t5;
135
+ } else t5 = $[5];
136
+ const handleUnarchive = t5;
137
+ let t6;
138
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
139
+ t6 = (threadId_3, custom) => {
140
+ setThreads((prev_4) => prev_4.map((t_2) => t_2.id === threadId_3 ? {
141
+ ...t_2,
142
+ custom
143
+ } : t_2));
144
+ };
145
+ $[6] = t6;
146
+ } else t6 = $[6];
147
+ const handleUpdateCustom = t6;
148
+ let t7;
149
+ if ($[7] !== onDelete) {
150
+ t7 = (threadId_4) => {
151
+ const fallbackId = `thread-${generateId()}`;
152
+ setListState((prev_5) => {
153
+ const remaining = prev_5.threads.filter((t_3) => t_3.id !== threadId_4);
154
+ if (remaining.length === 0) return {
155
+ threads: [{
156
+ id: fallbackId,
157
+ title: "New Thread",
158
+ status: "regular"
159
+ }],
160
+ mainThreadId: fallbackId
161
+ };
162
+ return {
163
+ threads: remaining,
164
+ mainThreadId: prev_5.mainThreadId === threadId_4 ? (remaining.find(_temp4) ?? remaining[0]).id : prev_5.mainThreadId
165
+ };
166
+ });
167
+ onDelete?.(threadId_4);
168
+ };
169
+ $[7] = onDelete;
170
+ $[8] = t7;
171
+ } else t7 = $[8];
172
+ const handleDelete = t7;
173
+ let t8;
174
+ if ($[9] !== onSwitchToNewThread) {
175
+ t8 = () => {
176
+ const newId = `thread-${generateId()}`;
177
+ setListState((prev_6) => ({
178
+ threads: [...prev_6.threads, {
179
+ id: newId,
180
+ title: "New Thread",
181
+ status: "regular"
182
+ }],
183
+ mainThreadId: newId
184
+ }));
185
+ onSwitchToNewThread?.();
186
+ };
187
+ $[9] = onSwitchToNewThread;
188
+ $[10] = t8;
189
+ } else t8 = $[10];
190
+ const handleSwitchToNewThread = t8;
191
+ let t9;
192
+ if ($[11] !== mainThreadId || $[12] !== threadFactory) {
193
+ t9 = threadFactory(mainThreadId);
194
+ $[11] = mainThreadId;
195
+ $[12] = threadFactory;
196
+ $[13] = t9;
197
+ } else t9 = $[13];
198
+ const mainThreadClient = useClientResource(t9);
199
+ let t10;
200
+ if ($[14] !== handleDelete || $[15] !== handleSwitchToThread || $[16] !== mainThreadClient.state || $[17] !== mainThreadId || $[18] !== threads) {
201
+ let t11;
202
+ if ($[20] !== handleDelete || $[21] !== handleSwitchToThread || $[22] !== mainThreadClient.state || $[23] !== mainThreadId) {
203
+ t11 = (t_5) => withKey(t_5.id, ThreadListItemClient({
204
+ data: t_5,
205
+ isRunning: t_5.id === mainThreadId && mainThreadClient.state.isRunning,
206
+ onSwitchTo: () => handleSwitchToThread(t_5.id),
207
+ onRename: (title_0) => handleRename(t_5.id, title_0),
208
+ onUpdateCustom: (custom_0) => handleUpdateCustom(t_5.id, custom_0),
209
+ onArchive: () => handleArchive(t_5.id),
210
+ onUnarchive: () => handleUnarchive(t_5.id),
211
+ onDelete: () => handleDelete(t_5.id)
212
+ }));
213
+ $[20] = handleDelete;
214
+ $[21] = handleSwitchToThread;
215
+ $[22] = mainThreadClient.state;
216
+ $[23] = mainThreadId;
217
+ $[24] = t11;
218
+ } else t11 = $[24];
219
+ t10 = threads.map(t11);
220
+ $[14] = handleDelete;
221
+ $[15] = handleSwitchToThread;
222
+ $[16] = mainThreadClient.state;
223
+ $[17] = mainThreadId;
224
+ $[18] = threads;
225
+ $[19] = t10;
226
+ } else t10 = $[19];
227
+ const threadListItems = useClientLookup(t10);
228
+ let t11;
229
+ let t12;
230
+ let t13;
231
+ let t14;
232
+ let t15;
233
+ let t16;
234
+ let t17;
235
+ if ($[25] !== mainThreadId || $[26] !== threads) {
236
+ const regularThreads = threads.filter(_temp5);
237
+ const archivedThreads = threads.filter(_temp6);
238
+ t11 = mainThreadId;
239
+ t12 = null;
240
+ t13 = false;
241
+ t14 = false;
242
+ t15 = false;
243
+ t16 = regularThreads.map(_temp7);
244
+ t17 = archivedThreads.map(_temp8);
245
+ $[25] = mainThreadId;
246
+ $[26] = threads;
247
+ $[27] = t11;
248
+ $[28] = t12;
249
+ $[29] = t13;
250
+ $[30] = t14;
251
+ $[31] = t15;
252
+ $[32] = t16;
253
+ $[33] = t17;
254
+ } else {
255
+ t11 = $[27];
256
+ t12 = $[28];
257
+ t13 = $[29];
258
+ t14 = $[30];
259
+ t15 = $[31];
260
+ t16 = $[32];
261
+ t17 = $[33];
262
+ }
263
+ let t18;
264
+ if ($[34] !== mainThreadClient.state || $[35] !== t11 || $[36] !== t12 || $[37] !== t13 || $[38] !== t14 || $[39] !== t15 || $[40] !== t16 || $[41] !== t17 || $[42] !== threadListItems.state) {
265
+ t18 = {
266
+ mainThreadId: t11,
267
+ newThreadId: t12,
268
+ isLoading: t13,
269
+ isLoadingMore: t14,
270
+ hasMore: t15,
271
+ threadIds: t16,
272
+ archivedThreadIds: t17,
273
+ threadItems: threadListItems.state,
274
+ main: mainThreadClient.state
275
+ };
276
+ $[34] = mainThreadClient.state;
277
+ $[35] = t11;
278
+ $[36] = t12;
279
+ $[37] = t13;
280
+ $[38] = t14;
281
+ $[39] = t15;
282
+ $[40] = t16;
283
+ $[41] = t17;
284
+ $[42] = threadListItems.state;
285
+ $[43] = t18;
286
+ } else t18 = $[43];
287
+ const state = t18;
288
+ let t19;
289
+ if ($[44] !== state) {
290
+ t19 = () => state;
291
+ $[44] = state;
292
+ $[45] = t19;
293
+ } else t19 = $[45];
294
+ let t20;
295
+ if ($[46] !== mainThreadClient.methods) {
296
+ t20 = () => mainThreadClient.methods.unstable_refetchThread?.() ?? RESOLVED_PROMISE;
297
+ $[46] = mainThreadClient.methods;
298
+ $[47] = t20;
299
+ } else t20 = $[47];
300
+ let t21;
301
+ if ($[48] !== mainThreadId || $[49] !== threadListItems || $[50] !== threads) {
302
+ t21 = (selector) => {
303
+ if (selector === "main") {
304
+ const index = threads.findIndex((t_10) => t_10.id === mainThreadId);
305
+ return threadListItems.get({ index: index === -1 ? 0 : index });
306
+ }
307
+ if ("id" in selector) {
308
+ const index_0 = threads.findIndex((t_11) => t_11.id === selector.id);
309
+ return threadListItems.get({ index: index_0 });
310
+ }
311
+ return threadListItems.get(selector);
312
+ };
313
+ $[48] = mainThreadId;
314
+ $[49] = threadListItems;
315
+ $[50] = threads;
316
+ $[51] = t21;
317
+ } else t21 = $[51];
318
+ let t22;
319
+ if ($[52] !== mainThreadClient.methods) {
320
+ t22 = () => mainThreadClient.methods;
321
+ $[52] = mainThreadClient.methods;
322
+ $[53] = t22;
323
+ } else t22 = $[53];
324
+ let t23;
325
+ if ($[54] !== handleSwitchToNewThread || $[55] !== handleSwitchToThread || $[56] !== t19 || $[57] !== t20 || $[58] !== t21 || $[59] !== t22) {
326
+ t23 = {
327
+ getState: t19,
328
+ switchToThread: handleSwitchToThread,
329
+ switchToNewThread: handleSwitchToNewThread,
330
+ getLoadThreadsPromise: _temp9,
331
+ reload: _temp0,
332
+ reloadMainThread: t20,
333
+ loadMore: _temp1,
334
+ item: t21,
335
+ thread: t22
336
+ };
337
+ $[54] = handleSwitchToNewThread;
338
+ $[55] = handleSwitchToThread;
339
+ $[56] = t19;
340
+ $[57] = t20;
341
+ $[58] = t21;
342
+ $[59] = t22;
343
+ $[60] = t23;
344
+ } else t23 = $[60];
345
+ return t23;
346
+ };
347
+ const InMemoryThreadList = resource(useInMemoryThreadList);
348
+ /**
349
+ * The scope defaults `InMemoryThreadList` installs when it is used as the
350
+ * `threads` config entry. Adapter packages that wrap it in their own config
351
+ * entry attach this to the wrapping resource for scope parity.
352
+ */
353
+ const inMemoryThreadListTransformScopes = (scopes, parent) => {
354
+ scopes.thread ??= Derived({
355
+ source: "threads",
356
+ query: { type: "main" },
357
+ get: (aui) => aui.threads.thread("main")
358
+ });
359
+ scopes.threadListItem ??= Derived({
360
+ source: "threads",
361
+ query: { type: "main" },
362
+ get: (aui) => aui.threads.item("main")
363
+ });
364
+ scopes.composer ??= Derived({
365
+ source: "thread",
366
+ query: {},
367
+ get: (aui) => aui.threads.thread("main").composer()
368
+ });
369
+ if (!scopes.modelContext && parent.modelContext.source === null) scopes.modelContext = ModelContext();
370
+ if (!scopes.tools && parent.tools.source === null) scopes.tools = Tools({});
371
+ if (!scopes.dataRenderers && parent.dataRenderers.source === null) scopes.dataRenderers = DataRenderers();
372
+ if (!scopes.suggestions && parent.suggestions.source === null) scopes.suggestions = Derived({
373
+ source: "thread",
374
+ query: {},
375
+ get: (aui) => aui.thread.suggestions()
376
+ });
377
+ };
378
+ attachTransformScopes(useInMemoryThreadList, inMemoryThreadListTransformScopes);
379
+ function _temp() {}
380
+ function _temp2() {}
381
+ function _temp3() {
382
+ return {
383
+ threads: [{
384
+ id: "main",
385
+ title: "Main Thread",
386
+ status: "regular"
387
+ }],
388
+ mainThreadId: "main"
389
+ };
390
+ }
391
+ function _temp4(t_4) {
392
+ return t_4.status === "regular";
393
+ }
394
+ function _temp5(t_6) {
395
+ return t_6.status === "regular";
396
+ }
397
+ function _temp6(t_7) {
398
+ return t_7.status === "archived";
399
+ }
400
+ function _temp7(t_8) {
401
+ return t_8.id;
402
+ }
403
+ function _temp8(t_9) {
404
+ return t_9.id;
405
+ }
406
+ function _temp9() {
407
+ return RESOLVED_PROMISE;
408
+ }
409
+ function _temp0() {
410
+ return RESOLVED_PROMISE;
411
+ }
412
+ function _temp1() {
413
+ return RESOLVED_PROMISE;
414
+ }
415
+ //#endregion
416
+ export { InMemoryThreadList, inMemoryThreadListTransformScopes };
417
+
418
+ //# sourceMappingURL=InMemoryThreadList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InMemoryThreadList.js","names":["useState","useMemo","resource","withKey","ResourceElement","AssistantClient","ClientOutput","ScopesConfig","useClientLookup","Derived","attachTransformScopes","useClientResource","useThreadSelectionEvents","generateId","ModelContext","Tools","DataRenderers","RESOLVED_PROMISE","Promise","resolve","InMemoryThreadListProps","thread","threadId","onSwitchToThread","onSwitchToNewThread","onDelete","ThreadData","id","title","status","custom","Record","useThreadListItemClient","props","$","_c","data","isRunning","onSwitchTo","onRename","onUpdateCustom","onArchive","onUnarchive","t0","remoteId","undefined","externalId","state","t1","t2","t3","getState","switchTo","rename","updateCustom","archive","unarchive","delete","generateTitle","_temp","initialize","detach","_temp2","ThreadListItemClient","useInMemoryThreadList","threadFactory","setListState","_temp3","threads","mainThreadId","Symbol","for","update","prev","setThreads","prev_0","handleSwitchToThread","threadId_0","prev_1","map","t","handleRename","t4","threadId_1","prev_2","t_0","const","handleArchive","t5","threadId_2","prev_3","t_1","handleUnarchive","t6","threadId_3","prev_4","t_2","handleUpdateCustom","t7","threadId_4","fallbackId","prev_5","remaining","filter","t_3","length","find","_temp4","handleDelete","t8","newId","prev_6","handleSwitchToNewThread","t9","mainThreadClient","t10","t11","t_5","title_0","custom_0","threadListItems","t12","t13","t14","t15","t16","t17","regularThreads","_temp5","archivedThreads","_temp6","_temp7","_temp8","t18","newThreadId","isLoading","isLoadingMore","hasMore","threadIds","archivedThreadIds","threadItems","main","t19","t20","methods","unstable_refetchThread","t21","selector","index","findIndex","t_10","get","index_0","t_11","t22","t23","switchToThread","switchToNewThread","getLoadThreadsPromise","_temp9","reload","_temp0","reloadMainThread","loadMore","_temp1","item","InMemoryThreadList","inMemoryThreadListTransformScopes","scopes","parent","source","query","type","aui","threadListItem","composer","modelContext","tools","dataRenderers","suggestions","t_4","t_6","t_7","t_8","t_9"],"sources":["../../../src/react/client/InMemoryThreadList.ts"],"sourcesContent":["import { useState, useMemo } from \"react\";\nimport { resource, withKey, type ResourceElement } from \"@assistant-ui/tap\";\nimport type {\n AssistantClient,\n ClientOutput,\n ScopesConfig,\n} from \"@assistant-ui/store\";\nimport {\n useClientLookup,\n Derived,\n attachTransformScopes,\n useClientResource,\n} from \"@assistant-ui/store/client\";\nimport { useThreadSelectionEvents } from \"../../store/internal\";\nimport { generateId } from \"../../utils/id\";\nimport { ModelContext } from \"../../store/clients/model-context-client\";\nimport { Tools } from \"./Tools\";\nimport { DataRenderers } from \"./DataRenderers\";\n\nconst RESOLVED_PROMISE = Promise.resolve();\n\nexport type InMemoryThreadListProps = {\n thread: (threadId: string) => ResourceElement<ClientOutput<\"thread\">>;\n onSwitchToThread?: (threadId: string) => void;\n onSwitchToNewThread?: () => void;\n onDelete?: (threadId: string) => void;\n};\n\ntype ThreadData = {\n id: string;\n title?: string;\n status: \"regular\" | \"archived\";\n custom?: Record<string, unknown> | undefined;\n};\n\n// ThreadListItem Client\nconst useThreadListItemClient = (props: {\n data: ThreadData;\n isRunning: boolean;\n onSwitchTo: () => void;\n onRename: (title: string) => void;\n onUpdateCustom: (custom: Record<string, unknown> | undefined) => void;\n onArchive: () => void;\n onUnarchive: () => void;\n onDelete: () => void;\n}): ClientOutput<\"threadListItem\"> => {\n const {\n data,\n isRunning,\n onSwitchTo,\n onRename,\n onUpdateCustom,\n onArchive,\n onUnarchive,\n onDelete,\n } = props;\n const state = useMemo(\n () => ({\n id: data.id,\n remoteId: undefined,\n externalId: undefined,\n title: data.title,\n status: data.status,\n custom: data.custom,\n isRunning,\n }),\n [data.id, data.title, data.status, data.custom, isRunning],\n );\n\n return {\n getState: () => state,\n switchTo: onSwitchTo,\n rename: onRename,\n updateCustom: onUpdateCustom,\n archive: onArchive,\n unarchive: onUnarchive,\n delete: onDelete,\n generateTitle: () => {},\n initialize: async () => ({ remoteId: data.id, externalId: undefined }),\n detach: () => {},\n };\n};\n\nconst ThreadListItemClient = resource(useThreadListItemClient);\n\n// InMemoryThreadList Client\nconst useInMemoryThreadList = (\n props: InMemoryThreadListProps,\n): ClientOutput<\"threads\"> => {\n const {\n thread: threadFactory,\n onSwitchToThread,\n onSwitchToNewThread,\n onDelete,\n } = props;\n\n const [{ threads, mainThreadId }, setListState] = useState<{\n threads: readonly ThreadData[];\n mainThreadId: string;\n }>(() => ({\n threads: [{ id: \"main\", title: \"Main Thread\", status: \"regular\" }],\n mainThreadId: \"main\",\n }));\n const setThreads = (\n update: (prev: readonly ThreadData[]) => readonly ThreadData[],\n ) => setListState((prev) => ({ ...prev, threads: update(prev.threads) }));\n\n useThreadSelectionEvents(mainThreadId);\n\n const handleSwitchToThread = (threadId: string) => {\n setListState((prev) => ({ ...prev, mainThreadId: threadId }));\n onSwitchToThread?.(threadId);\n };\n\n const handleRename = (threadId: string, title: string) => {\n setThreads((prev) =>\n prev.map((t) => (t.id === threadId ? { ...t, title } : t)),\n );\n };\n\n const handleArchive = (threadId: string) => {\n setThreads((prev) =>\n prev.map((t) =>\n t.id === threadId ? { ...t, status: \"archived\" as const } : t,\n ),\n );\n };\n\n const handleUnarchive = (threadId: string) => {\n setThreads((prev) =>\n prev.map((t) =>\n t.id === threadId ? { ...t, status: \"regular\" as const } : t,\n ),\n );\n };\n\n const handleUpdateCustom = (\n threadId: string,\n custom: Record<string, unknown> | undefined,\n ) => {\n setThreads((prev) =>\n prev.map((t) => (t.id === threadId ? { ...t, custom } : t)),\n );\n };\n\n const handleDelete = (threadId: string) => {\n // Deleting the last thread starts a fresh one; the removed id must not\n // stay selected. The fallback id is minted eagerly so the updater stays\n // pure under batched deletes.\n const fallbackId = `thread-${generateId()}`;\n setListState((prev) => {\n const remaining = prev.threads.filter((t) => t.id !== threadId);\n if (remaining.length === 0) {\n return {\n threads: [{ id: fallbackId, title: \"New Thread\", status: \"regular\" }],\n mainThreadId: fallbackId,\n };\n }\n return {\n threads: remaining,\n mainThreadId:\n prev.mainThreadId === threadId\n ? (remaining.find((t) => t.status === \"regular\") ?? remaining[0]!)\n .id\n : prev.mainThreadId,\n };\n });\n onDelete?.(threadId);\n };\n\n const handleSwitchToNewThread = () => {\n const newId = `thread-${generateId()}`;\n setListState((prev) => ({\n threads: [\n ...prev.threads,\n { id: newId, title: \"New Thread\", status: \"regular\" },\n ],\n mainThreadId: newId,\n }));\n onSwitchToNewThread?.();\n };\n\n // Only the main thread is mounted, so it is the only thread that can run.\n const mainThreadClient = useClientResource(threadFactory(mainThreadId));\n\n const threadListItems = useClientLookup(\n threads.map((t) =>\n withKey(\n t.id,\n ThreadListItemClient({\n data: t,\n isRunning: t.id === mainThreadId && mainThreadClient.state.isRunning,\n onSwitchTo: () => handleSwitchToThread(t.id),\n onRename: (title) => handleRename(t.id, title),\n onUpdateCustom: (custom) => handleUpdateCustom(t.id, custom),\n onArchive: () => handleArchive(t.id),\n onUnarchive: () => handleUnarchive(t.id),\n onDelete: () => handleDelete(t.id),\n }),\n ),\n ),\n );\n\n const state = useMemo(() => {\n const regularThreads = threads.filter((t) => t.status === \"regular\");\n const archivedThreads = threads.filter((t) => t.status === \"archived\");\n\n return {\n mainThreadId,\n newThreadId: null,\n isLoading: false,\n isLoadingMore: false,\n hasMore: false,\n threadIds: regularThreads.map((t) => t.id),\n archivedThreadIds: archivedThreads.map((t) => t.id),\n threadItems: threadListItems.state,\n main: mainThreadClient.state,\n };\n }, [mainThreadId, threads, threadListItems.state, mainThreadClient.state]);\n\n return {\n getState: () => state,\n switchToThread: handleSwitchToThread,\n switchToNewThread: handleSwitchToNewThread,\n getLoadThreadsPromise: () => RESOLVED_PROMISE,\n reload: () => RESOLVED_PROMISE,\n reloadMainThread: () =>\n mainThreadClient.methods.unstable_refetchThread?.() ?? RESOLVED_PROMISE,\n loadMore: () => RESOLVED_PROMISE,\n item: (selector) => {\n if (selector === \"main\") {\n const index = threads.findIndex((t) => t.id === mainThreadId);\n return threadListItems.get({ index: index === -1 ? 0 : index });\n }\n if (\"id\" in selector) {\n const index = threads.findIndex((t) => t.id === selector.id);\n return threadListItems.get({ index });\n }\n return threadListItems.get(selector);\n },\n thread: () => mainThreadClient.methods,\n };\n};\n\nexport const InMemoryThreadList = resource(useInMemoryThreadList);\n\n/**\n * The scope defaults `InMemoryThreadList` installs when it is used as the\n * `threads` config entry. Adapter packages that wrap it in their own config\n * entry attach this to the wrapping resource for scope parity.\n */\nexport const inMemoryThreadListTransformScopes = (\n scopes: ScopesConfig,\n parent: AssistantClient,\n): void => {\n scopes.thread ??= Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads.thread(\"main\"),\n });\n scopes.threadListItem ??= Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads.item(\"main\"),\n });\n scopes.composer ??= Derived({\n source: \"thread\",\n query: {},\n get: (aui) => aui.threads.thread(\"main\").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\nattachTransformScopes(useInMemoryThreadList, inMemoryThreadListTransformScopes);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Interactables.d.ts","names":[],"sources":["../../../src/react/client/Interactables.ts"],"mappings":";;;;;;;;cA6jBa,oDAAsB,SAAA,0CAAA"}
1
+ {"version":3,"file":"Interactables.d.ts","names":[],"sources":["../../../src/react/client/Interactables.ts"],"mappings":";;;;;;;;cAkrBa,oDAAsB,SAAA,0CAAA"}