@assistant-ui/core 0.2.0 → 0.2.3

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 (201) hide show
  1. package/README.md +45 -0
  2. package/dist/index.d.ts +2 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/model-context/tool.d.ts +25 -0
  7. package/dist/model-context/tool.d.ts.map +1 -1
  8. package/dist/model-context/tool.js +25 -0
  9. package/dist/model-context/tool.js.map +1 -1
  10. package/dist/react/AssistantRuntimeProvider.d.ts +33 -0
  11. package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
  12. package/dist/react/AssistantRuntimeProvider.js +22 -0
  13. package/dist/react/AssistantRuntimeProvider.js.map +1 -1
  14. package/dist/react/client/DataRenderers.d.ts +7 -0
  15. package/dist/react/client/DataRenderers.d.ts.map +1 -1
  16. package/dist/react/client/DataRenderers.js +7 -0
  17. package/dist/react/client/DataRenderers.js.map +1 -1
  18. package/dist/react/client/Tools.d.ts +18 -1
  19. package/dist/react/client/Tools.d.ts.map +1 -1
  20. package/dist/react/client/Tools.js +24 -19
  21. package/dist/react/client/Tools.js.map +1 -1
  22. package/dist/react/index.d.ts +2 -1
  23. package/dist/react/index.d.ts.map +1 -1
  24. package/dist/react/index.js +1 -0
  25. package/dist/react/index.js.map +1 -1
  26. package/dist/react/model-context/makeAssistantDataUI.d.ts +13 -0
  27. package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
  28. package/dist/react/model-context/makeAssistantDataUI.js +6 -0
  29. package/dist/react/model-context/makeAssistantDataUI.js.map +1 -1
  30. package/dist/react/model-context/makeAssistantTool.d.ts +15 -0
  31. package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
  32. package/dist/react/model-context/makeAssistantTool.js +8 -0
  33. package/dist/react/model-context/makeAssistantTool.js.map +1 -1
  34. package/dist/react/model-context/makeAssistantToolUI.d.ts +15 -0
  35. package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
  36. package/dist/react/model-context/makeAssistantToolUI.js +8 -0
  37. package/dist/react/model-context/makeAssistantToolUI.js.map +1 -1
  38. package/dist/react/model-context/toolbox.d.ts +29 -0
  39. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  40. package/dist/react/model-context/useAssistantDataUI.d.ts +9 -0
  41. package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
  42. package/dist/react/model-context/useAssistantDataUI.js +6 -0
  43. package/dist/react/model-context/useAssistantDataUI.js.map +1 -1
  44. package/dist/react/model-context/useAssistantTool.d.ts +34 -0
  45. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  46. package/dist/react/model-context/useAssistantTool.js +30 -0
  47. package/dist/react/model-context/useAssistantTool.js.map +1 -1
  48. package/dist/react/model-context/useAssistantToolUI.d.ts +12 -0
  49. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  50. package/dist/react/model-context/useAssistantToolUI.js +9 -0
  51. package/dist/react/model-context/useAssistantToolUI.js.map +1 -1
  52. package/dist/react/model-context/useToolArgsStatus.d.ts +29 -0
  53. package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
  54. package/dist/react/model-context/useToolArgsStatus.js +24 -0
  55. package/dist/react/model-context/useToolArgsStatus.js.map +1 -1
  56. package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
  57. package/dist/react/primitive-hooks/useActionBarCopy.js +4 -3
  58. package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
  59. package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
  60. package/dist/react/primitive-hooks/useComposerSend.js +2 -3
  61. package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
  62. package/dist/react/primitives/message/MessageAttachments.js +1 -1
  63. package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
  64. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  65. package/dist/react/primitives/message/MessageParts.js +14 -10
  66. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  67. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +6 -0
  68. package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -0
  69. package/dist/react/primitives/messagePart/MessagePartInProgress.js +7 -0
  70. package/dist/react/primitives/messagePart/MessagePartInProgress.js.map +1 -0
  71. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +2 -0
  72. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  73. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +2 -0
  74. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  75. package/dist/react/runtimes/cloud/auiV0.d.ts +10 -1
  76. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
  77. package/dist/react/runtimes/cloud/auiV0.js +21 -3
  78. package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
  79. package/dist/react/runtimes/useToolInvocations.d.ts +11 -1
  80. package/dist/react/runtimes/useToolInvocations.d.ts.map +1 -1
  81. package/dist/react/runtimes/useToolInvocations.js +325 -256
  82. package/dist/react/runtimes/useToolInvocations.js.map +1 -1
  83. package/dist/react/types/MessagePartComponentTypes.d.ts +11 -0
  84. package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
  85. package/dist/react/types/scopes/tools.d.ts +4 -0
  86. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  87. package/dist/runtime/api/composer-runtime.d.ts +1 -0
  88. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  89. package/dist/runtime/api/composer-runtime.js +2 -0
  90. package/dist/runtime/api/composer-runtime.js.map +1 -1
  91. package/dist/runtime/api/thread-runtime.d.ts +2 -0
  92. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  93. package/dist/runtime/base/base-composer-runtime-core.d.ts +1 -0
  94. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  95. package/dist/runtime/base/base-composer-runtime-core.js +1 -1
  96. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  97. package/dist/runtime/base/base-thread-runtime-core.d.ts +1 -0
  98. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  99. package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
  100. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +1 -0
  101. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  102. package/dist/runtime/base/default-edit-composer-runtime-core.js +3 -0
  103. package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
  104. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +1 -0
  105. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  106. package/dist/runtime/base/default-thread-composer-runtime-core.js +12 -1
  107. package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
  108. package/dist/runtime/interfaces/composer-runtime-core.d.ts +1 -0
  109. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  110. package/dist/runtime/interfaces/thread-runtime-core.d.ts +6 -0
  111. package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
  112. package/dist/runtimes/external-store/external-store-adapter.d.ts +15 -0
  113. package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
  114. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +1 -1
  115. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  116. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +14 -12
  117. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
  118. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +2 -0
  119. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  120. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +13 -0
  121. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  122. package/dist/runtimes/local/local-thread-runtime-core.d.ts +1 -0
  123. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  124. package/dist/runtimes/local/local-thread-runtime-core.js +1 -0
  125. package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
  126. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +2 -0
  127. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  128. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +2 -0
  129. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
  130. package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
  131. package/dist/runtimes/remote-thread-list/empty-thread-core.js +2 -0
  132. package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
  133. package/dist/store/clients/model-context-client.d.ts.map +1 -1
  134. package/dist/store/clients/model-context-client.js +24 -4
  135. package/dist/store/clients/model-context-client.js.map +1 -1
  136. package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
  137. package/dist/store/clients/no-op-composer-client.js +1 -0
  138. package/dist/store/clients/no-op-composer-client.js.map +1 -1
  139. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  140. package/dist/store/runtime-clients/composer-runtime-client.js +1 -0
  141. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  142. package/dist/store/scopes/composer.d.ts +9 -0
  143. package/dist/store/scopes/composer.d.ts.map +1 -1
  144. package/dist/store/scopes/model-context.d.ts +4 -1
  145. package/dist/store/scopes/model-context.d.ts.map +1 -1
  146. package/dist/types/index.d.ts +1 -1
  147. package/dist/types/index.d.ts.map +1 -1
  148. package/dist/types/message.d.ts +50 -1
  149. package/dist/types/message.d.ts.map +1 -1
  150. package/dist/types/message.js +2 -1
  151. package/dist/types/message.js.map +1 -1
  152. package/package.json +7 -7
  153. package/src/index.ts +6 -0
  154. package/src/model-context/tool.ts +25 -0
  155. package/src/react/AssistantRuntimeProvider.tsx +33 -0
  156. package/src/react/client/DataRenderers.ts +7 -0
  157. package/src/react/client/Tools.ts +56 -22
  158. package/src/react/index.ts +2 -1
  159. package/src/react/model-context/makeAssistantDataUI.ts +13 -0
  160. package/src/react/model-context/makeAssistantTool.ts +15 -0
  161. package/src/react/model-context/makeAssistantToolUI.ts +15 -0
  162. package/src/react/model-context/toolbox.ts +32 -1
  163. package/src/react/model-context/useAssistantDataUI.ts +9 -0
  164. package/src/react/model-context/useAssistantTool.ts +34 -0
  165. package/src/react/model-context/useAssistantToolUI.ts +12 -0
  166. package/src/react/model-context/useToolArgsStatus.ts +29 -0
  167. package/src/react/primitive-hooks/useActionBarCopy.ts +9 -5
  168. package/src/react/primitive-hooks/useComposerSend.ts +2 -3
  169. package/src/react/primitives/message/MessageAttachments.test.tsx +50 -0
  170. package/src/react/primitives/message/MessageAttachments.tsx +1 -1
  171. package/src/react/primitives/message/MessageParts.tsx +20 -9
  172. package/src/react/primitives/messagePart/MessagePartInProgress.ts +15 -0
  173. package/src/react/runtimes/cloud/auiV0.ts +37 -4
  174. package/src/react/runtimes/useToolInvocations.ts +422 -333
  175. package/src/react/types/MessagePartComponentTypes.ts +11 -0
  176. package/src/react/types/scopes/tools.ts +5 -0
  177. package/src/runtime/api/composer-runtime.ts +3 -0
  178. package/src/runtime/base/base-composer-runtime-core.ts +2 -1
  179. package/src/runtime/base/base-thread-runtime-core.ts +1 -0
  180. package/src/runtime/base/default-edit-composer-runtime-core.ts +4 -0
  181. package/src/runtime/base/default-thread-composer-runtime-core.ts +12 -1
  182. package/src/runtime/interfaces/composer-runtime-core.ts +1 -0
  183. package/src/runtime/interfaces/thread-runtime-core.ts +6 -0
  184. package/src/runtimes/external-store/external-store-adapter.ts +15 -0
  185. package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +15 -9
  186. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +13 -0
  187. package/src/runtimes/local/local-thread-runtime-core.ts +1 -0
  188. package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +2 -0
  189. package/src/runtimes/remote-thread-list/empty-thread-core.ts +2 -0
  190. package/src/store/clients/model-context-client.test.ts +108 -0
  191. package/src/store/clients/model-context-client.ts +36 -6
  192. package/src/store/clients/no-op-composer-client.ts +1 -0
  193. package/src/store/runtime-clients/composer-runtime-client.ts +1 -0
  194. package/src/store/scopes/composer.ts +9 -0
  195. package/src/store/scopes/model-context.ts +4 -1
  196. package/src/tests/auiV0Encode.test.ts +55 -0
  197. package/src/tests/composer-can-send.test.ts +112 -0
  198. package/src/tests/external-store-thread-list-runtime-core.test.ts +34 -0
  199. package/src/tests/external-store-thread-runtime-core.test.ts +113 -0
  200. package/src/types/index.ts +2 -0
  201. package/src/types/message.ts +66 -7
@@ -1 +1 @@
1
- {"version":3,"file":"composer-runtime-client.js","sourceRoot":"","sources":["../../../src/store/runtime-clients/composer-runtime-client.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,EAEX,OAAO,GACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,uBAAuB,EAAE,uCAAoC;AACtE,OAAO,EAAE,eAAe,EAAE,8BAA2B;AAErD,MAAM,+BAA+B,GAAG,QAAQ,CAC9C,CAAC,EAAE,OAAO,EAAE,KAAK,EAA+C,EAAE,EAAE;IAClE,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,EACzC,CAAC,OAAO,EAAE,KAAK,CAAC,CACjB,CAAC;IAEF,OAAO,WAAW,CAChB,uBAAuB,CAAC;QACtB,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CACpC,CAAC,EACC,WAAW,EACX,YAAY,EACZ,OAAO,GAKR,EAA4B,EAAE;IAC7B,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAEhC,wCAAwC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,aAAa,GAAkB,EAAE,CAAC;QAExC,+BAA+B;QAC/B,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,eAAe,CAAU,EAAE,CAAC;YACvD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE;gBAClD,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE;oBACxB,QAAQ,EAAE,WAAW,CAAC,OAAO;oBAC7B,GAAG,CAAC,YAAY,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;iBACzD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;QAED,aAAa,CAAC,IAAI,CAChB,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,OAAO,EAAE,EAAE;YACpD,8FAA8F;YAC9F,IAAI,CAAC,6BAA6B,EAAE;gBAClC,QAAQ,EAAE,WAAW,CAAC,OAAO;gBAC7B,GAAG,CAAC,YAAY,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;gBACxD,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;gBACnE,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,KAAK,IAAI,aAAa;gBAAE,KAAK,EAAE,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/C,MAAM,WAAW,GAAG,eAAe,CACjC,GAAG,EAAE,CACH,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,CAC/C,OAAO,CACL,UAAU,CAAC,EAAE,EACb,+BAA+B,CAAC;QAC9B,OAAO;QACP,KAAK,EAAE,GAAG;KACX,CAAC,CACH,CACF,EACH,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CACpC,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CAAgB,GAAG,EAAE;QACxC,OAAO;YACL,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,WAAW,EAAE,WAAW,CAAC,KAAK;YAC9B,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;YAC/C,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,QAAQ;YACnC,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtC,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;QACrB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EACN,OAA+B,CAAC,SAAS;YAC1C,CAAC,GAAG,EAAE;gBACJ,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC,CAAC;QACJ,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YACvB,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;gBACrB,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,qBAAqB,EAAE,GAAG,EAAE,CAAC,OAAO;KACrC,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"composer-runtime-client.js","sourceRoot":"","sources":["../../../src/store/runtime-clients/composer-runtime-client.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,15 @@ export type ComposerState = {
20
20
  readonly runConfig: RunConfig;
21
21
  readonly isEditing: boolean;
22
22
  readonly canCancel: boolean;
23
+ /**
24
+ * Whether the composer is currently willing to send. `true` when the
25
+ * composer is in editing mode and has non-empty content; for thread
26
+ * composers also requires the thread's `isSendDisabled` flag to be unset.
27
+ * Edit composers (saving message edits) ignore `isSendDisabled` since it
28
+ * is a thread-scoped gate. Cross-thread gating (running, queue capability)
29
+ * is layered on top by `useComposerSend`.
30
+ */
31
+ readonly canSend: boolean;
23
32
  readonly attachmentAccept: string;
24
33
  readonly isEmpty: boolean;
25
34
  readonly type: "thread" | "edit";
@@ -1 +1 @@
1
- {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../../../src/store/scopes/composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../../../src/store/scopes/composer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,kCAA+B;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,+BAA4B;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,6BAA0B;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,+BAA4B;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,8CAA2C;AAC1E,OAAO,KAAK,EACV,wBAAwB,EACxB,cAAc,EACd,WAAW,EACZ,0DAAuD;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAqB;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAqB;AAErE,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG;IAC9C;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IAE/C;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,IAAI,aAAa,CAAC;IAC1B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACzC,aAAa,CAAC,gBAAgB,EAAE,IAAI,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,UAAU,CAAC,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,iBAAiB,CAAC;IAC5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvC,MAAM,IAAI,IAAI,CAAC;IACf,SAAS,IAAI,IAAI,CAAC;IAElB;;;OAGG;IACH,cAAc,IAAI,IAAI,CAAC;IAEvB;;OAEG;IACH,aAAa,IAAI,IAAI,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IAE7C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,CAAC;IAEzD,qBAAqB,CAAC,IAAI,eAAe,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,eAAe,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D;;;OAGG;IACH,wBAAwB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,6BAA6B,EAAE;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,wBAAwB,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import type { Unsubscribe } from "../../types/unsubscribe.js";
2
2
  import type { ModelContextProvider } from "../../model-context/types.js";
3
- export type ModelContextState = Record<string, never>;
3
+ export type ModelContextState = {
4
+ readonly modelName?: string | undefined;
5
+ readonly toolNames: readonly string[];
6
+ };
4
7
  export type ModelContextMethods = ModelContextProvider & {
5
8
  getState(): ModelContextState;
6
9
  register: (provider: ModelContextProvider) => Unsubscribe;
@@ -1 +1 @@
1
- {"version":3,"file":"model-context.d.ts","sourceRoot":"","sources":["../../../src/store/scopes/model-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,mCAAgC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,qCAAkC;AAEtE,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG;IACvD,QAAQ,IAAI,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,WAAW,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"model-context.d.ts","sourceRoot":"","sources":["../../../src/store/scopes/model-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,mCAAgC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,qCAAkC;AAEtE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG;IACvD,QAAQ,IAAI,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,WAAW,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC"}
@@ -1,4 +1,4 @@
1
- export type { TextMessagePart, ReasoningMessagePart, SourceMessagePart, ImageMessagePart, FileMessagePart, DataMessagePart, Unstable_AudioMessagePart, ToolCallMessagePart, ThreadUserMessagePart, ThreadAssistantMessagePart, MessagePartStatus, ToolCallMessagePartStatus, MessageStatus, MessageTiming, ThreadStep, ThreadSystemMessage, ThreadUserMessage, ThreadAssistantMessage, ThreadMessage, MessageRole, RunConfig, AppendMessage, } from "./message.js";
1
+ export type { TextMessagePart, ReasoningMessagePart, SourceProviderMetadata, SourceMessagePart, ImageMessagePart, FileMessagePart, DataMessagePart, Unstable_AudioMessagePart, ToolCallMessagePart, ToolModelContentPart, ThreadUserMessagePart, ThreadAssistantMessagePart, MessagePartStatus, ToolCallMessagePartStatus, MessageStatus, MessageTiming, ThreadStep, ThreadSystemMessage, ThreadUserMessage, ThreadAssistantMessage, ThreadMessage, MessageRole, RunConfig, AppendMessage, } from "./message.js";
2
2
  export type { Attachment, PendingAttachment, CompleteAttachment, AttachmentStatus, CreateAttachment, } from "./attachment.js";
3
3
  export type { Unsubscribe } from "./unsubscribe.js";
4
4
  export type { QuoteInfo } from "./quote.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAEV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAE1B,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EAEb,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,WAAW,EAEX,SAAS,EACT,aAAa,GACd,qBAAkB;AAEnB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,wBAAqB;AAEtB,YAAY,EAAE,WAAW,EAAE,yBAAsB;AAEjD,YAAY,EAAE,SAAS,EAAE,mBAAgB;AAEzC,YAAY,EACV,yBAAyB,EACzB,2BAA2B,GAC5B,uBAAoB;AAErB,YAAY,EACV,oBAAoB,EACpB,wBAAwB,GACzB,qBAAkB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAEV,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAE1B,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EAEb,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,WAAW,EAEX,SAAS,EACT,aAAa,GACd,qBAAkB;AAEnB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,wBAAqB;AAEtB,YAAY,EAAE,WAAW,EAAE,yBAAsB;AAEjD,YAAY,EAAE,SAAS,EAAE,mBAAgB;AAEzC,YAAY,EACV,yBAAyB,EACzB,2BAA2B,GAC5B,uBAAoB;AAErB,YAAY,EACV,oBAAoB,EACpB,wBAAwB,GACzB,qBAAkB"}
@@ -1,5 +1,7 @@
1
1
  import type { ReadonlyJSONObject, ReadonlyJSONValue } from "assistant-stream/utils";
2
+ import type { ToolModelContentPart } from "assistant-stream";
2
3
  import type { CompleteAttachment } from "./attachment.js";
4
+ export type { ToolModelContentPart };
3
5
  export type TextMessagePart = {
4
6
  readonly type: "text";
5
7
  readonly text: string;
@@ -10,12 +12,26 @@ export type ReasoningMessagePart = {
10
12
  readonly text: string;
11
13
  readonly parentId?: string;
12
14
  };
15
+ export type SourceProviderMetadata = {
16
+ readonly [providerName: string]: ReadonlyJSONObject;
17
+ };
13
18
  export type SourceMessagePart = {
14
19
  readonly type: "source";
15
20
  readonly sourceType: "url";
16
21
  readonly id: string;
17
22
  readonly url: string;
18
23
  readonly title?: string;
24
+ readonly providerMetadata?: SourceProviderMetadata;
25
+ readonly parentId?: string;
26
+ } | {
27
+ readonly type: "source";
28
+ readonly sourceType: "document";
29
+ readonly id: string;
30
+ readonly url?: undefined;
31
+ readonly title: string;
32
+ readonly mediaType: string;
33
+ readonly filename?: string;
34
+ readonly providerMetadata?: SourceProviderMetadata;
19
35
  readonly parentId?: string;
20
36
  };
21
37
  export type ImageMessagePart = {
@@ -42,20 +58,52 @@ export type DataMessagePart<T = any> = {
42
58
  readonly name: string;
43
59
  readonly data: T;
44
60
  };
61
+ export type McpAppMetadata = {
62
+ readonly resourceUri: string;
63
+ readonly mimeType?: string;
64
+ readonly visibility?: readonly ("model" | "app")[];
65
+ };
66
+ export declare const MCP_APP_URI_SCHEME = "ui://";
67
+ export declare const isMcpAppUri: (uri: string | undefined) => boolean;
68
+ export type ToolCallMessagePartMcpMetadata = {
69
+ readonly app?: McpAppMetadata;
70
+ };
45
71
  export type ToolCallMessagePart<TArgs = ReadonlyJSONObject, TResult = unknown> = {
72
+ /** Identifies this part as a tool call. */
46
73
  readonly type: "tool-call";
74
+ /** Stable identifier for this invocation of the tool. */
47
75
  readonly toolCallId: string;
76
+ /** Name of the tool requested by the model. */
48
77
  readonly toolName: string;
78
+ /**
79
+ * Arguments supplied by the model. During streaming this is a partial parse:
80
+ * fields may be missing or incomplete. From a tool-call renderer, use
81
+ * `useToolArgsStatus` to detect which fields are still arriving.
82
+ */
49
83
  readonly args: TArgs;
84
+ /** Result returned by the tool, if it has completed. */
50
85
  readonly result?: TResult | undefined;
86
+ /** Whether the result represents a tool execution error. */
51
87
  readonly isError?: boolean | undefined;
88
+ /** Raw JSON argument text streamed by the model. */
52
89
  readonly argsText: string;
90
+ /** UI-only artifact associated with the tool result. */
53
91
  readonly artifact?: unknown;
92
+ /** MCP app metadata associated with this tool call, when present. */
93
+ readonly mcp?: ToolCallMessagePartMcpMetadata;
94
+ /** Content returned to the model for this tool result. */
95
+ readonly modelContent?: readonly ToolModelContentPart[] | undefined;
96
+ /** Human-input request that must be resolved before the run can continue. */
54
97
  readonly interrupt?: {
55
98
  type: "human";
56
99
  payload: unknown;
57
100
  };
101
+ /** Parent message-part ID when this part belongs to a nested structure. */
58
102
  readonly parentId?: string;
103
+ /**
104
+ * Nested thread messages produced by this tool call, for example a sub-agent
105
+ * conversation.
106
+ */
59
107
  readonly messages?: readonly ThreadMessage[];
60
108
  };
61
109
  export type ThreadUserMessagePart = TextMessagePart | ImageMessagePart | FileMessagePart | DataMessagePart | Unstable_AudioMessagePart;
@@ -70,7 +118,9 @@ export type MessagePartStatus = {
70
118
  readonly error?: unknown;
71
119
  };
72
120
  export type ToolCallMessagePartStatus = {
121
+ /** The tool call is waiting for UI or human input before continuing. */
73
122
  readonly type: "requires-action";
123
+ /** Reason the tool call requires action. */
74
124
  readonly reason: "interrupt";
75
125
  } | MessagePartStatus;
76
126
  export type MessageStatus = {
@@ -176,5 +226,4 @@ export type AppendMessage = Omit<ThreadMessage, "id"> & {
176
226
  runConfig: RunConfig | undefined;
177
227
  startRun?: boolean | undefined;
178
228
  };
179
- export {};
180
229
  //# sourceMappingURL=message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export {};
1
+ export const MCP_APP_URI_SCHEME = "ui://";
2
+ export const isMcpAppUri = (uri) => !!uri?.startsWith(MCP_APP_URI_SCHEME);
2
3
  //# sourceMappingURL=message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAiFA,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAuB,EAAW,EAAE,CAC9D,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistant-ui/core",
3
- "version": "0.2.0",
3
+ "version": "0.2.3",
4
4
  "description": "Framework-agnostic core runtime for assistant-ui",
5
5
  "keywords": [
6
6
  "assistant",
@@ -59,15 +59,15 @@
59
59
  ],
60
60
  "sideEffects": false,
61
61
  "dependencies": {
62
- "assistant-stream": "^0.3.13",
62
+ "assistant-stream": "^0.3.15",
63
63
  "nanoid": "^5.1.11"
64
64
  },
65
65
  "peerDependencies": {
66
- "@assistant-ui/store": "^0.2.10",
66
+ "@assistant-ui/store": "^0.2.11",
67
67
  "@assistant-ui/tap": "^0.5.11",
68
68
  "@types/react": "*",
69
69
  "react": "^18 || ^19",
70
- "assistant-cloud": "^0.1.27",
70
+ "assistant-cloud": "^0.1.28",
71
71
  "zustand": "^5.0.11"
72
72
  },
73
73
  "peerDependenciesMeta": {
@@ -89,10 +89,10 @@
89
89
  "react": "^19.2.5",
90
90
  "vitest": "^4.1.5",
91
91
  "zustand": "^5.0.13",
92
- "@assistant-ui/store": "0.2.10",
92
+ "@assistant-ui/store": "0.2.11",
93
93
  "@assistant-ui/tap": "0.5.11",
94
- "@assistant-ui/x-buildutils": "0.0.7",
95
- "assistant-cloud": "0.1.27"
94
+ "@assistant-ui/x-buildutils": "0.0.8",
95
+ "assistant-cloud": "0.1.28"
96
96
  },
97
97
  "publishConfig": {
98
98
  "access": "public",
package/src/index.ts CHANGED
@@ -4,12 +4,16 @@ export type {
4
4
  // Message parts
5
5
  TextMessagePart,
6
6
  ReasoningMessagePart,
7
+ SourceProviderMetadata,
7
8
  SourceMessagePart,
8
9
  ImageMessagePart,
9
10
  FileMessagePart,
10
11
  DataMessagePart,
11
12
  Unstable_AudioMessagePart,
12
13
  ToolCallMessagePart,
14
+ ToolCallMessagePartMcpMetadata,
15
+ McpAppMetadata,
16
+ ToolModelContentPart,
13
17
  ThreadUserMessagePart,
14
18
  ThreadAssistantMessagePart,
15
19
  // Message status
@@ -29,6 +33,8 @@ export type {
29
33
  AppendMessage,
30
34
  } from "./types/message";
31
35
 
36
+ export { MCP_APP_URI_SCHEME, isMcpAppUri } from "./types/message";
37
+
32
38
  export type {
33
39
  Attachment,
34
40
  PendingAttachment,
@@ -2,6 +2,31 @@ import type { Tool } from "assistant-stream";
2
2
 
3
3
  // TODO re-add the inferrence of the parameters
4
4
 
5
+ /**
6
+ * Defines a model tool with its argument schema, execution behavior, and
7
+ * optional model-output conversion.
8
+ *
9
+ * This helper keeps reusable tool definitions type-checked and convenient to
10
+ * export for a {@link Toolkit}, {@link Tools}, or {@link useAssistantTool}.
11
+ * Inference from parameter schemas is currently limited, so provide generic
12
+ * arguments when you need precise args or result types.
13
+ *
14
+ * @param tool - Tool definition to expose to the assistant model.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const getWeather = tool<{ city: string }, string>({
19
+ * type: "frontend",
20
+ * description: "Get the weather for a city.",
21
+ * parameters: {
22
+ * type: "object",
23
+ * properties: { city: { type: "string" } },
24
+ * required: ["city"],
25
+ * },
26
+ * execute: async ({ city }) => `Sunny in ${city}`,
27
+ * });
28
+ * ```
29
+ */
5
30
  export function tool<TArgs extends Record<string, unknown>, TResult = any>(
6
31
  tool: Tool<TArgs, TResult>,
7
32
  ): Tool<TArgs, TResult> {
@@ -3,13 +3,46 @@ import type { AssistantClient } from "@assistant-ui/store";
3
3
  import type { AssistantRuntime } from "../runtime/api/assistant-runtime";
4
4
  import { AssistantProviderBase } from "./AssistantProvider";
5
5
 
6
+ /**
7
+ * Mounts an `AssistantRuntime` into the React tree.
8
+ *
9
+ * Accepts the runtime returned by a runtime hook (e.g. `useLocalRuntime`,
10
+ * `useExternalStoreRuntime`, `useAssistantTransportRuntime`). Internally
11
+ * installs an {@link AuiProvider}, so descendants can use `useAui`,
12
+ * `useAuiState`, `useAuiEvent`, and the primitives without any
13
+ * additional setup.
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * function App() {
18
+ * const runtime = useLocalRuntime(MyModelAdapter);
19
+ *
20
+ * return (
21
+ * <AssistantRuntimeProvider runtime={runtime}>
22
+ * <Thread />
23
+ * </AssistantRuntimeProvider>
24
+ * );
25
+ * }
26
+ * ```
27
+ */
6
28
  export const AssistantRuntimeProvider = memo(
7
29
  ({
8
30
  runtime,
9
31
  aui,
10
32
  children,
11
33
  }: {
34
+ /**
35
+ * The assistant runtime to expose to descendants. Build one with
36
+ * `useLocalRuntime`, `useExternalStoreRuntime`, or
37
+ * `useAssistantTransportRuntime`.
38
+ */
12
39
  runtime: AssistantRuntime;
40
+ /**
41
+ * Optional parent `AssistantClient` whose scopes are inherited by the
42
+ * client created for this runtime. Use this when nesting an
43
+ * `AssistantRuntimeProvider` inside another assistant context.
44
+ * @defaultValue null
45
+ */
13
46
  aui?: AssistantClient | null;
14
47
  children: ReactNode;
15
48
  }) => {
@@ -3,6 +3,13 @@ import type { ClientOutput } from "@assistant-ui/store";
3
3
  import type { DataRenderersState } from "../types/scopes/dataRenderers";
4
4
  import type { DataMessagePartComponent } from "../types/MessagePartComponentTypes";
5
5
 
6
+ /**
7
+ * Registers renderers for `data` message parts.
8
+ *
9
+ * Data renderers are looked up by the part's `name` field. Use this resource
10
+ * directly for a renderer scope, or prefer {@link useAssistantDataUI} /
11
+ * {@link makeAssistantDataUI} when registering from React components.
12
+ */
6
13
  export const DataRenderers = resource((): ClientOutput<"dataRenderers"> => {
7
14
  const [state, setState] = tapState<DataRenderersState>(() => ({
8
15
  renderers: {},
@@ -1,46 +1,80 @@
1
- import { resource, tapState, tapEffect, tapCallback } from "@assistant-ui/tap";
1
+ import {
2
+ resource,
3
+ tapState,
4
+ tapEffect,
5
+ tapCallback,
6
+ tapMemo,
7
+ tapResources,
8
+ withKey,
9
+ type ResourceElement,
10
+ } from "@assistant-ui/tap";
2
11
  import {
3
12
  tapAssistantClientRef,
4
13
  type ClientOutput,
5
14
  attachTransformScopes,
6
15
  } from "@assistant-ui/store";
7
- import type { ToolsState } from "../types/scopes/tools";
16
+ import type { McpAppResourceOutput, ToolsState } from "../types/scopes/tools";
8
17
  import type { Tool } from "assistant-stream";
9
18
  import type { Toolkit } from "../model-context/toolbox";
10
19
  import type { ToolCallMessagePartComponent } from "../types/MessagePartComponentTypes";
11
20
  import { ModelContext } from "../../store";
12
21
 
22
+ export type { McpAppResourceOutput };
23
+
24
+ /**
25
+ * Registers tools with model context and installs tool-call renderers.
26
+ *
27
+ * Mount this resource near an assistant subtree when you want to expose a
28
+ * group of tools declaratively. Tool definitions are registered with model
29
+ * context, while each tool renderer is registered with the tools scope for
30
+ * message rendering.
31
+ */
13
32
  export const Tools = resource(
14
- ({ toolkit }: { toolkit?: Toolkit }): ClientOutput<"tools"> => {
15
- const [state, setState] = tapState<ToolsState>(() => ({
33
+ ({
34
+ toolkit,
35
+ mcpApp,
36
+ }: {
37
+ /** Tools to expose to the model and optional renderers to install. */
38
+ toolkit?: Toolkit;
39
+ /** Optional MCP app resource whose tools should be merged into context. */
40
+ mcpApp?: ResourceElement<McpAppResourceOutput> | undefined;
41
+ }): ClientOutput<"tools"> => {
42
+ const mcpAppOutputs = tapResources(
43
+ () => (mcpApp ? [withKey("mcpApp", mcpApp)] : []),
44
+ [mcpApp],
45
+ );
46
+ const mcpAppOutput = mcpAppOutputs[0];
47
+
48
+ const [toolsState, setToolsState] = tapState<{
49
+ tools: ToolsState["tools"];
50
+ }>(() => ({
16
51
  tools: {},
17
52
  }));
18
53
 
54
+ const state = tapMemo(
55
+ (): ToolsState => ({ tools: toolsState.tools, mcpApp: mcpAppOutput }),
56
+ [toolsState, mcpAppOutput],
57
+ );
58
+
19
59
  const clientRef = tapAssistantClientRef();
20
60
 
21
61
  const setToolUI = tapCallback(
22
62
  (toolName: string, render: ToolCallMessagePartComponent) => {
23
- setState((prev) => {
24
- return {
25
- ...prev,
63
+ setToolsState((prev) => ({
64
+ tools: {
65
+ ...prev.tools,
66
+ [toolName]: [...(prev.tools[toolName] ?? []), render],
67
+ },
68
+ }));
69
+
70
+ return () => {
71
+ setToolsState((prev) => ({
26
72
  tools: {
27
73
  ...prev.tools,
28
- [toolName]: [...(prev.tools[toolName] ?? []), render],
74
+ [toolName]:
75
+ prev.tools[toolName]?.filter((r) => r !== render) ?? [],
29
76
  },
30
- };
31
- });
32
-
33
- return () => {
34
- setState((prev) => {
35
- return {
36
- ...prev,
37
- tools: {
38
- ...prev.tools,
39
- [toolName]:
40
- prev.tools[toolName]?.filter((r) => r !== render) ?? [],
41
- },
42
- };
43
- });
77
+ }));
44
78
  };
45
79
  },
46
80
  [],
@@ -43,7 +43,7 @@ export {
43
43
  } from "./model-context/useToolArgsStatus";
44
44
 
45
45
  // client
46
- export { Tools } from "./client/Tools";
46
+ export { Tools, type McpAppResourceOutput } from "./client/Tools";
47
47
  export { DataRenderers } from "./client/DataRenderers";
48
48
  export { Interactables } from "./client/Interactables";
49
49
 
@@ -185,6 +185,7 @@ export {
185
185
  PartPrimitiveMessages,
186
186
  PartPrimitiveMessagesImpl,
187
187
  } from "./primitives/part/PartMessages";
188
+ export { MessagePartPrimitiveInProgress } from "./primitives/messagePart/MessagePartInProgress";
188
189
  export { ThreadListItemPrimitiveTitle } from "./primitives/threadListItem/ThreadListItemTitle";
189
190
  export {
190
191
  ThreadPrimitiveSuggestions,
@@ -4,10 +4,23 @@ import {
4
4
  useAssistantDataUI,
5
5
  } from "./useAssistantDataUI";
6
6
 
7
+ /**
8
+ * Component returned by {@link makeAssistantDataUI}.
9
+ *
10
+ * Rendering the component registers a renderer for matching `data` message
11
+ * parts.
12
+ */
7
13
  export type AssistantDataUI = FC & {
14
+ /** Data renderer registered by this component. */
8
15
  unstable_data: AssistantDataUIProps;
9
16
  };
10
17
 
18
+ /**
19
+ * Creates a React component that registers a named data-part renderer when
20
+ * rendered.
21
+ *
22
+ * @param dataUI - Data renderer registration.
23
+ */
11
24
  export const makeAssistantDataUI = <T = any>(
12
25
  dataUI: AssistantDataUIProps<T>,
13
26
  ) => {
@@ -1,10 +1,25 @@
1
1
  import type { FC } from "react";
2
2
  import { type AssistantToolProps, useAssistantTool } from "./useAssistantTool";
3
3
 
4
+ /**
5
+ * Component returned by {@link makeAssistantTool}.
6
+ *
7
+ * Rendering the component registers its tool for the lifetime of that render
8
+ * subtree.
9
+ */
4
10
  export type AssistantTool = FC & {
11
+ /** Tool definition registered by this component. */
5
12
  unstable_tool: AssistantToolProps<any, any>;
6
13
  };
7
14
 
15
+ /**
16
+ * Creates a React component that registers an assistant tool when rendered.
17
+ *
18
+ * Use this when exporting reusable tool modules that can be included in JSX
19
+ * rather than calling {@link useAssistantTool} directly.
20
+ *
21
+ * @param tool - Tool definition and name to register.
22
+ */
8
23
  export const makeAssistantTool = <
9
24
  TArgs extends Record<string, unknown>,
10
25
  TResult,
@@ -4,10 +4,25 @@ import {
4
4
  useAssistantToolUI,
5
5
  } from "./useAssistantToolUI";
6
6
 
7
+ /**
8
+ * Component returned by {@link makeAssistantToolUI}.
9
+ *
10
+ * Rendering the component registers a renderer for matching tool-call message
11
+ * parts.
12
+ */
7
13
  export type AssistantToolUI = FC & {
14
+ /** Tool renderer registered by this component. */
8
15
  unstable_tool: AssistantToolUIProps<any, any>;
9
16
  };
10
17
 
18
+ /**
19
+ * Creates a React component that registers a tool-call renderer when rendered.
20
+ *
21
+ * Use this to package reusable display components for tools whose definitions
22
+ * are registered elsewhere.
23
+ *
24
+ * @param tool - Tool renderer registration.
25
+ */
11
26
  export const makeAssistantToolUI = <TArgs, TResult>(
12
27
  tool: AssistantToolUIProps<TArgs, TResult>,
13
28
  ) => {
@@ -5,15 +5,46 @@ type WithRender<T, TArgs extends Record<string, unknown>, TResult> = T extends {
5
5
  type: "frontend" | "human";
6
6
  }
7
7
  ? T & { render: ToolCallMessagePartComponent<TArgs, TResult> }
8
- : T & { render?: ToolCallMessagePartComponent<TArgs, TResult> | undefined };
8
+ : T & {
9
+ render?: ToolCallMessagePartComponent<TArgs, TResult> | undefined;
10
+ };
9
11
 
12
+ /**
13
+ * Tool definition accepted by the React tool registry.
14
+ *
15
+ * Extends the core tool contract with a render component. Human tools rely on
16
+ * the renderer to collect input from the user. Frontend tools execute in the
17
+ * browser and require a UI surface for their progress and result. Backend
18
+ * tools execute server-side and may omit a renderer. The `render` component is
19
+ * required for frontend and human tools and optional for backend tools.
20
+ */
10
21
  export type ToolDefinition<
11
22
  TArgs extends Record<string, unknown>,
12
23
  TResult,
13
24
  > = WithRender<Tool<TArgs, TResult>, TArgs, TResult>;
14
25
 
26
+ /**
27
+ * Named collection of tools exposed to the assistant model.
28
+ *
29
+ * Keys are the tool names the model receives and uses in tool calls.
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * const toolkit = {
34
+ * get_weather: {
35
+ * type: "frontend",
36
+ * description: "Get the weather for a city.",
37
+ * parameters: weatherSchema,
38
+ * execute: async ({ city }: { city: string }) => fetchWeather(city),
39
+ * render: WeatherToolUI,
40
+ * },
41
+ * } satisfies Toolkit;
42
+ * ```
43
+ */
15
44
  export type Toolkit = Record<string, ToolDefinition<any, any>>;
16
45
 
46
+ /** Configuration for the {@link Tools} resource. */
17
47
  export type ToolsConfig = {
48
+ /** Tools to register with model context and, when provided, message renderers. */
18
49
  toolkit: Toolkit;
19
50
  };