@artooi/agents-web-components 0.0.0-stage → 0.1.1

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 +77 -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,173 @@
1
+ import type { ChatCorner, ChatSurfaceReport } from "../../tools/chat_surface_tools.js";
2
+ import type { UiStrings } from "../ui_strings.js";
3
+ /**
4
+ * What the placement needs from the element that owns it.
5
+ *
6
+ * Everything the element keeps private is reached through a thunk here, the
7
+ * same shape `PanelDragOptions` and `ResizeOptions` already give their hosts:
8
+ * read per call, so a value the element replaces later (the resolved string
9
+ * table, the connected flag) is never captured stale.
10
+ */
11
+ export interface PlacementHost {
12
+ /** The custom element itself: its inline style, attributes and box. */
13
+ readonly element: HTMLElement;
14
+ /** The collapsed widget's button, which a drag moves and a resize carries. */
15
+ readonly launcher: HTMLButtonElement;
16
+ /** The shadow root, searched for a header mid-drag. */
17
+ readonly root: ShadowRoot;
18
+ /** Whether the element is in the document. */
19
+ readonly connected: () => boolean;
20
+ /** Whether the widget is collapsed. */
21
+ readonly collapsed: () => boolean;
22
+ /** Whether the current placement has a collapsed state at all. */
23
+ readonly collapsible: () => boolean;
24
+ /** The resolved string table. */
25
+ readonly strings: () => UiStrings;
26
+ /** Read a layout preference, durable store first. */
27
+ readonly readPreference: (base: string) => string | null;
28
+ /** Persist a layout preference to both stores. */
29
+ readonly writePreference: (base: string, value: string) => void;
30
+ /** Drop a layout preference from both stores. */
31
+ readonly clearPreference: (base: string) => void;
32
+ /** Tell the reader the agent moved their window, with the way back. */
33
+ readonly announceSurfaceChange: (text: string, undo: () => void) => void;
34
+ }
35
+ /**
36
+ * Where the panel and its launcher sit, and how big the panel is: the dragged
37
+ * launcher, the dragged header, the eight resize grips, the corner the panel
38
+ * opens from, and the persisted record of all of it.
39
+ *
40
+ * Owned one-to-one by an `<ag-ui-chat>`, and holding no state outside the
41
+ * instance, so two elements on a page place themselves independently.
42
+ */
43
+ export declare class PanelPlacement {
44
+ #private;
45
+ constructor(host: PlacementHost);
46
+ /**
47
+ * Make the header a title bar. Only while open: a collapsed widget has no
48
+ * header on screen, and the launcher is the handle then.
49
+ */
50
+ enablePanelDrag(header: HTMLElement): void;
51
+ /**
52
+ * Let the launcher be dragged. Only while collapsed: the launcher is scaled
53
+ * away and unclickable behind the open panel, so a drag there would move
54
+ * something nobody can see.
55
+ */
56
+ enableLauncherDrag(signal: AbortSignal): void;
57
+ /** Build the eight resize grips into `chat`, with one of them in the tab order. */
58
+ mountResizeGrips(chat: HTMLElement): void;
59
+ /** Restore the current placement's dragged size before the panel paints. */
60
+ restoreSize(): void;
61
+ /**
62
+ * Swap the dragged size for the one stored under the placement just set, so a
63
+ * floating drag never sizes a sidebar. Between two corner placements a stated
64
+ * spot moves with the size, as on resetSize, so the launcher keeps its corner.
65
+ * Before connect the namespace is unclaimed, and connect restores the size.
66
+ */
67
+ switchPlacement(previous: string | null): void;
68
+ /**
69
+ * Drop the current placement's dragged size and its stored copy, so the
70
+ * placement's own size and the host's tokens apply again; other placements
71
+ * keep theirs. For a host entering a sized state of its
72
+ * own, which a user's drag would otherwise outrank.
73
+ *
74
+ * A docked panel the user dragged off its dock goes back to it as well, and
75
+ * the stored spot with it: there the position is part of the same resting
76
+ * state the host is asking for. A corner panel keeps a dragged position, as
77
+ * it always has.
78
+ */
79
+ resetSize(): void;
80
+ /**
81
+ * Stand the larger panel back on the screen once the element has stamped the
82
+ * maximized state, whose rules size the box outright, over any dragged size
83
+ * still held inline. The stored size and every stored spot are kept: restore
84
+ * puts them back.
85
+ */
86
+ enterMaximized(): void;
87
+ /** Put the stored size back once the element has left the maximized state. */
88
+ leaveMaximized(): void;
89
+ /**
90
+ * A zero-sized box carrying the host's viewport insets as padding, so they
91
+ * can be read back as used pixel lengths. See the `.viewport-probe` rule for
92
+ * why a custom property cannot be read directly.
93
+ */
94
+ readonly probe: HTMLDivElement;
95
+ /**
96
+ * Whether a pointer or key gesture is currently placing the widget.
97
+ *
98
+ * Read from the stamp the drag helpers already set, rather than tracked
99
+ * separately: one source of truth, and it clears on `pointercancel` as well
100
+ * as `pointerup`, which is the end a touch gesture usually gets. The one
101
+ * gesture that stamps nothing is an arrow key on a grip, which applies a box
102
+ * per key and states it only when the key comes up, hence #resizing.
103
+ */
104
+ dragging(): boolean;
105
+ /** The report behind `AgUiChat.describeSurface`, whose doc is the contract. */
106
+ describeSurface(): ChatSurfaceReport;
107
+ /** The move behind `AgUiChat.moveTo`, whose doc is the contract. */
108
+ moveTo(corner: ChatCorner, options?: {
109
+ readonly announce?: boolean;
110
+ }): boolean;
111
+ /** Stamp the measured anchor so the shadow CSS can place the grip. */
112
+ syncResizeAnchor(): void;
113
+ /**
114
+ * Drop any dragged size the new placement has taken ownership of.
115
+ *
116
+ * Without this a size survives the switch as an inline property and silently
117
+ * overrides the placement it moved to — the panel keeps a floating height
118
+ * while docked, and reads as a component that cannot do full height.
119
+ */
120
+ releaseOwnedAxes(): void;
121
+ /**
122
+ * Write where a docked panel stands, and return the bar's height.
123
+ *
124
+ * Under the bar it is the strip's border box, which is 0 whenever the strip
125
+ * is not drawn (a phone with the panel open, where the panel is the screen).
126
+ * Under a host anchor it is the anchor's top, or its bottom on the side below,
127
+ * and its right, measured against the
128
+ * layout viewport a fixed element is placed in; an anchor of null leaves the
129
+ * panel in its placement's own corner. Every other surface carries neither
130
+ * property, so nothing stale is left behind by a live switch.
131
+ */
132
+ syncDock(bar: HTMLElement, anchor: Element | null): number;
133
+ /**
134
+ * Publish the measured viewport height so the stylesheet can size a
135
+ * full-bleed panel to what the user can see.
136
+ *
137
+ * No CSS length carries this. An on-screen keyboard has no effect on any
138
+ * viewport-percentage unit, so a panel sized from `100dvh` puts its composer
139
+ * behind the keyboard being typed into. Written inline, and read through a
140
+ * token the host's own `--ag-ui-viewport-height` still outranks.
141
+ *
142
+ * Removed rather than frozen when the two viewports agree, so a desktop that
143
+ * never diverges carries no inline override at all and the declared fallback
144
+ * stays in charge.
145
+ */
146
+ publishVisualViewport(): void;
147
+ /**
148
+ * Re-apply the dragged position against the current viewport: on connect,
149
+ * whenever the window resizes, and before an expand. The viewport that
150
+ * stored a position may since have shrunk, and a launcher past the edge is
151
+ * unreachable -- it is the only way back to a collapsed conversation.
152
+ *
153
+ * The one gate on whether a stored position is this element's to honour: the
154
+ * gestures check their own before they ever reach the placing below.
155
+ */
156
+ restoreLauncherPosition(): void;
157
+ /**
158
+ * Re-apply it for a change in the panel's own layout, which needs no window or
159
+ * reopen to happen: a line typed in the composer is one. A position waiting to
160
+ * be handed back under data-launcher-drag="false" waits on, because a panel that leaves for the
161
+ * host's corner as the reader starts typing is a jump with no cause they can see.
162
+ * It waits no longer than the panel stays on the screen: a host's size can stand
163
+ * it off an edge, where its header is out of reach until something else happens.
164
+ */
165
+ settleLauncherPosition(): void;
166
+ /**
167
+ * Give the position back to the host when the new placement owns it, the way
168
+ * releaseOwnedAxes gives back a size. Without this a dragged inset survives
169
+ * the switch inline and pins a sidebar to wherever the floating launcher was.
170
+ */
171
+ releaseLauncherPosition(): void;
172
+ }
173
+ //# sourceMappingURL=panel_placement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel_placement.d.ts","sourceRoot":"","sources":["../../../src/ui/placement/panel_placement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAwKlD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC;IAClC,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC;IACpC,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,SAAS,CAAC;IAClC,qDAAqD;IACrD,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACzD,kDAAkD;IAClD,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,iDAAiD;IACjD,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,uEAAuE;IACvE,QAAQ,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CAC1E;AAED;;;;;;;GAOG;AACH,qBAAa,cAAc;;IAGzB,YAAY,IAAI,EAAE,aAAa,EAE9B;IAED;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAQzC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAS5C;IAED,mFAAmF;IACnF,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CA6BxC;IAED,4EAA4E;IAC5E,WAAW,IAAI,IAAI,CAKlB;IAED;;;;;OAKG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAY7C;IAED;;;;;;;;;;OAUG;IACH,SAAS,IAAI,IAAI,CAoBhB;IAED;;;;;OAKG;IACH,cAAc,IAAI,IAAI,CAErB;IAED,8EAA8E;IAC9E,cAAc,IAAI,IAAI,CAGrB;IAqDD;;;;OAIG;IACH,QAAQ,CAAC,KAAK,iBAAiC;IA6I/C;;;;;;;;OAQG;IACH,QAAQ,IAAI,OAAO,CAOlB;IAED,+EAA+E;IAC/E,eAAe,IAAI,iBAAiB,CA4BnC;IAED,oEAAoE;IACpE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAmDjF;IAuJD,sEAAsE;IACtE,gBAAgB,IAAI,IAAI,CAavB;IA4ED;;;;;;OAMG;IACH,gBAAgB,IAAI,IAAI,CAQvB;IAiBD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,CA6CzD;IAqRD;;;;;;;;;;;;OAYG;IACH,qBAAqB,IAAI,IAAI,CAgD5B;IAiQD;;;;;;;;OAQG;IACH,uBAAuB,IAAI,IAAI,CAG9B;IAED;;;;;;;OAOG;IACH,sBAAsB,IAAI,IAAI,CAG7B;IAgKD;;;;OAIG;IACH,uBAAuB,IAAI,IAAI,CAY9B;CAiMF"}
@@ -0,0 +1,31 @@
1
+ import type { ExpandCorner, Extent, LauncherBox } from "./launcher_placement.js";
2
+ import type { PanelRect } from "./resize_handle.js";
3
+ /** Where to put the host box, and where the launcher sits inside it. */
4
+ export interface WidgetInsets {
5
+ /** An `inset` shorthand for the host box. */
6
+ readonly hostInset: string;
7
+ /** An `inset` shorthand for the launcher, relative to the host box. */
8
+ readonly launcherInset: string;
9
+ }
10
+ /**
11
+ * Express a panel and its launcher, both already positioned, as the two
12
+ * `inset` shorthands the element writes.
13
+ *
14
+ * Both are measured from the **same** corner, which is what stops a later
15
+ * resize from dragging the launcher: the pinned corner is the one edge a
16
+ * resize cannot move. Which corner that is says nothing about where either box
17
+ * ends up -- the positions are absolute and arrive decided -- so re-picking it
18
+ * moves nothing, and the launcher may sit outside its own host box. Nothing
19
+ * clips it there, and that is what lets a launcher be flush to a screen corner
20
+ * while the panel it opens keeps its margin.
21
+ *
22
+ * `screen` is the **whole** viewport, not the part a host has left free. These
23
+ * are CSS `inset` values on a fixed element, and the browser measures those
24
+ * from the real edges -- so a `bottom` expressed against a box inset from the
25
+ * top comes out short by exactly that inset. It only shows when the corner
26
+ * flips mid-drag, because that is when the same point stops being expressed
27
+ * from `top` and starts being expressed from `bottom`: the widget then leaps by
28
+ * the reserved edge, which is a jump the gesture cannot explain.
29
+ */
30
+ export declare function placeWidget(host: PanelRect, launcher: LauncherBox, corner: ExpandCorner, screen: Extent): WidgetInsets;
31
+ //# sourceMappingURL=place_widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"place_widget.d.ts","sourceRoot":"","sources":["../../../src/ui/placement/place_widget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACb,YAAY,CAed"}
@@ -0,0 +1,2 @@
1
+ export declare const PRESET_STYLES: string;
2
+ //# sourceMappingURL=preset_styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/placement/preset_styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,EAAE,MA8C3B,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Which edges a grip drags. An axis left out is an axis the grip does not
3
+ * move: the left-edge grip is `{ x: "left" }`, the top-right corner is
4
+ * `{ x: "right", y: "top" }`.
5
+ */
6
+ export interface ResizeGrip {
7
+ readonly x?: "left" | "right";
8
+ readonly y?: "top" | "bottom";
9
+ }
10
+ /** Which edges the layout holds still while the panel changes size. */
11
+ export interface ResizeAnchor {
12
+ /** The horizontal edge that does not move. */
13
+ readonly x: "left" | "right";
14
+ /** The vertical edge that does not move. */
15
+ readonly y: "top" | "bottom";
16
+ }
17
+ /**
18
+ * What the current placement allows: both axes, width only, or nothing. Which
19
+ * edges a given grip drags is separate, and fixed when the grip is built.
20
+ */
21
+ export type ResizeAxis = "none" | "width" | "both";
22
+ /** Persisted size, in CSS pixels. Either axis may be absent. */
23
+ export interface ResizeSize {
24
+ readonly width?: number;
25
+ readonly height?: number;
26
+ }
27
+ /** The panel's position on screen, in viewport coordinates. */
28
+ export interface PanelRect {
29
+ readonly left: number;
30
+ readonly top: number;
31
+ readonly right: number;
32
+ readonly bottom: number;
33
+ }
34
+ /** What the handle needs from its host to do its job. */
35
+ export interface ResizeOptions {
36
+ /**
37
+ * Which axes the current placement allows, read per interaction. A getter
38
+ * because `placement` is a live attribute, and a value read at construction
39
+ * would survive the host switching to a docked or full-bleed layout.
40
+ */
41
+ readonly axis: () => ResizeAxis;
42
+ /** The panel's current bounding box. */
43
+ readonly rect: () => PanelRect;
44
+ /** Apply a box (the host decides what that costs in properties). */
45
+ readonly apply: (box: PanelRect) => void;
46
+ /**
47
+ * Called once per completed resize, for persistence: on `pointerup` for a
48
+ * drag, and when the key comes up (or focus leaves the handle) for a key
49
+ * press. Never per pointer move, and never per key repeat.
50
+ */
51
+ readonly commit: (box: PanelRect) => void;
52
+ /** Accessible label. */
53
+ readonly label: string;
54
+ }
55
+ /**
56
+ * A drag handle that resizes the chat panel from one edge or corner.
57
+ *
58
+ * The rule that keeps it correct is that **the edge a grip does not drag is the
59
+ * one that stays put**. That is the whole model, and it is what lets the same
60
+ * code serve all eight grips: the left-edge grip moves the left edge and holds
61
+ * the right, the right-edge grip does the reverse, a corner does both axes.
62
+ *
63
+ * Which edge the *layout* pins is a different question and is deliberately not
64
+ * asked here. It matters only to the host, which has to rewrite its own
65
+ * position when a grip drags the very edge the layout was holding still --
66
+ * dragging the pinned edge of a panel is a move as much as a resize. The
67
+ * handle reports the box it wants; what that costs in CSS properties is the
68
+ * host's problem.
69
+ *
70
+ * An earlier version took the anchor and derived the direction from it, which
71
+ * is where the asymmetries lived: whether an arrow key grew or shrank the
72
+ * panel depended on which corner the single grip had been placed on. With the
73
+ * grip stated outright, an arrow simply moves the edge it names.
74
+ */
75
+ export declare function createResizeHandle(grip: ResizeGrip, options: ResizeOptions): HTMLDivElement;
76
+ /** The hyphenated name of a grip, for its class and part. */
77
+ export declare function gripName(grip: ResizeGrip): string;
78
+ //# sourceMappingURL=resize_handle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize_handle.d.ts","sourceRoot":"","sources":["../../../src/ui/placement/resize_handle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAC/B;AAED,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEnD,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,UAAU,CAAC;IAChC,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,SAAS,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IAC1C,wBAAwB;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAUD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,cAAc,CAiG3F;AAUD,6DAA6D;AAC7D,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEjD"}
@@ -0,0 +1,2 @@
1
+ export declare const RESIZE_STYLES: string;
2
+ //# sourceMappingURL=resize_styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/placement/resize_styles.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,EAAE,MAuM3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const SIDEBAR_STYLES: string;
2
+ //# sourceMappingURL=sidebar_styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/placement/sidebar_styles.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,EAAE,MA+G5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const SMALL_VIEWPORT_STYLES: string;
2
+ //# sourceMappingURL=small_viewport_styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"small_viewport_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/placement/small_viewport_styles.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,qBAAqB,EAAE,MAoEnC,CAAC"}
@@ -0,0 +1,93 @@
1
+ import type { ResizeAxis } from "./resize_handle.js";
2
+ /**
3
+ * What a collapsed panel shrinks to, stamped on the element as
4
+ * data-collapsed-to so the stylesheet draws it.
5
+ *
6
+ * - `launcher` -- the round button in a corner.
7
+ * - `rail` -- the slim full-height edge the sidebar docks against; the same
8
+ * launcher element, shaped by the stylesheet.
9
+ * - `header` -- the in-flow collapse: the body hides and the header bar stays
10
+ * in the host's layout, so there is no launcher at all.
11
+ * - `bar` -- `collapse-to="bar"` over a placement that would otherwise
12
+ * collapse to `launcher`: a strip along the bottom edge, the panel rising
13
+ * from its right end.
14
+ * - `none` -- `collapse-to="none"` over any collapsible placement: collapsed
15
+ * is hidden, and the host's own control brings the panel back.
16
+ * - `null` -- no collapsed state. `page` is a dedicated route rather than a
17
+ * panel on someone else's page, so there is no "away" for it to go to:
18
+ * collapsing it left a strip of application chrome fixed over a route with
19
+ * no owner, and it hides the launcher, so the usual way back did not exist.
20
+ * The header drops its collapse control here, but a control removed from
21
+ * the UI is not a state removed from the model: the property, the attribute
22
+ * and a value restored from storage all still reach it, so every one of
23
+ * those paths asks this record; the stylesheet covers the one path that
24
+ * never does, an attribute written straight onto the element.
25
+ */
26
+ export type CollapseTarget = "launcher" | "rail" | "header" | "bar" | "none" | null;
27
+ /**
28
+ * Everything the script needs to know about one display surface, in one
29
+ * record, so a placement's behaviour is read in one place rather than
30
+ * assembled from a table per question.
31
+ *
32
+ * The stylesheet still carries each surface's look (one module per placement
33
+ * under this directory); this is the part of a surface that code decides.
34
+ */
35
+ export interface Surface {
36
+ /** What collapsing shrinks the panel to; `null` when it cannot collapse. */
37
+ readonly collapseTo: CollapseTarget;
38
+ /**
39
+ * Whether a gesture may move the launcher. The rest have nowhere to put it:
40
+ * the rail is a docked edge, `header` and `null` have no launcher, a
41
+ * full-bleed panel covers the screen it would be opening into, and the bar
42
+ * and the host's own control are not a launcher at all.
43
+ */
44
+ readonly launcherDraggable: boolean;
45
+ /**
46
+ * Whether the header drag and `moveTo` may move the open panel. The same
47
+ * answer as {@link launcherDraggable} for every placement on its own; the two
48
+ * part under `collapse-to="bar"` and `"none"`, where a corner panel still
49
+ * moves like one but has no launcher left to drag.
50
+ */
51
+ readonly panelMovable: boolean;
52
+ /**
53
+ * Which axes the resize grips may change. A full-bleed layout is the whole
54
+ * viewport by definition and cannot be resized; a docked panel owns its
55
+ * height, leaving only its inner edge.
56
+ */
57
+ readonly resizeAxis: ResizeAxis;
58
+ /**
59
+ * Whether a first mount with nothing stored starts collapsed. Only the
60
+ * corner placements do: a launcher is the resting state of every corner chat
61
+ * in the field, and mounting open put a 380x560 panel over the host page's
62
+ * corner on a visitor's first load, uninvited. The placements that place
63
+ * themselves start open -- a host that docks a sidebar has already decided
64
+ * the widget belongs on screen, and one that embeds it has given it a box.
65
+ *
66
+ * Separate from {@link launcherDraggable} although the two agree today:
67
+ * "has a launcher to rest on" and "the launcher can be moved" are different
68
+ * questions, and a surface with a fixed launcher would answer them apart.
69
+ */
70
+ readonly startsCollapsed: boolean;
71
+ /**
72
+ * What the header's maximize control grows: both axes for a corner or docked
73
+ * panel, the width for a side column, and `null` where there is no control
74
+ * (a surface that already fills its box, or that the host sized).
75
+ */
76
+ readonly maximizes: "both" | "width" | null;
77
+ }
78
+ /**
79
+ * The surface `placement` and `collapse-to` describe together. Read per
80
+ * interaction by every caller, because both are live attributes.
81
+ *
82
+ * `collapse-to` only ever replaces the round launcher or the whole collapsed
83
+ * state, never a placement's own shape: `bar` applies where the placement
84
+ * collapses to `launcher`, so the sidebar keeps its rail and an embedded chat
85
+ * its header bar, and `none` applies to every collapsible placement. Absent,
86
+ * `auto` and any other value leave the placement as it was. Both turn the
87
+ * launcher drag off, because there is no launcher left to drag, and keep the
88
+ * placement's own answer for moving the panel: a corner panel rises from the
89
+ * bar or the anchor until the user drags it somewhere else, and a placement
90
+ * that owns its position keeps owning it.
91
+ */
92
+ export declare function surfaceFor(placement: string | null, collapseTo?: string | null): Surface;
93
+ //# sourceMappingURL=surface_for.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface_for.d.ts","sourceRoot":"","sources":["../../../src/ui/placement/surface_for.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAEpF;;;;;;;GAOG;AACH,MAAM,WAAW,OAAO;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CAC7C;AAiFD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAS9F"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Prettify a raw tool name for display: separators become spaces and the
3
+ * first letter is capitalised — `list_projects` → "List projects",
4
+ * `invoices.retrieve` → "Invoices retrieve".
5
+ *
6
+ * Final fallback of the tool-card label chain (`x-summary` →
7
+ * `toolSummaries` → fetched catalog → this). Purely cosmetic: the original
8
+ * name still rides on the card's dataset for debugging.
9
+ */
10
+ export declare function prettifyToolName(name: string): string;
11
+ //# sourceMappingURL=prettify_tool_name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettify_tool_name.d.ts","sourceRoot":"","sources":["../../../src/ui/progress/prettify_tool_name.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The screen-reader-only status region, and the one short thing it says at a
3
+ * time about how a run is going.
4
+ *
5
+ * The transcript cannot do this job. It is rewritten on every animation frame
6
+ * while an answer streams, so as a live region it re-announced the whole
7
+ * answer tens of times per turn -- not merely unhelpful but actively hostile.
8
+ * The published fix for this exact bug (Microsoft's Bot Framework WebChat
9
+ * #3236) is architectural rather than a matter of tuning attributes: demote the
10
+ * visible transcript out of live-region duty and put one synthesised status per
11
+ * event into a separate invisible region. MDN and Scott O'Hara prescribe the
12
+ * same empty-region-then-inject shape.
13
+ *
14
+ * Roughly four calls land per turn -- responding, answered, a card is waiting,
15
+ * stopped or failed -- so the user is told what happened and reads the answer
16
+ * itself by navigating the log, at their own pace, rather than having it
17
+ * shouted at them a token at a time.
18
+ *
19
+ * Owned one-to-one by an `<ag-ui-chat>`, and holding no state outside the
20
+ * instance. The element places {@link region} in its shadow root.
21
+ */
22
+ export declare class RunAnnouncer {
23
+ #private;
24
+ /** The invisible `role="status"` region the statuses are written into. */
25
+ readonly region: HTMLDivElement;
26
+ /** Stamp the region's live-region semantics, before the element places it. */
27
+ mount(): void;
28
+ /**
29
+ * Say one short thing to a screen reader, without touching the transcript.
30
+ *
31
+ * **The clear is load-bearing, twice.** A reader announces a live region when
32
+ * its content *changes*, so setting the same string twice running -- two turns
33
+ * in a row both starting -- is not a change and is silently not announced.
34
+ * Emptying first makes the next set a change again. It also stops a stale
35
+ * status being read out when a reader later lands on the region.
36
+ */
37
+ announce(message: string): void;
38
+ /** Cancel a pending clear, so no timer outlives the element's connection. */
39
+ dispose(): void;
40
+ }
41
+ //# sourceMappingURL=run_announcer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run_announcer.d.ts","sourceRoot":"","sources":["../../../src/ui/progress/run_announcer.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,YAAY;;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,iBAAiC;IAIhD,8EAA8E;IAC9E,KAAK,IAAI,IAAI,CAOZ;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAS9B;IAED,6EAA6E;IAC7E,OAAO,IAAI,IAAI,CAKd;CACF"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * A muted one-line notice about something the run did (history condensed, a
3
+ * skill loaded), rendered inline between turns.
4
+ *
5
+ * Distinct from a tool card, which reports work the agent asked for and
6
+ * settles, and from an error, which is a failure. A notice never settles and
7
+ * takes no action of its own.
8
+ *
9
+ * It may carry exactly one control, and only ever an undo. That is a narrower
10
+ * rule than "no controls", which is what this said until the agent could move
11
+ * the panel it speaks from: something that rearranges the user's window without
12
+ * being asked has to be both visible and reversible, and a notice is already
13
+ * the surface that says what the run did. Anything the user has to *decide* is
14
+ * a confirmation card instead -- the difference is that this reports something
15
+ * already done.
16
+ */
17
+ export declare function renderRunNotice(icon: string, text: string, kind: string, undo?: {
18
+ readonly label: string;
19
+ readonly onActivate: () => void;
20
+ }): HTMLDivElement;
21
+ //# sourceMappingURL=run_notice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run_notice.d.ts","sourceRoot":"","sources":["../../../src/ui/progress/run_notice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,GACjE,cAAc,CAuChB"}
@@ -0,0 +1,2 @@
1
+ export declare const RUN_NOTICE_STYLES: string;
2
+ //# sourceMappingURL=run_notice_styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run_notice_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/progress/run_notice_styles.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,EAAE,MAkD/B,CAAC"}
@@ -0,0 +1,101 @@
1
+ import type { SUBAGENT_PHASE } from "../../constants.js";
2
+ import { type UiStrings } from "../ui_strings.js";
3
+ /** One phase of a delegation's life, as the server spells it. */
4
+ export type SubAgentPhase = (typeof SUBAGENT_PHASE)[keyof typeof SUBAGENT_PHASE];
5
+ /**
6
+ * One tool call the child made, as the two tool phases report it.
7
+ *
8
+ * `ok` is a tri-state and stays one here rather than collapsing to a boolean:
9
+ * `null` is the call in flight, `true` a result the child accepted, `false` a
10
+ * result that came back to it. Flattening `null` into `false` would draw a
11
+ * running call as a failed one for as long as it runs.
12
+ */
13
+ export interface SubAgentTool {
14
+ readonly toolCallId: string;
15
+ readonly name: string;
16
+ readonly ok: boolean | null;
17
+ }
18
+ /**
19
+ * One narrowed progress announcement about a delegation.
20
+ *
21
+ * Every field but `phase` and `delegationId` is nullable because the wire's
22
+ * `value` is `unknown` and a malformed announcement must not take the run down
23
+ * with it. `null` means "said nothing about this", never "said nothing was
24
+ * there" — the panel leaves what it already shows alone.
25
+ */
26
+ export interface SubAgentUpdate {
27
+ /** The **parent's** `delegate_task` tool-call id, not the child's run id. */
28
+ readonly delegationId: string;
29
+ /** The child agent's name, for a host that wants to style or select by it. */
30
+ readonly agent: string | null;
31
+ readonly phase: SubAgentPhase;
32
+ /** The server's pre-rendered line. The collapsed row needs nothing else. */
33
+ readonly status: string | null;
34
+ /** Present on the two tool phases only. */
35
+ readonly tool: SubAgentTool | null;
36
+ }
37
+ /**
38
+ * The nested surface for one delegation: a collapsed status row that expands
39
+ * onto the child agent's own tool calls.
40
+ *
41
+ * ## Where it goes and why
42
+ *
43
+ * Into {@link ToolCallCard.subagentSlot} — the card the parent's own
44
+ * `delegate_task` call already drew. The wire keys progress on the *parent's*
45
+ * tool-call id, so the thing being narrated is already on screen; a floating
46
+ * element would have duplicated its identity and then had to explain the
47
+ * relationship. Attaching instead means the delegation reuses how tool cards
48
+ * already behave, and there is no second visual language to learn.
49
+ *
50
+ * ## The shape
51
+ *
52
+ * One row per delegation, live, carrying nothing but the server's own `status`
53
+ * line — which is what makes a ten-step child cost one row until somebody opens
54
+ * it. Two alternatives were rejected on the way here and both are worth naming:
55
+ * a bare status line is cheaper and gives up the detail entirely, and inline
56
+ * child cards in the transcript interleave parent and child with nothing marking
57
+ * whose is whose, in an order the persisted transcript will not reproduce.
58
+ *
59
+ * A child's steps are keyed by the child's own `toolCallId`, so the `tool_call`
60
+ * that opens one and the `tool_result` that settles it are the same row updated
61
+ * in place rather than two rows stacked.
62
+ *
63
+ * ## What it never does
64
+ *
65
+ * It never renders failure text. A `failed` phase carries none, on purpose; the
66
+ * detail arrives on the ordinary `TOOL_CALL_RESULT` and lands in the same card's
67
+ * result region, a few pixels below. Anything invented here would be this
68
+ * component guessing at words the server declined to send.
69
+ *
70
+ * Nothing here is persisted: the events ride the imperative carrier, so a thread
71
+ * restore rebuilds the tool card and not the delegation under it.
72
+ *
73
+ * Pure DOM, like the other widgets: the host appends {@link element}, and all
74
+ * chrome text comes from {@link UiStrings}. The status line is server text and
75
+ * is set with `textContent`, never parsed as markup.
76
+ */
77
+ export declare class SubAgentPanel {
78
+ #private;
79
+ /** The panel's root; append this into the delegating card's slot. */
80
+ readonly element: HTMLDivElement;
81
+ /**
82
+ * The child agent's name, as the last update that carried one gave it.
83
+ *
84
+ * Read back rather than only written to the DOM, because the two carriers
85
+ * split the name away from the close: `SUBAGENT_STARTED` names the agent and
86
+ * `SUBAGENT_FINISHED` carries only an id, so whoever words the closing line
87
+ * has to recover the name from what the delegation already told it.
88
+ */
89
+ get agent(): string | null;
90
+ constructor(strings?: UiStrings);
91
+ /**
92
+ * Fold one announcement in.
93
+ *
94
+ * Every field is applied only when the update actually carried it, so a phase
95
+ * that says nothing about the agent or the status leaves both as they stand.
96
+ * That is what lets `finished` be two keys wide on the wire without blanking
97
+ * the row it closes.
98
+ */
99
+ report(update: SubAgentUpdate): void;
100
+ }
101
+ //# sourceMappingURL=subagent_panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent_panel.d.ts","sourceRoot":"","sources":["../../../src/ui/progress/subagent_panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEtE,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAEjF;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,aAAa;;IACxB,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IAgBD,YAAY,OAAO,GAAE,SAA8B,EA2ClD;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAYnC;CAmDF"}