@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.
- package/CHANGELOG.md +77 -0
- package/LICENSE +21 -0
- package/README.md +4397 -2
- package/dist/agents-web-components.bundle.js +5708 -0
- package/dist/agents-web-components.bundle.js.map +7 -0
- package/dist/bundle.d.ts +3 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/chat.d.ts +3 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +16373 -0
- package/dist/chat.js.map +7 -0
- package/dist/chunk-ARNLFGCC.js +7715 -0
- package/dist/chunk-ARNLFGCC.js.map +7 -0
- package/dist/constants.d.ts +575 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/core/activity_registration.d.ts +19 -0
- package/dist/core/activity_registration.d.ts.map +1 -0
- package/dist/core/activity_registry.d.ts +46 -0
- package/dist/core/activity_registry.d.ts.map +1 -0
- package/dist/core/activity_renderer.d.ts +20 -0
- package/dist/core/activity_renderer.d.ts.map +1 -0
- package/dist/core/ag_ui_chat.d.ts +836 -0
- package/dist/core/ag_ui_chat.d.ts.map +1 -0
- package/dist/core/agui_client.d.ts +370 -0
- package/dist/core/agui_client.d.ts.map +1 -0
- package/dist/core/attachment.d.ts +42 -0
- package/dist/core/attachment.d.ts.map +1 -0
- package/dist/core/chat_registry.d.ts +23 -0
- package/dist/core/chat_registry.d.ts.map +1 -0
- package/dist/core/client_seed.d.ts +27 -0
- package/dist/core/client_seed.d.ts.map +1 -0
- package/dist/core/conversation_store.d.ts +195 -0
- package/dist/core/conversation_store.d.ts.map +1 -0
- package/dist/core/create_http_agent.d.ts +57 -0
- package/dist/core/create_http_agent.d.ts.map +1 -0
- package/dist/core/define_chat.d.ts +13 -0
- package/dist/core/define_chat.d.ts.map +1 -0
- package/dist/core/events/attachments_detail.d.ts +9 -0
- package/dist/core/events/attachments_detail.d.ts.map +1 -0
- package/dist/core/events/bar_height_detail.d.ts +6 -0
- package/dist/core/events/bar_height_detail.d.ts.map +1 -0
- package/dist/core/events/custom_agent_detail.d.ts +8 -0
- package/dist/core/events/custom_agent_detail.d.ts.map +1 -0
- package/dist/core/events/dock_width_detail.d.ts +8 -0
- package/dist/core/events/dock_width_detail.d.ts.map +1 -0
- package/dist/core/events/feedback_detail.d.ts +28 -0
- package/dist/core/events/feedback_detail.d.ts.map +1 -0
- package/dist/core/events/invalidate_detail.d.ts +16 -0
- package/dist/core/events/invalidate_detail.d.ts.map +1 -0
- package/dist/core/events/maximize_detail.d.ts +5 -0
- package/dist/core/events/maximize_detail.d.ts.map +1 -0
- package/dist/core/events/run_finished_detail.d.ts +36 -0
- package/dist/core/events/run_finished_detail.d.ts.map +1 -0
- package/dist/core/events/state_detail.d.ts +5 -0
- package/dist/core/events/state_detail.d.ts.map +1 -0
- package/dist/core/events/submit_detail.d.ts +8 -0
- package/dist/core/events/submit_detail.d.ts.map +1 -0
- package/dist/core/events/thread_detail.d.ts +27 -0
- package/dist/core/events/thread_detail.d.ts.map +1 -0
- package/dist/core/events/thread_title_detail.d.ts +8 -0
- package/dist/core/events/thread_title_detail.d.ts.map +1 -0
- package/dist/core/events/toggle_detail.d.ts +5 -0
- package/dist/core/events/toggle_detail.d.ts.map +1 -0
- package/dist/core/events/tool_run.d.ts +11 -0
- package/dist/core/events/tool_run.d.ts.map +1 -0
- package/dist/core/events/unread_detail.d.ts +11 -0
- package/dist/core/events/unread_detail.d.ts.map +1 -0
- package/dist/core/message_role.d.ts +4 -0
- package/dist/core/message_role.d.ts.map +1 -0
- package/dist/core/read_flag.d.ts +11 -0
- package/dist/core/read_flag.d.ts.map +1 -0
- package/dist/core/read_json_attribute.d.ts +15 -0
- package/dist/core/read_json_attribute.d.ts.map +1 -0
- package/dist/core/read_max_tool_rounds.d.ts +9 -0
- package/dist/core/read_max_tool_rounds.d.ts.map +1 -0
- package/dist/core/remote_conversation_store.d.ts +71 -0
- package/dist/core/remote_conversation_store.d.ts.map +1 -0
- package/dist/core/run_handlers.d.ts +85 -0
- package/dist/core/run_handlers.d.ts.map +1 -0
- package/dist/core/run_index.d.ts +58 -0
- package/dist/core/run_index.d.ts.map +1 -0
- package/dist/core/storage_scope.d.ts +118 -0
- package/dist/core/storage_scope.d.ts.map +1 -0
- package/dist/core/tool_outcome.d.ts +27 -0
- package/dist/core/tool_outcome.d.ts.map +1 -0
- package/dist/core/transcribe_audio.d.ts +32 -0
- package/dist/core/transcribe_audio.d.ts.map +1 -0
- package/dist/core/upload_attachment.d.ts +44 -0
- package/dist/core/upload_attachment.d.ts.map +1 -0
- package/dist/core/utils.d.ts +117 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/dom/animations.d.ts +122 -0
- package/dist/dom/animations.d.ts.map +1 -0
- package/dist/dom/dom_driver.d.ts +28 -0
- package/dist/dom/dom_driver.d.ts.map +1 -0
- package/dist/dom/highlight_overlay.d.ts +39 -0
- package/dist/dom/highlight_overlay.d.ts.map +1 -0
- package/dist/dom/native_setter.d.ts +5 -0
- package/dist/dom/native_setter.d.ts.map +1 -0
- package/dist/dom/ring_color.d.ts +16 -0
- package/dist/dom/ring_color.d.ts.map +1 -0
- package/dist/dom/utils.d.ts +3 -0
- package/dist/dom/utils.d.ts.map +1 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +223 -0
- package/dist/index.js.map +7 -0
- package/dist/skills/fill_template.d.ts +16 -0
- package/dist/skills/fill_template.d.ts.map +1 -0
- package/dist/skills/parse_skills.d.ts +8 -0
- package/dist/skills/parse_skills.d.ts.map +1 -0
- package/dist/skills/skill.d.ts +33 -0
- package/dist/skills/skill.d.ts.map +1 -0
- package/dist/skills/skill_catalog.d.ts +69 -0
- package/dist/skills/skill_catalog.d.ts.map +1 -0
- package/dist/skills/skill_name_from.d.ts +12 -0
- package/dist/skills/skill_name_from.d.ts.map +1 -0
- package/dist/tools/chat_surface_tools.d.ts +77 -0
- package/dist/tools/chat_surface_tools.d.ts.map +1 -0
- package/dist/tools/client_tool_registry.d.ts +58 -0
- package/dist/tools/client_tool_registry.d.ts.map +1 -0
- package/dist/tools/is_destructive.d.ts +14 -0
- package/dist/tools/is_destructive.d.ts.map +1 -0
- package/dist/tools/is_navigates.d.ts +9 -0
- package/dist/tools/is_navigates.d.ts.map +1 -0
- package/dist/tools/page_action_tools.d.ts +30 -0
- package/dist/tools/page_action_tools.d.ts.map +1 -0
- package/dist/tools/page_map.d.ts +16 -0
- package/dist/tools/page_map.d.ts.map +1 -0
- package/dist/tools/page_state.d.ts +27 -0
- package/dist/tools/page_state.d.ts.map +1 -0
- package/dist/tools/parse_tool_catalog.d.ts +21 -0
- package/dist/tools/parse_tool_catalog.d.ts.map +1 -0
- package/dist/tools/route_map.d.ts +37 -0
- package/dist/tools/route_map.d.ts.map +1 -0
- package/dist/tools/tool_catalog.d.ts +86 -0
- package/dist/tools/tool_catalog.d.ts.map +1 -0
- package/dist/tools/tool_dispatch.d.ts +82 -0
- package/dist/tools/tool_dispatch.d.ts.map +1 -0
- package/dist/ui/charts/chart_block.d.ts +57 -0
- package/dist/ui/charts/chart_block.d.ts.map +1 -0
- package/dist/ui/charts/chart_spec_from.d.ts +12 -0
- package/dist/ui/charts/chart_spec_from.d.ts.map +1 -0
- package/dist/ui/charts/chart_styles.d.ts +2 -0
- package/dist/ui/charts/chart_styles.d.ts.map +1 -0
- package/dist/ui/charts/chart_tool.d.ts +15 -0
- package/dist/ui/charts/chart_tool.d.ts.map +1 -0
- package/dist/ui/composer/attachment_styles.d.ts +2 -0
- package/dist/ui/composer/attachment_styles.d.ts.map +1 -0
- package/dist/ui/composer/attachment_tray.d.ts +53 -0
- package/dist/ui/composer/attachment_tray.d.ts.map +1 -0
- package/dist/ui/composer/auto_grow.d.ts +10 -0
- package/dist/ui/composer/auto_grow.d.ts.map +1 -0
- package/dist/ui/composer/build_composer.d.ts +32 -0
- package/dist/ui/composer/build_composer.d.ts.map +1 -0
- package/dist/ui/composer/composer_attachments.d.ts +57 -0
- package/dist/ui/composer/composer_attachments.d.ts.map +1 -0
- package/dist/ui/composer/composer_styles.d.ts +2 -0
- package/dist/ui/composer/composer_styles.d.ts.map +1 -0
- package/dist/ui/composer/composer_voice.d.ts +48 -0
- package/dist/ui/composer/composer_voice.d.ts.map +1 -0
- package/dist/ui/composer/skill_styles.d.ts +2 -0
- package/dist/ui/composer/skill_styles.d.ts.map +1 -0
- package/dist/ui/composer/skills_menu.d.ts +34 -0
- package/dist/ui/composer/skills_menu.d.ts.map +1 -0
- package/dist/ui/composer/voice_input.d.ts +46 -0
- package/dist/ui/composer/voice_input.d.ts.map +1 -0
- package/dist/ui/excerpts/attach_copy_buttons.d.ts +13 -0
- package/dist/ui/excerpts/attach_copy_buttons.d.ts.map +1 -0
- package/dist/ui/excerpts/copy_payload.d.ts +30 -0
- package/dist/ui/excerpts/copy_payload.d.ts.map +1 -0
- package/dist/ui/excerpts/page_quote_offer.d.ts +33 -0
- package/dist/ui/excerpts/page_quote_offer.d.ts.map +1 -0
- package/dist/ui/excerpts/place_offer.d.ts +9 -0
- package/dist/ui/excerpts/place_offer.d.ts.map +1 -0
- package/dist/ui/excerpts/quote_selection.d.ts +66 -0
- package/dist/ui/excerpts/quote_selection.d.ts.map +1 -0
- package/dist/ui/excerpts/transcript_quote_offer.d.ts +57 -0
- package/dist/ui/excerpts/transcript_quote_offer.d.ts.map +1 -0
- package/dist/ui/fill_ui_string.d.ts +32 -0
- package/dist/ui/fill_ui_string.d.ts.map +1 -0
- package/dist/ui/history/checkpoint_menu.d.ts +41 -0
- package/dist/ui/history/checkpoint_menu.d.ts.map +1 -0
- package/dist/ui/history/conversation_history.d.ts +317 -0
- package/dist/ui/history/conversation_history.d.ts.map +1 -0
- package/dist/ui/history/history_styles.d.ts +2 -0
- package/dist/ui/history/history_styles.d.ts.map +1 -0
- package/dist/ui/history/relative_time.d.ts +23 -0
- package/dist/ui/history/relative_time.d.ts.map +1 -0
- package/dist/ui/history/thread_drawer.d.ts +64 -0
- package/dist/ui/history/thread_drawer.d.ts.map +1 -0
- package/dist/ui/history/utils.d.ts +2 -0
- package/dist/ui/history/utils.d.ts.map +1 -0
- package/dist/ui/interrupts/approval_card.d.ts +64 -0
- package/dist/ui/interrupts/approval_card.d.ts.map +1 -0
- package/dist/ui/interrupts/approval_styles.d.ts +2 -0
- package/dist/ui/interrupts/approval_styles.d.ts.map +1 -0
- package/dist/ui/interrupts/confirmation_card.d.ts +51 -0
- package/dist/ui/interrupts/confirmation_card.d.ts.map +1 -0
- package/dist/ui/interrupts/confirmation_styles.d.ts +2 -0
- package/dist/ui/interrupts/confirmation_styles.d.ts.map +1 -0
- package/dist/ui/interrupts/pending_decision.d.ts +22 -0
- package/dist/ui/interrupts/pending_decision.d.ts.map +1 -0
- package/dist/ui/interrupts/question_card.d.ts +49 -0
- package/dist/ui/interrupts/question_card.d.ts.map +1 -0
- package/dist/ui/interrupts/question_styles.d.ts +2 -0
- package/dist/ui/interrupts/question_styles.d.ts.map +1 -0
- package/dist/ui/place/place.d.ts +17 -0
- package/dist/ui/place/place.d.ts.map +1 -0
- package/dist/ui/place/place_chip.d.ts +26 -0
- package/dist/ui/place/place_chip.d.ts.map +1 -0
- package/dist/ui/place/place_from_route.d.ts +9 -0
- package/dist/ui/place/place_from_route.d.ts.map +1 -0
- package/dist/ui/place/place_styles.d.ts +2 -0
- package/dist/ui/place/place_styles.d.ts.map +1 -0
- package/dist/ui/placement/clamp_launcher.d.ts +20 -0
- package/dist/ui/placement/clamp_launcher.d.ts.map +1 -0
- package/dist/ui/placement/clamp_panel.d.ts +13 -0
- package/dist/ui/placement/clamp_panel.d.ts.map +1 -0
- package/dist/ui/placement/collapse_styles.d.ts +2 -0
- package/dist/ui/placement/collapse_styles.d.ts.map +1 -0
- package/dist/ui/placement/dock_styles.d.ts +2 -0
- package/dist/ui/placement/dock_styles.d.ts.map +1 -0
- package/dist/ui/placement/embedded_styles.d.ts +2 -0
- package/dist/ui/placement/embedded_styles.d.ts.map +1 -0
- package/dist/ui/placement/launcher_drag.d.ts +49 -0
- package/dist/ui/placement/launcher_drag.d.ts.map +1 -0
- package/dist/ui/placement/launcher_placement.d.ts +77 -0
- package/dist/ui/placement/launcher_placement.d.ts.map +1 -0
- package/dist/ui/placement/launcher_styles.d.ts +2 -0
- package/dist/ui/placement/launcher_styles.d.ts.map +1 -0
- package/dist/ui/placement/page_styles.d.ts +2 -0
- package/dist/ui/placement/page_styles.d.ts.map +1 -0
- package/dist/ui/placement/panel_drag.d.ts +40 -0
- package/dist/ui/placement/panel_drag.d.ts.map +1 -0
- package/dist/ui/placement/panel_placement.d.ts +173 -0
- package/dist/ui/placement/panel_placement.d.ts.map +1 -0
- package/dist/ui/placement/place_widget.d.ts +31 -0
- package/dist/ui/placement/place_widget.d.ts.map +1 -0
- package/dist/ui/placement/preset_styles.d.ts +2 -0
- package/dist/ui/placement/preset_styles.d.ts.map +1 -0
- package/dist/ui/placement/resize_handle.d.ts +78 -0
- package/dist/ui/placement/resize_handle.d.ts.map +1 -0
- package/dist/ui/placement/resize_styles.d.ts +2 -0
- package/dist/ui/placement/resize_styles.d.ts.map +1 -0
- package/dist/ui/placement/sidebar_styles.d.ts +2 -0
- package/dist/ui/placement/sidebar_styles.d.ts.map +1 -0
- package/dist/ui/placement/small_viewport_styles.d.ts +2 -0
- package/dist/ui/placement/small_viewport_styles.d.ts.map +1 -0
- package/dist/ui/placement/surface_for.d.ts +93 -0
- package/dist/ui/placement/surface_for.d.ts.map +1 -0
- package/dist/ui/progress/prettify_tool_name.d.ts +11 -0
- package/dist/ui/progress/prettify_tool_name.d.ts.map +1 -0
- package/dist/ui/progress/run_announcer.d.ts +41 -0
- package/dist/ui/progress/run_announcer.d.ts.map +1 -0
- package/dist/ui/progress/run_notice.d.ts +21 -0
- package/dist/ui/progress/run_notice.d.ts.map +1 -0
- package/dist/ui/progress/run_notice_styles.d.ts +2 -0
- package/dist/ui/progress/run_notice_styles.d.ts.map +1 -0
- package/dist/ui/progress/subagent_panel.d.ts +101 -0
- package/dist/ui/progress/subagent_panel.d.ts.map +1 -0
- package/dist/ui/progress/subagent_progress.d.ts +57 -0
- package/dist/ui/progress/subagent_progress.d.ts.map +1 -0
- package/dist/ui/progress/subagent_update.d.ts +28 -0
- package/dist/ui/progress/subagent_update.d.ts.map +1 -0
- package/dist/ui/progress/thoughts_block.d.ts +57 -0
- package/dist/ui/progress/thoughts_block.d.ts.map +1 -0
- package/dist/ui/progress/thoughts_styles.d.ts +2 -0
- package/dist/ui/progress/thoughts_styles.d.ts.map +1 -0
- package/dist/ui/progress/tool_call_card.d.ts +167 -0
- package/dist/ui/progress/tool_call_card.d.ts.map +1 -0
- package/dist/ui/progress/tool_group_styles.d.ts +2 -0
- package/dist/ui/progress/tool_group_styles.d.ts.map +1 -0
- package/dist/ui/progress/tool_step_group.d.ts +50 -0
- package/dist/ui/progress/tool_step_group.d.ts.map +1 -0
- package/dist/ui/progress/tool_step_styles.d.ts +2 -0
- package/dist/ui/progress/tool_step_styles.d.ts.map +1 -0
- package/dist/ui/shell/adopt_styles.d.ts +28 -0
- package/dist/ui/shell/adopt_styles.d.ts.map +1 -0
- package/dist/ui/shell/build_header.d.ts +45 -0
- package/dist/ui/shell/build_header.d.ts.map +1 -0
- package/dist/ui/shell/build_launcher.d.ts +33 -0
- package/dist/ui/shell/build_launcher.d.ts.map +1 -0
- package/dist/ui/shell/collapse_glyph.d.ts +14 -0
- package/dist/ui/shell/collapse_glyph.d.ts.map +1 -0
- package/dist/ui/shell/frame_styles.d.ts +2 -0
- package/dist/ui/shell/frame_styles.d.ts.map +1 -0
- package/dist/ui/shell/glyph_slot.d.ts +7 -0
- package/dist/ui/shell/glyph_slot.d.ts.map +1 -0
- package/dist/ui/shell/header_button.d.ts +11 -0
- package/dist/ui/shell/header_button.d.ts.map +1 -0
- package/dist/ui/shell/icon_element.d.ts +12 -0
- package/dist/ui/shell/icon_element.d.ts.map +1 -0
- package/dist/ui/shell/is_unread_badge_enabled.d.ts +10 -0
- package/dist/ui/shell/is_unread_badge_enabled.d.ts.map +1 -0
- package/dist/ui/shell/read_launcher_icon_url.d.ts +8 -0
- package/dist/ui/shell/read_launcher_icon_url.d.ts.map +1 -0
- package/dist/ui/shell/theme_styles.d.ts +2 -0
- package/dist/ui/shell/theme_styles.d.ts.map +1 -0
- package/dist/ui/shell/token_styles.d.ts +2 -0
- package/dist/ui/shell/token_styles.d.ts.map +1 -0
- package/dist/ui/styles.d.ts +2 -0
- package/dist/ui/styles.d.ts.map +1 -0
- package/dist/ui/themes/classic_styles.d.ts +2 -0
- package/dist/ui/themes/classic_styles.d.ts.map +1 -0
- package/dist/ui/themes/classic_tokens.d.ts +2 -0
- package/dist/ui/themes/classic_tokens.d.ts.map +1 -0
- package/dist/ui/themes/code_tokens.d.ts +2 -0
- package/dist/ui/themes/code_tokens.d.ts.map +1 -0
- package/dist/ui/themes/ledger_styles.d.ts +2 -0
- package/dist/ui/themes/ledger_styles.d.ts.map +1 -0
- package/dist/ui/themes/ledger_tokens.d.ts +2 -0
- package/dist/ui/themes/ledger_tokens.d.ts.map +1 -0
- package/dist/ui/themes/modern_styles.d.ts +2 -0
- package/dist/ui/themes/modern_styles.d.ts.map +1 -0
- package/dist/ui/themes/quiet_styles.d.ts +2 -0
- package/dist/ui/themes/quiet_styles.d.ts.map +1 -0
- package/dist/ui/themes/scheme_styles.d.ts +2 -0
- package/dist/ui/themes/scheme_styles.d.ts.map +1 -0
- package/dist/ui/themes/soft_styles.d.ts +2 -0
- package/dist/ui/themes/soft_styles.d.ts.map +1 -0
- package/dist/ui/themes/soft_tokens.d.ts +2 -0
- package/dist/ui/themes/soft_tokens.d.ts.map +1 -0
- package/dist/ui/themes/theme_hosts.d.ts +15 -0
- package/dist/ui/themes/theme_hosts.d.ts.map +1 -0
- package/dist/ui/transcript/answer_actions.d.ts +50 -0
- package/dist/ui/transcript/answer_actions.d.ts.map +1 -0
- package/dist/ui/transcript/answer_stream.d.ts +56 -0
- package/dist/ui/transcript/answer_stream.d.ts.map +1 -0
- package/dist/ui/transcript/attachment_chip_styles.d.ts +2 -0
- package/dist/ui/transcript/attachment_chip_styles.d.ts.map +1 -0
- package/dist/ui/transcript/attachment_chips.d.ts +21 -0
- package/dist/ui/transcript/attachment_chips.d.ts.map +1 -0
- package/dist/ui/transcript/build_transcript.d.ts +21 -0
- package/dist/ui/transcript/build_transcript.d.ts.map +1 -0
- package/dist/ui/transcript/greeting_styles.d.ts +2 -0
- package/dist/ui/transcript/greeting_styles.d.ts.map +1 -0
- package/dist/ui/transcript/groups_tool_steps.d.ts +13 -0
- package/dist/ui/transcript/groups_tool_steps.d.ts.map +1 -0
- package/dist/ui/transcript/message_action_styles.d.ts +2 -0
- package/dist/ui/transcript/message_action_styles.d.ts.map +1 -0
- package/dist/ui/transcript/message_actions.d.ts +74 -0
- package/dist/ui/transcript/message_actions.d.ts.map +1 -0
- package/dist/ui/transcript/message_styles.d.ts +2 -0
- package/dist/ui/transcript/message_styles.d.ts.map +1 -0
- package/dist/ui/transcript/render_markdown.d.ts +40 -0
- package/dist/ui/transcript/render_markdown.d.ts.map +1 -0
- package/dist/ui/transcript/render_or_warn.d.ts +16 -0
- package/dist/ui/transcript/render_or_warn.d.ts.map +1 -0
- package/dist/ui/transcript/reveal_words.d.ts +8 -0
- package/dist/ui/transcript/reveal_words.d.ts.map +1 -0
- package/dist/ui/transcript/starter_chips.d.ts +21 -0
- package/dist/ui/transcript/starter_chips.d.ts.map +1 -0
- package/dist/ui/transcript/stick_to_bottom.d.ts +55 -0
- package/dist/ui/transcript/stick_to_bottom.d.ts.map +1 -0
- package/dist/ui/transcript/suggestion_chips.d.ts +29 -0
- package/dist/ui/transcript/suggestion_chips.d.ts.map +1 -0
- package/dist/ui/transcript/transcript.d.ts +196 -0
- package/dist/ui/transcript/transcript.d.ts.map +1 -0
- package/dist/ui/transcript/transcript_styles.d.ts +2 -0
- package/dist/ui/transcript/transcript_styles.d.ts.map +1 -0
- package/dist/ui/ui_strings.d.ts +352 -0
- package/dist/ui/ui_strings.d.ts.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +86 -3
- package/src/bundle.ts +2 -0
- package/src/chat.ts +2 -0
- package/src/constants.ts +650 -0
- package/src/core/activity_registration.ts +19 -0
- package/src/core/activity_registry.ts +133 -0
- package/src/core/activity_renderer.ts +19 -0
- package/src/core/ag_ui_chat.ts +3966 -0
- package/src/core/agui_client.ts +1028 -0
- package/src/core/attachment.ts +62 -0
- package/src/core/chat_registry.ts +53 -0
- package/src/core/client_seed.ts +27 -0
- package/src/core/conversation_store.ts +478 -0
- package/src/core/create_http_agent.ts +97 -0
- package/src/core/define_chat.ts +25 -0
- package/src/core/events/attachments_detail.ts +9 -0
- package/src/core/events/bar_height_detail.ts +5 -0
- package/src/core/events/custom_agent_detail.ts +7 -0
- package/src/core/events/dock_width_detail.ts +7 -0
- package/src/core/events/feedback_detail.ts +27 -0
- package/src/core/events/invalidate_detail.ts +15 -0
- package/src/core/events/maximize_detail.ts +4 -0
- package/src/core/events/run_finished_detail.ts +36 -0
- package/src/core/events/state_detail.ts +4 -0
- package/src/core/events/submit_detail.ts +8 -0
- package/src/core/events/thread_detail.ts +26 -0
- package/src/core/events/thread_title_detail.ts +7 -0
- package/src/core/events/toggle_detail.ts +4 -0
- package/src/core/events/tool_run.ts +10 -0
- package/src/core/events/unread_detail.ts +10 -0
- package/src/core/message_role.ts +4 -0
- package/src/core/read_flag.ts +13 -0
- package/src/core/read_json_attribute.ts +30 -0
- package/src/core/read_max_tool_rounds.ts +13 -0
- package/src/core/remote_conversation_store.ts +279 -0
- package/src/core/run_handlers.ts +524 -0
- package/src/core/run_index.ts +114 -0
- package/src/core/storage_scope.ts +291 -0
- package/src/core/tool_outcome.ts +39 -0
- package/src/core/transcribe_audio.ts +76 -0
- package/src/core/upload_attachment.ts +130 -0
- package/src/core/utils.ts +230 -0
- package/src/dom/animations.ts +341 -0
- package/src/dom/dom_driver.ts +91 -0
- package/src/dom/highlight_overlay.ts +204 -0
- package/src/dom/native_setter.ts +40 -0
- package/src/dom/ring_color.ts +206 -0
- package/src/dom/utils.ts +5 -0
- package/src/index.ts +220 -0
- package/src/skills/fill_template.ts +31 -0
- package/src/skills/parse_skills.ts +31 -0
- package/src/skills/skill.ts +32 -0
- package/src/skills/skill_catalog.ts +172 -0
- package/src/skills/skill_name_from.ts +19 -0
- package/src/tools/chat_surface_tools.ts +183 -0
- package/src/tools/client_tool_registry.ts +80 -0
- package/src/tools/is_destructive.ts +17 -0
- package/src/tools/is_navigates.ts +12 -0
- package/src/tools/page_action_tools.ts +123 -0
- package/src/tools/page_map.ts +26 -0
- package/src/tools/page_state.ts +57 -0
- package/src/tools/parse_tool_catalog.ts +41 -0
- package/src/tools/route_map.ts +132 -0
- package/src/tools/tool_catalog.ts +334 -0
- package/src/tools/tool_dispatch.ts +453 -0
- package/src/ui/charts/chart_block.ts +519 -0
- package/src/ui/charts/chart_spec_from.ts +125 -0
- package/src/ui/charts/chart_styles.ts +63 -0
- package/src/ui/charts/chart_tool.ts +72 -0
- package/src/ui/composer/attachment_styles.ts +71 -0
- package/src/ui/composer/attachment_tray.ts +295 -0
- package/src/ui/composer/auto_grow.ts +12 -0
- package/src/ui/composer/build_composer.ts +114 -0
- package/src/ui/composer/composer_attachments.ts +324 -0
- package/src/ui/composer/composer_styles.ts +177 -0
- package/src/ui/composer/composer_voice.ts +93 -0
- package/src/ui/composer/skill_styles.ts +120 -0
- package/src/ui/composer/skills_menu.ts +188 -0
- package/src/ui/composer/voice_input.ts +282 -0
- package/src/ui/excerpts/attach_copy_buttons.ts +73 -0
- package/src/ui/excerpts/copy_payload.ts +156 -0
- package/src/ui/excerpts/page_quote_offer.ts +203 -0
- package/src/ui/excerpts/place_offer.ts +24 -0
- package/src/ui/excerpts/quote_selection.ts +345 -0
- package/src/ui/excerpts/transcript_quote_offer.ts +175 -0
- package/src/ui/fill_ui_string.ts +41 -0
- package/src/ui/history/checkpoint_menu.ts +300 -0
- package/src/ui/history/conversation_history.ts +1169 -0
- package/src/ui/history/history_styles.ts +492 -0
- package/src/ui/history/relative_time.ts +50 -0
- package/src/ui/history/thread_drawer.ts +471 -0
- package/src/ui/history/utils.ts +11 -0
- package/src/ui/interrupts/approval_card.ts +202 -0
- package/src/ui/interrupts/approval_styles.ts +52 -0
- package/src/ui/interrupts/confirmation_card.ts +138 -0
- package/src/ui/interrupts/confirmation_styles.ts +114 -0
- package/src/ui/interrupts/pending_decision.ts +33 -0
- package/src/ui/interrupts/question_card.ts +213 -0
- package/src/ui/interrupts/question_styles.ts +73 -0
- package/src/ui/place/place.ts +16 -0
- package/src/ui/place/place_chip.ts +146 -0
- package/src/ui/place/place_from_route.ts +27 -0
- package/src/ui/place/place_styles.ts +108 -0
- package/src/ui/placement/clamp_launcher.ts +38 -0
- package/src/ui/placement/clamp_panel.ts +30 -0
- package/src/ui/placement/collapse_styles.ts +472 -0
- package/src/ui/placement/dock_styles.ts +116 -0
- package/src/ui/placement/embedded_styles.ts +14 -0
- package/src/ui/placement/launcher_drag.ts +206 -0
- package/src/ui/placement/launcher_placement.ts +133 -0
- package/src/ui/placement/launcher_styles.ts +189 -0
- package/src/ui/placement/page_styles.ts +47 -0
- package/src/ui/placement/panel_drag.ts +138 -0
- package/src/ui/placement/panel_placement.ts +1975 -0
- package/src/ui/placement/place_widget.ts +64 -0
- package/src/ui/placement/preset_styles.ts +49 -0
- package/src/ui/placement/resize_handle.ts +229 -0
- package/src/ui/placement/resize_styles.ts +201 -0
- package/src/ui/placement/sidebar_styles.ts +113 -0
- package/src/ui/placement/small_viewport_styles.ts +70 -0
- package/src/ui/placement/surface_for.ts +183 -0
- package/src/ui/progress/prettify_tool_name.ts +16 -0
- package/src/ui/progress/run_announcer.ts +67 -0
- package/src/ui/progress/run_notice.ts +61 -0
- package/src/ui/progress/run_notice_styles.ts +52 -0
- package/src/ui/progress/subagent_panel.ts +227 -0
- package/src/ui/progress/subagent_progress.ts +200 -0
- package/src/ui/progress/subagent_update.ts +89 -0
- package/src/ui/progress/thoughts_block.ts +165 -0
- package/src/ui/progress/thoughts_styles.ts +74 -0
- package/src/ui/progress/tool_call_card.ts +429 -0
- package/src/ui/progress/tool_group_styles.ts +313 -0
- package/src/ui/progress/tool_step_group.ts +317 -0
- package/src/ui/progress/tool_step_styles.ts +486 -0
- package/src/ui/shell/adopt_styles.ts +34 -0
- package/src/ui/shell/build_header.ts +121 -0
- package/src/ui/shell/build_launcher.ts +79 -0
- package/src/ui/shell/collapse_glyph.ts +42 -0
- package/src/ui/shell/frame_styles.ts +147 -0
- package/src/ui/shell/glyph_slot.ts +12 -0
- package/src/ui/shell/header_button.ts +22 -0
- package/src/ui/shell/icon_element.ts +33 -0
- package/src/ui/shell/is_unread_badge_enabled.ts +11 -0
- package/src/ui/shell/read_launcher_icon_url.ts +9 -0
- package/src/ui/shell/theme_styles.ts +11 -0
- package/src/ui/shell/token_styles.ts +480 -0
- package/src/ui/styles.ts +110 -0
- package/src/ui/themes/classic_styles.ts +32 -0
- package/src/ui/themes/classic_tokens.ts +51 -0
- package/src/ui/themes/code_tokens.ts +21 -0
- package/src/ui/themes/ledger_styles.ts +169 -0
- package/src/ui/themes/ledger_tokens.ts +33 -0
- package/src/ui/themes/modern_styles.ts +80 -0
- package/src/ui/themes/quiet_styles.ts +118 -0
- package/src/ui/themes/scheme_styles.ts +26 -0
- package/src/ui/themes/soft_styles.ts +149 -0
- package/src/ui/themes/soft_tokens.ts +29 -0
- package/src/ui/themes/theme_hosts.ts +14 -0
- package/src/ui/transcript/answer_actions.ts +165 -0
- package/src/ui/transcript/answer_stream.ts +123 -0
- package/src/ui/transcript/attachment_chip_styles.ts +116 -0
- package/src/ui/transcript/attachment_chips.ts +82 -0
- package/src/ui/transcript/build_transcript.ts +67 -0
- package/src/ui/transcript/greeting_styles.ts +171 -0
- package/src/ui/transcript/groups_tool_steps.ts +16 -0
- package/src/ui/transcript/message_action_styles.ts +155 -0
- package/src/ui/transcript/message_actions.ts +234 -0
- package/src/ui/transcript/message_styles.ts +262 -0
- package/src/ui/transcript/render_markdown.ts +181 -0
- package/src/ui/transcript/render_or_warn.ts +22 -0
- package/src/ui/transcript/reveal_words.ts +41 -0
- package/src/ui/transcript/starter_chips.ts +42 -0
- package/src/ui/transcript/stick_to_bottom.ts +126 -0
- package/src/ui/transcript/suggestion_chips.ts +73 -0
- package/src/ui/transcript/transcript.ts +555 -0
- package/src/ui/transcript/transcript_styles.ts +153 -0
- package/src/ui/ui_strings.ts +550 -0
- package/src/version.ts +1 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { HIGHLIGHT_OVERLAY_Z_INDEX } from "../constants.js";
|
|
2
|
+
import { ringColor } from "./ring_color.js";
|
|
3
|
+
|
|
4
|
+
/** How the overlay is drawn around the element being pointed at. */
|
|
5
|
+
export interface HighlightOverlayOptions {
|
|
6
|
+
/** Dim everything except the target. Default false. */
|
|
7
|
+
readonly scrim?: boolean;
|
|
8
|
+
/** Draw the ring as a moving gradient rather than a flat colour. Default false. */
|
|
9
|
+
readonly gradient?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Ring colour, and the flat fallback for the gradient. Default:
|
|
12
|
+
* `--ag-ui-highlight-ring-color` on the target, then on the chat, then the
|
|
13
|
+
* target's `--ag-ui-accent`, then the chat's accent, held to 3:1 against the
|
|
14
|
+
* surface behind the target.
|
|
15
|
+
*/
|
|
16
|
+
readonly color?: string;
|
|
17
|
+
/** The chat whose ring colour and accent to use. Default: the latest connected. */
|
|
18
|
+
readonly chat?: HTMLElement;
|
|
19
|
+
/** Gap between the target's box and the ring. Default 4. */
|
|
20
|
+
readonly padding?: number;
|
|
21
|
+
/** Corner radius of the cut-out and the ring. Default: the target's own. */
|
|
22
|
+
readonly radius?: number;
|
|
23
|
+
/** Ring thickness. Default 3, or `--ag-ui-highlight-ring-width` on the target. */
|
|
24
|
+
readonly ringWidth?: number;
|
|
25
|
+
/** One pass of the gradient. Default 2400, or `--ag-ui-highlight-flow-ms`. */
|
|
26
|
+
readonly flowMs?: number;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Read a `--ag-ui-*` token from the target, not the overlay: the overlay sits in the body, so
|
|
31
|
+
* a host that themes the widget on `ag-ui-chat` or a wrapper would never reach a `var()` there.
|
|
32
|
+
*/
|
|
33
|
+
function tokenOn(target: HTMLElement, name: string, fallback: string): string {
|
|
34
|
+
const value = window.getComputedStyle(target).getPropertyValue(name).trim();
|
|
35
|
+
return value === "" ? fallback : value;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Default gap between the target's border box and the ring around it. */
|
|
39
|
+
const DEFAULT_PADDING_PX = 4;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Draw an overlay that points at `target`, and return a function that removes it.
|
|
43
|
+
*
|
|
44
|
+
* An overlay rather than a style on the target: a flat highlight is an `outline` so an
|
|
45
|
+
* `overflow: hidden` ancestor cannot clip it, but an outline takes a colour, never a
|
|
46
|
+
* gradient, and a dim needs a surface larger than the target. Nothing here is a descendant
|
|
47
|
+
* of the target, so none of it is clipped.
|
|
48
|
+
*
|
|
49
|
+
* It is inert: it never takes a pointer event, so the driver can still click what it
|
|
50
|
+
* just pointed at.
|
|
51
|
+
*
|
|
52
|
+
* It follows: the cut-out is recomputed on scroll and resize.
|
|
53
|
+
*/
|
|
54
|
+
export function showHighlightOverlay(
|
|
55
|
+
target: HTMLElement,
|
|
56
|
+
options: HighlightOverlayOptions = {},
|
|
57
|
+
): () => void {
|
|
58
|
+
const root = document.createElement("div");
|
|
59
|
+
root.setAttribute("data-ag-ui-highlight", "");
|
|
60
|
+
// Decoration: the agent's message is what announces that the element matters.
|
|
61
|
+
root.setAttribute("aria-hidden", "true");
|
|
62
|
+
root.style.cssText = [
|
|
63
|
+
"position: fixed",
|
|
64
|
+
"inset: 0",
|
|
65
|
+
"pointer-events: none",
|
|
66
|
+
// Above the widget's own default, since it points at the page the widget sits over.
|
|
67
|
+
`z-index: ${tokenOn(target, "--ag-ui-highlight-z-index", String(HIGHLIGHT_OVERLAY_Z_INDEX))}`,
|
|
68
|
+
].join(";");
|
|
69
|
+
|
|
70
|
+
const scrim = document.createElement("div");
|
|
71
|
+
const ring = document.createElement("div");
|
|
72
|
+
// Classes, since `::part` cannot reach the host document.
|
|
73
|
+
root.className = "ag-ui-highlight";
|
|
74
|
+
scrim.className = "ag-ui-highlight-scrim";
|
|
75
|
+
ring.className = "ag-ui-highlight-ring";
|
|
76
|
+
if (options.scrim === true) {
|
|
77
|
+
root.append(scrim);
|
|
78
|
+
}
|
|
79
|
+
root.append(ring);
|
|
80
|
+
|
|
81
|
+
const ringWidth =
|
|
82
|
+
options.ringWidth ?? Number.parseFloat(tokenOn(target, "--ag-ui-highlight-ring-width", "3"));
|
|
83
|
+
const flowMs =
|
|
84
|
+
options.flowMs ?? Number.parseFloat(tokenOn(target, "--ag-ui-highlight-flow-ms", "2400"));
|
|
85
|
+
|
|
86
|
+
const paint = (): void => {
|
|
87
|
+
const box = target.getBoundingClientRect();
|
|
88
|
+
const pad = options.padding ?? DEFAULT_PADDING_PX;
|
|
89
|
+
// No fallback for an unparseable radius: it always resolves for an element in the document.
|
|
90
|
+
const radius = options.radius ?? Number.parseFloat(getComputedStyle(target).borderRadius);
|
|
91
|
+
const left = box.left - pad;
|
|
92
|
+
const top = box.top - pad;
|
|
93
|
+
const width = box.width + pad * 2;
|
|
94
|
+
const height = box.height + pad * 2;
|
|
95
|
+
|
|
96
|
+
if (options.scrim === true) {
|
|
97
|
+
// One element with a hole; the opposite winding makes evenodd treat the inside as outside.
|
|
98
|
+
scrim.style.cssText = [
|
|
99
|
+
"position: absolute",
|
|
100
|
+
"inset: 0",
|
|
101
|
+
`background: ${tokenOn(target, "--ag-ui-highlight-scrim", "rgba(15, 15, 25, 0.45)")}`,
|
|
102
|
+
`clip-path: path(evenodd, '${holePath(left, top, width, height, radius + pad)}')`,
|
|
103
|
+
].join(";");
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
ring.style.cssText = [
|
|
107
|
+
"position: absolute",
|
|
108
|
+
`left: ${left}px`,
|
|
109
|
+
`top: ${top}px`,
|
|
110
|
+
`width: ${width}px`,
|
|
111
|
+
`height: ${height}px`,
|
|
112
|
+
`border-radius: ${radius + pad}px`,
|
|
113
|
+
`border: ${ringWidth}px solid transparent`,
|
|
114
|
+
"box-sizing: border-box",
|
|
115
|
+
ringPaint(target, options),
|
|
116
|
+
].join(";");
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
paint();
|
|
120
|
+
// Animated from script: a keyframe would mean injecting a rule into the host stylesheet,
|
|
121
|
+
// which is module-level state. Reduced motion draws the gradient but stops it travelling.
|
|
122
|
+
let flow: Animation | null = null;
|
|
123
|
+
if (options.gradient === true && !window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
|
|
124
|
+
flow = ring.animate([{ backgroundPosition: "100% 0" }, { backgroundPosition: "-100% 0" }], {
|
|
125
|
+
duration: flowMs,
|
|
126
|
+
iterations: Number.POSITIVE_INFINITY,
|
|
127
|
+
easing: "linear",
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
// Capture reaches a scroll in any container; passive, as this only reads geometry.
|
|
131
|
+
const listen = { capture: true, passive: true } as const;
|
|
132
|
+
window.addEventListener("scroll", paint, listen);
|
|
133
|
+
window.addEventListener("resize", paint, listen);
|
|
134
|
+
document.body.appendChild(root);
|
|
135
|
+
|
|
136
|
+
return () => {
|
|
137
|
+
window.removeEventListener("scroll", paint, listen);
|
|
138
|
+
window.removeEventListener("resize", paint, listen);
|
|
139
|
+
// An infinite animation never finishes, so cancel it rather than rely on the engine dropping it.
|
|
140
|
+
flow?.cancel();
|
|
141
|
+
root.remove();
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* A caller's colour, or `null` if it is not one: the value is joined into a `;`-separated
|
|
147
|
+
* `cssText`, so a string carrying a semicolon would write further declarations, and the
|
|
148
|
+
* colour can come from the agent.
|
|
149
|
+
*/
|
|
150
|
+
function safeColor(value: string | undefined): string | null {
|
|
151
|
+
if (value === undefined) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
return CSS.supports("color", value) ? value : null;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** The ring's paint: a flat border, or a gradient masked to the frame (border box less padding box). */
|
|
158
|
+
function ringPaint(target: HTMLElement, options: HighlightOverlayOptions): string {
|
|
159
|
+
const color = safeColor(options.color) ?? ringColor(target, options.chat);
|
|
160
|
+
if (options.gradient !== true) {
|
|
161
|
+
return `border-color: ${color}`;
|
|
162
|
+
}
|
|
163
|
+
const image = tokenOn(
|
|
164
|
+
target,
|
|
165
|
+
"--ag-ui-highlight-gradient",
|
|
166
|
+
`linear-gradient(115deg, transparent 20%, ${color} 50%, transparent 80%)`,
|
|
167
|
+
);
|
|
168
|
+
const mask = "linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0)";
|
|
169
|
+
return [
|
|
170
|
+
`background-image: ${image}`,
|
|
171
|
+
"background-origin: border-box",
|
|
172
|
+
"background-size: 300% 100%",
|
|
173
|
+
`-webkit-mask: ${mask}`,
|
|
174
|
+
`mask: ${mask}`,
|
|
175
|
+
"-webkit-mask-composite: xor",
|
|
176
|
+
"mask-composite: exclude",
|
|
177
|
+
"background-position: 50% 0",
|
|
178
|
+
].join(";");
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* A viewport-sized rectangle with a rounded rectangle cut out, as a path for
|
|
183
|
+
* `clip-path: path(evenodd, ...)`. Absolute commands, closed explicitly: an unparseable
|
|
184
|
+
* `clip-path` is dropped silently and the scrim would cover the target.
|
|
185
|
+
*/
|
|
186
|
+
function holePath(x: number, y: number, width: number, height: number, radius: number): string {
|
|
187
|
+
const r = Math.max(0, Math.min(radius, width / 2, height / 2));
|
|
188
|
+
const right = x + width;
|
|
189
|
+
const bottom = y + height;
|
|
190
|
+
const outer = `M 0 0 H ${window.innerWidth} V ${window.innerHeight} H 0 Z`;
|
|
191
|
+
const hole = [
|
|
192
|
+
`M ${x + r} ${y}`,
|
|
193
|
+
`H ${right - r}`,
|
|
194
|
+
`A ${r} ${r} 0 0 1 ${right} ${y + r}`,
|
|
195
|
+
`V ${bottom - r}`,
|
|
196
|
+
`A ${r} ${r} 0 0 1 ${right - r} ${bottom}`,
|
|
197
|
+
`H ${x + r}`,
|
|
198
|
+
`A ${r} ${r} 0 0 1 ${x} ${bottom - r}`,
|
|
199
|
+
`V ${y + r}`,
|
|
200
|
+
`A ${r} ${r} 0 0 1 ${x + r} ${y}`,
|
|
201
|
+
"Z",
|
|
202
|
+
].join(" ");
|
|
203
|
+
return `${outer} ${hole}`;
|
|
204
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Set a control's `value` / `checked` through the native prototype setter, so
|
|
2
|
+
// framework value-tracking sees the change. React (and Vue/Svelte) replace the
|
|
3
|
+
// element's own setter with a tracked one, so `el.value = x` hits that override
|
|
4
|
+
// and the following `input` event carries no change: the field looks filled
|
|
5
|
+
// while the framework's state stays empty. Calling the original prototype
|
|
6
|
+
// setter and then dispatching `input` avoids that.
|
|
7
|
+
|
|
8
|
+
type ValueSetter = (this: HTMLElement, value: string) => void;
|
|
9
|
+
type CheckedSetter = (this: HTMLElement, checked: boolean) => void;
|
|
10
|
+
|
|
11
|
+
/** The original prototype setter for `prop` on `proto`. */
|
|
12
|
+
function prototypeSetter(proto: object, prop: string): (this: HTMLElement, value: never) => void {
|
|
13
|
+
// Captured at module load; DOM environments always define these, so the cast is safe.
|
|
14
|
+
const setter = (Object.getOwnPropertyDescriptor(proto, prop) as PropertyDescriptor).set;
|
|
15
|
+
return setter as unknown as (this: HTMLElement, value: never) => void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const setInputValue = prototypeSetter(HTMLInputElement.prototype, "value") as ValueSetter;
|
|
19
|
+
const setTextareaValue = prototypeSetter(HTMLTextAreaElement.prototype, "value") as ValueSetter;
|
|
20
|
+
const setSelectValue = prototypeSetter(HTMLSelectElement.prototype, "value") as ValueSetter;
|
|
21
|
+
const setInputChecked = prototypeSetter(HTMLInputElement.prototype, "checked") as CheckedSetter;
|
|
22
|
+
|
|
23
|
+
/** Set `el.value` via the element's native prototype setter. */
|
|
24
|
+
export function setNativeValue(
|
|
25
|
+
el: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement,
|
|
26
|
+
value: string,
|
|
27
|
+
): void {
|
|
28
|
+
if (el instanceof HTMLTextAreaElement) {
|
|
29
|
+
setTextareaValue.call(el, value);
|
|
30
|
+
} else if (el instanceof HTMLSelectElement) {
|
|
31
|
+
setSelectValue.call(el, value);
|
|
32
|
+
} else {
|
|
33
|
+
setInputValue.call(el, value);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Set `el.checked` via the native prototype setter. */
|
|
38
|
+
export function setNativeChecked(el: HTMLInputElement, checked: boolean): void {
|
|
39
|
+
setInputChecked.call(el, checked);
|
|
40
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { ChatRegistration } from "../core/chat_registry.js";
|
|
2
|
+
|
|
3
|
+
/** The public ring token, read from the target and then from the chat. */
|
|
4
|
+
const RING_TOKEN = "--ag-ui-highlight-ring-color";
|
|
5
|
+
|
|
6
|
+
/** The accent a host themes its page with, read from the target. */
|
|
7
|
+
const ACCENT_TOKEN = "--ag-ui-accent";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* The accent the chat actually resolved, its theme's default included. Read
|
|
11
|
+
* through the private alias because the public token is unset on a page that
|
|
12
|
+
* themed nothing, which is exactly the page this exists for.
|
|
13
|
+
*/
|
|
14
|
+
const CHAT_ACCENT = "--_accent";
|
|
15
|
+
|
|
16
|
+
/** The package indigo, for a page with no chat and no theming at all. */
|
|
17
|
+
const PACKAGE_ACCENT = "#4f46e5";
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The colour a highlight ring is drawn in when the caller passed none.
|
|
21
|
+
*
|
|
22
|
+
* In order: `--ag-ui-highlight-ring-color` on the target, the same token on the chat, the
|
|
23
|
+
* target's `--ag-ui-accent`, the chat's resolved accent, the package indigo. The target's
|
|
24
|
+
* accent outranks the chat's default so a host theming its page keeps its rings; the ring
|
|
25
|
+
* token outranks both so a host can keep the ring apart from the accent. Only the
|
|
26
|
+
* chat's own accent is adjusted, since it follows the widget's scheme rather than the
|
|
27
|
+
* page's: it is held to 3:1 against the surface behind the target (see
|
|
28
|
+
* {@link surfaceBehind}) by trying the other half of its light-dark pair, then stepping
|
|
29
|
+
* toward black or white. Every other value is a host's choice and is drawn as given.
|
|
30
|
+
*
|
|
31
|
+
* `chat` defaults to the most recently connected `<ag-ui-chat>`.
|
|
32
|
+
*/
|
|
33
|
+
export function ringColor(target: HTMLElement, chat?: HTMLElement): string {
|
|
34
|
+
const onTarget = readToken(target, RING_TOKEN);
|
|
35
|
+
if (onTarget !== "") {
|
|
36
|
+
return onTarget;
|
|
37
|
+
}
|
|
38
|
+
const owner = chat ?? ChatRegistration.latest();
|
|
39
|
+
const onChat = owner === null ? "" : resolveOn(owner, RING_TOKEN);
|
|
40
|
+
if (onChat !== "") {
|
|
41
|
+
return onChat;
|
|
42
|
+
}
|
|
43
|
+
const accent = readToken(target, ACCENT_TOKEN);
|
|
44
|
+
if (accent !== "") {
|
|
45
|
+
return accent;
|
|
46
|
+
}
|
|
47
|
+
if (owner === null) {
|
|
48
|
+
return PACKAGE_ACCENT;
|
|
49
|
+
}
|
|
50
|
+
const chatAccent = resolveOn(owner, CHAT_ACCENT);
|
|
51
|
+
return chatAccent === "" ? PACKAGE_ACCENT : legible(owner, chatAccent, target);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** The contrast a ring needs against what it is drawn on (WCAG 2.4.13). */
|
|
55
|
+
const RING_CONTRAST = 3;
|
|
56
|
+
|
|
57
|
+
/** How far each step moves a failing accent toward black or white. */
|
|
58
|
+
const STEP = 0.1;
|
|
59
|
+
|
|
60
|
+
type Rgba = readonly [number, number, number, number];
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* `accent`, or the nearest variant of it that holds {@link RING_CONTRAST}
|
|
64
|
+
* against the surface behind `target`.
|
|
65
|
+
*
|
|
66
|
+
* Colours are compared as sRGB bytes painted onto a one-pixel canvas, the one
|
|
67
|
+
* reading that turns a resolved color-mix() or oklch() into numbers. Where
|
|
68
|
+
* there is no 2d context to paint on, nothing can be measured, and the accent
|
|
69
|
+
* is drawn as it was.
|
|
70
|
+
*/
|
|
71
|
+
function legible(chat: HTMLElement, accent: string, target: HTMLElement): string {
|
|
72
|
+
const paint = document.createElement("canvas").getContext("2d", { willReadFrequently: true });
|
|
73
|
+
if (paint === null) {
|
|
74
|
+
return accent;
|
|
75
|
+
}
|
|
76
|
+
const bytes = (color: string): Rgba => {
|
|
77
|
+
paint.clearRect(0, 0, 1, 1);
|
|
78
|
+
paint.fillStyle = "rgb(0 0 0 / 0)";
|
|
79
|
+
paint.fillStyle = color;
|
|
80
|
+
paint.fillRect(0, 0, 1, 1);
|
|
81
|
+
const [r = 0, g = 0, b = 0, a = 0] = paint.getImageData(0, 0, 1, 1).data;
|
|
82
|
+
return [r, g, b, a / 255];
|
|
83
|
+
};
|
|
84
|
+
const surface = surfaceBehind(target, bytes);
|
|
85
|
+
const holds = (color: Rgba): boolean => contrast(over(color, surface), surface) >= RING_CONTRAST;
|
|
86
|
+
const own = [accent, resolveOn(chat, CHAT_ACCENT, "light"), resolveOn(chat, CHAT_ACCENT, "dark")];
|
|
87
|
+
const fit = own.find((candidate) => holds(bytes(candidate)));
|
|
88
|
+
if (fit !== undefined) {
|
|
89
|
+
return fit;
|
|
90
|
+
}
|
|
91
|
+
// Black or white, whichever the surface sets off better, holds at least
|
|
92
|
+
// 4.5:1 against any surface, so the walk always ends by the last step.
|
|
93
|
+
const from = over(bytes(accent), surface);
|
|
94
|
+
const black: Rgba = [0, 0, 0, 1];
|
|
95
|
+
const white: Rgba = [255, 255, 255, 1];
|
|
96
|
+
const toward = contrast(black, surface) > contrast(white, surface) ? black : white;
|
|
97
|
+
let step = 1;
|
|
98
|
+
while (!holds(mix(from, toward, step * STEP))) {
|
|
99
|
+
step += 1;
|
|
100
|
+
}
|
|
101
|
+
const [r, g, b] = mix(from, toward, step * STEP);
|
|
102
|
+
return `rgb(${r}, ${g}, ${b})`;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* The colour of the surface a ring around `target` is drawn on, as opaque
|
|
107
|
+
* sRGB bytes.
|
|
108
|
+
*
|
|
109
|
+
* The ring sits outside the target's border box (the flash outline is offset
|
|
110
|
+
* from it, the overlay leaves a gap), so the target's own fill is not under
|
|
111
|
+
* it: a white field on a dark page is ringed on the dark page. The surface is
|
|
112
|
+
* every background from the target's parent up, composited until one is
|
|
113
|
+
* opaque, over the page canvas, which follows the root's colour scheme. A
|
|
114
|
+
* background image is not read; its colour beneath is.
|
|
115
|
+
*/
|
|
116
|
+
function surfaceBehind(target: HTMLElement, bytes: (color: string) => Rgba): Rgba {
|
|
117
|
+
const layers: Rgba[] = [];
|
|
118
|
+
for (let el = parentOf(target); el !== null; el = parentOf(el)) {
|
|
119
|
+
const layer = bytes(window.getComputedStyle(el).backgroundColor);
|
|
120
|
+
layers.push(layer);
|
|
121
|
+
if (layer[3] === 1) {
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
const probe = document.createElement("span");
|
|
126
|
+
probe.hidden = true;
|
|
127
|
+
probe.style.color = "Canvas";
|
|
128
|
+
document.documentElement.appendChild(probe);
|
|
129
|
+
let surface = bytes(window.getComputedStyle(probe).color);
|
|
130
|
+
probe.remove();
|
|
131
|
+
for (const layer of layers.reverse()) {
|
|
132
|
+
surface = over(layer, surface);
|
|
133
|
+
}
|
|
134
|
+
return surface;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/** The element above `el`, crossing out of a shadow root to its host. */
|
|
138
|
+
function parentOf(el: Element): Element | null {
|
|
139
|
+
if (el.parentElement !== null) {
|
|
140
|
+
return el.parentElement;
|
|
141
|
+
}
|
|
142
|
+
const root = el.getRootNode();
|
|
143
|
+
return root instanceof ShadowRoot ? root.host : null;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/** `top` painted over the opaque `under`. */
|
|
147
|
+
function over(top: Rgba, under: Rgba): Rgba {
|
|
148
|
+
return mix(under, top, top[3]);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/** `from` moved `share` of the way to `to`, as opaque bytes. */
|
|
152
|
+
function mix(from: Rgba, to: Rgba, share: number): Rgba {
|
|
153
|
+
const channel = (index: 0 | 1 | 2): number =>
|
|
154
|
+
Math.round(from[index] + (to[index] - from[index]) * share);
|
|
155
|
+
return [channel(0), channel(1), channel(2), 1];
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/** WCAG relative luminance of opaque sRGB bytes. */
|
|
159
|
+
function luminance([r, g, b]: Rgba): number {
|
|
160
|
+
const linear = (channel: number): number => {
|
|
161
|
+
const c = channel / 255;
|
|
162
|
+
return c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
|
|
163
|
+
};
|
|
164
|
+
return 0.2126 * linear(r) + 0.7152 * linear(g) + 0.0722 * linear(b);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/** WCAG contrast ratio between two opaque colours. */
|
|
168
|
+
function contrast(a: Rgba, b: Rgba): number {
|
|
169
|
+
const [la, lb] = [luminance(a), luminance(b)];
|
|
170
|
+
return (Math.max(la, lb) + 0.05) / (Math.min(la, lb) + 0.05);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function readToken(el: HTMLElement, name: string): string {
|
|
174
|
+
return window.getComputedStyle(el).getPropertyValue(name).trim();
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* The custom property `name` on `chat`, as the colour it computes to there, or `""` when
|
|
179
|
+
* unset or not a colour.
|
|
180
|
+
*
|
|
181
|
+
* Resolved by a probe inside the shadow tree, because the chat's colours are `light-dark()`
|
|
182
|
+
* pairs that a custom property keeps unresolved: on a page element the pair would follow the
|
|
183
|
+
* page's scheme. An element with no open shadow root is read as it is. `scheme` forces one
|
|
184
|
+
* half of the pair, to find the chat's other accent.
|
|
185
|
+
*/
|
|
186
|
+
function resolveOn(chat: HTMLElement, name: string, scheme?: "light" | "dark"): string {
|
|
187
|
+
const value = readToken(chat, name);
|
|
188
|
+
const root = chat.shadowRoot;
|
|
189
|
+
if (value === "" || root === null) {
|
|
190
|
+
return value;
|
|
191
|
+
}
|
|
192
|
+
const probe = document.createElement("span");
|
|
193
|
+
probe.hidden = true;
|
|
194
|
+
if (scheme !== undefined) {
|
|
195
|
+
probe.style.colorScheme = scheme;
|
|
196
|
+
}
|
|
197
|
+
probe.style.color = value;
|
|
198
|
+
// An unparseable value leaves the declaration empty; the probe would report an inherited colour.
|
|
199
|
+
if (probe.style.color === "") {
|
|
200
|
+
return "";
|
|
201
|
+
}
|
|
202
|
+
root.appendChild(probe);
|
|
203
|
+
const resolved = window.getComputedStyle(probe).color;
|
|
204
|
+
probe.remove();
|
|
205
|
+
return resolved;
|
|
206
|
+
}
|
package/src/dom/utils.ts
ADDED
package/src/index.ts
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
// The package root. The element itself is the `./chat` entry (src/chat.ts).
|
|
2
|
+
|
|
3
|
+
export {
|
|
4
|
+
ATTACHMENT_EVENT,
|
|
5
|
+
BAR_HEIGHT_EVENT,
|
|
6
|
+
CHART_ACTIVITY_TYPE,
|
|
7
|
+
COMPACTION_ACTIVITY_TYPE,
|
|
8
|
+
CUSTOM_AGENT_EVENT,
|
|
9
|
+
DOCK_WIDTH_EVENT,
|
|
10
|
+
ELEMENT_TAG,
|
|
11
|
+
FEEDBACK_EVENT,
|
|
12
|
+
INVALIDATE_CUSTOM_NAME,
|
|
13
|
+
INVALIDATE_EVENT,
|
|
14
|
+
LOAD_CAPABILITY_TOOL,
|
|
15
|
+
MAX_TOOL_ROUNDS,
|
|
16
|
+
MAXIMIZE_EVENT,
|
|
17
|
+
MESSAGE_ACTIONS,
|
|
18
|
+
MESSAGE_ROLE,
|
|
19
|
+
RUN_FINISHED_EVENT,
|
|
20
|
+
STATE_EVENT,
|
|
21
|
+
SUBMIT_EVENT,
|
|
22
|
+
SUGGESTIONS_ACTIVITY_TYPE,
|
|
23
|
+
THREAD_EVENT,
|
|
24
|
+
THREAD_TITLE_EVENT,
|
|
25
|
+
TOGGLE_EVENT,
|
|
26
|
+
TOOL_CALL_STATUS,
|
|
27
|
+
TOOL_DISPLAY,
|
|
28
|
+
TOOL_GROUP_DISPLAY,
|
|
29
|
+
TOOL_OUTCOME,
|
|
30
|
+
type ToolGroupDisplayMode,
|
|
31
|
+
UNREAD_EVENT,
|
|
32
|
+
X_CONFIRM_KEY,
|
|
33
|
+
X_DESTRUCTIVE_KEY,
|
|
34
|
+
X_NAVIGATES_KEY,
|
|
35
|
+
X_SUMMARY_KEY,
|
|
36
|
+
} from "./constants.js";
|
|
37
|
+
export type { ActivityRegistration } from "./core/activity_registration.js";
|
|
38
|
+
export type { ActivityRenderer } from "./core/activity_renderer.js";
|
|
39
|
+
export {
|
|
40
|
+
AgUiClient,
|
|
41
|
+
type AgUiClientConfig,
|
|
42
|
+
type AgUiClientHandlers,
|
|
43
|
+
type AgUiMessageIds,
|
|
44
|
+
type AgUiRunInputs,
|
|
45
|
+
type AgUiToolCall,
|
|
46
|
+
ConnectionLostError,
|
|
47
|
+
type ExecuteTool,
|
|
48
|
+
type InterruptResponse,
|
|
49
|
+
type ResolveInterrupts,
|
|
50
|
+
type ToolExecution,
|
|
51
|
+
} from "./core/agui_client.js";
|
|
52
|
+
export { type AttachmentRef, messageAttachments } from "./core/attachment.js";
|
|
53
|
+
export {
|
|
54
|
+
type ClientConversationStore,
|
|
55
|
+
type NavigationCheckpoint,
|
|
56
|
+
SessionStorageStore,
|
|
57
|
+
type ThreadMeta,
|
|
58
|
+
} from "./core/conversation_store.js";
|
|
59
|
+
export {
|
|
60
|
+
type AgentFactory,
|
|
61
|
+
createHttpAgent,
|
|
62
|
+
type HttpAgentOptions,
|
|
63
|
+
} from "./core/create_http_agent.js";
|
|
64
|
+
export type { AttachmentsDetail } from "./core/events/attachments_detail.js";
|
|
65
|
+
export type { BarHeightDetail } from "./core/events/bar_height_detail.js";
|
|
66
|
+
export type { CustomAgentDetail } from "./core/events/custom_agent_detail.js";
|
|
67
|
+
export type { DockWidthDetail } from "./core/events/dock_width_detail.js";
|
|
68
|
+
export type { FeedbackDetail } from "./core/events/feedback_detail.js";
|
|
69
|
+
export type { InvalidateDetail } from "./core/events/invalidate_detail.js";
|
|
70
|
+
export type { MaximizeDetail } from "./core/events/maximize_detail.js";
|
|
71
|
+
export type { RunFinishedDetail } from "./core/events/run_finished_detail.js";
|
|
72
|
+
export type { StateDetail } from "./core/events/state_detail.js";
|
|
73
|
+
export type { SubmitDetail } from "./core/events/submit_detail.js";
|
|
74
|
+
export type { ThreadDetail } from "./core/events/thread_detail.js";
|
|
75
|
+
export type { ThreadTitleDetail } from "./core/events/thread_title_detail.js";
|
|
76
|
+
export type { ToggleDetail } from "./core/events/toggle_detail.js";
|
|
77
|
+
export type { ToolRun } from "./core/events/tool_run.js";
|
|
78
|
+
export type { UnreadDetail } from "./core/events/unread_detail.js";
|
|
79
|
+
export type { MessageRole } from "./core/message_role.js";
|
|
80
|
+
export { RemoteConversationStore } from "./core/remote_conversation_store.js";
|
|
81
|
+
export { RunIndex, type RunRow } from "./core/run_index.js";
|
|
82
|
+
export { type ToolOutcome, toolStatusFromOutcome } from "./core/tool_outcome.js";
|
|
83
|
+
export {
|
|
84
|
+
type TranscribeHandler,
|
|
85
|
+
type TranscribeOptions,
|
|
86
|
+
transcribeAudio,
|
|
87
|
+
} from "./core/transcribe_audio.js";
|
|
88
|
+
export {
|
|
89
|
+
type UploadHandler,
|
|
90
|
+
type UploadOptions,
|
|
91
|
+
uploadAttachment,
|
|
92
|
+
} from "./core/upload_attachment.js";
|
|
93
|
+
export {
|
|
94
|
+
type FlashOptions,
|
|
95
|
+
flash,
|
|
96
|
+
focusWithFlash,
|
|
97
|
+
type HighlightClickOptions,
|
|
98
|
+
highlightThenClick,
|
|
99
|
+
type PressOptions,
|
|
100
|
+
prefersReducedMotion,
|
|
101
|
+
pressThenClick,
|
|
102
|
+
type RingOwnerOptions,
|
|
103
|
+
type ScrollOptions,
|
|
104
|
+
type SelectOptions,
|
|
105
|
+
scrollIntoCenterView,
|
|
106
|
+
selectOption,
|
|
107
|
+
type TextLikeElement,
|
|
108
|
+
type ToggleOptions,
|
|
109
|
+
type TypeOptions,
|
|
110
|
+
toggleControl,
|
|
111
|
+
typeInto,
|
|
112
|
+
} from "./dom/animations.js";
|
|
113
|
+
export {
|
|
114
|
+
clickElement,
|
|
115
|
+
type FillFieldOptions,
|
|
116
|
+
fillField,
|
|
117
|
+
pressButton,
|
|
118
|
+
selectControl,
|
|
119
|
+
setControlValue,
|
|
120
|
+
toggleCheckbox,
|
|
121
|
+
} from "./dom/dom_driver.js";
|
|
122
|
+
export {
|
|
123
|
+
type HighlightOverlayOptions,
|
|
124
|
+
showHighlightOverlay,
|
|
125
|
+
} from "./dom/highlight_overlay.js";
|
|
126
|
+
export { setNativeChecked, setNativeValue } from "./dom/native_setter.js";
|
|
127
|
+
export type { Skill } from "./skills/skill.js";
|
|
128
|
+
export {
|
|
129
|
+
CHAT_CORNERS,
|
|
130
|
+
type ChatCorner,
|
|
131
|
+
type ChatSurface,
|
|
132
|
+
type ChatSurfaceReport,
|
|
133
|
+
createChatSurfaceTools,
|
|
134
|
+
isChatCorner,
|
|
135
|
+
} from "./tools/chat_surface_tools.js";
|
|
136
|
+
export { type ClientTool, ClientToolRegistry } from "./tools/client_tool_registry.js";
|
|
137
|
+
export { isDestructive } from "./tools/is_destructive.js";
|
|
138
|
+
export { isNavigates } from "./tools/is_navigates.js";
|
|
139
|
+
export {
|
|
140
|
+
createPageActionTools,
|
|
141
|
+
PAGE_ACTIONS,
|
|
142
|
+
type ResolvePageTarget,
|
|
143
|
+
} from "./tools/page_action_tools.js";
|
|
144
|
+
export { createPageMapContext, type PageMap } from "./tools/page_map.js";
|
|
145
|
+
export { createPageStateTools, type PageState } from "./tools/page_state.js";
|
|
146
|
+
export { parseToolCatalog, type ToolCatalogEntry } from "./tools/parse_tool_catalog.js";
|
|
147
|
+
export {
|
|
148
|
+
createRouteTools,
|
|
149
|
+
type Route,
|
|
150
|
+
type RouteMap,
|
|
151
|
+
type RouteWithParams,
|
|
152
|
+
} from "./tools/route_map.js";
|
|
153
|
+
// Charts. `CHART_ACTIVITY_TYPE` above is the wire name a server sets on an
|
|
154
|
+
// ACTIVITY_SNAPSHOT; these are the shape it carries and the renderer itself,
|
|
155
|
+
// for a host building its own visual on the same seam.
|
|
156
|
+
export type { ChartKind, ChartSeries, ChartSpec } from "./ui/charts/chart_block.js";
|
|
157
|
+
export { renderChart } from "./ui/charts/chart_block.js";
|
|
158
|
+
export { chartSpecFrom } from "./ui/charts/chart_spec_from.js";
|
|
159
|
+
export { CHART_TOOL_NAME } from "./ui/charts/chart_tool.js";
|
|
160
|
+
export {
|
|
161
|
+
attachQuoteOffer,
|
|
162
|
+
type PageQuoteOffer,
|
|
163
|
+
type PageQuoteOfferOptions,
|
|
164
|
+
} from "./ui/excerpts/page_quote_offer.js";
|
|
165
|
+
// Quoting. The transcript wires these itself; they are exported for the half
|
|
166
|
+
// the component cannot reach -- a selection made in the **host page**, which
|
|
167
|
+
// a host reads its own way and hands to `AgUiChat.quote()`.
|
|
168
|
+
export {
|
|
169
|
+
asQuote,
|
|
170
|
+
MAX_QUOTE_CHARS,
|
|
171
|
+
type QuotableSelection,
|
|
172
|
+
quotableSelection,
|
|
173
|
+
} from "./ui/excerpts/quote_selection.js";
|
|
174
|
+
export { CheckpointMenu, type CheckpointVerb } from "./ui/history/checkpoint_menu.js";
|
|
175
|
+
export {
|
|
176
|
+
type RelativeTimeFormatter,
|
|
177
|
+
relativeTime,
|
|
178
|
+
} from "./ui/history/relative_time.js";
|
|
179
|
+
export {
|
|
180
|
+
type ApprovalOptions,
|
|
181
|
+
type ApprovalRenderer,
|
|
182
|
+
type ApprovalRequest,
|
|
183
|
+
requestApproval,
|
|
184
|
+
} from "./ui/interrupts/approval_card.js";
|
|
185
|
+
export {
|
|
186
|
+
type ConfirmationOptions,
|
|
187
|
+
type ConfirmationRequest,
|
|
188
|
+
requestConfirmation,
|
|
189
|
+
} from "./ui/interrupts/confirmation_card.js";
|
|
190
|
+
export {
|
|
191
|
+
type QuestionOptions,
|
|
192
|
+
type QuestionRenderer,
|
|
193
|
+
type QuestionRequest,
|
|
194
|
+
requestQuestion,
|
|
195
|
+
} from "./ui/interrupts/question_card.js";
|
|
196
|
+
export type { Place } from "./ui/place/place.js";
|
|
197
|
+
export { prettifyToolName } from "./ui/progress/prettify_tool_name.js";
|
|
198
|
+
export {
|
|
199
|
+
type SettledStatus,
|
|
200
|
+
ToolCallCard,
|
|
201
|
+
type ToolCallCardOptions,
|
|
202
|
+
type ToolCallStatus,
|
|
203
|
+
type ToolDisplayMode,
|
|
204
|
+
type ToolPayload,
|
|
205
|
+
type ToolPayloadFormatter,
|
|
206
|
+
} from "./ui/progress/tool_call_card.js";
|
|
207
|
+
export {
|
|
208
|
+
attachMessageActions,
|
|
209
|
+
type MessageActionsOptions,
|
|
210
|
+
messageActionBar,
|
|
211
|
+
} from "./ui/transcript/message_actions.js";
|
|
212
|
+
export { type RenderMarkdownOptions, renderMarkdown } from "./ui/transcript/render_markdown.js";
|
|
213
|
+
export {
|
|
214
|
+
MAX_SUGGESTION_CHARS,
|
|
215
|
+
MAX_SUGGESTIONS,
|
|
216
|
+
renderSuggestionChips,
|
|
217
|
+
suggestionPrompts,
|
|
218
|
+
} from "./ui/transcript/suggestion_chips.js";
|
|
219
|
+
export { DEFAULT_UI_STRINGS, mergeUiStrings, type UiStrings } from "./ui/ui_strings.js";
|
|
220
|
+
export { VERSION } from "./version.js";
|