@nadicodeai/ui 0.21.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/AGENTS.md +6 -7
  2. package/LICENSES/PAPER-SHADERS-APACHE-2.0.txt +186 -0
  3. package/NOTICE +12 -0
  4. package/README.md +14 -21
  5. package/dist/agents.d.ts +10 -0
  6. package/dist/agents.d.ts.map +1 -0
  7. package/dist/agents.js +10 -0
  8. package/dist/components/agent-card.d.ts +13 -0
  9. package/dist/components/agent-card.d.ts.map +1 -0
  10. package/dist/components/agent-card.js +15 -0
  11. package/dist/components/agent-visual.d.ts +17 -0
  12. package/dist/components/agent-visual.d.ts.map +1 -0
  13. package/dist/components/agent-visual.js +59 -0
  14. package/dist/components/alert-dialog.js +1 -1
  15. package/dist/components/badge.d.ts +1 -1
  16. package/dist/components/badge.d.ts.map +1 -1
  17. package/dist/components/badge.js +9 -0
  18. package/dist/components/button.d.ts +1 -1
  19. package/dist/components/card.d.ts +5 -3
  20. package/dist/components/card.d.ts.map +1 -1
  21. package/dist/components/card.js +7 -7
  22. package/dist/components/chart.js +1 -1
  23. package/dist/components/combobox.js +1 -1
  24. package/dist/components/context-menu.js +1 -1
  25. package/dist/components/dialog.js +1 -1
  26. package/dist/components/drawer.js +1 -1
  27. package/dist/components/dropdown-menu.js +1 -1
  28. package/dist/components/empty.d.ts +5 -2
  29. package/dist/components/empty.d.ts.map +1 -1
  30. package/dist/components/empty.js +3 -3
  31. package/dist/components/feedback-state.js +1 -1
  32. package/dist/components/glass-control.d.ts +7 -0
  33. package/dist/components/glass-control.d.ts.map +1 -0
  34. package/dist/components/glass-control.js +14 -0
  35. package/dist/components/hover-card.js +1 -1
  36. package/dist/components/label-system.d.ts +1 -10
  37. package/dist/components/label-system.d.ts.map +1 -1
  38. package/dist/components/label-system.js +1 -7
  39. package/dist/components/live-demo.js +1 -1
  40. package/dist/components/menubar.js +1 -1
  41. package/dist/components/nav-bar.d.ts +6 -8
  42. package/dist/components/nav-bar.d.ts.map +1 -1
  43. package/dist/components/nav-bar.js +8 -9
  44. package/dist/components/navigation-menu.js +2 -2
  45. package/dist/components/popover.js +1 -1
  46. package/dist/components/select.js +1 -1
  47. package/dist/components/sheet.js +1 -1
  48. package/dist/components/sidebar.js +1 -1
  49. package/dist/components/sonner.js +2 -2
  50. package/dist/components/testimonials.d.ts +1 -1
  51. package/dist/components/testimonials.js +2 -2
  52. package/dist/components/tooltip.js +1 -1
  53. package/dist/components/use-case-bento.d.ts +2 -4
  54. package/dist/components/use-case-bento.d.ts.map +1 -1
  55. package/dist/components/use-case-bento.js +2 -3
  56. package/dist/hooks/index.d.ts +0 -1
  57. package/dist/hooks/index.d.ts.map +1 -1
  58. package/dist/hooks/index.js +0 -1
  59. package/dist/index.d.ts +3 -16
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +3 -16
  62. package/dist/internal/agent-visual/color.d.ts +4 -0
  63. package/dist/internal/agent-visual/color.d.ts.map +1 -0
  64. package/dist/internal/agent-visual/color.js +39 -0
  65. package/dist/internal/agent-visual/poster.d.ts +6 -0
  66. package/dist/internal/agent-visual/poster.d.ts.map +1 -0
  67. package/dist/internal/agent-visual/poster.js +35 -0
  68. package/dist/internal/agent-visual/recipes.d.ts +15 -0
  69. package/dist/internal/agent-visual/recipes.d.ts.map +1 -0
  70. package/dist/internal/agent-visual/recipes.js +72 -0
  71. package/dist/internal/agent-visual/renderer.d.ts +10 -0
  72. package/dist/internal/agent-visual/renderer.d.ts.map +1 -0
  73. package/dist/internal/agent-visual/renderer.js +112 -0
  74. package/dist/internal/agent-visual/shader.d.ts +2 -0
  75. package/dist/internal/agent-visual/shader.d.ts.map +1 -0
  76. package/dist/internal/agent-visual/shader.js +158 -0
  77. package/dist/internal/assistant-ui/attachment.d.ts +5 -0
  78. package/dist/internal/assistant-ui/attachment.d.ts.map +1 -0
  79. package/dist/internal/assistant-ui/attachment.js +93 -0
  80. package/dist/internal/assistant-ui/follow-up-suggestions.d.ts +3 -0
  81. package/dist/internal/assistant-ui/follow-up-suggestions.d.ts.map +1 -0
  82. package/dist/internal/assistant-ui/follow-up-suggestions.js +8 -0
  83. package/dist/internal/assistant-ui/markdown-text.d.ts +2 -0
  84. package/dist/internal/assistant-ui/markdown-text.d.ts.map +1 -0
  85. package/dist/internal/assistant-ui/markdown-text.js +54 -0
  86. package/dist/internal/assistant-ui/reasoning.d.ts +31 -0
  87. package/dist/internal/assistant-ui/reasoning.d.ts.map +1 -0
  88. package/dist/internal/assistant-ui/reasoning.js +118 -0
  89. package/dist/internal/assistant-ui/thread.d.ts +26 -0
  90. package/dist/internal/assistant-ui/thread.d.ts.map +1 -0
  91. package/dist/internal/assistant-ui/thread.js +118 -0
  92. package/dist/internal/assistant-ui/tool-fallback.d.ts +10 -0
  93. package/dist/internal/assistant-ui/tool-fallback.d.ts.map +1 -0
  94. package/dist/internal/assistant-ui/tool-fallback.js +163 -0
  95. package/dist/internal/assistant-ui/tool-group.d.ts +18 -0
  96. package/dist/internal/assistant-ui/tool-group.d.ts.map +1 -0
  97. package/dist/internal/assistant-ui/tool-group.js +44 -0
  98. package/dist/internal/assistant-ui/tooltip-icon-button.d.ts +8 -0
  99. package/dist/internal/assistant-ui/tooltip-icon-button.d.ts.map +1 -0
  100. package/dist/internal/assistant-ui/tooltip-icon-button.js +10 -0
  101. package/dist/styles/globals.css +24 -209
  102. package/docs/agents/nadicodeai-ui.md +8 -8
  103. package/docs/component-classification.md +1 -1
  104. package/docs/consuming-cross-repo.md +12 -4
  105. package/docs/contract.md +83 -7
  106. package/docs/migration/1.0.0.md +75 -0
  107. package/docs/migration/base-ui-migration.md +0 -11
  108. package/docs/product-compositions.md +1 -1
  109. package/llms.txt +7 -6
  110. package/package.json +17 -29
  111. package/skills/nadicodeai-ui/SKILL.md +11 -7
  112. package/dist/ai-elements.d.ts +0 -49
  113. package/dist/ai-elements.d.ts.map +0 -1
  114. package/dist/ai-elements.js +0 -48
  115. package/dist/components/agent-avatar.d.ts +0 -7
  116. package/dist/components/agent-avatar.d.ts.map +0 -1
  117. package/dist/components/agent-avatar.js +0 -6
  118. package/dist/components/agent-chat.d.ts +0 -20
  119. package/dist/components/agent-chat.d.ts.map +0 -1
  120. package/dist/components/agent-chat.js +0 -10
  121. package/dist/components/agent-composer.d.ts +0 -56
  122. package/dist/components/agent-composer.d.ts.map +0 -1
  123. package/dist/components/agent-composer.js +0 -56
  124. package/dist/components/agent-message.d.ts +0 -117
  125. package/dist/components/agent-message.d.ts.map +0 -1
  126. package/dist/components/agent-message.js +0 -99
  127. package/dist/components/agent-thread.d.ts +0 -26
  128. package/dist/components/agent-thread.d.ts.map +0 -1
  129. package/dist/components/agent-thread.js +0 -63
  130. package/dist/components/agent-tool-approval.d.ts +0 -27
  131. package/dist/components/agent-tool-approval.d.ts.map +0 -1
  132. package/dist/components/agent-tool-approval.js +0 -43
  133. package/dist/components/ai-elements/agent.d.ts +0 -27
  134. package/dist/components/ai-elements/agent.d.ts.map +0 -1
  135. package/dist/components/ai-elements/agent.js +0 -25
  136. package/dist/components/ai-elements/artifact.d.ts +0 -24
  137. package/dist/components/ai-elements/artifact.d.ts.map +0 -1
  138. package/dist/components/ai-elements/artifact.js +0 -20
  139. package/dist/components/ai-elements/attachments.d.ts +0 -55
  140. package/dist/components/ai-elements/attachments.d.ts.map +0 -1
  141. package/dist/components/ai-elements/attachments.js +0 -125
  142. package/dist/components/ai-elements/audio-player.d.ts +0 -30
  143. package/dist/components/ai-elements/audio-player.d.ts.map +0 -1
  144. package/dist/components/ai-elements/audio-player.js +0 -41
  145. package/dist/components/ai-elements/canvas.d.ts +0 -8
  146. package/dist/components/ai-elements/canvas.d.ts.map +0 -1
  147. package/dist/components/ai-elements/canvas.js +0 -5
  148. package/dist/components/ai-elements/chain-of-thought.d.ts +0 -30
  149. package/dist/components/ai-elements/chain-of-thought.d.ts.map +0 -1
  150. package/dist/components/ai-elements/chain-of-thought.js +0 -49
  151. package/dist/components/ai-elements/checkpoint.d.ts +0 -12
  152. package/dist/components/ai-elements/checkpoint.d.ts.map +0 -1
  153. package/dist/components/ai-elements/checkpoint.js +0 -10
  154. package/dist/components/ai-elements/code-block.d.ts +0 -53
  155. package/dist/components/ai-elements/code-block.d.ts.map +0 -1
  156. package/dist/components/ai-elements/code-block.js +0 -239
  157. package/dist/components/ai-elements/commit.d.ts +0 -65
  158. package/dist/components/ai-elements/commit.d.ts.map +0 -1
  159. package/dist/components/ai-elements/commit.js +0 -83
  160. package/dist/components/ai-elements/confirmation.d.ts +0 -50
  161. package/dist/components/ai-elements/confirmation.d.ts.map +0 -1
  162. package/dist/components/ai-elements/confirmation.js +0 -57
  163. package/dist/components/ai-elements/connection.d.ts +0 -6
  164. package/dist/components/ai-elements/connection.d.ts.map +0 -1
  165. package/dist/components/ai-elements/connection.js +0 -10
  166. package/dist/components/ai-elements/context.d.ts +0 -33
  167. package/dist/components/ai-elements/context.d.ts.map +0 -1
  168. package/dist/components/ai-elements/context.js +0 -147
  169. package/dist/components/ai-elements/controls.d.ts +0 -5
  170. package/dist/components/ai-elements/controls.d.ts.map +0 -1
  171. package/dist/components/ai-elements/controls.js +0 -5
  172. package/dist/components/ai-elements/conversation.d.ts +0 -24
  173. package/dist/components/ai-elements/conversation.d.ts.map +0 -1
  174. package/dist/components/ai-elements/conversation.js +0 -41
  175. package/dist/components/ai-elements/edge.d.ts +0 -6
  176. package/dist/components/ai-elements/edge.d.ts.map +0 -1
  177. package/dist/components/ai-elements/edge.js +0 -88
  178. package/dist/components/ai-elements/environment-variables.d.ts +0 -39
  179. package/dist/components/ai-elements/environment-variables.d.ts.map +0 -1
  180. package/dist/components/ai-elements/environment-variables.js +0 -60
  181. package/dist/components/ai-elements/file-tree.d.ts +0 -27
  182. package/dist/components/ai-elements/file-tree.d.ts.map +0 -1
  183. package/dist/components/ai-elements/file-tree.js +0 -73
  184. package/dist/components/ai-elements/image.d.ts +0 -7
  185. package/dist/components/ai-elements/image.d.ts.map +0 -1
  186. package/dist/components/ai-elements/image.js +0 -3
  187. package/dist/components/ai-elements/inline-citation.d.ts +0 -39
  188. package/dist/components/ai-elements/inline-citation.d.ts.map +0 -1
  189. package/dist/components/ai-elements/inline-citation.js +0 -86
  190. package/dist/components/ai-elements/jsx-preview.d.ts +0 -30
  191. package/dist/components/ai-elements/jsx-preview.d.ts.map +0 -1
  192. package/dist/components/ai-elements/jsx-preview.js +0 -159
  193. package/dist/components/ai-elements/message.d.ts +0 -38
  194. package/dist/components/ai-elements/message.d.ts.map +0 -1
  195. package/dist/components/ai-elements/message.js +0 -91
  196. package/dist/components/ai-elements/mic-selector.d.ts +0 -46
  197. package/dist/components/ai-elements/mic-selector.d.ts.map +0 -1
  198. package/dist/components/ai-elements/mic-selector.js +0 -180
  199. package/dist/components/ai-elements/model-selector.d.ts +0 -36
  200. package/dist/components/ai-elements/model-selector.d.ts.map +0 -1
  201. package/dist/components/ai-elements/model-selector.js +0 -18
  202. package/dist/components/ai-elements/node.d.ts +0 -22
  203. package/dist/components/ai-elements/node.d.ts.map +0 -1
  204. package/dist/components/ai-elements/node.js +0 -12
  205. package/dist/components/ai-elements/open-in-chat.d.ts +0 -27
  206. package/dist/components/ai-elements/open-in-chat.d.ts.map +0 -1
  207. package/dist/components/ai-elements/open-in-chat.js +0 -81
  208. package/dist/components/ai-elements/package-info.d.ts +0 -30
  209. package/dist/components/ai-elements/package-info.d.ts.map +0 -1
  210. package/dist/components/ai-elements/package-info.js +0 -50
  211. package/dist/components/ai-elements/panel.d.ts +0 -6
  212. package/dist/components/ai-elements/panel.d.ts.map +0 -1
  213. package/dist/components/ai-elements/panel.js +0 -5
  214. package/dist/components/ai-elements/persona.d.ts +0 -49
  215. package/dist/components/ai-elements/persona.d.ts.map +0 -1
  216. package/dist/components/ai-elements/persona.js +0 -175
  217. package/dist/components/ai-elements/plan.d.ts +0 -27
  218. package/dist/components/ai-elements/plan.d.ts.map +0 -1
  219. package/dist/components/ai-elements/plan.js +0 -34
  220. package/dist/components/ai-elements/prompt-input.d.ts +0 -149
  221. package/dist/components/ai-elements/prompt-input.d.ts.map +0 -1
  222. package/dist/components/ai-elements/prompt-input.js +0 -704
  223. package/dist/components/ai-elements/queue.d.ts +0 -62
  224. package/dist/components/ai-elements/queue.d.ts.map +0 -1
  225. package/dist/components/ai-elements/queue.js +0 -24
  226. package/dist/components/ai-elements/reasoning.d.ts +0 -27
  227. package/dist/components/ai-elements/reasoning.d.ts.map +0 -1
  228. package/dist/components/ai-elements/reasoning.js +0 -92
  229. package/dist/components/ai-elements/sandbox.d.ts +0 -25
  230. package/dist/components/ai-elements/sandbox.d.ts.map +0 -1
  231. package/dist/components/ai-elements/sandbox.js +0 -15
  232. package/dist/components/ai-elements/schema-display.d.ts +0 -56
  233. package/dist/components/ai-elements/schema-display.d.ts.map +0 -1
  234. package/dist/components/ai-elements/schema-display.js +0 -90
  235. package/dist/components/ai-elements/shimmer.d.ts +0 -10
  236. package/dist/components/ai-elements/shimmer.d.ts.map +0 -1
  237. package/dist/components/ai-elements/shimmer.js +0 -11
  238. package/dist/components/ai-elements/snippet.d.ts +0 -19
  239. package/dist/components/ai-elements/snippet.d.ts.map +0 -1
  240. package/dist/components/ai-elements/snippet.js +0 -32
  241. package/dist/components/ai-elements/sources.d.ts +0 -13
  242. package/dist/components/ai-elements/sources.d.ts.map +0 -1
  243. package/dist/components/ai-elements/sources.js +0 -9
  244. package/dist/components/ai-elements/speech-input.d.ts +0 -55
  245. package/dist/components/ai-elements/speech-input.d.ts.map +0 -1
  246. package/dist/components/ai-elements/speech-input.js +0 -187
  247. package/dist/components/ai-elements/stack-trace.d.ts +0 -38
  248. package/dist/components/ai-elements/stack-trace.d.ts.map +0 -1
  249. package/dist/components/ai-elements/stack-trace.js +0 -181
  250. package/dist/components/ai-elements/suggestion.d.ts +0 -11
  251. package/dist/components/ai-elements/suggestion.d.ts.map +0 -1
  252. package/dist/components/ai-elements/suggestion.js +0 -13
  253. package/dist/components/ai-elements/task.d.ts +0 -15
  254. package/dist/components/ai-elements/task.d.ts.map +0 -1
  255. package/dist/components/ai-elements/task.js +0 -10
  256. package/dist/components/ai-elements/terminal.d.ts +0 -28
  257. package/dist/components/ai-elements/terminal.d.ts.map +0 -1
  258. package/dist/components/ai-elements/terminal.js +0 -55
  259. package/dist/components/ai-elements/test-results.d.ts +0 -59
  260. package/dist/components/ai-elements/test-results.d.ts.map +0 -1
  261. package/dist/components/ai-elements/test-results.js +0 -98
  262. package/dist/components/ai-elements/tool.d.ts +0 -32
  263. package/dist/components/ai-elements/tool.d.ts.map +0 -1
  264. package/dist/components/ai-elements/tool.js +0 -49
  265. package/dist/components/ai-elements/toolbar.d.ts +0 -6
  266. package/dist/components/ai-elements/toolbar.d.ts.map +0 -1
  267. package/dist/components/ai-elements/toolbar.js +0 -5
  268. package/dist/components/ai-elements/transcription.d.ts +0 -17
  269. package/dist/components/ai-elements/transcription.d.ts.map +0 -1
  270. package/dist/components/ai-elements/transcription.js +0 -36
  271. package/dist/components/ai-elements/voice-selector.d.ts +0 -65
  272. package/dist/components/ai-elements/voice-selector.d.ts.map +0 -1
  273. package/dist/components/ai-elements/voice-selector.js +0 -224
  274. package/dist/components/ai-elements/web-preview.d.ts +0 -35
  275. package/dist/components/ai-elements/web-preview.d.ts.map +0 -1
  276. package/dist/components/ai-elements/web-preview.js +0 -66
  277. package/dist/components/artifact-panel.d.ts +0 -130
  278. package/dist/components/artifact-panel.d.ts.map +0 -1
  279. package/dist/components/artifact-panel.js +0 -180
  280. package/dist/components/attachment.d.ts +0 -24
  281. package/dist/components/attachment.d.ts.map +0 -1
  282. package/dist/components/attachment.js +0 -68
  283. package/dist/components/bubble.d.ts +0 -17
  284. package/dist/components/bubble.d.ts.map +0 -1
  285. package/dist/components/bubble.js +0 -59
  286. package/dist/components/demo-surface.d.ts +0 -34
  287. package/dist/components/demo-surface.d.ts.map +0 -1
  288. package/dist/components/demo-surface.js +0 -21
  289. package/dist/components/files-preview.d.ts +0 -36
  290. package/dist/components/files-preview.d.ts.map +0 -1
  291. package/dist/components/files-preview.js +0 -85
  292. package/dist/components/marker.d.ts +0 -11
  293. package/dist/components/marker.d.ts.map +0 -1
  294. package/dist/components/marker.js +0 -34
  295. package/dist/components/message-scroller.d.ts +0 -17
  296. package/dist/components/message-scroller.d.ts.map +0 -1
  297. package/dist/components/message-scroller.js +0 -29
  298. package/dist/components/message.d.ts +0 -11
  299. package/dist/components/message.d.ts.map +0 -1
  300. package/dist/components/message.js +0 -21
  301. package/dist/components/state-notice.d.ts +0 -13
  302. package/dist/components/state-notice.d.ts.map +0 -1
  303. package/dist/components/state-notice.js +0 -8
  304. package/dist/components/watch-it-work-band.d.ts +0 -12
  305. package/dist/components/watch-it-work-band.d.ts.map +0 -1
  306. package/dist/components/watch-it-work-band.js +0 -8
  307. package/dist/hooks/use-controllable-state.d.ts +0 -9
  308. package/dist/hooks/use-controllable-state.d.ts.map +0 -1
  309. package/dist/hooks/use-controllable-state.js +0 -23
  310. package/dist/lib/agent-attachment.d.ts +0 -11
  311. package/dist/lib/agent-attachment.d.ts.map +0 -1
  312. package/dist/lib/agent-attachment.js +0 -19
  313. package/dist/lib/agent-contracts.d.ts +0 -132
  314. package/dist/lib/agent-contracts.d.ts.map +0 -1
  315. package/dist/lib/agent-contracts.js +0 -6
  316. package/dist/lib/agent-state.d.ts +0 -22
  317. package/dist/lib/agent-state.d.ts.map +0 -1
  318. package/dist/lib/agent-state.js +0 -96
  319. package/dist/lib/agent-work-state.d.ts +0 -36
  320. package/dist/lib/agent-work-state.d.ts.map +0 -1
  321. package/dist/lib/agent-work-state.js +0 -36
  322. package/dist/lib/message-scroller-primitive/components.d.ts +0 -17
  323. package/dist/lib/message-scroller-primitive/components.d.ts.map +0 -1
  324. package/dist/lib/message-scroller-primitive/components.js +0 -204
  325. package/dist/lib/message-scroller-primitive/geometry.d.ts +0 -51
  326. package/dist/lib/message-scroller-primitive/geometry.d.ts.map +0 -1
  327. package/dist/lib/message-scroller-primitive/geometry.js +0 -199
  328. package/dist/lib/message-scroller-primitive/index.d.ts +0 -12
  329. package/dist/lib/message-scroller-primitive/index.d.ts.map +0 -1
  330. package/dist/lib/message-scroller-primitive/index.js +0 -12
  331. package/dist/lib/message-scroller-primitive/stores.d.ts +0 -6
  332. package/dist/lib/message-scroller-primitive/stores.d.ts.map +0 -1
  333. package/dist/lib/message-scroller-primitive/stores.js +0 -53
  334. package/dist/lib/message-scroller-primitive/types.d.ts +0 -88
  335. package/dist/lib/message-scroller-primitive/types.d.ts.map +0 -1
  336. package/dist/lib/message-scroller-primitive/types.js +0 -40
  337. package/dist/lib/message-scroller-primitive/use-message-scroller-commands.d.ts +0 -19
  338. package/dist/lib/message-scroller-primitive/use-message-scroller-commands.d.ts.map +0 -1
  339. package/dist/lib/message-scroller-primitive/use-message-scroller-commands.js +0 -188
  340. package/dist/lib/message-scroller-primitive/use-message-scroller-controller.d.ts +0 -7
  341. package/dist/lib/message-scroller-primitive/use-message-scroller-controller.d.ts.map +0 -1
  342. package/dist/lib/message-scroller-primitive/use-message-scroller-controller.js +0 -506
  343. package/dist/lib/message-scroller-primitive/use-message-scroller-refs.d.ts +0 -49
  344. package/dist/lib/message-scroller-primitive/use-message-scroller-refs.d.ts.map +0 -1
  345. package/dist/lib/message-scroller-primitive/use-message-scroller-refs.js +0 -90
  346. package/dist/lib/message-scroller-primitive/use-render.d.ts +0 -22
  347. package/dist/lib/message-scroller-primitive/use-render.d.ts.map +0 -1
  348. package/dist/lib/message-scroller-primitive/use-render.js +0 -113
  349. package/dist/lib/message-scroller-primitive/utils.d.ts +0 -4
  350. package/dist/lib/message-scroller-primitive/utils.d.ts.map +0 -1
  351. package/dist/lib/message-scroller-primitive/utils.js +0 -9
  352. package/docs/agent-work-surfaces.md +0 -132
  353. package/docs/migration/ai-elements-vendoring.md +0 -29
  354. package/docs/terminal-tui-semantics.md +0 -172
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nadicodeai/ui",
3
- "version": "0.21.0",
3
+ "version": "1.0.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -15,22 +15,14 @@
15
15
  },
16
16
  "./globals.css": "./dist/styles/globals.css",
17
17
  "./eslint": "./dist/eslint/index.js",
18
- "./ai-elements": {
19
- "types": "./dist/ai-elements.d.ts",
20
- "import": "./dist/ai-elements.js"
18
+ "./agents": {
19
+ "types": "./dist/agents.d.ts",
20
+ "import": "./dist/agents.js"
21
21
  },
22
22
  "./hooks": {
23
23
  "types": "./dist/hooks/index.d.ts",
24
24
  "import": "./dist/hooks/index.js"
25
25
  },
26
- "./lib/agent-contracts": {
27
- "types": "./dist/lib/agent-contracts.d.ts",
28
- "import": "./dist/lib/agent-contracts.js"
29
- },
30
- "./lib/agent-state": {
31
- "types": "./dist/lib/agent-state.d.ts",
32
- "import": "./dist/lib/agent-state.js"
33
- },
34
26
  "./lib/utils": {
35
27
  "types": "./dist/lib/utils.d.ts",
36
28
  "import": "./dist/lib/utils.js"
@@ -46,6 +38,8 @@
46
38
  },
47
39
  "files": [
48
40
  "dist",
41
+ "LICENSES",
42
+ "NOTICE",
49
43
  "README.md",
50
44
  "AGENTS.md",
51
45
  "llms.txt",
@@ -55,47 +49,41 @@
55
49
  "scripts": {
56
50
  "dev": "node scripts/dev-build.mjs --watch",
57
51
  "build": "rm -rf dist && tsc -p tsconfig.build.json && node scripts/fix-dist-imports.mjs && node scripts/build-styles.mjs && node scripts/build-eslint.mjs",
58
- "build:fast": "node scripts/dev-build.mjs",
52
+ "build:dev": "node scripts/dev-build.mjs",
59
53
  "generate:brand-icons": "node scripts/build-brand-icons.mjs",
60
54
  "prepack": "npm run build",
61
55
  "lint": "eslint --max-warnings=0",
62
56
  "typecheck": "tsc --noEmit",
57
+ "check": "npm run lint && npm run typecheck",
58
+ "check:static": "npm run check",
63
59
  "pretest": "npm run build",
64
60
  "test": "vitest run"
65
61
  },
66
62
  "dependencies": {
63
+ "@assistant-ui/react": "0.15.1",
64
+ "@assistant-ui/react-markdown": "0.14.8",
67
65
  "@base-ui/react": "^1.6.0",
68
- "@nadicodeai/design-system": "0.21.0",
69
- "@rive-app/react-webgl2": "^4.29.1",
70
- "@streamdown/cjk": "^1.0.3",
71
- "@streamdown/code": "^1.1.1",
72
- "@streamdown/math": "^1.0.2",
73
- "@streamdown/mermaid": "^1.0.2",
74
- "@xyflow/react": "^12.11.0",
75
- "ai": "^6.0.208",
76
- "ansi-to-react": "^6.2.6",
66
+ "@nadicodeai/design-system": "1.0.0",
67
+ "@paper-design/shaders": "0.0.78",
77
68
  "class-variance-authority": "^0.7.1",
78
69
  "clsx": "^2.1.1",
79
70
  "cmdk": "^1.1.1",
80
71
  "embla-carousel-react": "^8.6.0",
81
72
  "input-otp": "^1.4.2",
82
73
  "lucide-react": "1.21.0",
83
- "media-chrome": "^4.19.2",
84
74
  "motion": "^12.40.0",
85
- "nanoid": "^5.1.15",
86
75
  "next-themes": "^0.4.6",
87
76
  "react-day-picker": "^10.0.1",
88
77
  "react-hook-form": "^7.80.0",
89
- "react-jsx-parser": "^2.4.1",
90
78
  "react-resizable-panels": "^4.11.2",
91
79
  "recharts": "^3.8.0",
92
- "shiki": "^4.2.0",
80
+ "remark-gfm": "^4.0.1",
81
+ "shadow-plugin": "1.2.7",
93
82
  "sonner": "^2.0.7",
94
- "streamdown": "^2.5.0",
95
83
  "tailwind-merge": "^3.0.0",
96
- "tokenlens": "^1.3.1",
97
84
  "tw-animate-css": "^1.4.0",
98
- "use-stick-to-bottom": "^1.1.6"
85
+ "tw-shimmer": "0.4.12",
86
+ "zustand": "^5.0.14"
99
87
  },
100
88
  "peerDependencies": {
101
89
  "@tailwindcss/postcss": "^4.3.1",
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: nadicodeai-ui
3
- description: Use when building or modifying NadicodeAI React UI with @nadicodeai/ui, shadcn components, or AI Elements.
3
+ description: Use when building or modifying NadicodeAI React UI with @nadicodeai/ui, shadcn components, or assistant-ui.
4
4
  ---
5
5
 
6
6
  # NadicodeAI UI
7
7
 
8
- Use `@nadicodeai/ui` for shared NadicodeAI React UI. It ships built shadcn source components, Vercel AI Elements, React adapters over design-system grammar, reusable NadicodeAI marketing/section compositions, presentational product components, package CSS, and agent instructions. Product components are package surface only when source, public subpath exports, tests, and docs exist together.
8
+ Use `@nadicodeai/ui` for shared NadicodeAI React UI. It ships built shadcn source components, the `@nadicodeai/ui/agents` interface, React adapters over design-system grammar, reusable NadicodeAI marketing/section compositions, presentational product components, package CSS, and agent instructions. Product components are package surface only when source, public subpath exports, tests, and docs exist together.
9
9
 
10
10
  The package is a flat shadcn-style source surface. Do not create or document
11
11
  folders or package namespaces that do not exist. Do not add top-level exports
@@ -27,29 +27,33 @@ Prefer direct subpaths:
27
27
 
28
28
  ```tsx
29
29
  import { Button } from "@nadicodeai/ui/components/button";
30
- import { Message } from "@nadicodeai/ui/components/ai-elements/message";
30
+ import { AssistantRuntimeProvider, Thread, useLocalRuntime } from "@nadicodeai/ui/agents";
31
31
  ```
32
32
 
33
33
  Use barrels when helpful:
34
34
 
35
35
  ```tsx
36
36
  import { Button, PageFrame } from "@nadicodeai/ui";
37
- import { Message, PromptInput } from "@nadicodeai/ui/ai-elements";
38
37
  ```
39
38
 
40
39
  Product component imports:
41
40
 
42
41
  ```tsx
43
42
  import { DashboardShell } from "@nadicodeai/ui/components/dashboard-shell";
44
- import { AgentChat } from "@nadicodeai/ui/components/agent-chat";
43
+ import { AgentCard } from "@nadicodeai/ui/components/agent-card";
44
+ import { AgentVisual } from "@nadicodeai/ui/components/agent-visual";
45
+ import { Thread } from "@nadicodeai/ui/agents";
45
46
  ```
46
47
 
47
48
  ## Product Components
48
49
 
49
- - Use package product components for shared settings, shell, installer, plugin-boundary, agent chat, artifact, file, diff, and redacted terminal summary UI.
50
+ - Use `@nadicodeai/ui/agents` for assistant-ui conversation primitives, providers, hooks, runtimes, and types. It is a client-only entry; do not import assistant-ui packages directly or recreate their behavior.
51
+ - Import Agent identity from `@nadicodeai/ui/components/agent-card` and `@nadicodeai/ui/components/agent-visual`. Direct subpaths keep the Card composition server-compatible and the animated visual at a client leaf.
52
+ - Use `AgentVisual` with an explicit closed recipe and `registry`, `card`, or `detail` presentation; never infer or randomize identity from a free-form role. Compose it through `AgentCard` when the Agent is a recognizable content object. There is no `AgentGlyph` or `AgentRow`.
53
+ - `Card` defaults to the resting material. Select `surface="raised"` for physically raised/selected work and `surface="plain"` for an intentional structural/auth/website escape. Do not add border, ring, or shadow classes at call sites.
54
+ - Use `Empty scope="page|region|card"` so only the owning container draws a frame. Use `GlassControl shape="control"` for compact floating controls and `shape="bar"` for full-width header chrome, never content or modal bodies.
50
55
  - Use first-party shadcn registry source in the consuming app for generic data tables, command palettes, and chart cards; do not import a NadicodeAI package abstraction for those patterns.
51
56
  - Keep routes, data, auth, server actions, persistence, permission decisions, runtime adapters, analytics, and product-specific copy in the consuming app.
52
- - Render TUI surfaces through `docs/terminal-tui-semantics.md`.
53
57
  - Fixtures must be synthetic or redacted and cover provider, model, plugin, approval, diff, terminal, installer recovery, queued, streaming, and interrupted states. Do not use generic SaaS/card-grid filler, secrets, environment values, raw terminal output, hidden reasoning, user memory, fake customers, or fake proof metrics.
54
58
 
55
59
  ## Forms
@@ -1,49 +0,0 @@
1
- export * from "./components/ai-elements/agent";
2
- export * from "./components/ai-elements/artifact";
3
- export * from "./components/ai-elements/attachments";
4
- export * from "./components/ai-elements/audio-player";
5
- export * from "./components/ai-elements/canvas";
6
- export * from "./components/ai-elements/chain-of-thought";
7
- export * from "./components/ai-elements/checkpoint";
8
- export * from "./components/ai-elements/code-block";
9
- export * from "./components/ai-elements/commit";
10
- export * from "./components/ai-elements/confirmation";
11
- export * from "./components/ai-elements/connection";
12
- export * from "./components/ai-elements/context";
13
- export * from "./components/ai-elements/controls";
14
- export * from "./components/ai-elements/conversation";
15
- export * from "./components/ai-elements/edge";
16
- export * from "./components/ai-elements/environment-variables";
17
- export * from "./components/ai-elements/file-tree";
18
- export * from "./components/ai-elements/image";
19
- export * from "./components/ai-elements/inline-citation";
20
- export * from "./components/ai-elements/jsx-preview";
21
- export * from "./components/ai-elements/message";
22
- export * from "./components/ai-elements/mic-selector";
23
- export * from "./components/ai-elements/model-selector";
24
- export * from "./components/ai-elements/node";
25
- export * from "./components/ai-elements/open-in-chat";
26
- export * from "./components/ai-elements/package-info";
27
- export * from "./components/ai-elements/panel";
28
- export * from "./components/ai-elements/persona";
29
- export * from "./components/ai-elements/plan";
30
- export * from "./components/ai-elements/prompt-input";
31
- export * from "./components/ai-elements/queue";
32
- export * from "./components/ai-elements/reasoning";
33
- export * from "./components/ai-elements/sandbox";
34
- export * from "./components/ai-elements/schema-display";
35
- export * from "./components/ai-elements/shimmer";
36
- export * from "./components/ai-elements/snippet";
37
- export * from "./components/ai-elements/sources";
38
- export * from "./components/ai-elements/speech-input";
39
- export * from "./components/ai-elements/stack-trace";
40
- export * from "./components/ai-elements/suggestion";
41
- export * from "./components/ai-elements/task";
42
- export * from "./components/ai-elements/terminal";
43
- export * from "./components/ai-elements/test-results";
44
- export * from "./components/ai-elements/tool";
45
- export * from "./components/ai-elements/toolbar";
46
- export * from "./components/ai-elements/transcription";
47
- export * from "./components/ai-elements/voice-selector";
48
- export * from "./components/ai-elements/web-preview";
49
- //# sourceMappingURL=ai-elements.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-elements.d.ts","sourceRoot":"","sources":["../src/ai-elements.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC"}
@@ -1,48 +0,0 @@
1
- export * from "./components/ai-elements/agent.js";
2
- export * from "./components/ai-elements/artifact.js";
3
- export * from "./components/ai-elements/attachments.js";
4
- export * from "./components/ai-elements/audio-player.js";
5
- export * from "./components/ai-elements/canvas.js";
6
- export * from "./components/ai-elements/chain-of-thought.js";
7
- export * from "./components/ai-elements/checkpoint.js";
8
- export * from "./components/ai-elements/code-block.js";
9
- export * from "./components/ai-elements/commit.js";
10
- export * from "./components/ai-elements/confirmation.js";
11
- export * from "./components/ai-elements/connection.js";
12
- export * from "./components/ai-elements/context.js";
13
- export * from "./components/ai-elements/controls.js";
14
- export * from "./components/ai-elements/conversation.js";
15
- export * from "./components/ai-elements/edge.js";
16
- export * from "./components/ai-elements/environment-variables.js";
17
- export * from "./components/ai-elements/file-tree.js";
18
- export * from "./components/ai-elements/image.js";
19
- export * from "./components/ai-elements/inline-citation.js";
20
- export * from "./components/ai-elements/jsx-preview.js";
21
- export * from "./components/ai-elements/message.js";
22
- export * from "./components/ai-elements/mic-selector.js";
23
- export * from "./components/ai-elements/model-selector.js";
24
- export * from "./components/ai-elements/node.js";
25
- export * from "./components/ai-elements/open-in-chat.js";
26
- export * from "./components/ai-elements/package-info.js";
27
- export * from "./components/ai-elements/panel.js";
28
- export * from "./components/ai-elements/persona.js";
29
- export * from "./components/ai-elements/plan.js";
30
- export * from "./components/ai-elements/prompt-input.js";
31
- export * from "./components/ai-elements/queue.js";
32
- export * from "./components/ai-elements/reasoning.js";
33
- export * from "./components/ai-elements/sandbox.js";
34
- export * from "./components/ai-elements/schema-display.js";
35
- export * from "./components/ai-elements/shimmer.js";
36
- export * from "./components/ai-elements/snippet.js";
37
- export * from "./components/ai-elements/sources.js";
38
- export * from "./components/ai-elements/speech-input.js";
39
- export * from "./components/ai-elements/stack-trace.js";
40
- export * from "./components/ai-elements/suggestion.js";
41
- export * from "./components/ai-elements/task.js";
42
- export * from "./components/ai-elements/terminal.js";
43
- export * from "./components/ai-elements/test-results.js";
44
- export * from "./components/ai-elements/tool.js";
45
- export * from "./components/ai-elements/toolbar.js";
46
- export * from "./components/ai-elements/transcription.js";
47
- export * from "./components/ai-elements/voice-selector.js";
48
- export * from "./components/ai-elements/web-preview.js";
@@ -1,7 +0,0 @@
1
- import * as React from "react";
2
- export type AgentAvatarAccent = "green" | "cyan" | "amber" | "ink" | "red";
3
- declare function AgentAvatar({ className, accent, children, ...props }: React.ComponentProps<"span"> & {
4
- accent?: AgentAvatarAccent;
5
- }): React.JSX.Element;
6
- export { AgentAvatar };
7
- //# sourceMappingURL=agent-avatar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-avatar.d.ts","sourceRoot":"","sources":["../../src/components/agent-avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;AAE3E,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAAE,qBAW/D;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,6 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- function AgentAvatar({ className, accent, children, ...props }) {
4
- return (_jsx("span", { "data-slot": "agent-avatar", "data-accent": accent, className: cn("nc-agent-avatar", className), ...props, children: children }));
5
- }
6
- export { AgentAvatar };
@@ -1,20 +0,0 @@
1
- import * as React from "react";
2
- import { type AgentComposerProps } from "./agent-composer";
3
- import { type AgentThreadStateCopy } from "./agent-thread";
4
- import { type AgentMessageModel, type AgentToolApprovalDecisionHandler, type AgentWorkState } from "./agent-message";
5
- declare function AgentChat({ messages, state, stateCopy, emptyState, composer, composerProps, toolActions, retryAction, onToolApprovalChoice, maxMessages, header, className, threadClassName, ...props }: React.ComponentProps<"section"> & {
6
- messages: AgentMessageModel[];
7
- state?: AgentWorkState;
8
- stateCopy?: Partial<Record<Exclude<AgentWorkState, "idle">, AgentThreadStateCopy>>;
9
- emptyState?: AgentThreadStateCopy;
10
- composer?: React.ReactNode;
11
- composerProps?: AgentComposerProps;
12
- toolActions?: Record<string, React.ReactNode>;
13
- retryAction?: React.ReactNode;
14
- onToolApprovalChoice?: AgentToolApprovalDecisionHandler;
15
- maxMessages?: number;
16
- header?: React.ReactNode;
17
- threadClassName?: string;
18
- }): React.JSX.Element;
19
- export { AgentChat };
20
- //# sourceMappingURL=agent-chat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-chat.d.ts","sourceRoot":"","sources":["../../src/components/agent-chat.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAe,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gCAAgC,EACrC,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAGpC,iBAAS,SAAS,CAAC,EACjB,QAAQ,EACR,KAAc,EACd,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,MAAM,EACN,SAAS,EACT,eAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG;IACnC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACnF,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,oBAAoB,CAAC,EAAE,gCAAgC,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,qBA6BA;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1,10 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { AgentComposer } from "./agent-composer.js";
4
- import { AgentThread } from "./agent-thread.js";
5
- import { cn } from "../lib/utils.js";
6
- function AgentChat({ messages, state = "idle", stateCopy, emptyState, composer, composerProps, toolActions, retryAction, onToolApprovalChoice, maxMessages, header, className, threadClassName, ...props }) {
7
- return (_jsxs("section", { "data-slot": "agent-chat", "data-agent-state": state, className: cn("flex min-h-0 flex-col gap-4 rounded-lg border bg-card p-3", className), ...props, children: [header && _jsx("div", { "data-slot": "agent-chat-header", children: header }), _jsx(AgentThread, { messages: messages, state: state, stateCopy: stateCopy, emptyState: emptyState, toolActions: toolActions, retryAction: retryAction, onToolApprovalChoice: onToolApprovalChoice, maxMessages: maxMessages, className: cn("flex-1", threadClassName) }), composer ??
8
- (composerProps ? (_jsx(AgentComposer, { ...composerProps, state: state === "streaming" ? "streaming" : composerProps.state })) : null)] }));
9
- }
10
- export { AgentChat };
@@ -1,56 +0,0 @@
1
- import * as React from "react";
2
- import { PromptInput } from "./ai-elements/prompt-input";
3
- import { type AgentRedactionRule } from "./artifact-panel";
4
- import { type AgentAttachmentModel } from "./agent-message";
5
- export type AgentComposerState = "idle" | "disabled" | "submitting" | "streaming" | "error";
6
- export type AgentQueueStatus = "queued" | "running" | "blocked" | "complete" | "interrupted";
7
- export type AgentQueueItemModel = {
8
- id: string;
9
- title: string;
10
- description?: string;
11
- status?: AgentQueueStatus;
12
- attachments?: AgentAttachmentModel[];
13
- redaction?: AgentRedactionRule;
14
- };
15
- export type AgentQueueModel = {
16
- title?: string;
17
- description?: string;
18
- items: AgentQueueItemModel[];
19
- };
20
- export type AgentComposerSubmit = {
21
- value: string;
22
- attachments: AgentAttachmentModel[];
23
- queue?: AgentQueueModel;
24
- };
25
- export type AgentComposerProps = Omit<React.ComponentProps<typeof PromptInput>, "children" | "onSubmit"> & {
26
- value?: string;
27
- defaultValue?: string;
28
- placeholder?: string;
29
- attachments?: AgentAttachmentModel[];
30
- queue?: AgentQueueModel;
31
- state?: AgentComposerState;
32
- disabled?: boolean;
33
- slashMenu?: React.ReactNode;
34
- mentionMenu?: React.ReactNode;
35
- tools?: React.ReactNode;
36
- submitLabel?: string;
37
- stopLabel?: string;
38
- onValueChange?: (value: string) => void;
39
- onSubmit?: (payload: AgentComposerSubmit, event: React.FormEvent<HTMLFormElement>) => void | Promise<void>;
40
- onStop?: () => void;
41
- onRemoveAttachment?: (attachment: AgentAttachmentModel) => void;
42
- queueActions?: Record<string, React.ReactNode>;
43
- footer?: React.ReactNode;
44
- };
45
- declare function AgentComposerAttachments({ attachments, onRemoveAttachment, }: {
46
- attachments?: AgentAttachmentModel[];
47
- onRemoveAttachment?: (attachment: AgentAttachmentModel) => void;
48
- }): React.JSX.Element | null;
49
- declare function AgentQueuePanel({ queue, actions, className, }: {
50
- queue: AgentQueueModel;
51
- actions?: Record<string, React.ReactNode>;
52
- className?: string;
53
- }): React.JSX.Element | null;
54
- declare function AgentComposer({ value, defaultValue, placeholder, attachments, queue, state, disabled, slashMenu, mentionMenu, tools, submitLabel, stopLabel, onValueChange, onSubmit, onStop, onRemoveAttachment, queueActions, footer, className, ...props }: AgentComposerProps): React.JSX.Element;
55
- export { AgentComposer, AgentComposerAttachments, AgentQueuePanel };
56
- //# sourceMappingURL=agent-composer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-composer.d.ts","sourceRoot":"","sources":["../../src/components/agent-composer.tsx"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { AtSignIcon, SlashIcon } from "lucide-react";
4
- import { Attachment, AttachmentInfo, AttachmentPreview, AttachmentRemove, Attachments, } from "./ai-elements/attachments.js";
5
- import { PromptInput, PromptInputBody, PromptInputFooter, PromptInputHeader, PromptInputSubmit, PromptInputTextarea, PromptInputTools, } from "./ai-elements/prompt-input.js";
6
- import { Queue, QueueItem, QueueItemContent, QueueItemDescription, QueueItemIndicator, QueueList, QueueSection, QueueSectionContent, QueueSectionLabel, QueueSectionTrigger, } from "./ai-elements/queue.js";
7
- import { getAgentRedactionText } from "./artifact-panel.js";
8
- import { Badge } from "./badge.js";
9
- import { Button } from "./button.js";
10
- import { agentAttachmentToData } from "../lib/agent-attachment.js";
11
- import { cn } from "../lib/utils.js";
12
- const queueStatusLabels = {
13
- blocked: "Blocked",
14
- complete: "Complete",
15
- interrupted: "Interrupted",
16
- queued: "Queued",
17
- running: "Running",
18
- };
19
- function composerStateToChatStatus(state) {
20
- if (state === "streaming") {
21
- return "streaming";
22
- }
23
- if (state === "submitting") {
24
- return "submitted";
25
- }
26
- if (state === "error") {
27
- return "error";
28
- }
29
- return "ready";
30
- }
31
- function AgentComposerAttachments({ attachments, onRemoveAttachment, }) {
32
- if (!attachments?.length) {
33
- return null;
34
- }
35
- return (_jsx(Attachments, { "data-slot": "agent-composer-attachments", variant: "list", className: "w-full", children: attachments.map((attachment) => (_jsxs(Attachment, { data: agentAttachmentToData(attachment), onRemove: onRemoveAttachment ? () => onRemoveAttachment(attachment) : undefined, children: [_jsx(AttachmentPreview, {}), _jsx(AttachmentInfo, { showMediaType: true }), attachment.sizeLabel && (_jsx("span", { className: "text-xs text-muted-foreground", children: attachment.sizeLabel })), attachment.redaction && (_jsx("span", { className: "sr-only", children: getAgentRedactionText(attachment.redaction) })), _jsx(AttachmentRemove, {})] }, attachment.id))) }));
36
- }
37
- function AgentQueuePanel({ queue, actions, className, }) {
38
- if (!queue.items.length) {
39
- return null;
40
- }
41
- return (_jsx(Queue, { "data-slot": "agent-queue", className: className, children: _jsxs(QueueSection, { defaultOpen: true, children: [_jsx(QueueSectionTrigger, { children: _jsx(QueueSectionLabel, { count: queue.items.length, label: queue.title ?? "queued tasks" }) }), _jsxs(QueueSectionContent, { children: [queue.description && (_jsx("p", { className: "px-3 pt-2 text-sm text-muted-foreground", children: queue.description })), _jsx(QueueList, { children: queue.items.map((item) => {
42
- const status = item.status ?? "queued";
43
- const completed = status === "complete";
44
- return (_jsxs(QueueItem, { "data-queue-status": status, className: "gap-2", children: [_jsxs("div", { className: "flex items-start gap-2", children: [_jsx(QueueItemIndicator, { completed: completed }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx(QueueItemContent, { completed: completed, children: item.redaction ? getAgentRedactionText(item.redaction) : item.title }), item.description && (_jsx(QueueItemDescription, { completed: completed, children: item.description }))] }), _jsx(Badge, { variant: "outline", children: queueStatusLabels[status] }), actions?.[item.id]] }), _jsx(AgentComposerAttachments, { attachments: item.attachments })] }, item.id));
45
- }) })] })] }) }));
46
- }
47
- function AgentComposer({ value, defaultValue, placeholder = "Ask Nadia to work on this...", attachments = [], queue, state = "idle", disabled = false, slashMenu, mentionMenu, tools, submitLabel = "Submit", stopLabel = "Stop", onValueChange, onSubmit, onStop, onRemoveAttachment, queueActions, footer, className, ...props }) {
48
- const isDisabled = disabled || state === "disabled" || state === "submitting";
49
- const isStreaming = state === "streaming";
50
- return (_jsxs("div", { "data-slot": "agent-composer-shell", "data-composer-state": state, "data-disabled": isDisabled ? true : undefined, className: "grid gap-3", children: [queue && _jsx(AgentQueuePanel, { queue: queue, actions: queueActions }), _jsxs(PromptInput, { "data-slot": "agent-composer", className: cn("rounded-lg border bg-popover text-popover-foreground", className), onSubmit: (message, event) => onSubmit?.({
51
- attachments,
52
- queue,
53
- value: message.text,
54
- }, event), ...props, children: [(attachments.length > 0 || slashMenu || mentionMenu) && (_jsxs(PromptInputHeader, { children: [_jsx(AgentComposerAttachments, { attachments: attachments, onRemoveAttachment: onRemoveAttachment }), slashMenu && _jsx("div", { "data-slot": "agent-composer-slash-menu", children: slashMenu }), mentionMenu && _jsx("div", { "data-slot": "agent-composer-mention-menu", children: mentionMenu })] })), _jsx(PromptInputBody, { children: _jsx(PromptInputTextarea, { value: value, defaultValue: defaultValue, placeholder: placeholder, disabled: isDisabled || isStreaming, onChange: (event) => onValueChange?.(event.currentTarget.value) }) }), _jsxs(PromptInputFooter, { children: [_jsxs(PromptInputTools, { children: [tools, !slashMenu && (_jsxs(Button, { "aria-label": "Slash commands", title: "Slash commands", type: "button", variant: "ghost", size: "icon-sm", disabled: isDisabled, children: [_jsx(SlashIcon, { className: "size-4", "data-icon": true }), _jsx("span", { className: "sr-only", children: "Slash commands" })] })), !mentionMenu && (_jsxs(Button, { "aria-label": "Mention context", title: "Mention context", type: "button", variant: "ghost", size: "icon-sm", disabled: isDisabled, children: [_jsx(AtSignIcon, { className: "size-4", "data-icon": true }), _jsx("span", { className: "sr-only", children: "Mention context" })] }))] }), _jsx(PromptInputSubmit, { "aria-label": isStreaming ? stopLabel : submitLabel, status: composerStateToChatStatus(state), onStop: onStop, disabled: isStreaming ? !onStop : isDisabled })] })] }), footer && _jsx("div", { "data-slot": "agent-composer-footer", children: footer })] }));
55
- }
56
- export { AgentComposer, AgentComposerAttachments, AgentQueuePanel };
@@ -1,117 +0,0 @@
1
- import * as React from "react";
2
- import { type AgentArtifactModel, type AgentRedactionRule } from "./artifact-panel";
3
- import { type AgentApprovalChoice, type AgentToolApprovalRequest } from "./agent-tool-approval";
4
- import { type AgentWorkState } from "../lib/agent-work-state";
5
- export type AgentMessageRole = "user" | "assistant" | "system";
6
- export type { AgentWorkState };
7
- export type AgentMessageSourceKind = "human" | "agent" | "system" | "tool" | "runtime";
8
- export type AgentMessageSourceMetadata = {
9
- kind: AgentMessageSourceKind;
10
- label?: string;
11
- model?: string;
12
- sessionId?: string;
13
- timestamp?: string;
14
- };
15
- export type AgentSourceReference = {
16
- id: string;
17
- title: string;
18
- url?: string;
19
- excerpt?: string;
20
- kind?: "document" | "web" | "file" | "system";
21
- redaction?: AgentRedactionRule;
22
- };
23
- export type AgentReasoningSummary = {
24
- id: string;
25
- title?: string;
26
- summary?: string;
27
- status?: "available" | "streaming" | "redacted";
28
- durationSeconds?: number;
29
- redaction?: AgentRedactionRule;
30
- };
31
- export type AgentToolCallStatus = "pending" | "running" | "success" | "error" | "denied" | "approval-requested" | "approval-responded";
32
- export type AgentToolCallModel = {
33
- id: string;
34
- name: string;
35
- title?: string;
36
- status: AgentToolCallStatus;
37
- input?: unknown;
38
- output?: unknown;
39
- error?: string;
40
- trace?: string;
41
- approval?: AgentToolApprovalRequest;
42
- redaction?: AgentRedactionRule;
43
- };
44
- export type AgentToolApprovalDecisionHandler = (choice: AgentApprovalChoice, request: AgentToolApprovalRequest, toolCall: AgentToolCallModel) => void;
45
- export type AgentAttachmentModel = {
46
- id: string;
47
- type: "file" | "image" | "audio" | "video" | "source";
48
- name: string;
49
- mediaType?: string;
50
- url?: string;
51
- sizeLabel?: string;
52
- redaction?: AgentRedactionRule;
53
- };
54
- export type AgentMessageTextPart = {
55
- type: "text";
56
- text: string;
57
- redaction?: AgentRedactionRule;
58
- };
59
- export type AgentMessageReasoningPart = {
60
- type: "reasoning";
61
- reasoning: AgentReasoningSummary;
62
- };
63
- export type AgentMessageToolPart = {
64
- type: "tool";
65
- toolCall: AgentToolCallModel;
66
- };
67
- export type AgentMessageSourcePart = {
68
- type: "source";
69
- source: AgentSourceReference;
70
- };
71
- export type AgentMessageArtifactPart = {
72
- type: "artifact";
73
- artifact: AgentArtifactModel;
74
- };
75
- export type AgentMessageStatePart = {
76
- type: "state";
77
- state: Exclude<AgentWorkState, "empty" | "idle">;
78
- title?: string;
79
- description?: string;
80
- };
81
- export type AgentMessagePart = AgentMessageTextPart | AgentMessageReasoningPart | AgentMessageToolPart | AgentMessageSourcePart | AgentMessageArtifactPart | AgentMessageStatePart;
82
- export type AgentMessageModel = {
83
- id: string;
84
- role: AgentMessageRole;
85
- content?: string;
86
- metadata?: AgentMessageSourceMetadata;
87
- state?: Exclude<AgentWorkState, "empty">;
88
- parts?: AgentMessagePart[];
89
- attachments?: AgentAttachmentModel[];
90
- sources?: AgentSourceReference[];
91
- redaction?: AgentRedactionRule;
92
- };
93
- declare function AgentMessageStateNotice({ state, title, description, actions, }: {
94
- state: Exclude<AgentWorkState, "empty" | "idle">;
95
- title?: React.ReactNode;
96
- description?: React.ReactNode;
97
- actions?: React.ReactNode;
98
- }): React.JSX.Element;
99
- declare function AgentAttachmentsList({ attachments }: {
100
- attachments?: AgentAttachmentModel[];
101
- }): React.JSX.Element | null;
102
- declare function AgentSourcesList({ sources }: {
103
- sources?: AgentSourceReference[];
104
- }): React.JSX.Element | null;
105
- declare function AgentToolCall({ toolCall, actions, onApprovalChoice, }: {
106
- toolCall: AgentToolCallModel;
107
- actions?: React.ReactNode;
108
- onApprovalChoice?: AgentToolApprovalDecisionHandler;
109
- }): React.JSX.Element;
110
- declare function AgentMessage({ message, toolActions, retryAction, onToolApprovalChoice, className, ...props }: Omit<React.ComponentProps<"article">, "children"> & {
111
- message: AgentMessageModel;
112
- toolActions?: Record<string, React.ReactNode>;
113
- retryAction?: React.ReactNode;
114
- onToolApprovalChoice?: AgentToolApprovalDecisionHandler;
115
- }): React.JSX.Element;
116
- export { AgentAttachmentsList, AgentMessage, AgentMessageStateNotice, AgentSourcesList, AgentToolCall, };
117
- //# sourceMappingURL=agent-message.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-message.d.ts","sourceRoot":"","sources":["../../src/components/agent-message.tsx"],"names":[],"mappings":"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"}