@artooi/agents-web-components 0.0.0-stage → 0.1.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 (543) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/LICENSE +21 -0
  3. package/README.md +4397 -2
  4. package/dist/agents-web-components.bundle.js +5708 -0
  5. package/dist/agents-web-components.bundle.js.map +7 -0
  6. package/dist/bundle.d.ts +3 -0
  7. package/dist/bundle.d.ts.map +1 -0
  8. package/dist/chat.d.ts +3 -0
  9. package/dist/chat.d.ts.map +1 -0
  10. package/dist/chat.js +16373 -0
  11. package/dist/chat.js.map +7 -0
  12. package/dist/chunk-ARNLFGCC.js +7715 -0
  13. package/dist/chunk-ARNLFGCC.js.map +7 -0
  14. package/dist/constants.d.ts +575 -0
  15. package/dist/constants.d.ts.map +1 -0
  16. package/dist/core/activity_registration.d.ts +19 -0
  17. package/dist/core/activity_registration.d.ts.map +1 -0
  18. package/dist/core/activity_registry.d.ts +46 -0
  19. package/dist/core/activity_registry.d.ts.map +1 -0
  20. package/dist/core/activity_renderer.d.ts +20 -0
  21. package/dist/core/activity_renderer.d.ts.map +1 -0
  22. package/dist/core/ag_ui_chat.d.ts +836 -0
  23. package/dist/core/ag_ui_chat.d.ts.map +1 -0
  24. package/dist/core/agui_client.d.ts +370 -0
  25. package/dist/core/agui_client.d.ts.map +1 -0
  26. package/dist/core/attachment.d.ts +42 -0
  27. package/dist/core/attachment.d.ts.map +1 -0
  28. package/dist/core/chat_registry.d.ts +23 -0
  29. package/dist/core/chat_registry.d.ts.map +1 -0
  30. package/dist/core/client_seed.d.ts +27 -0
  31. package/dist/core/client_seed.d.ts.map +1 -0
  32. package/dist/core/conversation_store.d.ts +195 -0
  33. package/dist/core/conversation_store.d.ts.map +1 -0
  34. package/dist/core/create_http_agent.d.ts +57 -0
  35. package/dist/core/create_http_agent.d.ts.map +1 -0
  36. package/dist/core/define_chat.d.ts +13 -0
  37. package/dist/core/define_chat.d.ts.map +1 -0
  38. package/dist/core/events/attachments_detail.d.ts +9 -0
  39. package/dist/core/events/attachments_detail.d.ts.map +1 -0
  40. package/dist/core/events/bar_height_detail.d.ts +6 -0
  41. package/dist/core/events/bar_height_detail.d.ts.map +1 -0
  42. package/dist/core/events/custom_agent_detail.d.ts +8 -0
  43. package/dist/core/events/custom_agent_detail.d.ts.map +1 -0
  44. package/dist/core/events/dock_width_detail.d.ts +8 -0
  45. package/dist/core/events/dock_width_detail.d.ts.map +1 -0
  46. package/dist/core/events/feedback_detail.d.ts +28 -0
  47. package/dist/core/events/feedback_detail.d.ts.map +1 -0
  48. package/dist/core/events/invalidate_detail.d.ts +16 -0
  49. package/dist/core/events/invalidate_detail.d.ts.map +1 -0
  50. package/dist/core/events/maximize_detail.d.ts +5 -0
  51. package/dist/core/events/maximize_detail.d.ts.map +1 -0
  52. package/dist/core/events/run_finished_detail.d.ts +36 -0
  53. package/dist/core/events/run_finished_detail.d.ts.map +1 -0
  54. package/dist/core/events/state_detail.d.ts +5 -0
  55. package/dist/core/events/state_detail.d.ts.map +1 -0
  56. package/dist/core/events/submit_detail.d.ts +8 -0
  57. package/dist/core/events/submit_detail.d.ts.map +1 -0
  58. package/dist/core/events/thread_detail.d.ts +27 -0
  59. package/dist/core/events/thread_detail.d.ts.map +1 -0
  60. package/dist/core/events/thread_title_detail.d.ts +8 -0
  61. package/dist/core/events/thread_title_detail.d.ts.map +1 -0
  62. package/dist/core/events/toggle_detail.d.ts +5 -0
  63. package/dist/core/events/toggle_detail.d.ts.map +1 -0
  64. package/dist/core/events/tool_run.d.ts +11 -0
  65. package/dist/core/events/tool_run.d.ts.map +1 -0
  66. package/dist/core/events/unread_detail.d.ts +11 -0
  67. package/dist/core/events/unread_detail.d.ts.map +1 -0
  68. package/dist/core/message_role.d.ts +4 -0
  69. package/dist/core/message_role.d.ts.map +1 -0
  70. package/dist/core/read_flag.d.ts +11 -0
  71. package/dist/core/read_flag.d.ts.map +1 -0
  72. package/dist/core/read_json_attribute.d.ts +15 -0
  73. package/dist/core/read_json_attribute.d.ts.map +1 -0
  74. package/dist/core/read_max_tool_rounds.d.ts +9 -0
  75. package/dist/core/read_max_tool_rounds.d.ts.map +1 -0
  76. package/dist/core/remote_conversation_store.d.ts +71 -0
  77. package/dist/core/remote_conversation_store.d.ts.map +1 -0
  78. package/dist/core/run_handlers.d.ts +85 -0
  79. package/dist/core/run_handlers.d.ts.map +1 -0
  80. package/dist/core/run_index.d.ts +58 -0
  81. package/dist/core/run_index.d.ts.map +1 -0
  82. package/dist/core/storage_scope.d.ts +118 -0
  83. package/dist/core/storage_scope.d.ts.map +1 -0
  84. package/dist/core/tool_outcome.d.ts +27 -0
  85. package/dist/core/tool_outcome.d.ts.map +1 -0
  86. package/dist/core/transcribe_audio.d.ts +32 -0
  87. package/dist/core/transcribe_audio.d.ts.map +1 -0
  88. package/dist/core/upload_attachment.d.ts +44 -0
  89. package/dist/core/upload_attachment.d.ts.map +1 -0
  90. package/dist/core/utils.d.ts +117 -0
  91. package/dist/core/utils.d.ts.map +1 -0
  92. package/dist/dom/animations.d.ts +122 -0
  93. package/dist/dom/animations.d.ts.map +1 -0
  94. package/dist/dom/dom_driver.d.ts +28 -0
  95. package/dist/dom/dom_driver.d.ts.map +1 -0
  96. package/dist/dom/highlight_overlay.d.ts +39 -0
  97. package/dist/dom/highlight_overlay.d.ts.map +1 -0
  98. package/dist/dom/native_setter.d.ts +5 -0
  99. package/dist/dom/native_setter.d.ts.map +1 -0
  100. package/dist/dom/ring_color.d.ts +16 -0
  101. package/dist/dom/ring_color.d.ts.map +1 -0
  102. package/dist/dom/utils.d.ts +3 -0
  103. package/dist/dom/utils.d.ts.map +1 -0
  104. package/dist/index.d.ts +62 -0
  105. package/dist/index.d.ts.map +1 -0
  106. package/dist/index.js +223 -0
  107. package/dist/index.js.map +7 -0
  108. package/dist/skills/fill_template.d.ts +16 -0
  109. package/dist/skills/fill_template.d.ts.map +1 -0
  110. package/dist/skills/parse_skills.d.ts +8 -0
  111. package/dist/skills/parse_skills.d.ts.map +1 -0
  112. package/dist/skills/skill.d.ts +33 -0
  113. package/dist/skills/skill.d.ts.map +1 -0
  114. package/dist/skills/skill_catalog.d.ts +69 -0
  115. package/dist/skills/skill_catalog.d.ts.map +1 -0
  116. package/dist/skills/skill_name_from.d.ts +12 -0
  117. package/dist/skills/skill_name_from.d.ts.map +1 -0
  118. package/dist/tools/chat_surface_tools.d.ts +77 -0
  119. package/dist/tools/chat_surface_tools.d.ts.map +1 -0
  120. package/dist/tools/client_tool_registry.d.ts +58 -0
  121. package/dist/tools/client_tool_registry.d.ts.map +1 -0
  122. package/dist/tools/is_destructive.d.ts +14 -0
  123. package/dist/tools/is_destructive.d.ts.map +1 -0
  124. package/dist/tools/is_navigates.d.ts +9 -0
  125. package/dist/tools/is_navigates.d.ts.map +1 -0
  126. package/dist/tools/page_action_tools.d.ts +30 -0
  127. package/dist/tools/page_action_tools.d.ts.map +1 -0
  128. package/dist/tools/page_map.d.ts +16 -0
  129. package/dist/tools/page_map.d.ts.map +1 -0
  130. package/dist/tools/page_state.d.ts +27 -0
  131. package/dist/tools/page_state.d.ts.map +1 -0
  132. package/dist/tools/parse_tool_catalog.d.ts +21 -0
  133. package/dist/tools/parse_tool_catalog.d.ts.map +1 -0
  134. package/dist/tools/route_map.d.ts +37 -0
  135. package/dist/tools/route_map.d.ts.map +1 -0
  136. package/dist/tools/tool_catalog.d.ts +86 -0
  137. package/dist/tools/tool_catalog.d.ts.map +1 -0
  138. package/dist/tools/tool_dispatch.d.ts +82 -0
  139. package/dist/tools/tool_dispatch.d.ts.map +1 -0
  140. package/dist/ui/charts/chart_block.d.ts +57 -0
  141. package/dist/ui/charts/chart_block.d.ts.map +1 -0
  142. package/dist/ui/charts/chart_spec_from.d.ts +12 -0
  143. package/dist/ui/charts/chart_spec_from.d.ts.map +1 -0
  144. package/dist/ui/charts/chart_styles.d.ts +2 -0
  145. package/dist/ui/charts/chart_styles.d.ts.map +1 -0
  146. package/dist/ui/charts/chart_tool.d.ts +15 -0
  147. package/dist/ui/charts/chart_tool.d.ts.map +1 -0
  148. package/dist/ui/composer/attachment_styles.d.ts +2 -0
  149. package/dist/ui/composer/attachment_styles.d.ts.map +1 -0
  150. package/dist/ui/composer/attachment_tray.d.ts +53 -0
  151. package/dist/ui/composer/attachment_tray.d.ts.map +1 -0
  152. package/dist/ui/composer/auto_grow.d.ts +10 -0
  153. package/dist/ui/composer/auto_grow.d.ts.map +1 -0
  154. package/dist/ui/composer/build_composer.d.ts +32 -0
  155. package/dist/ui/composer/build_composer.d.ts.map +1 -0
  156. package/dist/ui/composer/composer_attachments.d.ts +57 -0
  157. package/dist/ui/composer/composer_attachments.d.ts.map +1 -0
  158. package/dist/ui/composer/composer_styles.d.ts +2 -0
  159. package/dist/ui/composer/composer_styles.d.ts.map +1 -0
  160. package/dist/ui/composer/composer_voice.d.ts +48 -0
  161. package/dist/ui/composer/composer_voice.d.ts.map +1 -0
  162. package/dist/ui/composer/skill_styles.d.ts +2 -0
  163. package/dist/ui/composer/skill_styles.d.ts.map +1 -0
  164. package/dist/ui/composer/skills_menu.d.ts +34 -0
  165. package/dist/ui/composer/skills_menu.d.ts.map +1 -0
  166. package/dist/ui/composer/voice_input.d.ts +46 -0
  167. package/dist/ui/composer/voice_input.d.ts.map +1 -0
  168. package/dist/ui/excerpts/attach_copy_buttons.d.ts +13 -0
  169. package/dist/ui/excerpts/attach_copy_buttons.d.ts.map +1 -0
  170. package/dist/ui/excerpts/copy_payload.d.ts +30 -0
  171. package/dist/ui/excerpts/copy_payload.d.ts.map +1 -0
  172. package/dist/ui/excerpts/page_quote_offer.d.ts +33 -0
  173. package/dist/ui/excerpts/page_quote_offer.d.ts.map +1 -0
  174. package/dist/ui/excerpts/place_offer.d.ts +9 -0
  175. package/dist/ui/excerpts/place_offer.d.ts.map +1 -0
  176. package/dist/ui/excerpts/quote_selection.d.ts +66 -0
  177. package/dist/ui/excerpts/quote_selection.d.ts.map +1 -0
  178. package/dist/ui/excerpts/transcript_quote_offer.d.ts +57 -0
  179. package/dist/ui/excerpts/transcript_quote_offer.d.ts.map +1 -0
  180. package/dist/ui/fill_ui_string.d.ts +32 -0
  181. package/dist/ui/fill_ui_string.d.ts.map +1 -0
  182. package/dist/ui/history/checkpoint_menu.d.ts +41 -0
  183. package/dist/ui/history/checkpoint_menu.d.ts.map +1 -0
  184. package/dist/ui/history/conversation_history.d.ts +317 -0
  185. package/dist/ui/history/conversation_history.d.ts.map +1 -0
  186. package/dist/ui/history/history_styles.d.ts +2 -0
  187. package/dist/ui/history/history_styles.d.ts.map +1 -0
  188. package/dist/ui/history/relative_time.d.ts +23 -0
  189. package/dist/ui/history/relative_time.d.ts.map +1 -0
  190. package/dist/ui/history/thread_drawer.d.ts +64 -0
  191. package/dist/ui/history/thread_drawer.d.ts.map +1 -0
  192. package/dist/ui/history/utils.d.ts +2 -0
  193. package/dist/ui/history/utils.d.ts.map +1 -0
  194. package/dist/ui/interrupts/approval_card.d.ts +64 -0
  195. package/dist/ui/interrupts/approval_card.d.ts.map +1 -0
  196. package/dist/ui/interrupts/approval_styles.d.ts +2 -0
  197. package/dist/ui/interrupts/approval_styles.d.ts.map +1 -0
  198. package/dist/ui/interrupts/confirmation_card.d.ts +51 -0
  199. package/dist/ui/interrupts/confirmation_card.d.ts.map +1 -0
  200. package/dist/ui/interrupts/confirmation_styles.d.ts +2 -0
  201. package/dist/ui/interrupts/confirmation_styles.d.ts.map +1 -0
  202. package/dist/ui/interrupts/pending_decision.d.ts +22 -0
  203. package/dist/ui/interrupts/pending_decision.d.ts.map +1 -0
  204. package/dist/ui/interrupts/question_card.d.ts +49 -0
  205. package/dist/ui/interrupts/question_card.d.ts.map +1 -0
  206. package/dist/ui/interrupts/question_styles.d.ts +2 -0
  207. package/dist/ui/interrupts/question_styles.d.ts.map +1 -0
  208. package/dist/ui/place/place.d.ts +17 -0
  209. package/dist/ui/place/place.d.ts.map +1 -0
  210. package/dist/ui/place/place_chip.d.ts +26 -0
  211. package/dist/ui/place/place_chip.d.ts.map +1 -0
  212. package/dist/ui/place/place_from_route.d.ts +9 -0
  213. package/dist/ui/place/place_from_route.d.ts.map +1 -0
  214. package/dist/ui/place/place_styles.d.ts +2 -0
  215. package/dist/ui/place/place_styles.d.ts.map +1 -0
  216. package/dist/ui/placement/clamp_launcher.d.ts +20 -0
  217. package/dist/ui/placement/clamp_launcher.d.ts.map +1 -0
  218. package/dist/ui/placement/clamp_panel.d.ts +13 -0
  219. package/dist/ui/placement/clamp_panel.d.ts.map +1 -0
  220. package/dist/ui/placement/collapse_styles.d.ts +2 -0
  221. package/dist/ui/placement/collapse_styles.d.ts.map +1 -0
  222. package/dist/ui/placement/dock_styles.d.ts +2 -0
  223. package/dist/ui/placement/dock_styles.d.ts.map +1 -0
  224. package/dist/ui/placement/embedded_styles.d.ts +2 -0
  225. package/dist/ui/placement/embedded_styles.d.ts.map +1 -0
  226. package/dist/ui/placement/launcher_drag.d.ts +49 -0
  227. package/dist/ui/placement/launcher_drag.d.ts.map +1 -0
  228. package/dist/ui/placement/launcher_placement.d.ts +77 -0
  229. package/dist/ui/placement/launcher_placement.d.ts.map +1 -0
  230. package/dist/ui/placement/launcher_styles.d.ts +2 -0
  231. package/dist/ui/placement/launcher_styles.d.ts.map +1 -0
  232. package/dist/ui/placement/page_styles.d.ts +2 -0
  233. package/dist/ui/placement/page_styles.d.ts.map +1 -0
  234. package/dist/ui/placement/panel_drag.d.ts +40 -0
  235. package/dist/ui/placement/panel_drag.d.ts.map +1 -0
  236. package/dist/ui/placement/panel_placement.d.ts +173 -0
  237. package/dist/ui/placement/panel_placement.d.ts.map +1 -0
  238. package/dist/ui/placement/place_widget.d.ts +31 -0
  239. package/dist/ui/placement/place_widget.d.ts.map +1 -0
  240. package/dist/ui/placement/preset_styles.d.ts +2 -0
  241. package/dist/ui/placement/preset_styles.d.ts.map +1 -0
  242. package/dist/ui/placement/resize_handle.d.ts +78 -0
  243. package/dist/ui/placement/resize_handle.d.ts.map +1 -0
  244. package/dist/ui/placement/resize_styles.d.ts +2 -0
  245. package/dist/ui/placement/resize_styles.d.ts.map +1 -0
  246. package/dist/ui/placement/sidebar_styles.d.ts +2 -0
  247. package/dist/ui/placement/sidebar_styles.d.ts.map +1 -0
  248. package/dist/ui/placement/small_viewport_styles.d.ts +2 -0
  249. package/dist/ui/placement/small_viewport_styles.d.ts.map +1 -0
  250. package/dist/ui/placement/surface_for.d.ts +93 -0
  251. package/dist/ui/placement/surface_for.d.ts.map +1 -0
  252. package/dist/ui/progress/prettify_tool_name.d.ts +11 -0
  253. package/dist/ui/progress/prettify_tool_name.d.ts.map +1 -0
  254. package/dist/ui/progress/run_announcer.d.ts +41 -0
  255. package/dist/ui/progress/run_announcer.d.ts.map +1 -0
  256. package/dist/ui/progress/run_notice.d.ts +21 -0
  257. package/dist/ui/progress/run_notice.d.ts.map +1 -0
  258. package/dist/ui/progress/run_notice_styles.d.ts +2 -0
  259. package/dist/ui/progress/run_notice_styles.d.ts.map +1 -0
  260. package/dist/ui/progress/subagent_panel.d.ts +101 -0
  261. package/dist/ui/progress/subagent_panel.d.ts.map +1 -0
  262. package/dist/ui/progress/subagent_progress.d.ts +57 -0
  263. package/dist/ui/progress/subagent_progress.d.ts.map +1 -0
  264. package/dist/ui/progress/subagent_update.d.ts +28 -0
  265. package/dist/ui/progress/subagent_update.d.ts.map +1 -0
  266. package/dist/ui/progress/thoughts_block.d.ts +57 -0
  267. package/dist/ui/progress/thoughts_block.d.ts.map +1 -0
  268. package/dist/ui/progress/thoughts_styles.d.ts +2 -0
  269. package/dist/ui/progress/thoughts_styles.d.ts.map +1 -0
  270. package/dist/ui/progress/tool_call_card.d.ts +167 -0
  271. package/dist/ui/progress/tool_call_card.d.ts.map +1 -0
  272. package/dist/ui/progress/tool_group_styles.d.ts +2 -0
  273. package/dist/ui/progress/tool_group_styles.d.ts.map +1 -0
  274. package/dist/ui/progress/tool_step_group.d.ts +50 -0
  275. package/dist/ui/progress/tool_step_group.d.ts.map +1 -0
  276. package/dist/ui/progress/tool_step_styles.d.ts +2 -0
  277. package/dist/ui/progress/tool_step_styles.d.ts.map +1 -0
  278. package/dist/ui/shell/adopt_styles.d.ts +28 -0
  279. package/dist/ui/shell/adopt_styles.d.ts.map +1 -0
  280. package/dist/ui/shell/build_header.d.ts +45 -0
  281. package/dist/ui/shell/build_header.d.ts.map +1 -0
  282. package/dist/ui/shell/build_launcher.d.ts +33 -0
  283. package/dist/ui/shell/build_launcher.d.ts.map +1 -0
  284. package/dist/ui/shell/collapse_glyph.d.ts +14 -0
  285. package/dist/ui/shell/collapse_glyph.d.ts.map +1 -0
  286. package/dist/ui/shell/frame_styles.d.ts +2 -0
  287. package/dist/ui/shell/frame_styles.d.ts.map +1 -0
  288. package/dist/ui/shell/glyph_slot.d.ts +7 -0
  289. package/dist/ui/shell/glyph_slot.d.ts.map +1 -0
  290. package/dist/ui/shell/header_button.d.ts +11 -0
  291. package/dist/ui/shell/header_button.d.ts.map +1 -0
  292. package/dist/ui/shell/icon_element.d.ts +12 -0
  293. package/dist/ui/shell/icon_element.d.ts.map +1 -0
  294. package/dist/ui/shell/is_unread_badge_enabled.d.ts +10 -0
  295. package/dist/ui/shell/is_unread_badge_enabled.d.ts.map +1 -0
  296. package/dist/ui/shell/read_launcher_icon_url.d.ts +8 -0
  297. package/dist/ui/shell/read_launcher_icon_url.d.ts.map +1 -0
  298. package/dist/ui/shell/theme_styles.d.ts +2 -0
  299. package/dist/ui/shell/theme_styles.d.ts.map +1 -0
  300. package/dist/ui/shell/token_styles.d.ts +2 -0
  301. package/dist/ui/shell/token_styles.d.ts.map +1 -0
  302. package/dist/ui/styles.d.ts +2 -0
  303. package/dist/ui/styles.d.ts.map +1 -0
  304. package/dist/ui/themes/classic_styles.d.ts +2 -0
  305. package/dist/ui/themes/classic_styles.d.ts.map +1 -0
  306. package/dist/ui/themes/classic_tokens.d.ts +2 -0
  307. package/dist/ui/themes/classic_tokens.d.ts.map +1 -0
  308. package/dist/ui/themes/code_tokens.d.ts +2 -0
  309. package/dist/ui/themes/code_tokens.d.ts.map +1 -0
  310. package/dist/ui/themes/ledger_styles.d.ts +2 -0
  311. package/dist/ui/themes/ledger_styles.d.ts.map +1 -0
  312. package/dist/ui/themes/ledger_tokens.d.ts +2 -0
  313. package/dist/ui/themes/ledger_tokens.d.ts.map +1 -0
  314. package/dist/ui/themes/modern_styles.d.ts +2 -0
  315. package/dist/ui/themes/modern_styles.d.ts.map +1 -0
  316. package/dist/ui/themes/quiet_styles.d.ts +2 -0
  317. package/dist/ui/themes/quiet_styles.d.ts.map +1 -0
  318. package/dist/ui/themes/scheme_styles.d.ts +2 -0
  319. package/dist/ui/themes/scheme_styles.d.ts.map +1 -0
  320. package/dist/ui/themes/soft_styles.d.ts +2 -0
  321. package/dist/ui/themes/soft_styles.d.ts.map +1 -0
  322. package/dist/ui/themes/soft_tokens.d.ts +2 -0
  323. package/dist/ui/themes/soft_tokens.d.ts.map +1 -0
  324. package/dist/ui/themes/theme_hosts.d.ts +15 -0
  325. package/dist/ui/themes/theme_hosts.d.ts.map +1 -0
  326. package/dist/ui/transcript/answer_actions.d.ts +50 -0
  327. package/dist/ui/transcript/answer_actions.d.ts.map +1 -0
  328. package/dist/ui/transcript/answer_stream.d.ts +56 -0
  329. package/dist/ui/transcript/answer_stream.d.ts.map +1 -0
  330. package/dist/ui/transcript/attachment_chip_styles.d.ts +2 -0
  331. package/dist/ui/transcript/attachment_chip_styles.d.ts.map +1 -0
  332. package/dist/ui/transcript/attachment_chips.d.ts +21 -0
  333. package/dist/ui/transcript/attachment_chips.d.ts.map +1 -0
  334. package/dist/ui/transcript/build_transcript.d.ts +21 -0
  335. package/dist/ui/transcript/build_transcript.d.ts.map +1 -0
  336. package/dist/ui/transcript/greeting_styles.d.ts +2 -0
  337. package/dist/ui/transcript/greeting_styles.d.ts.map +1 -0
  338. package/dist/ui/transcript/groups_tool_steps.d.ts +13 -0
  339. package/dist/ui/transcript/groups_tool_steps.d.ts.map +1 -0
  340. package/dist/ui/transcript/message_action_styles.d.ts +2 -0
  341. package/dist/ui/transcript/message_action_styles.d.ts.map +1 -0
  342. package/dist/ui/transcript/message_actions.d.ts +74 -0
  343. package/dist/ui/transcript/message_actions.d.ts.map +1 -0
  344. package/dist/ui/transcript/message_styles.d.ts +2 -0
  345. package/dist/ui/transcript/message_styles.d.ts.map +1 -0
  346. package/dist/ui/transcript/render_markdown.d.ts +40 -0
  347. package/dist/ui/transcript/render_markdown.d.ts.map +1 -0
  348. package/dist/ui/transcript/render_or_warn.d.ts +16 -0
  349. package/dist/ui/transcript/render_or_warn.d.ts.map +1 -0
  350. package/dist/ui/transcript/reveal_words.d.ts +8 -0
  351. package/dist/ui/transcript/reveal_words.d.ts.map +1 -0
  352. package/dist/ui/transcript/starter_chips.d.ts +21 -0
  353. package/dist/ui/transcript/starter_chips.d.ts.map +1 -0
  354. package/dist/ui/transcript/stick_to_bottom.d.ts +55 -0
  355. package/dist/ui/transcript/stick_to_bottom.d.ts.map +1 -0
  356. package/dist/ui/transcript/suggestion_chips.d.ts +29 -0
  357. package/dist/ui/transcript/suggestion_chips.d.ts.map +1 -0
  358. package/dist/ui/transcript/transcript.d.ts +196 -0
  359. package/dist/ui/transcript/transcript.d.ts.map +1 -0
  360. package/dist/ui/transcript/transcript_styles.d.ts +2 -0
  361. package/dist/ui/transcript/transcript_styles.d.ts.map +1 -0
  362. package/dist/ui/ui_strings.d.ts +352 -0
  363. package/dist/ui/ui_strings.d.ts.map +1 -0
  364. package/dist/version.d.ts +2 -0
  365. package/dist/version.d.ts.map +1 -0
  366. package/package.json +86 -3
  367. package/src/bundle.ts +2 -0
  368. package/src/chat.ts +2 -0
  369. package/src/constants.ts +650 -0
  370. package/src/core/activity_registration.ts +19 -0
  371. package/src/core/activity_registry.ts +133 -0
  372. package/src/core/activity_renderer.ts +19 -0
  373. package/src/core/ag_ui_chat.ts +3966 -0
  374. package/src/core/agui_client.ts +1028 -0
  375. package/src/core/attachment.ts +62 -0
  376. package/src/core/chat_registry.ts +53 -0
  377. package/src/core/client_seed.ts +27 -0
  378. package/src/core/conversation_store.ts +478 -0
  379. package/src/core/create_http_agent.ts +97 -0
  380. package/src/core/define_chat.ts +25 -0
  381. package/src/core/events/attachments_detail.ts +9 -0
  382. package/src/core/events/bar_height_detail.ts +5 -0
  383. package/src/core/events/custom_agent_detail.ts +7 -0
  384. package/src/core/events/dock_width_detail.ts +7 -0
  385. package/src/core/events/feedback_detail.ts +27 -0
  386. package/src/core/events/invalidate_detail.ts +15 -0
  387. package/src/core/events/maximize_detail.ts +4 -0
  388. package/src/core/events/run_finished_detail.ts +36 -0
  389. package/src/core/events/state_detail.ts +4 -0
  390. package/src/core/events/submit_detail.ts +8 -0
  391. package/src/core/events/thread_detail.ts +26 -0
  392. package/src/core/events/thread_title_detail.ts +7 -0
  393. package/src/core/events/toggle_detail.ts +4 -0
  394. package/src/core/events/tool_run.ts +10 -0
  395. package/src/core/events/unread_detail.ts +10 -0
  396. package/src/core/message_role.ts +4 -0
  397. package/src/core/read_flag.ts +13 -0
  398. package/src/core/read_json_attribute.ts +30 -0
  399. package/src/core/read_max_tool_rounds.ts +13 -0
  400. package/src/core/remote_conversation_store.ts +279 -0
  401. package/src/core/run_handlers.ts +524 -0
  402. package/src/core/run_index.ts +114 -0
  403. package/src/core/storage_scope.ts +291 -0
  404. package/src/core/tool_outcome.ts +39 -0
  405. package/src/core/transcribe_audio.ts +76 -0
  406. package/src/core/upload_attachment.ts +130 -0
  407. package/src/core/utils.ts +230 -0
  408. package/src/dom/animations.ts +341 -0
  409. package/src/dom/dom_driver.ts +91 -0
  410. package/src/dom/highlight_overlay.ts +204 -0
  411. package/src/dom/native_setter.ts +40 -0
  412. package/src/dom/ring_color.ts +206 -0
  413. package/src/dom/utils.ts +5 -0
  414. package/src/index.ts +220 -0
  415. package/src/skills/fill_template.ts +31 -0
  416. package/src/skills/parse_skills.ts +31 -0
  417. package/src/skills/skill.ts +32 -0
  418. package/src/skills/skill_catalog.ts +172 -0
  419. package/src/skills/skill_name_from.ts +19 -0
  420. package/src/tools/chat_surface_tools.ts +183 -0
  421. package/src/tools/client_tool_registry.ts +80 -0
  422. package/src/tools/is_destructive.ts +17 -0
  423. package/src/tools/is_navigates.ts +12 -0
  424. package/src/tools/page_action_tools.ts +123 -0
  425. package/src/tools/page_map.ts +26 -0
  426. package/src/tools/page_state.ts +57 -0
  427. package/src/tools/parse_tool_catalog.ts +41 -0
  428. package/src/tools/route_map.ts +132 -0
  429. package/src/tools/tool_catalog.ts +334 -0
  430. package/src/tools/tool_dispatch.ts +453 -0
  431. package/src/ui/charts/chart_block.ts +519 -0
  432. package/src/ui/charts/chart_spec_from.ts +125 -0
  433. package/src/ui/charts/chart_styles.ts +63 -0
  434. package/src/ui/charts/chart_tool.ts +72 -0
  435. package/src/ui/composer/attachment_styles.ts +71 -0
  436. package/src/ui/composer/attachment_tray.ts +295 -0
  437. package/src/ui/composer/auto_grow.ts +12 -0
  438. package/src/ui/composer/build_composer.ts +114 -0
  439. package/src/ui/composer/composer_attachments.ts +324 -0
  440. package/src/ui/composer/composer_styles.ts +177 -0
  441. package/src/ui/composer/composer_voice.ts +93 -0
  442. package/src/ui/composer/skill_styles.ts +120 -0
  443. package/src/ui/composer/skills_menu.ts +188 -0
  444. package/src/ui/composer/voice_input.ts +282 -0
  445. package/src/ui/excerpts/attach_copy_buttons.ts +73 -0
  446. package/src/ui/excerpts/copy_payload.ts +156 -0
  447. package/src/ui/excerpts/page_quote_offer.ts +203 -0
  448. package/src/ui/excerpts/place_offer.ts +24 -0
  449. package/src/ui/excerpts/quote_selection.ts +345 -0
  450. package/src/ui/excerpts/transcript_quote_offer.ts +175 -0
  451. package/src/ui/fill_ui_string.ts +41 -0
  452. package/src/ui/history/checkpoint_menu.ts +300 -0
  453. package/src/ui/history/conversation_history.ts +1169 -0
  454. package/src/ui/history/history_styles.ts +492 -0
  455. package/src/ui/history/relative_time.ts +50 -0
  456. package/src/ui/history/thread_drawer.ts +471 -0
  457. package/src/ui/history/utils.ts +11 -0
  458. package/src/ui/interrupts/approval_card.ts +202 -0
  459. package/src/ui/interrupts/approval_styles.ts +52 -0
  460. package/src/ui/interrupts/confirmation_card.ts +138 -0
  461. package/src/ui/interrupts/confirmation_styles.ts +114 -0
  462. package/src/ui/interrupts/pending_decision.ts +33 -0
  463. package/src/ui/interrupts/question_card.ts +213 -0
  464. package/src/ui/interrupts/question_styles.ts +73 -0
  465. package/src/ui/place/place.ts +16 -0
  466. package/src/ui/place/place_chip.ts +146 -0
  467. package/src/ui/place/place_from_route.ts +27 -0
  468. package/src/ui/place/place_styles.ts +108 -0
  469. package/src/ui/placement/clamp_launcher.ts +38 -0
  470. package/src/ui/placement/clamp_panel.ts +30 -0
  471. package/src/ui/placement/collapse_styles.ts +472 -0
  472. package/src/ui/placement/dock_styles.ts +116 -0
  473. package/src/ui/placement/embedded_styles.ts +14 -0
  474. package/src/ui/placement/launcher_drag.ts +206 -0
  475. package/src/ui/placement/launcher_placement.ts +133 -0
  476. package/src/ui/placement/launcher_styles.ts +189 -0
  477. package/src/ui/placement/page_styles.ts +47 -0
  478. package/src/ui/placement/panel_drag.ts +138 -0
  479. package/src/ui/placement/panel_placement.ts +1975 -0
  480. package/src/ui/placement/place_widget.ts +64 -0
  481. package/src/ui/placement/preset_styles.ts +49 -0
  482. package/src/ui/placement/resize_handle.ts +229 -0
  483. package/src/ui/placement/resize_styles.ts +201 -0
  484. package/src/ui/placement/sidebar_styles.ts +113 -0
  485. package/src/ui/placement/small_viewport_styles.ts +70 -0
  486. package/src/ui/placement/surface_for.ts +183 -0
  487. package/src/ui/progress/prettify_tool_name.ts +16 -0
  488. package/src/ui/progress/run_announcer.ts +67 -0
  489. package/src/ui/progress/run_notice.ts +61 -0
  490. package/src/ui/progress/run_notice_styles.ts +52 -0
  491. package/src/ui/progress/subagent_panel.ts +227 -0
  492. package/src/ui/progress/subagent_progress.ts +200 -0
  493. package/src/ui/progress/subagent_update.ts +89 -0
  494. package/src/ui/progress/thoughts_block.ts +165 -0
  495. package/src/ui/progress/thoughts_styles.ts +74 -0
  496. package/src/ui/progress/tool_call_card.ts +429 -0
  497. package/src/ui/progress/tool_group_styles.ts +313 -0
  498. package/src/ui/progress/tool_step_group.ts +317 -0
  499. package/src/ui/progress/tool_step_styles.ts +486 -0
  500. package/src/ui/shell/adopt_styles.ts +34 -0
  501. package/src/ui/shell/build_header.ts +121 -0
  502. package/src/ui/shell/build_launcher.ts +79 -0
  503. package/src/ui/shell/collapse_glyph.ts +42 -0
  504. package/src/ui/shell/frame_styles.ts +147 -0
  505. package/src/ui/shell/glyph_slot.ts +12 -0
  506. package/src/ui/shell/header_button.ts +22 -0
  507. package/src/ui/shell/icon_element.ts +33 -0
  508. package/src/ui/shell/is_unread_badge_enabled.ts +11 -0
  509. package/src/ui/shell/read_launcher_icon_url.ts +9 -0
  510. package/src/ui/shell/theme_styles.ts +11 -0
  511. package/src/ui/shell/token_styles.ts +480 -0
  512. package/src/ui/styles.ts +110 -0
  513. package/src/ui/themes/classic_styles.ts +32 -0
  514. package/src/ui/themes/classic_tokens.ts +51 -0
  515. package/src/ui/themes/code_tokens.ts +21 -0
  516. package/src/ui/themes/ledger_styles.ts +169 -0
  517. package/src/ui/themes/ledger_tokens.ts +33 -0
  518. package/src/ui/themes/modern_styles.ts +80 -0
  519. package/src/ui/themes/quiet_styles.ts +118 -0
  520. package/src/ui/themes/scheme_styles.ts +26 -0
  521. package/src/ui/themes/soft_styles.ts +149 -0
  522. package/src/ui/themes/soft_tokens.ts +29 -0
  523. package/src/ui/themes/theme_hosts.ts +14 -0
  524. package/src/ui/transcript/answer_actions.ts +165 -0
  525. package/src/ui/transcript/answer_stream.ts +123 -0
  526. package/src/ui/transcript/attachment_chip_styles.ts +116 -0
  527. package/src/ui/transcript/attachment_chips.ts +82 -0
  528. package/src/ui/transcript/build_transcript.ts +67 -0
  529. package/src/ui/transcript/greeting_styles.ts +171 -0
  530. package/src/ui/transcript/groups_tool_steps.ts +16 -0
  531. package/src/ui/transcript/message_action_styles.ts +155 -0
  532. package/src/ui/transcript/message_actions.ts +234 -0
  533. package/src/ui/transcript/message_styles.ts +262 -0
  534. package/src/ui/transcript/render_markdown.ts +181 -0
  535. package/src/ui/transcript/render_or_warn.ts +22 -0
  536. package/src/ui/transcript/reveal_words.ts +41 -0
  537. package/src/ui/transcript/starter_chips.ts +42 -0
  538. package/src/ui/transcript/stick_to_bottom.ts +126 -0
  539. package/src/ui/transcript/suggestion_chips.ts +73 -0
  540. package/src/ui/transcript/transcript.ts +555 -0
  541. package/src/ui/transcript/transcript_styles.ts +153 -0
  542. package/src/ui/ui_strings.ts +550 -0
  543. package/src/version.ts +1 -0
@@ -0,0 +1,69 @@
1
+ import type { SkillsMenu } from "../ui/composer/skills_menu.js";
2
+ import type { UiStrings } from "../ui/ui_strings.js";
3
+ import type { Skill } from "./skill.js";
4
+ /** What the skill catalog needs from the element that owns it. */
5
+ export interface SkillCatalogHost {
6
+ /** The custom element, whose `data-skills-url` names the backend catalog. */
7
+ readonly element: HTMLElement;
8
+ /** The chips row and the slash palette the merged catalog is shown in. */
9
+ readonly menu: SkillsMenu;
10
+ /** The composer a picked skill's prompt is written into. */
11
+ readonly input: HTMLTextAreaElement;
12
+ /** The hint above the composer, saying what a skill still needs. */
13
+ readonly hint: HTMLElement;
14
+ /** The resolved string table. */
15
+ readonly strings: () => UiStrings;
16
+ /** The host's `skillContext`, read at the moment of the pick. */
17
+ readonly context: () => Record<string, unknown>;
18
+ /** Read an opt-in flag attribute. */
19
+ readonly flag: (name: string) => boolean;
20
+ /** Parse a JSON-valued attribute, warning when it will not parse. */
21
+ readonly readJsonAttribute: (name: string) => unknown;
22
+ /** The fetch options every request the element makes carries. */
23
+ readonly fetchInit: (url: string) => RequestInit | undefined;
24
+ /** The element's public `sendMessage`. */
25
+ readonly send: (content: string) => void;
26
+ /** Send whatever the composer holds, as the Send button does. */
27
+ readonly submit: () => void;
28
+ /** Resize the composer to what it now holds. */
29
+ readonly autoGrow: () => void;
30
+ }
31
+ /**
32
+ * The element's skills: the three catalogs a skill can come from, merged into
33
+ * the chips and the slash palette, and what picking one does to the composer.
34
+ *
35
+ * Owned one-to-one by an `<ag-ui-chat>`, and holding no state outside the
36
+ * instance.
37
+ */
38
+ export declare class SkillCatalog {
39
+ #private;
40
+ constructor(host: SkillCatalogHost);
41
+ /** The replacement behind `AgUiChat.setSkills`, whose doc is the contract. */
42
+ setClientSkills(skills: readonly Skill[]): void;
43
+ /**
44
+ * Wire the skill surfaces: opt-in flags and the embedded catalog. The backend
45
+ * catalog is fetched from the element's startup, a microtask later, so it
46
+ * carries the host's transport configuration.
47
+ */
48
+ init(): void;
49
+ /** Fetch the backend skills catalog from `data-skills-url`, if set. */
50
+ fetch(): Promise<void>;
51
+ /**
52
+ * Act on a picked skill.
53
+ *
54
+ * A skill with no `prompt` is server-resolved: picking it sends the bare
55
+ * `/name` token for the agent to expand, so the wording never reaches the
56
+ * browser. Prefer that shape — a skill often states a project's internal
57
+ * workflow most plainly, and a catalog endpoint is a plain GET.
58
+ *
59
+ * A skill carrying a `prompt` has the client fill its `{placeholder}`s from
60
+ * the page instead, which is right for placeholders only the page can supply.
61
+ *
62
+ * Either way a pick sends; `sendImmediately: false` opts into pre-filling the
63
+ * composer instead.
64
+ */
65
+ apply(skill: Skill): void;
66
+ /** The title of the skill named `name` in the merged catalog, if it has one. */
67
+ title(name: string): string | undefined;
68
+ }
69
+ //# sourceMappingURL=skill_catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill_catalog.d.ts","sourceRoot":"","sources":["../../src/skills/skill_catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,SAAS,CAAC;IAClC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,qEAAqE;IACrE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACtD,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAC7D,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;;IAQvB,YAAY,IAAI,EAAE,gBAAgB,EAEjC;IAED,8EAA8E;IAC9E,eAAe,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI,CAG9C;IAED;;;;OAIG;IACH,IAAI,IAAI,IAAI,CAKX;IAED,uEAAuE;IACjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAY3B;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAkCxB;IASD,gFAAgF;IAChF,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEtC;CAwBF"}
@@ -0,0 +1,12 @@
1
+ import type { AgUiToolCall } from "../core/agui_client.js";
2
+ /**
3
+ * The skill name a `load_capability` call activated, or `null` when the call is
4
+ * something else.
5
+ *
6
+ * Every deferred capability loads through this one tool, so the id is a skill
7
+ * name only when the project wired agent skills; another project's capability
8
+ * id surfaces here too. Acceptable for a muted notice, and better than a
9
+ * parallel signal — the id is exactly what the model selected.
10
+ */
11
+ export declare function skillNameFrom(call: AgUiToolCall): string | null;
12
+ //# sourceMappingURL=skill_name_from.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill_name_from.d.ts","sourceRoot":"","sources":["../../src/skills/skill_name_from.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAM/D"}
@@ -0,0 +1,77 @@
1
+ import type { CollapseTarget } from "../ui/placement/surface_for.js";
2
+ import type { ClientTool } from "./client_tool_registry.js";
3
+ /** Every corner the panel can be sent to, in the order the schema states them. */
4
+ export declare const CHAT_CORNERS: readonly ["top-left", "top-right", "bottom-left", "bottom-right"];
5
+ /** A corner the panel can be sent to. */
6
+ export type ChatCorner = (typeof CHAT_CORNERS)[number];
7
+ /** What the agent is told about the surface it is speaking from. */
8
+ export interface ChatSurfaceReport {
9
+ /** The placement in force, or `null` when the host set none. */
10
+ readonly placement: string | null;
11
+ /**
12
+ * What the panel collapses to: `launcher`, `rail`, `header`, `bar` (the
13
+ * bottom bar it rises from), `none` (hidden, brought back by the host's own
14
+ * control), or `null` when it cannot collapse.
15
+ */
16
+ readonly collapseTo: CollapseTarget;
17
+ /** Whether the panel is currently collapsed. */
18
+ readonly collapsed: boolean;
19
+ /** Whether this placement has a collapsed state at all. */
20
+ readonly collapsible: boolean;
21
+ /**
22
+ * Whether the reader maximized the panel with its header control. Read-only:
23
+ * no tool changes it, and it is not kept across a reload.
24
+ */
25
+ readonly maximized: boolean;
26
+ /** Whether the panel can be moved, or the placement owns its position. */
27
+ readonly movable: boolean;
28
+ /**
29
+ * Whether this page allows the panel to be moved at all: true for every
30
+ * placement unless the host set `data-launcher-drag="false"`. It is the
31
+ * page's setting alone and does not vary with the placement or `collapse-to`;
32
+ * whether this panel moves is {@link ChatSurfaceReport.movable}. Kept apart because
33
+ * the two refusals need different sentences.
34
+ */
35
+ readonly draggable: boolean;
36
+ /** Whether the panel currently covers the whole viewport. */
37
+ readonly fullBleed: boolean;
38
+ /** The panel's box, in viewport coordinates. */
39
+ readonly box: {
40
+ readonly left: number;
41
+ readonly top: number;
42
+ readonly width: number;
43
+ readonly height: number;
44
+ };
45
+ /**
46
+ * The part of the viewport the panel may rest in, with an origin: a host can reserve
47
+ * edges for its own chrome, so it is not always the screen's.
48
+ */
49
+ readonly viewport: {
50
+ readonly left: number;
51
+ readonly top: number;
52
+ readonly width: number;
53
+ readonly height: number;
54
+ };
55
+ }
56
+ /** Whether a string names one of the four corners. */
57
+ export declare function isChatCorner(value: string): value is ChatCorner;
58
+ /** The part of the widget these tools drive: a port, since the element imports this module. */
59
+ export interface ChatSurface {
60
+ describeSurface(): ChatSurfaceReport;
61
+ /** `announce` writes a transcript notice with an undo; the tools always pass it. */
62
+ moveTo(corner: ChatCorner, options?: {
63
+ readonly announce?: boolean;
64
+ }): boolean;
65
+ setCollapsed(collapsed: boolean, options?: {
66
+ readonly announce?: boolean;
67
+ }): void;
68
+ }
69
+ /**
70
+ * Tools that let the agent move or collapse the panel it is speaking from.
71
+ *
72
+ * They report what happened, not what was asked: `move_chat` answers `moved: false`
73
+ * with the reason when the panel cannot move, rather than succeeding on a panel that
74
+ * did not budge.
75
+ */
76
+ export declare function createChatSurfaceTools(surface: ChatSurface): ClientTool[];
77
+ //# sourceMappingURL=chat_surface_tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat_surface_tools.d.ts","sourceRoot":"","sources":["../../src/tools/chat_surface_tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,kFAAkF;AAClF,eAAO,MAAM,YAAY,YAAI,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,CAAU,CAAC;AAE9F,yCAAyC;AACzC,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,GAAG,EAAE;QACZ,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;IACF;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAE/D;AAED,+FAA+F;AAC/F,MAAM,WAAW,WAAW;IAC1B,eAAe,IAAI,iBAAiB,CAAC;IACrC,oFAAoF;IACpF,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;IAC/E,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACnF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,EAAE,CAsGzE"}
@@ -0,0 +1,58 @@
1
+ import type { Tool } from "@ag-ui/core";
2
+ /** Draws one call from its arguments alone; the replay path takes this, never a `handler`. */
3
+ export type ChartRenderer = (args: Record<string, unknown>) => Node | null;
4
+ /**
5
+ * A tool the frontend declares and executes itself.
6
+ *
7
+ * `parameters` is a JSON Schema (and may carry the `x-destructive` extension).
8
+ * `handler` receives the parsed arguments and returns a result that is
9
+ * JSON-serialised into the AG-UI tool-result message sent back to the agent.
10
+ */
11
+ export interface ClientTool {
12
+ name: string;
13
+ description: string;
14
+ parameters: Record<string, unknown>;
15
+ /**
16
+ * Run the tool. `callId` identifies the call being executed, for a handler
17
+ * that renders into the transcript and needs to place itself against its own
18
+ * card; handlers that only act on the page ignore it.
19
+ */
20
+ handler: (args: Record<string, unknown>, callId?: string) => unknown | Promise<unknown>;
21
+ /**
22
+ * Draw this call, from its arguments alone.
23
+ *
24
+ * Optional, and the only half that is replayed: a restored transcript calls
25
+ * `render`, never {@link handler}, so a reload cannot re-run an effect.
26
+ *
27
+ * It runs again on every restore, so it must be:
28
+ *
29
+ * - a pure function of `args` — no host state, no network, no clock;
30
+ * - deterministic, so a reload reproduces what was there before;
31
+ * - free of effects outside the node it returns, which the component places.
32
+ *
33
+ * Return `null` for arguments that say nothing worth drawing.
34
+ */
35
+ render?: ChartRenderer;
36
+ }
37
+ /**
38
+ * Holds the frontend tools a host has declared on an `<ag-ui-chat>` element.
39
+ *
40
+ * Produces AG-UI {@link Tool} definitions for `RunAgentInput.tools` and looks
41
+ * up handlers when the agent calls a tool. Pure (no DOM); the element owns one
42
+ * instance.
43
+ */
44
+ export declare class ClientToolRegistry {
45
+ #private;
46
+ /**
47
+ * Register a tool, replacing any existing one with the same name.
48
+ *
49
+ * Replacing rather than throwing keeps a re-fired host ref or StrictMode double-invoke safe.
50
+ */
51
+ register(tool: ClientTool): void;
52
+ has(name: string): boolean;
53
+ /** Return a registered tool or throw. */
54
+ get(name: string): ClientTool;
55
+ /** AG-UI tool definitions for `RunAgentInput.tools`. */
56
+ tools(): Tool[];
57
+ }
58
+ //# sourceMappingURL=client_tool_registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client_tool_registry.d.ts","sourceRoot":"","sources":["../../src/tools/client_tool_registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,8FAA8F;AAC9F,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC;;;;OAIG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxF;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,kBAAkB;;IAG7B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE/B;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IAED,yCAAyC;IACzC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAM5B;IAED,wDAAwD;IACxD,KAAK,IAAI,IAAI,EAAE,CAMd;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Whether a tool's JSON-Schema `parameters` marks it destructive.
3
+ *
4
+ * Reads the `x-destructive` extension off a schema the **host** declared —
5
+ * a tool passed to `registerTool`, or one of the built-ins. A server-side
6
+ * tool's schema never reaches the browser: tool definitions travel
7
+ * client-to-server on `RunAgentInput.tools`, and the only channel coming the
8
+ * other way is the tool catalog (`data-tools-url`), which carries labels, not
9
+ * schemas. So a server tool marked destructive there is not gated here, and
10
+ * must be gated server-side instead — the confirmation this flag drives is a
11
+ * property of tools the browser itself executes.
12
+ */
13
+ export declare function isDestructive(parameters: Record<string, unknown>): boolean;
14
+ //# sourceMappingURL=is_destructive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is_destructive.d.ts","sourceRoot":"","sources":["../../src/tools/is_destructive.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAE1E"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Whether a tool's JSON-Schema `parameters` marks it as navigating.
3
+ *
4
+ * Reads the `x-navigates` extension. A navigating tool's handler reloads the
5
+ * page (MPA navigation), so the element checkpoints the call and resumes the
6
+ * run loop after the next page mounts, rather than awaiting a result inline.
7
+ */
8
+ export declare function isNavigates(parameters: Record<string, unknown>): boolean;
9
+ //# sourceMappingURL=is_navigates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is_navigates.d.ts","sourceRoot":"","sources":["../../src/tools/is_navigates.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAExE"}
@@ -0,0 +1,30 @@
1
+ import type { ClientTool } from "./client_tool_registry.js";
2
+ /**
3
+ * Resolve a page-action target string to a host-page element, or `null` when it
4
+ * matches nothing. The default treats the string as a CSS selector; a host with
5
+ * a page map overrides it to map its own element ids.
6
+ */
7
+ export type ResolvePageTarget = (target: string) => HTMLElement | null;
8
+ /** The built-in page-action tool tokens, opted in via `data-page-actions`. */
9
+ export declare const PAGE_ACTIONS: {
10
+ readonly SCROLL: "scroll";
11
+ readonly DRAG: "drag";
12
+ /** The widget's own position: see `createChatSurfaceTools`. */
13
+ readonly CHAT: "chat";
14
+ };
15
+ /**
16
+ * The opt-in page-action tools selected by `enabled` (a set of
17
+ * {@link PAGE_ACTIONS} tokens), bound to a {@link ResolvePageTarget}.
18
+ *
19
+ * - `scroll_to` — scroll a target (`top` / `bottom` / a resolver target) into
20
+ * view. Benign; no confirmation.
21
+ * - `drag_and_drop` — drag one element onto another, firing the standard HTML5
22
+ * drag sequence so the host page's own drop handler reacts. Deliberately not
23
+ * stamped destructive: a drag rearranges transient state, and the durable
24
+ * change happens at the page's explicit commit. A host whose page persists on
25
+ * drop must gate it with the element's `confirmPredicate`.
26
+ *
27
+ * Both report a model-readable error when a target resolves to nothing.
28
+ */
29
+ export declare function createPageActionTools(enabled: ReadonlySet<string>, resolveTarget: ResolvePageTarget): ClientTool[];
30
+ //# sourceMappingURL=page_action_tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page_action_tools.d.ts","sourceRoot":"","sources":["../../src/tools/page_action_tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC;AAEvE,8EAA8E;AAC9E,eAAO,MAAM,YAAY;aACvB,MAAM,EAAE,QAAQ;aAChB,IAAI,EAAE,MAAM;IACZ,+DAA+D;aAC/D,IAAI,EAAE,MAAM;CACJ,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAC5B,aAAa,EAAE,iBAAiB,GAC/B,UAAU,EAAE,CASd"}
@@ -0,0 +1,16 @@
1
+ import type { Context } from "@ag-ui/core";
2
+ /**
3
+ * A compact snapshot of the current page's actionable surface (field
4
+ * names/types/labels, button labels+handles — not values). Host-defined shape;
5
+ * kept small because it rides in every `RunAgentInput.context`.
6
+ */
7
+ export type PageMap = Record<string, unknown>;
8
+ /**
9
+ * Build the per-run context entry for the page map.
10
+ *
11
+ * Returns a single `page_map` context item when auto-injection is on and a
12
+ * provider is set, else nothing. Recomputed each run so it reflects the page
13
+ * the agent is currently looking at.
14
+ */
15
+ export declare function createPageMapContext(getPageMap: (() => PageMap) | null, autoInject: boolean): Context[];
16
+ //# sourceMappingURL=page_map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page_map.d.ts","sourceRoot":"","sources":["../../src/tools/page_map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,EAClC,UAAU,EAAE,OAAO,GAClB,OAAO,EAAE,CAKX"}
@@ -0,0 +1,27 @@
1
+ import type { ClientTool } from "./client_tool_registry.js";
2
+ /**
3
+ * A binding from a named piece of host page state to agent tools.
4
+ *
5
+ * Ergonomic sugar over `registerTool` for SPA state (Redux/Zustand/signals):
6
+ * generates a read tool and, when `write` is given, a destructive set tool.
7
+ *
8
+ * Not AG-UI shared state. `STATE_SNAPSHOT` / `STATE_DELTA` are protocol events
9
+ * carrying state between agent and client; these are ordinary client tools the
10
+ * agent calls like any other.
11
+ */
12
+ export interface PageState {
13
+ /** Base name; tools become `read_<name>` and `set_<name>`. */
14
+ readonly name: string;
15
+ /** Returns the current state value. */
16
+ readonly read: () => unknown;
17
+ /** Mutates the state from the agent-supplied args. Omit for read-only. */
18
+ readonly write?: (args: Record<string, unknown>) => unknown;
19
+ /** JSON-Schema for the set tool's args. Defaults to an open object. */
20
+ readonly schema?: Record<string, unknown>;
21
+ }
22
+ /**
23
+ * Build the tools for a {@link PageState}: always a `read_<name>` (read-only)
24
+ * tool, plus a `set_<name>` (`x-destructive`) tool when `write` is supplied.
25
+ */
26
+ export declare function createPageStateTools(binding: PageState): ClientTool[];
27
+ //# sourceMappingURL=page_state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page_state.d.ts","sourceRoot":"","sources":["../../src/tools/page_state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IAC5D,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,GAAG,UAAU,EAAE,CA4BrE"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * One entry in the server-tool catalog served by django-ag-ui's `tools/`
3
+ * endpoint and fetched via the `data-tools-url` attribute.
4
+ */
5
+ export interface ToolCatalogEntry {
6
+ /** The tool's wire name (matches the name in `TOOL_CALL_START`). */
7
+ readonly name: string;
8
+ /** A friendly card label for the tool. */
9
+ readonly summary: string;
10
+ /** Optional longer blurb (e.g. for a tooltip). */
11
+ readonly description?: string;
12
+ }
13
+ /**
14
+ * Parse a fetched tool catalog into a `name → entry` map, skipping any entry
15
+ * that isn't a `{ name: string, summary: string }` object. Tolerant by design:
16
+ * a malformed payload yields an empty map rather than throwing, and an
17
+ * optional field of the wrong type costs that field rather than the entry.
18
+ * Whole entries are kept, so a consumer can reach `description`.
19
+ */
20
+ export declare function parseToolCatalog(data: unknown): Record<string, ToolCatalogEntry>;
21
+ //# sourceMappingURL=parse_tool_catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_tool_catalog.d.ts","sourceRoot":"","sources":["../../src/tools/parse_tool_catalog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAoBhF"}
@@ -0,0 +1,37 @@
1
+ import type { ClientTool } from "./client_tool_registry.js";
2
+ /** A single navigable route the host declares for the agent. */
3
+ export interface Route {
4
+ /** Stable id the agent uses with `navigate_to_route`. */
5
+ readonly id: string;
6
+ /**
7
+ * The URL path to navigate to. May contain `:name` placeholders for dynamic
8
+ * segments (e.g. `/admin/shop/book/:pk/change/`), which the agent fills via
9
+ * `navigate_to_route`'s `params` argument.
10
+ */
11
+ readonly path: string;
12
+ /** Human label shown to the agent. */
13
+ readonly title?: string;
14
+ /** Optional grouping (e.g. an app or section). */
15
+ readonly group?: string;
16
+ /** Optional longer description of when to use the route. */
17
+ readonly description?: string;
18
+ }
19
+ /** The host-declared catalog of navigable routes. */
20
+ export type RouteMap = readonly Route[];
21
+ /** A route enriched with its derived dynamic-segment parameter names. */
22
+ export interface RouteWithParams extends Route {
23
+ /** Names of the `:name` placeholders in {@link Route.path} (may be empty). */
24
+ readonly pathParams: readonly string[];
25
+ }
26
+ /**
27
+ * The built-in `route.*` tools, bound to live getters so a host can set
28
+ * `routeMap` / `navigate` before or after mount.
29
+ *
30
+ * `list_routes` is read-only and advertises each route's `pathParams` so the
31
+ * model knows what to supply. `navigate_to_route` fills those params, appends
32
+ * the rest as a query string, and is stamped `x-navigates` so an MPA reload
33
+ * checkpoints and resumes; with a host `navigate(path)` callback (an SPA) it
34
+ * routes client-side and the run loop continues instead.
35
+ */
36
+ export declare function createRouteTools(getRouteMap: () => RouteMap, getNavigate: () => ((path: string) => void) | null): ClientTool[];
37
+ //# sourceMappingURL=route_map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route_map.d.ts","sourceRoot":"","sources":["../../src/tools/route_map.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,gEAAgE;AAChE,MAAM,WAAW,KAAK;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qDAAqD;AACrD,MAAM,MAAM,QAAQ,GAAG,SAAS,KAAK,EAAE,CAAC;AAExC,yEAAyE;AACzE,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AA6CD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,QAAQ,EAC3B,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GACjD,UAAU,EAAE,CA6Cd"}
@@ -0,0 +1,86 @@
1
+ import type { Tool } from "@ag-ui/core";
2
+ import type { PendingDecision } from "../ui/interrupts/pending_decision.js";
3
+ import { type QuestionRenderer } from "../ui/interrupts/question_card.js";
4
+ import type { UiStrings } from "../ui/ui_strings.js";
5
+ import { type ChatSurface } from "./chat_surface_tools.js";
6
+ import { type ClientTool } from "./client_tool_registry.js";
7
+ import type { PageMap } from "./page_map.js";
8
+ import { type PageState } from "./page_state.js";
9
+ import { type RouteMap } from "./route_map.js";
10
+ /** What the tool catalog needs from the element that owns it. */
11
+ export interface ToolCatalogHost {
12
+ /** The custom element: its tool attributes, and the surface the chat tools drive. */
13
+ readonly element: HTMLElement & ChatSurface;
14
+ /** The element's `routeMap`, read per call. */
15
+ readonly routeMap: () => RouteMap;
16
+ /** The element's `navigate`, read per call. */
17
+ readonly navigate: () => ((path: string) => void) | null;
18
+ /** The element's `getPageMap`, read per call. */
19
+ readonly getPageMap: () => (() => PageMap) | null;
20
+ /** Whether the user withheld the place, which withholds the page with it. */
21
+ readonly pageWithheld: () => boolean;
22
+ /** The element's `resolvePageTarget`, called per target. */
23
+ readonly resolvePageTarget: (target: string) => HTMLElement | null;
24
+ /** The element's `getTools`, which a host may have replaced. */
25
+ readonly getTools: () => Tool[];
26
+ /** The element's `askUser` flag. */
27
+ readonly askUser: () => boolean;
28
+ /** The element's `askUserRenderer`. */
29
+ readonly askUserRenderer: () => QuestionRenderer | null;
30
+ /** The decision a run is suspended on, which a Stop abandons. */
31
+ readonly decision: PendingDecision;
32
+ /**
33
+ * Mark the card of ``callId`` as asking the user, or no longer. The call id is
34
+ * absent for a handler run outside a tool call, which has no card to mark.
35
+ */
36
+ readonly setAsking: (callId: string | undefined, asking: boolean) => void;
37
+ /** The current answer group, opening one if none is open. */
38
+ readonly ensureGroup: () => HTMLDivElement;
39
+ /** The resolved string table. */
40
+ readonly strings: () => UiStrings;
41
+ /** Remove the pending indicator if shown. */
42
+ readonly hidePending: () => void;
43
+ /** Update the empty state after the transcript changed. */
44
+ readonly updateEmptyState: () => void;
45
+ /** Keep the transcript at its foot, if the reader is there. */
46
+ readonly follow: () => void;
47
+ /** The fetch options every request the element makes carries. */
48
+ readonly fetchInit: (url: string) => RequestInit | undefined;
49
+ }
50
+ /**
51
+ * The frontend tools the agent is offered: the host's registered tools, the
52
+ * built-in ones the element's configuration switches on, what the current round
53
+ * advertised, and the server's catalog of labels for the tools it runs itself.
54
+ *
55
+ * Owned one-to-one by an `<ag-ui-chat>`, and holding no state outside the
56
+ * instance.
57
+ */
58
+ export declare class ToolCatalog {
59
+ #private;
60
+ constructor(host: ToolCatalogHost);
61
+ /** The registration behind `AgUiChat.registerTool`, whose doc is the contract. */
62
+ register(tool: ClientTool): void;
63
+ /** The binding behind `AgUiChat.registerPageState`, whose doc is the contract. */
64
+ registerPageState(binding: PageState): void;
65
+ /** Whether a tool of this name is registered, built-ins aside. */
66
+ has(name: string): boolean;
67
+ /** The catalog behind the default `AgUiChat.getTools`, whose doc is the contract. */
68
+ defaultTools(): Tool[];
69
+ /**
70
+ * The catalog for the round about to start, remembering what it offered.
71
+ *
72
+ * Every path to a frontend tool goes through here first — the client asks
73
+ * for `RunAgentInput.tools` at the top of each round — so this is the one
74
+ * place that can know what the agent was actually told about.
75
+ */
76
+ advertise(): Tool[];
77
+ /** Whether the current round offered a tool of this name. */
78
+ wasAdvertised(name: string): boolean;
79
+ /** Resolve a tool by name: built-in tools first, then the registry. */
80
+ resolve(name: string): ClientTool | null;
81
+ /** The server catalog's label for a tool, if it sent one. */
82
+ summary(name: string): string | undefined;
83
+ /** Fetch the server tool-label catalog from `data-tools-url`, if set. */
84
+ fetchCatalog(): Promise<void>;
85
+ }
86
+ //# sourceMappingURL=tool_catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool_catalog.d.ts","sourceRoot":"","sources":["../../src/tools/tool_catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAA0B,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEjE,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAAC;IAC5C,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAC;IAClC,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACzD,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC;IAClD,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC;IACrC,4DAA4D;IAC5D,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC;IACnE,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;IAChC,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC;IAChC,uCAAuC;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACxD,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1E,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,EAAE,MAAM,cAAc,CAAC;IAC3C,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,SAAS,CAAC;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IACtC,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;CAC9D;AAED;;;;;;;GAOG;AACH,qBAAa,WAAW;;IAetB,YAAY,IAAI,EAAE,eAAe,EAEhC;IAED,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE/B;IAED,kFAAkF;IAClF,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAI1C;IAED,kEAAkE;IAClE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IAED,qFAAqF;IACrF,YAAY,IAAI,IAAI,EAAE,CASrB;IAED;;;;;;OAMG;IACH,SAAS,IAAI,IAAI,EAAE,CAIlB;IAED,6DAA6D;IAC7D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnC;IAED,uEAAuE;IACvE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAMvC;IAED,6DAA6D;IAC7D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExC;IAED,yEAAyE;IACnE,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAWlC;CA8KF"}
@@ -0,0 +1,82 @@
1
+ import type { Context, Interrupt } from "@ag-ui/core";
2
+ import type { AgUiToolCall, InterruptResponse, ToolExecution } from "../core/agui_client.js";
3
+ import type { ClientConversationStore } from "../core/conversation_store.js";
4
+ import { type ApprovalRenderer } from "../ui/interrupts/approval_card.js";
5
+ import type { PendingDecision } from "../ui/interrupts/pending_decision.js";
6
+ import type { Transcript } from "../ui/transcript/transcript.js";
7
+ import type { UiStrings } from "../ui/ui_strings.js";
8
+ import type { ToolCatalog } from "./tool_catalog.js";
9
+ /** What tool dispatch needs from the element that owns it. */
10
+ export interface ToolDispatchHost {
11
+ /** The custom element, which a host's predicate and renderer are called on. */
12
+ readonly element: HTMLElement;
13
+ /** The transcript the cards and prompts are drawn in. */
14
+ readonly transcript: Transcript;
15
+ /** The tools this round advertised, and their implementations. */
16
+ readonly tools: ToolCatalog;
17
+ /** The decision a run is suspended on, which a Stop abandons. */
18
+ readonly decision: PendingDecision;
19
+ /** The resolved string table. */
20
+ readonly strings: () => UiStrings;
21
+ /** Say one short thing to a screen reader. */
22
+ readonly announce: (message: string) => void;
23
+ /** The element's `autoConfirm`. */
24
+ readonly autoConfirm: () => boolean;
25
+ /** The element's `confirmPredicate`. */
26
+ readonly confirmPredicate: () => ((toolName: string, args: Record<string, unknown>) => boolean | Promise<boolean>) | null;
27
+ /** The element's `navigate`. */
28
+ readonly navigate: () => ((path: string) => void) | null;
29
+ /** The element's `approveWithEdits`. */
30
+ readonly approveWithEdits: () => boolean;
31
+ /** The element's `approvalRenderer`. */
32
+ readonly approvalRenderer: () => ApprovalRenderer | null;
33
+ /** The element's `getContext`, which a host may have replaced. */
34
+ readonly getContext: () => Context[];
35
+ /** The element's `conversationStore`, read per use. */
36
+ readonly conversationStore: () => ClientConversationStore;
37
+ /** The active thread's id. */
38
+ readonly threadId: () => string;
39
+ /** An identity replaced on every handover to another principal; only compared. */
40
+ readonly tenure: () => object;
41
+ /** An identity replaced whenever the transcript is cleared for another conversation; only compared. */
42
+ readonly conversation: () => object;
43
+ }
44
+ /**
45
+ * Running the frontend tool calls a round produced, and answering the server's
46
+ * interrupts: the page each round's context described, the confirmation rules,
47
+ * and the tools the user waived confirmation for.
48
+ *
49
+ * Owned one-to-one by an `<ag-ui-chat>`, and holding no state outside the
50
+ * instance.
51
+ */
52
+ export declare class ToolDispatch {
53
+ #private;
54
+ constructor(host: ToolDispatchHost);
55
+ /** Forget every waiver: a logout is not a remount, so the next principal must not inherit one. */
56
+ forgetWaivers(): void;
57
+ /** Build a round's context, recording its page; the client calls this at the top of every tool round. */
58
+ buildContext(): Context[];
59
+ /**
60
+ * Execute one frontend tool call the round produced, against its own card:
61
+ * refused when the page moved under the round, asked about when a rule gates
62
+ * it, and settled with what the handler returned or threw.
63
+ *
64
+ * Every await is a place the run can end, so each is followed by a check. A handover
65
+ * leaves the call no transcript or store, so it draws and writes nothing; any other
66
+ * reset (New chat, a drawer switch, `reload()`) still settles it but shows no pending
67
+ * indicator in the new conversation.
68
+ */
69
+ execute(call: AgUiToolCall): Promise<ToolExecution | null>;
70
+ /**
71
+ * Render an approval card per server-side-tool interrupt and collect the
72
+ * user's decisions (approve → run it, deny → decline it).
73
+ *
74
+ * One card per gated call, in that call's own tool card, all at once: the prompt is
75
+ * identical for every call of a tool, so position tells them apart, and serial asking
76
+ * hides that more are coming. Each is marked `deferred` for the wait, else it reads
77
+ * "running...". A Stop aborts the shared decision, denying every open card. An approved
78
+ * tool runs on the resume run into the same card; a denied one settles here.
79
+ */
80
+ resolveInterrupts(interrupts: readonly Interrupt[]): Promise<Record<string, InterruptResponse>>;
81
+ }
82
+ //# sourceMappingURL=tool_dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool_dispatch.d.ts","sourceRoot":"","sources":["../../src/tools/tool_dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG7E,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,mCAAmC,CAAC;AAK3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,SAAS,CAAC;IAClC,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,mCAAmC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC;IACpC,wCAAwC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MACvB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GACjF,IAAI,CAAC;IACT,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACzD,wCAAwC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,OAAO,CAAC;IACzC,wCAAwC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;IACzD,kEAAkE;IAClE,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,EAAE,CAAC;IACrC,uDAAuD;IACvD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;IAC1D,8BAA8B;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC;IAChC,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;IAC9B,uGAAuG;IACvG,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY;;IAOvB,YAAY,IAAI,EAAE,gBAAgB,EAEjC;IAED,kGAAkG;IAClG,aAAa,IAAI,IAAI,CAEpB;IAED,yGAAyG;IACzG,YAAY,IAAI,OAAO,EAAE,CAGxB;IAED;;;;;;;;;OASG;IACG,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAwJ/D;IAED;;;;;;;;;OASG;IACG,iBAAiB,CACrB,UAAU,EAAE,SAAS,SAAS,EAAE,GAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAmF5C;CAgFF"}