veryfront 0.1.997 → 0.1.998

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 (374) hide show
  1. package/esm/cli/templates/manifest.js +1 -1
  2. package/esm/deno.d.ts +7 -0
  3. package/esm/deno.js +11 -3
  4. package/esm/deps/esm.sh/react-dom@19.2.4.d.ts +2 -0
  5. package/esm/deps/esm.sh/react-dom@19.2.4.d.ts.map +1 -0
  6. package/esm/deps/esm.sh/react-dom@19.2.4.js +3 -0
  7. package/esm/react/react-dom.d.ts +3 -0
  8. package/esm/react/react-dom.d.ts.map +1 -0
  9. package/esm/react/react-dom.js +2 -0
  10. package/esm/src/agent/ag-ui/host-support.d.ts.map +1 -1
  11. package/esm/src/agent/ag-ui/host-support.js +12 -0
  12. package/esm/src/agent/react/index.d.ts +4 -2
  13. package/esm/src/agent/react/index.d.ts.map +1 -1
  14. package/esm/src/agent/react/index.js +2 -1
  15. package/esm/src/agent/react/use-agent-metadata.d.ts +5 -0
  16. package/esm/src/agent/react/use-agent-metadata.d.ts.map +1 -1
  17. package/esm/src/agent/react/use-agent-metadata.js +18 -9
  18. package/esm/src/agent/react/use-agents.d.ts +33 -0
  19. package/esm/src/agent/react/use-agents.d.ts.map +1 -0
  20. package/esm/src/agent/react/use-agents.js +72 -0
  21. package/esm/src/agent/react/use-chat/index.d.ts +1 -1
  22. package/esm/src/agent/react/use-chat/index.d.ts.map +1 -1
  23. package/esm/src/agent/react/use-chat/types.d.ts +3 -2
  24. package/esm/src/agent/react/use-chat/types.d.ts.map +1 -1
  25. package/esm/src/agent/react/use-chat/use-chat.d.ts +12 -1
  26. package/esm/src/agent/react/use-chat/use-chat.d.ts.map +1 -1
  27. package/esm/src/agent/react/use-chat/use-chat.js +47 -7
  28. package/esm/src/agent/react/use-chat/utils.d.ts.map +1 -1
  29. package/esm/src/agent/react/use-chat/utils.js +4 -0
  30. package/esm/src/agent/runtime/message-adapter.d.ts.map +1 -1
  31. package/esm/src/agent/runtime/message-adapter.js +3 -1
  32. package/esm/src/agent/runtime/text-generation-runtime-message-converter.d.ts.map +1 -1
  33. package/esm/src/agent/runtime/text-generation-runtime-message-converter.js +6 -2
  34. package/esm/src/chat/index.d.ts +17 -7
  35. package/esm/src/chat/index.d.ts.map +1 -1
  36. package/esm/src/chat/index.js +33 -7
  37. package/esm/src/chat/protocol.d.ts +13 -1
  38. package/esm/src/chat/protocol.d.ts.map +1 -1
  39. package/esm/src/chat/upload-handler.d.ts +55 -0
  40. package/esm/src/chat/upload-handler.d.ts.map +1 -0
  41. package/esm/src/chat/upload-handler.js +180 -0
  42. package/esm/src/discovery/import-rewriter.d.ts +1 -1
  43. package/esm/src/discovery/import-rewriter.d.ts.map +1 -1
  44. package/esm/src/discovery/import-rewriter.js +2 -0
  45. package/esm/src/discovery/transpiler.d.ts.map +1 -1
  46. package/esm/src/discovery/transpiler.js +2 -0
  47. package/esm/src/react/components/chat/agent-card.d.ts +84 -11
  48. package/esm/src/react/components/chat/agent-card.d.ts.map +1 -1
  49. package/esm/src/react/components/chat/agent-card.js +151 -57
  50. package/esm/src/react/components/chat/agent-picker.d.ts +166 -0
  51. package/esm/src/react/components/chat/agent-picker.d.ts.map +1 -0
  52. package/esm/src/react/components/chat/agent-picker.js +183 -0
  53. package/esm/src/react/components/chat/chat/components/animations.js +1 -1
  54. package/esm/src/react/components/chat/chat/components/attachment-pill.d.ts +125 -3
  55. package/esm/src/react/components/chat/chat/components/attachment-pill.d.ts.map +1 -1
  56. package/esm/src/react/components/chat/chat/components/attachment-pill.js +209 -25
  57. package/esm/src/react/components/chat/chat/components/attachments-panel.d.ts +149 -0
  58. package/esm/src/react/components/chat/chat/components/attachments-panel.d.ts.map +1 -0
  59. package/esm/src/react/components/chat/chat/components/attachments-panel.js +187 -0
  60. package/esm/src/react/components/chat/chat/components/branch-picker.d.ts +13 -2
  61. package/esm/src/react/components/chat/chat/components/branch-picker.d.ts.map +1 -1
  62. package/esm/src/react/components/chat/chat/components/branch-picker.js +6 -8
  63. package/esm/src/react/components/chat/chat/components/chat-messages-skeleton.d.ts +20 -0
  64. package/esm/src/react/components/chat/chat/components/chat-messages-skeleton.d.ts.map +1 -0
  65. package/esm/src/react/components/chat/chat/components/chat-messages-skeleton.js +31 -0
  66. package/esm/src/react/components/chat/chat/components/code-block.d.ts +9 -1
  67. package/esm/src/react/components/chat/chat/components/code-block.d.ts.map +1 -1
  68. package/esm/src/react/components/chat/chat/components/code-block.js +14 -6
  69. package/esm/src/react/components/chat/chat/components/drop-zone.d.ts +11 -4
  70. package/esm/src/react/components/chat/chat/components/drop-zone.d.ts.map +1 -1
  71. package/esm/src/react/components/chat/chat/components/drop-zone.js +10 -8
  72. package/esm/src/react/components/chat/chat/components/empty-state.d.ts +2 -1
  73. package/esm/src/react/components/chat/chat/components/empty-state.d.ts.map +1 -1
  74. package/esm/src/react/components/chat/chat/components/empty-state.js +7 -8
  75. package/esm/src/react/components/chat/chat/components/inference-badge.d.ts +6 -2
  76. package/esm/src/react/components/chat/chat/components/inference-badge.d.ts.map +1 -1
  77. package/esm/src/react/components/chat/chat/components/inference-badge.js +5 -4
  78. package/esm/src/react/components/chat/chat/components/inline-citation.d.ts +9 -1
  79. package/esm/src/react/components/chat/chat/components/inline-citation.d.ts.map +1 -1
  80. package/esm/src/react/components/chat/chat/components/inline-citation.js +19 -20
  81. package/esm/src/react/components/chat/chat/components/message-actions.d.ts +28 -5
  82. package/esm/src/react/components/chat/chat/components/message-actions.d.ts.map +1 -1
  83. package/esm/src/react/components/chat/chat/components/message-actions.js +24 -36
  84. package/esm/src/react/components/chat/chat/components/message-edit-form.d.ts +7 -2
  85. package/esm/src/react/components/chat/chat/components/message-edit-form.d.ts.map +1 -1
  86. package/esm/src/react/components/chat/chat/components/message-edit-form.js +5 -5
  87. package/esm/src/react/components/chat/chat/components/message-feedback.d.ts +11 -1
  88. package/esm/src/react/components/chat/chat/components/message-feedback.d.ts.map +1 -1
  89. package/esm/src/react/components/chat/chat/components/message-feedback.js +9 -11
  90. package/esm/src/react/components/chat/chat/components/quick-actions.d.ts.map +1 -1
  91. package/esm/src/react/components/chat/chat/components/quick-actions.js +3 -1
  92. package/esm/src/react/components/chat/chat/components/reasoning.d.ts +66 -3
  93. package/esm/src/react/components/chat/chat/components/reasoning.d.ts.map +1 -1
  94. package/esm/src/react/components/chat/chat/components/reasoning.js +95 -21
  95. package/esm/src/react/components/chat/chat/components/sidebar.d.ts +178 -12
  96. package/esm/src/react/components/chat/chat/components/sidebar.d.ts.map +1 -1
  97. package/esm/src/react/components/chat/chat/components/sidebar.js +228 -45
  98. package/esm/src/react/components/chat/chat/components/skill-badge.d.ts +6 -1
  99. package/esm/src/react/components/chat/chat/components/skill-badge.d.ts.map +1 -1
  100. package/esm/src/react/components/chat/chat/components/skill-badge.js +6 -5
  101. package/esm/src/react/components/chat/chat/components/skill-tool.d.ts +37 -0
  102. package/esm/src/react/components/chat/chat/components/skill-tool.d.ts.map +1 -0
  103. package/esm/src/react/components/chat/chat/components/skill-tool.js +46 -0
  104. package/esm/src/react/components/chat/chat/components/sources.d.ts +55 -3
  105. package/esm/src/react/components/chat/chat/components/sources.d.ts.map +1 -1
  106. package/esm/src/react/components/chat/chat/components/sources.js +50 -16
  107. package/esm/src/react/components/chat/chat/components/step-indicator.d.ts +42 -3
  108. package/esm/src/react/components/chat/chat/components/step-indicator.d.ts.map +1 -1
  109. package/esm/src/react/components/chat/chat/components/step-indicator.js +55 -12
  110. package/esm/src/react/components/chat/chat/components/tab-switcher.d.ts +1 -1
  111. package/esm/src/react/components/chat/chat/components/tab-switcher.d.ts.map +1 -1
  112. package/esm/src/react/components/chat/chat/components/tab-switcher.js +3 -3
  113. package/esm/src/react/components/chat/chat/components/tool-ui.d.ts +96 -3
  114. package/esm/src/react/components/chat/chat/components/tool-ui.d.ts.map +1 -1
  115. package/esm/src/react/components/chat/chat/components/tool-ui.js +158 -36
  116. package/esm/src/react/components/chat/chat/composition/api.d.ts +4 -2
  117. package/esm/src/react/components/chat/chat/composition/api.d.ts.map +1 -1
  118. package/esm/src/react/components/chat/chat/composition/api.js +4 -2
  119. package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts +112 -5
  120. package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts.map +1 -1
  121. package/esm/src/react/components/chat/chat/composition/chat-composer.js +251 -61
  122. package/esm/src/react/components/chat/chat/composition/chat-empty-state.d.ts +78 -0
  123. package/esm/src/react/components/chat/chat/composition/chat-empty-state.d.ts.map +1 -0
  124. package/esm/src/react/components/chat/chat/composition/chat-empty-state.js +63 -0
  125. package/esm/src/react/components/chat/chat/composition/chat-empty.d.ts +4 -1
  126. package/esm/src/react/components/chat/chat/composition/chat-empty.d.ts.map +1 -1
  127. package/esm/src/react/components/chat/chat/composition/chat-empty.js +11 -10
  128. package/esm/src/react/components/chat/chat/composition/chat-message-list.d.ts +11 -3
  129. package/esm/src/react/components/chat/chat/composition/chat-message-list.d.ts.map +1 -1
  130. package/esm/src/react/components/chat/chat/composition/chat-message-list.js +81 -111
  131. package/esm/src/react/components/chat/chat/composition/chat-root.d.ts +4 -0
  132. package/esm/src/react/components/chat/chat/composition/chat-root.d.ts.map +1 -1
  133. package/esm/src/react/components/chat/chat/composition/chat-root.js +3 -1
  134. package/esm/src/react/components/chat/chat/composition/error-banner.d.ts +4 -0
  135. package/esm/src/react/components/chat/chat/composition/error-banner.d.ts.map +1 -1
  136. package/esm/src/react/components/chat/chat/composition/error-banner.js +10 -7
  137. package/esm/src/react/components/chat/chat/composition/message.d.ts +123 -5
  138. package/esm/src/react/components/chat/chat/composition/message.d.ts.map +1 -1
  139. package/esm/src/react/components/chat/chat/composition/message.js +332 -53
  140. package/esm/src/react/components/chat/chat/composition/model-avatar.d.ts +6 -1
  141. package/esm/src/react/components/chat/chat/composition/model-avatar.d.ts.map +1 -1
  142. package/esm/src/react/components/chat/chat/composition/model-avatar.js +3 -4
  143. package/esm/src/react/components/chat/chat/composition/pending-message.d.ts +31 -0
  144. package/esm/src/react/components/chat/chat/composition/pending-message.d.ts.map +1 -0
  145. package/esm/src/react/components/chat/chat/composition/pending-message.js +31 -0
  146. package/esm/src/react/components/chat/chat/contexts/chat-context.d.ts +4 -0
  147. package/esm/src/react/components/chat/chat/contexts/chat-context.d.ts.map +1 -1
  148. package/esm/src/react/components/chat/chat/contexts/composer-context.d.ts +1 -0
  149. package/esm/src/react/components/chat/chat/contexts/composer-context.d.ts.map +1 -1
  150. package/esm/src/react/components/chat/chat/contexts/conversations-context.d.ts +29 -0
  151. package/esm/src/react/components/chat/chat/contexts/conversations-context.d.ts.map +1 -0
  152. package/esm/src/react/components/chat/chat/contexts/conversations-context.js +39 -0
  153. package/esm/src/react/components/chat/chat/contexts/index.d.ts +1 -1
  154. package/esm/src/react/components/chat/chat/contexts/index.d.ts.map +1 -1
  155. package/esm/src/react/components/chat/chat/contexts/index.js +1 -1
  156. package/esm/src/react/components/chat/chat/contexts/message-context.d.ts +2 -0
  157. package/esm/src/react/components/chat/chat/contexts/message-context.d.ts.map +1 -1
  158. package/esm/src/react/components/chat/chat/hooks/use-clipboard.d.ts +10 -0
  159. package/esm/src/react/components/chat/chat/hooks/use-clipboard.d.ts.map +1 -0
  160. package/esm/src/react/components/chat/chat/hooks/use-clipboard.js +34 -0
  161. package/esm/src/react/components/chat/chat/hooks/use-conversation.d.ts +21 -0
  162. package/esm/src/react/components/chat/chat/hooks/use-conversation.d.ts.map +1 -0
  163. package/esm/src/react/components/chat/chat/hooks/use-conversation.js +54 -0
  164. package/esm/src/react/components/chat/chat/hooks/use-conversations.d.ts +67 -0
  165. package/esm/src/react/components/chat/chat/hooks/use-conversations.d.ts.map +1 -0
  166. package/esm/src/react/components/chat/chat/hooks/use-conversations.js +317 -0
  167. package/esm/src/react/components/chat/chat/hooks/use-drop-zone.d.ts +27 -0
  168. package/esm/src/react/components/chat/chat/hooks/use-drop-zone.d.ts.map +1 -0
  169. package/esm/src/react/components/chat/chat/hooks/use-drop-zone.js +50 -0
  170. package/esm/src/react/components/chat/chat/hooks/use-stick-to-bottom.d.ts +49 -0
  171. package/esm/src/react/components/chat/chat/hooks/use-stick-to-bottom.d.ts.map +1 -0
  172. package/esm/src/react/components/chat/chat/hooks/use-stick-to-bottom.js +120 -0
  173. package/esm/src/react/components/chat/chat/hooks/use-upload.d.ts +34 -0
  174. package/esm/src/react/components/chat/chat/hooks/use-upload.d.ts.map +1 -0
  175. package/esm/src/react/components/chat/chat/hooks/use-upload.js +147 -0
  176. package/esm/src/react/components/chat/chat/hooks/use-uploads-registry.d.ts +37 -0
  177. package/esm/src/react/components/chat/chat/hooks/use-uploads-registry.d.ts.map +1 -0
  178. package/esm/src/react/components/chat/chat/hooks/use-uploads-registry.js +178 -0
  179. package/esm/src/react/components/chat/chat/index.d.ts +171 -31
  180. package/esm/src/react/components/chat/chat/index.d.ts.map +1 -1
  181. package/esm/src/react/components/chat/chat/index.js +371 -77
  182. package/esm/src/react/components/chat/chat/persistence/conversation-store.d.ts +63 -0
  183. package/esm/src/react/components/chat/chat/persistence/conversation-store.d.ts.map +1 -0
  184. package/esm/src/react/components/chat/chat/persistence/conversation-store.js +1 -0
  185. package/esm/src/react/components/chat/chat/persistence/local-conversation-store.d.ts +13 -0
  186. package/esm/src/react/components/chat/chat/persistence/local-conversation-store.d.ts.map +1 -0
  187. package/esm/src/react/components/chat/chat/persistence/local-conversation-store.js +102 -0
  188. package/esm/src/react/components/chat/chat/persistence/memory-conversation-store.d.ts +11 -0
  189. package/esm/src/react/components/chat/chat/persistence/memory-conversation-store.d.ts.map +1 -0
  190. package/esm/src/react/components/chat/chat/persistence/memory-conversation-store.js +33 -0
  191. package/esm/src/react/components/chat/chat/utils/message-parts.d.ts +4 -1
  192. package/esm/src/react/components/chat/chat/utils/message-parts.d.ts.map +1 -1
  193. package/esm/src/react/components/chat/chat/utils/message-parts.js +4 -0
  194. package/esm/src/react/components/chat/chat-actions.d.ts +164 -0
  195. package/esm/src/react/components/chat/chat-actions.d.ts.map +1 -0
  196. package/esm/src/react/components/chat/chat-actions.js +191 -0
  197. package/esm/src/react/components/chat/chat-agent-picker.d.ts +50 -0
  198. package/esm/src/react/components/chat/chat-agent-picker.d.ts.map +1 -0
  199. package/esm/src/react/components/chat/chat-agent-picker.js +40 -0
  200. package/esm/src/react/components/chat/chat-theme-scope.d.ts +26 -0
  201. package/esm/src/react/components/chat/chat-theme-scope.d.ts.map +1 -0
  202. package/esm/src/react/components/chat/chat-theme-scope.js +27 -0
  203. package/esm/src/react/components/chat/chat-tokens-style.d.ts +21 -0
  204. package/esm/src/react/components/chat/chat-tokens-style.d.ts.map +1 -0
  205. package/esm/src/react/components/chat/chat-tokens-style.js +24 -0
  206. package/esm/src/react/components/chat/chat.d.ts +5 -5
  207. package/esm/src/react/components/chat/chat.d.ts.map +1 -1
  208. package/esm/src/react/components/chat/chat.js +5 -5
  209. package/esm/src/react/components/chat/color-mode.d.ts +46 -0
  210. package/esm/src/react/components/chat/color-mode.d.ts.map +1 -0
  211. package/esm/src/react/components/chat/color-mode.js +123 -0
  212. package/esm/src/react/components/chat/error-boundary.js +2 -2
  213. package/esm/src/react/components/chat/icons/index.d.ts +8 -0
  214. package/esm/src/react/components/chat/icons/index.d.ts.map +1 -1
  215. package/esm/src/react/components/chat/icons/index.js +64 -0
  216. package/esm/src/react/components/chat/markdown.d.ts +24 -1
  217. package/esm/src/react/components/chat/markdown.d.ts.map +1 -1
  218. package/esm/src/react/components/chat/markdown.js +122 -38
  219. package/esm/src/react/components/chat/model-selector.d.ts +130 -8
  220. package/esm/src/react/components/chat/model-selector.d.ts.map +1 -1
  221. package/esm/src/react/components/chat/model-selector.js +148 -121
  222. package/esm/src/react/components/chat/theme.d.ts +9 -12
  223. package/esm/src/react/components/chat/theme.d.ts.map +1 -1
  224. package/esm/src/react/components/chat/theme.js +149 -93
  225. package/esm/src/react/components/chat/ui/alert.d.ts +30 -0
  226. package/esm/src/react/components/chat/ui/alert.d.ts.map +1 -0
  227. package/esm/src/react/components/chat/ui/alert.js +35 -0
  228. package/esm/src/react/components/chat/ui/app-shell.d.ts +155 -0
  229. package/esm/src/react/components/chat/ui/app-shell.d.ts.map +1 -0
  230. package/esm/src/react/components/chat/ui/app-shell.js +276 -0
  231. package/esm/src/react/components/chat/ui/avatar.d.ts +24 -0
  232. package/esm/src/react/components/chat/ui/avatar.d.ts.map +1 -0
  233. package/esm/src/react/components/chat/ui/avatar.js +44 -0
  234. package/esm/src/react/components/chat/ui/badge.d.ts +24 -0
  235. package/esm/src/react/components/chat/ui/badge.d.ts.map +1 -0
  236. package/esm/src/react/components/chat/ui/badge.js +30 -0
  237. package/esm/src/react/components/chat/ui/button.d.ts +44 -0
  238. package/esm/src/react/components/chat/ui/button.d.ts.map +1 -0
  239. package/esm/src/react/components/chat/ui/button.js +108 -0
  240. package/esm/src/react/components/chat/ui/card.d.ts +42 -0
  241. package/esm/src/react/components/chat/ui/card.d.ts.map +1 -0
  242. package/esm/src/react/components/chat/ui/card.js +55 -0
  243. package/esm/src/react/components/chat/ui/checkbox.d.ts +28 -0
  244. package/esm/src/react/components/chat/ui/checkbox.d.ts.map +1 -0
  245. package/esm/src/react/components/chat/ui/checkbox.js +36 -0
  246. package/esm/src/react/components/chat/ui/code-block.d.ts +89 -0
  247. package/esm/src/react/components/chat/ui/code-block.d.ts.map +1 -0
  248. package/esm/src/react/components/chat/ui/code-block.js +277 -0
  249. package/esm/src/react/components/chat/ui/collapsible.d.ts +30 -0
  250. package/esm/src/react/components/chat/ui/collapsible.d.ts.map +1 -0
  251. package/esm/src/react/components/chat/ui/collapsible.js +44 -0
  252. package/esm/src/react/components/chat/ui/command.d.ts +65 -0
  253. package/esm/src/react/components/chat/ui/command.d.ts.map +1 -0
  254. package/esm/src/react/components/chat/ui/command.js +121 -0
  255. package/esm/src/react/components/chat/ui/cva.d.ts +36 -0
  256. package/esm/src/react/components/chat/ui/cva.d.ts.map +1 -0
  257. package/esm/src/react/components/chat/ui/cva.js +45 -0
  258. package/esm/src/react/components/chat/ui/dialog.d.ts +55 -0
  259. package/esm/src/react/components/chat/ui/dialog.d.ts.map +1 -0
  260. package/esm/src/react/components/chat/ui/dialog.js +116 -0
  261. package/esm/src/react/components/chat/ui/drawer.d.ts +41 -0
  262. package/esm/src/react/components/chat/ui/drawer.d.ts.map +1 -0
  263. package/esm/src/react/components/chat/ui/drawer.js +92 -0
  264. package/esm/src/react/components/chat/ui/dropdown-menu.d.ts +63 -0
  265. package/esm/src/react/components/chat/ui/dropdown-menu.d.ts.map +1 -0
  266. package/esm/src/react/components/chat/ui/dropdown-menu.js +76 -0
  267. package/esm/src/react/components/chat/ui/file-type.d.ts +26 -0
  268. package/esm/src/react/components/chat/ui/file-type.d.ts.map +1 -0
  269. package/esm/src/react/components/chat/ui/file-type.js +235 -0
  270. package/esm/src/react/components/chat/ui/floating.d.ts +29 -0
  271. package/esm/src/react/components/chat/ui/floating.d.ts.map +1 -0
  272. package/esm/src/react/components/chat/ui/floating.js +90 -0
  273. package/esm/src/react/components/chat/ui/icon-button.d.ts +19 -0
  274. package/esm/src/react/components/chat/ui/icon-button.d.ts.map +1 -0
  275. package/esm/src/react/components/chat/ui/icon-button.js +20 -0
  276. package/esm/src/react/components/chat/ui/index.d.ts +43 -0
  277. package/esm/src/react/components/chat/ui/index.d.ts.map +1 -0
  278. package/esm/src/react/components/chat/ui/index.js +42 -0
  279. package/esm/src/react/components/chat/ui/input.d.ts +27 -0
  280. package/esm/src/react/components/chat/ui/input.d.ts.map +1 -0
  281. package/esm/src/react/components/chat/ui/input.js +41 -0
  282. package/esm/src/react/components/chat/ui/label.d.ts +29 -0
  283. package/esm/src/react/components/chat/ui/label.d.ts.map +1 -0
  284. package/esm/src/react/components/chat/ui/label.js +40 -0
  285. package/esm/src/react/components/chat/ui/list.d.ts +47 -0
  286. package/esm/src/react/components/chat/ui/list.d.ts.map +1 -0
  287. package/esm/src/react/components/chat/ui/list.js +40 -0
  288. package/esm/src/react/components/chat/ui/pill.d.ts +26 -0
  289. package/esm/src/react/components/chat/ui/pill.d.ts.map +1 -0
  290. package/esm/src/react/components/chat/ui/pill.js +39 -0
  291. package/esm/src/react/components/chat/ui/popover.d.ts +47 -0
  292. package/esm/src/react/components/chat/ui/popover.d.ts.map +1 -0
  293. package/esm/src/react/components/chat/ui/popover.js +68 -0
  294. package/esm/src/react/components/chat/ui/progress-bar.d.ts +20 -0
  295. package/esm/src/react/components/chat/ui/progress-bar.d.ts.map +1 -0
  296. package/esm/src/react/components/chat/ui/progress-bar.js +31 -0
  297. package/esm/src/react/components/chat/ui/radio.d.ts +25 -0
  298. package/esm/src/react/components/chat/ui/radio.d.ts.map +1 -0
  299. package/esm/src/react/components/chat/ui/radio.js +29 -0
  300. package/esm/src/react/components/chat/ui/scroll-fade.d.ts +23 -0
  301. package/esm/src/react/components/chat/ui/scroll-fade.d.ts.map +1 -0
  302. package/esm/src/react/components/chat/ui/scroll-fade.js +40 -0
  303. package/esm/src/react/components/chat/ui/select.d.ts +64 -0
  304. package/esm/src/react/components/chat/ui/select.d.ts.map +1 -0
  305. package/esm/src/react/components/chat/ui/select.js +148 -0
  306. package/esm/src/react/components/chat/ui/shimmer.d.ts +25 -0
  307. package/esm/src/react/components/chat/ui/shimmer.d.ts.map +1 -0
  308. package/esm/src/react/components/chat/ui/shimmer.js +24 -0
  309. package/esm/src/react/components/chat/ui/skeleton.d.ts +14 -0
  310. package/esm/src/react/components/chat/ui/skeleton.d.ts.map +1 -0
  311. package/esm/src/react/components/chat/ui/skeleton.js +12 -0
  312. package/esm/src/react/components/chat/ui/slot.d.ts +21 -0
  313. package/esm/src/react/components/chat/ui/slot.d.ts.map +1 -0
  314. package/esm/src/react/components/chat/ui/slot.js +70 -0
  315. package/esm/src/react/components/chat/ui/status.d.ts +28 -0
  316. package/esm/src/react/components/chat/ui/status.d.ts.map +1 -0
  317. package/esm/src/react/components/chat/ui/status.js +23 -0
  318. package/esm/src/react/components/chat/ui/switch.d.ts +34 -0
  319. package/esm/src/react/components/chat/ui/switch.d.ts.map +1 -0
  320. package/esm/src/react/components/chat/ui/switch.js +58 -0
  321. package/esm/src/react/components/chat/ui/tabs.d.ts +44 -0
  322. package/esm/src/react/components/chat/ui/tabs.d.ts.map +1 -0
  323. package/esm/src/react/components/chat/ui/tabs.js +51 -0
  324. package/esm/src/react/components/chat/ui/tag.d.ts +22 -0
  325. package/esm/src/react/components/chat/ui/tag.d.ts.map +1 -0
  326. package/esm/src/react/components/chat/ui/tag.js +27 -0
  327. package/esm/src/react/components/chat/ui/textarea.d.ts +22 -0
  328. package/esm/src/react/components/chat/ui/textarea.d.ts.map +1 -0
  329. package/esm/src/react/components/chat/ui/textarea.js +35 -0
  330. package/esm/src/react/components/chat/ui/tooltip.d.ts +40 -0
  331. package/esm/src/react/components/chat/ui/tooltip.d.ts.map +1 -0
  332. package/esm/src/react/components/chat/ui/tooltip.js +132 -0
  333. package/esm/src/react/primitives/input-box.d.ts.map +1 -1
  334. package/esm/src/react/primitives/input-box.js +17 -4
  335. package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
  336. package/esm/src/server/handlers/dev/framework-candidates.generated.js +9437 -1064
  337. package/esm/src/server/handlers/dev/projects/html-shell.d.ts +1 -1
  338. package/esm/src/server/handlers/dev/projects/html-shell.d.ts.map +1 -1
  339. package/esm/src/server/handlers/dev/projects/html-shell.js +1 -12
  340. package/esm/src/server/handlers/request/public-agents-list.handler.d.ts +18 -0
  341. package/esm/src/server/handlers/request/public-agents-list.handler.d.ts.map +1 -0
  342. package/esm/src/server/handlers/request/public-agents-list.handler.js +44 -0
  343. package/esm/src/server/runtime-handler/index.d.ts +1 -1
  344. package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
  345. package/esm/src/server/runtime-handler/index.js +3 -0
  346. package/esm/src/studio/bridge/bridge-bundle.generated.d.ts +1 -1
  347. package/esm/src/studio/bridge/bridge-bundle.generated.d.ts.map +1 -1
  348. package/esm/src/studio/bridge/bridge-bundle.generated.js +3 -2
  349. package/esm/src/utils/version-constant.d.ts +1 -1
  350. package/esm/src/utils/version-constant.js +1 -1
  351. package/esm/src/workflow/blob/local-storage.d.ts +32 -0
  352. package/esm/src/workflow/blob/local-storage.d.ts.map +1 -0
  353. package/esm/src/workflow/blob/local-storage.js +179 -0
  354. package/esm/src/workflow/blob/types.d.ts +5 -0
  355. package/esm/src/workflow/blob/types.d.ts.map +1 -1
  356. package/esm/src/workflow/blob/veryfront-cloud-storage.d.ts +11 -0
  357. package/esm/src/workflow/blob/veryfront-cloud-storage.d.ts.map +1 -1
  358. package/esm/src/workflow/blob/veryfront-cloud-storage.js +36 -0
  359. package/package.json +5 -1
  360. package/esm/src/react/components/chat/chat/components/uploads-panel.d.ts +0 -20
  361. package/esm/src/react/components/chat/chat/components/uploads-panel.d.ts.map +0 -1
  362. package/esm/src/react/components/chat/chat/components/uploads-panel.js +0 -49
  363. package/esm/src/react/components/chat/chat/contexts/thread-list-context.d.ts +0 -28
  364. package/esm/src/react/components/chat/chat/contexts/thread-list-context.d.ts.map +0 -1
  365. package/esm/src/react/components/chat/chat/contexts/thread-list-context.js +0 -27
  366. package/esm/src/react/components/chat/chat/hooks/use-threads.d.ts +0 -28
  367. package/esm/src/react/components/chat/chat/hooks/use-threads.d.ts.map +0 -1
  368. package/esm/src/react/components/chat/chat/hooks/use-threads.js +0 -151
  369. package/esm/src/react/components/chat/chat-with-sidebar.d.ts +0 -110
  370. package/esm/src/react/components/chat/chat-with-sidebar.d.ts.map +0 -1
  371. package/esm/src/react/components/chat/chat-with-sidebar.js +0 -167
  372. package/esm/src/react/components/chat/message.d.ts +0 -42
  373. package/esm/src/react/components/chat/message.d.ts.map +0 -1
  374. package/esm/src/react/components/chat/message.js +0 -69
@@ -1,23 +1,96 @@
1
+ /**
2
+ * AgentCard — a running agent rendered as a `Card` wrapping the `Message`
3
+ * anatomy: a header row (agent Avatar + name on the left, `<Status>` on the
4
+ * right) over the agent's reasoning, tool calls, and message text. Composed
5
+ * entirely from the shared primitives — `Card`, `Avatar`, `Status`,
6
+ * `Reasoning`, `ToolCall`, `Markdown` — so it reads like a `Message` inside a
7
+ * card (mirrors Studio's agent/message anatomy).
8
+ *
9
+ * @module react/components/chat/agent-card
10
+ */
1
11
  import * as React from "../../../../react/react.js";
2
12
  import type { AgentMessage, AgentStatus, ToolCall } from "../../../agent/index.js";
3
- import { type AgentTheme } from "./theme.js";
13
+ import { type StatusColor } from "./ui/status.js";
4
14
  /** Props accepted by agent card. */
5
15
  export interface AgentCardProps {
6
- /** Agent messages */
16
+ /** Agent display name shown in the header (default "Agent"). */
17
+ name?: string;
18
+ /** Agent avatar image; falls back to an initial. */
19
+ avatarUrl?: string;
20
+ /** Agent messages — rendered as Markdown, mirroring `Message.Content`. */
7
21
  messages?: AgentMessage[];
8
- /** Tool calls */
22
+ /** Tool calls — rendered through the shared `ToolCall` card. */
9
23
  toolCalls?: ToolCall[];
10
- /** Agent status */
24
+ /** Agent status — drives the header `Status` dot + label. */
11
25
  status: AgentStatus;
12
- /** Thinking/reasoning text */
26
+ /** Thinking/reasoning text — rendered through the `Reasoning` component. */
13
27
  thinking?: string;
14
- /** Additional class name */
28
+ /** Additional class name for the card. */
15
29
  className?: string;
16
- /** Theme customization */
17
- theme?: Partial<AgentTheme>;
18
- /** Custom tool renderer */
30
+ /** Custom tool renderer — overrides the default `ToolCall` card. */
19
31
  renderTool?: (toolCall: ToolCall) => React.ReactNode;
32
+ /** Compose your own card; when omitted, the default anatomy is rendered. */
33
+ children?: React.ReactNode;
20
34
  }
21
- /** Render agent card. */
22
- export declare const AgentCard: React.ForwardRefExoticComponent<AgentCardProps & React.RefAttributes<HTMLDivElement>>;
35
+ /** Per-card state shared with `AgentCard.*` sub-parts. */
36
+ export interface AgentCardContextValue {
37
+ name: string;
38
+ avatarUrl?: string;
39
+ messages?: AgentMessage[];
40
+ toolCalls: ToolCall[];
41
+ status: AgentStatus;
42
+ thinking?: string;
43
+ renderTool?: (toolCall: ToolCall) => React.ReactNode;
44
+ presentation: {
45
+ color: StatusColor;
46
+ label: string;
47
+ pulse: boolean;
48
+ };
49
+ }
50
+ /** Read the enclosing `AgentCard` state. Throws when used outside an `AgentCard`. */
51
+ export declare function useAgentCard(): AgentCardContextValue;
52
+ /**
53
+ * The header row: Avatar + name (left), Status (right). Mirrors
54
+ * `ChatMessageHeader` / `Message.Header`.
55
+ */
56
+ declare function AgentCardHeader({ className }: {
57
+ className?: string;
58
+ }): React.JSX.Element;
59
+ declare namespace AgentCardHeader {
60
+ var displayName: string;
61
+ }
62
+ /** The reasoning block. Renders only when `thinking` text is present. */
63
+ declare function AgentCardReasoning({ className }: {
64
+ className?: string;
65
+ }): React.JSX.Element | null;
66
+ declare namespace AgentCardReasoning {
67
+ var displayName: string;
68
+ }
69
+ /** The tool-call list. Renders one `ToolCall` card per entry, or `renderTool`. */
70
+ declare function AgentCardTools({ className }: {
71
+ className?: string;
72
+ }): React.JSX.Element | null;
73
+ declare namespace AgentCardTools {
74
+ var displayName: string;
75
+ }
76
+ /** The message body — each message's text rendered as `Markdown`. */
77
+ declare function AgentCardBody({ className }: {
78
+ className?: string;
79
+ }): React.JSX.Element | null;
80
+ declare namespace AgentCardBody {
81
+ var displayName: string;
82
+ }
83
+ /**
84
+ * AgentCard — render `<AgentCard {...props} />` for the default card, or compose
85
+ * `AgentCard.Header` / `Reasoning` / `Tools` / `Body` for a custom layout.
86
+ * Mirrors the `ToolCall` compound: render it, or compose it.
87
+ */
88
+ export declare const AgentCard: React.ForwardRefExoticComponent<AgentCardProps & React.RefAttributes<HTMLDivElement>> & {
89
+ Root: React.ForwardRefExoticComponent<AgentCardProps & React.RefAttributes<HTMLDivElement>>;
90
+ Header: typeof AgentCardHeader;
91
+ Reasoning: typeof AgentCardReasoning;
92
+ Tools: typeof AgentCardTools;
93
+ Body: typeof AgentCardBody;
94
+ };
95
+ export {};
23
96
  //# sourceMappingURL=agent-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/chat/agent-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AAQpD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,KAAK,UAAU,EAAsC,MAAM,YAAY,CAAC;AAEjF,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAE1B,iBAAiB;IACjB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEvB,mBAAmB;IACnB,MAAM,EAAE,WAAW,CAAC;IAEpB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5B,2BAA2B;IAC3B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAC;CACtD;AAED,yBAAyB;AACzB,eAAO,MAAM,SAAS,uFA0GrB,CAAC"}
1
+ {"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/chat/agent-card.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAMnF,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK1D,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,gEAAgE;IAChE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,6DAA6D;IAC7D,MAAM,EAAE,WAAW,CAAC;IACpB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAmDD,0DAA0D;AAC1D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,YAAY,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CACrE;AAMD,qFAAqF;AACrF,wBAAgB,YAAY,IAAI,qBAAqB,CAQpD;AA0DD;;;GAGG;AACH,iBAAS,eAAe,CACtB,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,KAAK,CAAC,GAAG,CAAC,OAAO,CAgBnB;kBAlBQ,eAAe;;;AAqBxB,yEAAyE;AACzE,iBAAS,kBAAkB,CACzB,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAI1B;kBANQ,kBAAkB;;;AAS3B,kFAAkF;AAClF,iBAAS,cAAc,CACrB,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAY1B;kBAdQ,cAAc;;;AAiBvB,qEAAqE;AACrE,iBAAS,aAAa,CACpB,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAgB1B;kBAlBQ,aAAa;;;AAqBtB;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;CAMpB,CAAC"}
@@ -1,67 +1,161 @@
1
+ /**
2
+ * AgentCard — a running agent rendered as a `Card` wrapping the `Message`
3
+ * anatomy: a header row (agent Avatar + name on the left, `<Status>` on the
4
+ * right) over the agent's reasoning, tool calls, and message text. Composed
5
+ * entirely from the shared primitives — `Card`, `Avatar`, `Status`,
6
+ * `Reasoning`, `ToolCall`, `Markdown` — so it reads like a `Message` inside a
7
+ * card (mirrors Studio's agent/message anatomy).
8
+ *
9
+ * @module react/components/chat/agent-card
10
+ */
11
+ // ---------------------------------------------------------------------------
12
+ // AgentCard — compound, render-or-compose (mirrors `ToolCall` / `Message`).
13
+ //
14
+ // `<AgentCard {...props} />` renders the default anatomy: `Header` (avatar +
15
+ // name + status) over `Reasoning`, `Tools`, and `Body` (the message text).
16
+ // Pass children to recompose from `AgentCard.Header`, `AgentCard.Reasoning`,
17
+ // `AgentCard.Tools`, `AgentCard.Body` — each reads `useAgentCard()`. Every
18
+ // sub-part takes `className`, merged LAST via `cn`. The preset `<AgentCard>`
19
+ // stays fully back-compatible.
20
+ // ---------------------------------------------------------------------------
1
21
  import * as React from "../../../../react/react.js";
2
- import { AgentContainer, AgentStatus as AgentStatusPrimitive, ThinkingIndicator, ToolInvocation, ToolResult, } from "../../primitives/index.js";
3
- import { cn, defaultAgentTheme, mergeThemes } from "./theme.js";
4
- /** Render agent card. */
5
- export const AgentCard = React.forwardRef(({ messages, toolCalls = [], status, thinking, className, theme: userTheme, renderTool, }, ref) => {
6
- const theme = mergeThemes(defaultAgentTheme, userTheme);
7
- const toolRenderer = renderTool ??
8
- ((tool) => (React.createElement(ToolInvocation, { name: tool.name, input: tool.args, className: theme.tool },
9
- tool.result !== undefined
10
- ? React.createElement(ToolResult, { output: tool.result, className: theme.toolResult })
11
- : null,
12
- tool.error
13
- ? (React.createElement("div", { className: "mt-2 p-3 bg-red-50 text-red-900 rounded-xl text-sm border border-red-200" },
14
- "Error: ",
15
- tool.error))
16
- : null)));
17
- const hasToolCalls = toolCalls.length > 0;
18
- const hasMessages = (messages?.length ?? 0) > 0;
19
- return (React.createElement(AgentContainer, { ref: ref, className: cn(theme.container, className) },
20
- React.createElement(AgentStatusPrimitive, { status: status, className: cn(theme.status, getStatusColor(status)) }),
21
- thinking
22
- ? (React.createElement(ThinkingIndicator, { className: theme.thinking },
23
- React.createElement("span", { className: "font-semibold" }, "Thinking:"),
24
- thinking))
25
- : null,
26
- hasToolCalls
27
- ? (React.createElement("div", { className: "space-y-3" },
28
- React.createElement("h3", { className: "text-sm font-semibold text-[var(--card-foreground)]" }, "Tool Calls"),
29
- React.createElement("div", { className: "space-y-3" }, toolCalls.map((tool) => (React.createElement(React.Fragment, { key: tool.id }, toolRenderer(tool)))))))
30
- : null,
31
- hasMessages
32
- ? (React.createElement("div", { className: "space-y-3" },
33
- React.createElement("h3", { className: "text-sm font-semibold text-[var(--card-foreground)]" }, "Messages"),
34
- React.createElement("div", { className: "space-y-2 max-h-96 overflow-y-auto" }, messages?.map((msg) => {
35
- const text = msg.parts
36
- ?.filter((p) => p.type === "text")
37
- .map((p) => p.text)
38
- .join("") ?? "";
39
- return (React.createElement("div", { key: msg.id, className: "text-sm p-3 rounded-xl bg-[var(--accent)]" },
40
- React.createElement("span", { className: "font-semibold capitalize text-[var(--foreground)]" },
41
- msg.role,
42
- ":"),
43
- React.createElement("span", { className: "text-[var(--card-foreground)] ml-1" },
44
- text.substring(0, 200),
45
- text.length > 200 ? "..." : "")));
46
- }))))
47
- : null));
48
- });
49
- AgentCard.displayName = "AgentCard";
50
- function getStatusColor(status) {
22
+ import { COMPONENT_ERROR } from "../../../errors/error-registry.js";
23
+ import { cn } from "./theme.js";
24
+ import { Avatar } from "./ui/avatar.js";
25
+ import { Card } from "./ui/card.js";
26
+ import { Status } from "./ui/status.js";
27
+ import { Markdown } from "./markdown.js";
28
+ import { ReasoningCard } from "./chat/components/reasoning.js";
29
+ import { ToolCallCard } from "./chat/components/tool-ui.js";
30
+ /** Map the agent status to a `Status` dot colour, label, and pulse. */
31
+ function statusPresentation(status) {
51
32
  switch (status) {
52
- case "idle":
53
- return "bg-[var(--accent)] text-[var(--card-foreground)]";
54
33
  case "thinking":
55
- return "bg-blue-100 text-blue-700";
34
+ return { color: "blue", label: "Thinking", pulse: true };
56
35
  case "tool_execution":
57
- return "bg-violet-100 text-violet-700";
36
+ return { color: "yellow", label: "Running tools", pulse: true };
58
37
  case "streaming":
59
- return "bg-green-100 text-green-700";
38
+ return { color: "green", label: "Responding", pulse: true };
60
39
  case "completed":
61
- return "bg-emerald-100 text-emerald-700";
40
+ return { color: "green", label: "Completed", pulse: false };
62
41
  case "error":
63
- return "bg-red-100 text-red-700";
42
+ return { color: "red", label: "Error", pulse: false };
43
+ case "idle":
64
44
  default:
65
- return "bg-[var(--accent)] text-[var(--card-foreground)]";
45
+ return { color: "gray", label: "Idle", pulse: false };
46
+ }
47
+ }
48
+ const TOOL_STATE = {
49
+ pending: "input-available",
50
+ executing: "input-streaming",
51
+ completed: "output-available",
52
+ error: "output-error",
53
+ };
54
+ /** Adapt an agent `ToolCall` to the `ToolCall` card's `ChatToolPart` shape. */
55
+ function toToolPart(tool) {
56
+ return {
57
+ type: `tool-${tool.name}`,
58
+ toolCallId: tool.id,
59
+ toolName: tool.name,
60
+ state: TOOL_STATE[tool.status],
61
+ input: tool.args,
62
+ output: tool.result,
63
+ errorText: tool.error,
64
+ };
65
+ }
66
+ /** Extract plain text from an agent message's parts. */
67
+ function messageText(message) {
68
+ return message.parts
69
+ ?.filter((p) => p.type === "text")
70
+ .map((p) => p.text)
71
+ .join("") ?? "";
72
+ }
73
+ const AgentCardContext = React.createContext(null);
74
+ /** Read the enclosing `AgentCard` state. Throws when used outside an `AgentCard`. */
75
+ export function useAgentCard() {
76
+ const ctx = React.useContext(AgentCardContext);
77
+ if (!ctx) {
78
+ throw COMPONENT_ERROR.create({
79
+ detail: "useAgentCard must be used within an AgentCard",
80
+ });
66
81
  }
82
+ return ctx;
67
83
  }
84
+ /**
85
+ * `AgentCard.Root` — context provider + the `Card` wrapper. No children renders
86
+ * the default anatomy (`Header` + `Reasoning` + `Tools` + `Body`); pass children
87
+ * to recompose.
88
+ */
89
+ const AgentCardRoot = React.forwardRef(function AgentCard({ name = "Agent", avatarUrl, messages, toolCalls = [], status, thinking, className, renderTool, children, }, ref) {
90
+ const presentation = statusPresentation(status);
91
+ const context = {
92
+ name,
93
+ avatarUrl,
94
+ messages,
95
+ toolCalls,
96
+ status,
97
+ thinking,
98
+ renderTool,
99
+ presentation,
100
+ };
101
+ return (React.createElement(AgentCardContext.Provider, { value: context },
102
+ React.createElement(Card, { ref: ref, surface: "outline", padding: "md", className: cn("flex flex-col gap-3", className) }, children ?? (React.createElement(React.Fragment, null,
103
+ React.createElement(AgentCardHeader, null),
104
+ React.createElement(AgentCardReasoning, null),
105
+ React.createElement(AgentCardTools, null),
106
+ React.createElement(AgentCardBody, null))))));
107
+ });
108
+ AgentCardRoot.displayName = "AgentCard.Root";
109
+ /**
110
+ * The header row: Avatar + name (left), Status (right). Mirrors
111
+ * `ChatMessageHeader` / `Message.Header`.
112
+ */
113
+ function AgentCardHeader({ className }) {
114
+ const { name, avatarUrl, presentation } = useAgentCard();
115
+ return (React.createElement("div", { className: cn("flex items-center gap-2", className) },
116
+ React.createElement(Avatar, { name: name, avatarSrc: avatarUrl, className: "size-8" }),
117
+ React.createElement("span", { className: "min-w-0 truncate font-medium text-[var(--foreground)]" }, name),
118
+ React.createElement(Status, { className: "ml-auto", color: presentation.color, label: presentation.label, pulse: presentation.pulse })));
119
+ }
120
+ AgentCardHeader.displayName = "AgentCard.Header";
121
+ /** The reasoning block. Renders only when `thinking` text is present. */
122
+ function AgentCardReasoning({ className }) {
123
+ const { thinking } = useAgentCard();
124
+ if (!thinking)
125
+ return null;
126
+ return React.createElement(ReasoningCard, { text: thinking, className: className });
127
+ }
128
+ AgentCardReasoning.displayName = "AgentCard.Reasoning";
129
+ /** The tool-call list. Renders one `ToolCall` card per entry, or `renderTool`. */
130
+ function AgentCardTools({ className }) {
131
+ const { toolCalls, renderTool } = useAgentCard();
132
+ if (toolCalls.length === 0)
133
+ return null;
134
+ return (React.createElement("div", { className: cn("flex flex-col gap-2", className) }, toolCalls.map((tool) => (React.createElement(React.Fragment, { key: tool.id }, renderTool ? renderTool(tool) : React.createElement(ToolCallCard, { tool: toToolPart(tool) }))))));
135
+ }
136
+ AgentCardTools.displayName = "AgentCard.Tools";
137
+ /** The message body — each message's text rendered as `Markdown`. */
138
+ function AgentCardBody({ className }) {
139
+ const { messages } = useAgentCard();
140
+ if (!messages || messages.length === 0)
141
+ return null;
142
+ return (React.createElement("div", { className: cn("flex flex-col gap-2", className) }, messages.map((message) => {
143
+ const text = messageText(message);
144
+ if (!text)
145
+ return null;
146
+ return (React.createElement(Markdown, { key: message.id, className: "text-[15px] leading-7" }, text));
147
+ })));
148
+ }
149
+ AgentCardBody.displayName = "AgentCard.Body";
150
+ /**
151
+ * AgentCard — render `<AgentCard {...props} />` for the default card, or compose
152
+ * `AgentCard.Header` / `Reasoning` / `Tools` / `Body` for a custom layout.
153
+ * Mirrors the `ToolCall` compound: render it, or compose it.
154
+ */
155
+ export const AgentCard = Object.assign(AgentCardRoot, {
156
+ Root: AgentCardRoot,
157
+ Header: AgentCardHeader,
158
+ Reasoning: AgentCardReasoning,
159
+ Tools: AgentCardTools,
160
+ Body: AgentCardBody,
161
+ });
@@ -0,0 +1,166 @@
1
+ /**
2
+ * AgentPicker — Popover + Command combobox for switching the active agent.
3
+ * Forked dependency-light 1:1 from Veryfront Studio's `AgentPicker`: a Pill (or
4
+ * input-style) trigger opens a searchable list of agent rows (Avatar + name),
5
+ * a Check marks the selection, and optional "Create Agent" / "Manage Agents"
6
+ * affordances sit at the bottom. Studio's mobile `Drawer`/`ResponsiveSwitch`
7
+ * branch is dropped (Studio-only deps) — the overlay always portals via our
8
+ * `Floating` (through `PopoverContent`) so it never clips in the iframe.
9
+ *
10
+ * Semantic Studio classes remapped to veryfront's `[var(--token)]` vocabulary;
11
+ * icons inherit the Command row's sizing. Composes the private chat/ui
12
+ * primitives (Popover, Command, Avatar) — no radix / cva / `@/` imports.
13
+ *
14
+ * @module react/components/chat/agent-picker
15
+ */
16
+ import * as React from "../../../../react/react.js";
17
+ /** A selectable agent entry. */
18
+ export interface AgentOption {
19
+ /** Stable identifier — used as the selection value. */
20
+ id: string;
21
+ /** Display name (also the search keyword). */
22
+ name: string;
23
+ /** Avatar image URL; initials are shown when absent. */
24
+ avatarSrc?: string;
25
+ /** Dims the row and blocks selection. */
26
+ disabled?: boolean;
27
+ }
28
+ /** A labelled group of agents (e.g. "Connected Agents"). */
29
+ export interface AgentPickerSection {
30
+ /** Omit to render an unlabelled group. */
31
+ label?: string;
32
+ agents: AgentOption[];
33
+ }
34
+ /**
35
+ * Icon overrides for {@link AgentPicker}. Each defaults to the built-in glyph.
36
+ */
37
+ export interface AgentPickerIcons {
38
+ check?: React.ReactNode;
39
+ chevron?: React.ReactNode;
40
+ create?: React.ReactNode;
41
+ more?: React.ReactNode;
42
+ }
43
+ /** Props accepted by `<AgentPicker>`. */
44
+ export interface AgentPickerProps {
45
+ /** Agents shown in the default (top) group. */
46
+ agents: AgentOption[];
47
+ /** Selected agent id. */
48
+ value?: string;
49
+ /** Called with the chosen agent id. */
50
+ onValueChange?: (id: string) => void;
51
+ /** Extra labelled groups rendered below the default group. */
52
+ sections?: AgentPickerSection[];
53
+ /** Shows a "Manage Agents" row at the bottom when provided. */
54
+ onManage?: () => void;
55
+ /** Shows a "Create Agent" row at the bottom when provided. */
56
+ onCreate?: () => void;
57
+ /** Notified whenever the popover opens or closes. */
58
+ onOpenChange?: (open: boolean) => void;
59
+ /** Render the trigger as an input-style field instead of a pill. */
60
+ inputStyle?: boolean;
61
+ /** Mark the input-style trigger invalid. */
62
+ invalid?: boolean;
63
+ /** Show skeleton rows while agents are being fetched. */
64
+ isLoading?: boolean;
65
+ /** Additional class names for the trigger. */
66
+ className?: string;
67
+ /** Override any of the picker icons. */
68
+ icons?: AgentPickerIcons;
69
+ /**
70
+ * Compose your own menu from `AgentPicker.Trigger` / `Content` / `List` /
71
+ * `Item`. When omitted, the default data-driven preset is rendered.
72
+ */
73
+ children?: React.ReactNode;
74
+ }
75
+ /** Shared selection + open state exposed to `AgentPicker.*` sub-parts. */
76
+ export interface AgentPickerContextValue {
77
+ /** Selected agent id. */
78
+ value?: string;
79
+ /** Select an agent by id (also closes the menu). */
80
+ onSelect: (id: string) => void;
81
+ /** Popover open state. */
82
+ open: boolean;
83
+ /** Set the popover open state (notifies `onOpenChange`). */
84
+ setOpen: (open: boolean) => void;
85
+ /** Icon overrides passed to the picker. */
86
+ icons?: AgentPickerIcons;
87
+ }
88
+ /**
89
+ * Read the enclosing `AgentPicker` selection + open state. Throws when used
90
+ * outside an `<AgentPicker>`.
91
+ */
92
+ export declare function useAgentPicker(): AgentPickerContextValue;
93
+ /** Props for `AgentPicker.Trigger` — the pill/input combobox button. */
94
+ export interface AgentPickerTriggerProps {
95
+ /** Render as an input-style field instead of a pill. */
96
+ inputStyle?: boolean;
97
+ /** Mark the input-style trigger invalid. */
98
+ invalid?: boolean;
99
+ /** Override the trigger contents; defaults to the selected agent's row. */
100
+ children?: React.ReactNode;
101
+ className?: string;
102
+ }
103
+ /** The pill (or input-style) combobox trigger. Toggles the popover. */
104
+ declare function AgentPickerTrigger({ inputStyle, invalid, children, className }: AgentPickerTriggerProps): React.ReactElement;
105
+ declare namespace AgentPickerTrigger {
106
+ var displayName: string;
107
+ }
108
+ /** Props for `AgentPicker.Content` — the popover surface + `Command` shell. */
109
+ export interface AgentPickerContentProps {
110
+ /** Show the search input above the list. */
111
+ showSearch?: boolean;
112
+ /** Search input placeholder. */
113
+ searchPlaceholder?: string;
114
+ children?: React.ReactNode;
115
+ className?: string;
116
+ }
117
+ /** The popover surface wrapping a `Command` (search + list region). */
118
+ declare function AgentPickerContent({ showSearch, searchPlaceholder, children, className, }: AgentPickerContentProps): React.ReactElement;
119
+ declare namespace AgentPickerContent {
120
+ var displayName: string;
121
+ }
122
+ /** The scrollable `Command` list region. */
123
+ declare function AgentPickerList({ children, className }: {
124
+ children?: React.ReactNode;
125
+ className?: string;
126
+ }): React.ReactElement;
127
+ declare namespace AgentPickerList {
128
+ var displayName: string;
129
+ }
130
+ /** Props for `AgentPicker.Item` — a single selectable agent row. */
131
+ export interface AgentPickerItemProps {
132
+ /** The agent this row represents. Its `id` is the selection value. */
133
+ agent: AgentOption;
134
+ /** Force selected styling; defaults to matching the context `value`. */
135
+ selected?: boolean;
136
+ className?: string;
137
+ }
138
+ /** A single agent row (Avatar + name + selection check). */
139
+ declare function AgentPickerItem({ agent, selected, className }: AgentPickerItemProps): React.ReactElement;
140
+ declare namespace AgentPickerItem {
141
+ var displayName: string;
142
+ }
143
+ /**
144
+ * `AgentPicker.Root` — context provider + the popover shell. No children
145
+ * renders the default data-driven preset; pass children to recompose from
146
+ * `AgentPicker.Trigger` / `Content` / `List` / `Item`.
147
+ */
148
+ declare function AgentPickerRoot({ agents, value, onValueChange, sections, onManage, onCreate, onOpenChange, inputStyle, invalid, isLoading, className, icons, children, }: AgentPickerProps): React.ReactElement;
149
+ declare namespace AgentPickerRoot {
150
+ var displayName: string;
151
+ }
152
+ /**
153
+ * AgentPicker — render `<AgentPicker agents={...} .../>` for the default
154
+ * data-driven combobox, or compose `AgentPicker.Trigger` / `Content` / `List` /
155
+ * `Item` for a custom menu. Mirrors the `ToolCall` compound: render it, or
156
+ * compose it.
157
+ */
158
+ export declare const AgentPicker: typeof AgentPickerRoot & {
159
+ Root: typeof AgentPickerRoot;
160
+ Trigger: typeof AgentPickerTrigger;
161
+ Content: typeof AgentPickerContent;
162
+ List: typeof AgentPickerList;
163
+ Item: typeof AgentPickerItem;
164
+ };
165
+ export {};
166
+ //# sourceMappingURL=agent-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-picker.d.ts","sourceRoot":"","sources":["../../../../../src/src/react/components/chat/agent-picker.tsx"],"names":[],"mappings":"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"}