@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 @@
|
|
|
1
|
+
{"version":3,"file":"theme_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/shell/theme_styles.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,EAAE,MAS1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/shell/token_styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,EAAE,MA6d1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/ui/styles.ts"],"names":[],"mappings":"AAyDA,eAAO,MAAM,MAAM,EAAE,MAoDX,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classic_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/themes/classic_styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,EAAE,MA6B5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classic_tokens.d.ts","sourceRoot":"","sources":["../../../src/ui/themes/classic_tokens.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,EAAE,MAgD5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code_tokens.d.ts","sourceRoot":"","sources":["../../../src/ui/themes/code_tokens.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,EAAE,MAkBzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/themes/ledger_styles.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,EAAE,MAuK3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger_tokens.d.ts","sourceRoot":"","sources":["../../../src/ui/themes/ledger_tokens.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,EAAE,MA+B3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modern_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/themes/modern_styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,EAAE,MA2E3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quiet_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/themes/quiet_styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,EAAE,MAiH1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheme_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/themes/scheme_styles.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,EAAE,MAwB3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"soft_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/themes/soft_styles.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,EAAE,MAmJzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"soft_tokens.d.ts","sourceRoot":"","sources":["../../../src/ui/themes/soft_tokens.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,EAAE,MA2BzB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The host selectors theme rules hang off, as one record so every theme
|
|
3
|
+
* module spells them the same way.
|
|
4
|
+
*
|
|
5
|
+
* Classic and code keep today's structure, so the structural rules the newer
|
|
6
|
+
* themes share apply to every element that wears neither. Quiet is the
|
|
7
|
+
* default, so its own structure applies to every element that wears no other
|
|
8
|
+
* built-in theme -- including one whose theme is a word the library does not
|
|
9
|
+
* know, which is how a host's own named theme starts from Quiet.
|
|
10
|
+
*/
|
|
11
|
+
export declare const THEME_HOST: {
|
|
12
|
+
readonly modern: ':host(:not([theme~="classic"], [theme~="code"]))';
|
|
13
|
+
readonly quiet: ':host(:not([theme~="classic"], [theme~="code"], [theme~="soft"], [theme~="ledger"]))';
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=theme_hosts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme_hosts.d.ts","sourceRoot":"","sources":["../../../src/ui/themes/theme_hosts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU;aACrB,MAAM,EAAE,kDAAkD;aAC1D,KAAK,EAAE,sFAAsF;CACrF,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { AgUiMessageIds } from "../../core/agui_client.js";
|
|
2
|
+
import type { UiStrings } from "../ui_strings.js";
|
|
3
|
+
/** What the answer actions need from the element that owns them. */
|
|
4
|
+
export interface AnswerActionsHost {
|
|
5
|
+
/** The custom element: its `data-message-actions`, and where feedback is dispatched. */
|
|
6
|
+
readonly element: HTMLElement;
|
|
7
|
+
/** The resolved string table. */
|
|
8
|
+
readonly strings: () => UiStrings;
|
|
9
|
+
/** Retry the last turn, as the element's public `retryLastTurn` does. */
|
|
10
|
+
readonly retry: () => void;
|
|
11
|
+
/** The element's current conversation thread. */
|
|
12
|
+
readonly threadId: () => string;
|
|
13
|
+
/** Follow the transcript's foot, as every site that adds to it does. */
|
|
14
|
+
readonly follow: () => void;
|
|
15
|
+
}
|
|
16
|
+
/** A finished bubble that is not an answer, and so carries no rating. */
|
|
17
|
+
interface Unrateable {
|
|
18
|
+
readonly rateable: false;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The action row under a finished answer -- copy, retry, feedback -- and the
|
|
22
|
+
* one row currently holding Retry.
|
|
23
|
+
*
|
|
24
|
+
* Owned one-to-one by an `<ag-ui-chat>`, and holding no state outside the
|
|
25
|
+
* instance.
|
|
26
|
+
*/
|
|
27
|
+
export declare class AnswerActions {
|
|
28
|
+
#private;
|
|
29
|
+
constructor(host: AnswerActionsHost);
|
|
30
|
+
/** Forget the row holding Retry, with the transcript it was in. */
|
|
31
|
+
forget(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Give a finished assistant bubble its action row, and hand it Retry.
|
|
34
|
+
*
|
|
35
|
+
* Every finished bubble gets copy and feedback -- both are safe on a message
|
|
36
|
+
* of any age. Retry moves to the newest, because it is the only one where
|
|
37
|
+
* re-running answers the same question rather than rewriting history.
|
|
38
|
+
*
|
|
39
|
+
* `data-message-actions` subtracts from that. The row is built only when
|
|
40
|
+
* something survives to go in it: an empty row still takes its margin, still
|
|
41
|
+
* answers to the `message-actions` part, and still reads to a screen reader
|
|
42
|
+
* as a group of actions with none in it.
|
|
43
|
+
*
|
|
44
|
+
* `message` names the answer, which is what a rating is filed under; a bubble
|
|
45
|
+
* that is not an answer says so instead, and has no id to give.
|
|
46
|
+
*/
|
|
47
|
+
attach(bubble: HTMLDivElement, message: AgUiMessageIds | Unrateable): void;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=answer_actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answer_actions.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/answer_actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,wFAAwF;IACxF,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,SAAS,CAAC;IAClC,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC;IAChC,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,yEAAyE;AACzE,UAAU,UAAU;IAClB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,qBAAa,aAAa;;IAWxB,YAAY,IAAI,EAAE,iBAAiB,EAElC;IAED,mEAAmE;IACnE,MAAM,IAAI,IAAI,CAEb;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAG,UAAU,GAAG,IAAI,CAuDzE;CAwCF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/** What the streamed answer needs from the element that owns it. */
|
|
2
|
+
export interface AnswerStreamHost {
|
|
3
|
+
/** Append an empty assistant bubble to the transcript, and return it. */
|
|
4
|
+
readonly openBubble: () => HTMLDivElement;
|
|
5
|
+
/** The element's `allowImages`, read per render. */
|
|
6
|
+
readonly allowImages: () => boolean;
|
|
7
|
+
/** Keep the transcript at its foot, if the reader is there. */
|
|
8
|
+
readonly follow: () => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The assistant answer currently streaming: the bubble it streams into, the
|
|
12
|
+
* text the next frame will draw, and how many deltas it arrived in.
|
|
13
|
+
*
|
|
14
|
+
* Owned one-to-one by an `<ag-ui-chat>`, and holding no state outside the
|
|
15
|
+
* instance.
|
|
16
|
+
*/
|
|
17
|
+
export declare class AnswerStream {
|
|
18
|
+
#private;
|
|
19
|
+
constructor(host: AnswerStreamHost);
|
|
20
|
+
/** Text deltas the current answer has arrived in so far. */
|
|
21
|
+
get deltas(): number;
|
|
22
|
+
/**
|
|
23
|
+
* Count one delta received. Counted per delta received, not per render: the
|
|
24
|
+
* word reveal asks whether the answer *arrived* progressively, which
|
|
25
|
+
* coalescing renders must not change the answer to.
|
|
26
|
+
*/
|
|
27
|
+
countDelta(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Queue a render of the answer so far, at most one per frame.
|
|
30
|
+
*
|
|
31
|
+
* Each `TEXT_MESSAGE_CONTENT` event carries the *whole* accumulated answer,
|
|
32
|
+
* and drawing it means marked + DOMPurify over the entire document and a
|
|
33
|
+
* wholesale replacement of the bubble's subtree. Once per token that is
|
|
34
|
+
* quadratic in the answer's length — a long answer is agent-controlled, so
|
|
35
|
+
* an ordinary run becomes a progressively stalling tab — and every rebuild
|
|
36
|
+
* takes any selection or focus inside the bubble with it.
|
|
37
|
+
*
|
|
38
|
+
* A frame is the right grain: it is the fastest anything on screen can
|
|
39
|
+
* change anyway, so a burst of tokens costs one parse and the text still
|
|
40
|
+
* appears to flow rather than in visible chunks.
|
|
41
|
+
*/
|
|
42
|
+
queue(buffer: string): void;
|
|
43
|
+
/** Render `buffer` into the streaming bubble now, dropping any queued frame. */
|
|
44
|
+
into(buffer: string): HTMLDivElement;
|
|
45
|
+
/**
|
|
46
|
+
* Close the current answer's streaming bubble.
|
|
47
|
+
*
|
|
48
|
+
* Draws a queued render first. A run that ends without a text end — a
|
|
49
|
+
* cancel, an error, a round boundary — leaves the last delta sitting in the
|
|
50
|
+
* queue, and simply dropping the bubble here would strand it: the partial
|
|
51
|
+
* answer the user stopped mid-sentence would lose its final tokens, or be an
|
|
52
|
+
* empty bubble above the stopped note.
|
|
53
|
+
*/
|
|
54
|
+
end(): void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=answer_stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answer_stream.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/answer_stream.ts"],"names":[],"mappings":"AAEA,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,cAAc,CAAC;IAC1C,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;;IAcvB,YAAY,IAAI,EAAE,gBAAgB,EAEjC;IAED,4DAA4D;IAC5D,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;OAIG;IACH,UAAU,IAAI,IAAI,CAEjB;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAU1B;IAED,gFAAgF;IAChF,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAYnC;IAED;;;;;;;;OAQG;IACH,GAAG,IAAI,IAAI,CAKV;CAgBF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment_chip_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/attachment_chip_styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,EAAE,MAgHpC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AttachmentRef } from "../../core/attachment.js";
|
|
2
|
+
/**
|
|
3
|
+
* Render the read-only attachment chips on a sent user message bubble and on
|
|
4
|
+
* restored history — one chip per ref with a type icon, filename, and human
|
|
5
|
+
* size. Static: no progress and no remove, both of which live in the composer
|
|
6
|
+
* tray.
|
|
7
|
+
*/
|
|
8
|
+
export declare function renderAttachmentChips(refs: readonly AttachmentRef[]): HTMLDivElement;
|
|
9
|
+
/**
|
|
10
|
+
* A coarse type mark for a chip — image, PDF, text document, or generic file —
|
|
11
|
+
* as inline SVG markup rather than a character, so it matches the composer's
|
|
12
|
+
* SVG buttons in weight and takes the glyph size and `currentColor`, which
|
|
13
|
+
* emoji do not.
|
|
14
|
+
*
|
|
15
|
+
* The MIME string only selects among author-written constants and is never
|
|
16
|
+
* interpolated into one, so the result is safe to assign as markup.
|
|
17
|
+
*/
|
|
18
|
+
export declare function iconFor(mime: string): string;
|
|
19
|
+
/** A compact human-readable byte size (e.g. `1.2 MB`). */
|
|
20
|
+
export declare function formatBytes(bytes: number): string;
|
|
21
|
+
//# sourceMappingURL=attachment_chips.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment_chips.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/attachment_chips.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,GAAG,cAAc,CAQpF;AA4BD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW5C;AAED,0DAA0D;AAC1D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAajD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { UiStrings } from "../ui_strings.js";
|
|
2
|
+
/** The transcript's parts, owned by the element, and what fills them. */
|
|
3
|
+
export interface TranscriptOptions {
|
|
4
|
+
readonly messages: HTMLElement;
|
|
5
|
+
readonly jumpButton: HTMLButtonElement;
|
|
6
|
+
readonly emptyWrap: HTMLElement;
|
|
7
|
+
/** The greeting's text node, kept by the element so a new user name updates it. */
|
|
8
|
+
readonly greetingText: HTMLElement;
|
|
9
|
+
/** The starter chips, or `null` when the host configured none. */
|
|
10
|
+
readonly starters: HTMLElement | null;
|
|
11
|
+
readonly strings: UiStrings;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Ready the message list, its jump-to-latest control and the empty state.
|
|
15
|
+
*
|
|
16
|
+
* The empty state is built but not put into the list: the element mounts the
|
|
17
|
+
* scroller, the quote offer and the announcer first and appends it after, so
|
|
18
|
+
* the scroller's observers see the list fill exactly as they always have.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildTranscript(options: TranscriptOptions): void;
|
|
21
|
+
//# sourceMappingURL=build_transcript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build_transcript.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/build_transcript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;IACnC,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CA6ChE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"greeting_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/greeting_styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,EAAE,MAwK7B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ToolDisplayMode } from "../progress/tool_call_card.js";
|
|
2
|
+
/**
|
|
3
|
+
* Whether a new tool call folds into a step group, given the element's
|
|
4
|
+
* `toolDisplay`.
|
|
5
|
+
*
|
|
6
|
+
* The display mode alone decides, whatever the theme: `grouped` (the default,
|
|
7
|
+
* and what an unknown value reads as) folds, and the four card modes keep
|
|
8
|
+
* per-call cards. Asked as each card is built, so switching to `grouped`
|
|
9
|
+
* folds only the calls drawn afterwards; switching away flattens the groups
|
|
10
|
+
* already drawn, which the shadow CSS does from the host attribute.
|
|
11
|
+
*/
|
|
12
|
+
export declare function groupsToolSteps(mode: ToolDisplayMode): boolean;
|
|
13
|
+
//# sourceMappingURL=groups_tool_steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups_tool_steps.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/groups_tool_steps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAE9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message_action_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/message_action_styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,EAAE,MAuJnC,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { UiStrings } from "../ui_strings.js";
|
|
2
|
+
/** What an action bar can do, beyond copying. */
|
|
3
|
+
export interface MessageActionsOptions {
|
|
4
|
+
/** Localized strings. */
|
|
5
|
+
strings: UiStrings;
|
|
6
|
+
/**
|
|
7
|
+
* The text Copy puts on the clipboard. Absent means no copy button.
|
|
8
|
+
*
|
|
9
|
+
* A function rather than a string because a bubble's content is rewritten
|
|
10
|
+
* while it streams. Each button's option is also the statement that the
|
|
11
|
+
* button belongs, so no second flag can disagree with it.
|
|
12
|
+
*/
|
|
13
|
+
text?: () => string;
|
|
14
|
+
/**
|
|
15
|
+
* The rich flavour to copy alongside `text`, as an HTML fragment. Absent
|
|
16
|
+
* means plain text only.
|
|
17
|
+
*
|
|
18
|
+
* It is what makes a copied table paste as a table: a spreadsheet or a chat
|
|
19
|
+
* client reads `text/html` when offered and falls back to the plain flavour.
|
|
20
|
+
*/
|
|
21
|
+
html?: () => string;
|
|
22
|
+
/**
|
|
23
|
+
* Report a rating for this message. Absent means no feedback buttons.
|
|
24
|
+
*
|
|
25
|
+
* The component stores nothing: a rating is the host's to keep, and a
|
|
26
|
+
* write-only table nobody reads is not worth a schema.
|
|
27
|
+
*/
|
|
28
|
+
onFeedback?: (rating: "up" | "down") => void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Give one finished message bubble its row of actions.
|
|
32
|
+
*
|
|
33
|
+
* **Finished** is load-bearing. A streaming bubble reassigns its `innerHTML` on
|
|
34
|
+
* every delta, so anything attached mid-stream is discarded and rebuilt for
|
|
35
|
+
* each one -- the same constraint `attachCopyButtons` records, one level up.
|
|
36
|
+
*
|
|
37
|
+
* Retry is deliberately **not** here: it belongs to the last turn only, so the
|
|
38
|
+
* element owns it and moves it as the transcript grows. Everything on this bar
|
|
39
|
+
* is safe to offer on any message, however old.
|
|
40
|
+
*
|
|
41
|
+
* Idempotent -- a bubble already given a bar is skipped, so a re-render or a
|
|
42
|
+
* second call cannot stack rows.
|
|
43
|
+
*
|
|
44
|
+
* Passing neither `text` nor `onFeedback` builds an empty row; the element
|
|
45
|
+
* skips the call when a host has turned both off.
|
|
46
|
+
*/
|
|
47
|
+
export declare function attachMessageActions(bubble: HTMLElement, options: MessageActionsOptions): void;
|
|
48
|
+
/**
|
|
49
|
+
* The empty action row on `bubble`, created if it has none yet.
|
|
50
|
+
*
|
|
51
|
+
* Shared so a bubble that wants *only* Retry -- a failed run, which has nothing
|
|
52
|
+
* worth copying and nothing to rate -- gets the same row, the same part name
|
|
53
|
+
* and the same accessible grouping as every other message, rather than a
|
|
54
|
+
* second thing that looks like one.
|
|
55
|
+
*/
|
|
56
|
+
export declare function messageActionBar(bubble: HTMLElement, strings: UiStrings): HTMLElement;
|
|
57
|
+
/**
|
|
58
|
+
* Build one action button, labelled for screen readers rather than by glyph.
|
|
59
|
+
*
|
|
60
|
+
* `icon` is icon markup rather than a text glyph: the copy mark in particular
|
|
61
|
+
* has no font behind it on most systems.
|
|
62
|
+
*
|
|
63
|
+
* The label is carried three ways, and each has a reader the others miss:
|
|
64
|
+
* `aria-label` for assistive technology, `title` for the browser's own
|
|
65
|
+
* tooltip, and `data-tooltip` for the one this component draws. The last is
|
|
66
|
+
* not redundant with the second -- a `title` never appears on keyboard focus,
|
|
67
|
+
* so without it a keyboard user has no way to see what the control does.
|
|
68
|
+
*
|
|
69
|
+
* The icon sits in its own part, so a host can restyle or replace it. A slot
|
|
70
|
+
* would be the better channel and cannot be used here: these repeat once per
|
|
71
|
+
* message, and a named slot can only be filled once.
|
|
72
|
+
*/
|
|
73
|
+
export declare function messageActionButton(modifier: string, label: string, icon: string): HTMLButtonElement;
|
|
74
|
+
//# sourceMappingURL=message_actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message_actions.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/message_actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAKlD,iDAAiD;AACjD,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC;IACpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAe9F;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,GAAG,WAAW,CAmBrF;AAQD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,iBAAiB,CAcnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message_styles.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/message_styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,EAAE,MAmQ5B,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type Config } from "dompurify";
|
|
2
|
+
/**
|
|
3
|
+
* The sanitiser's declared allowlist — and, because {@link harden} runs inside
|
|
4
|
+
* the sanitiser rather than after it, its *effective* one too.
|
|
5
|
+
*
|
|
6
|
+
* `ALLOW_DATA_ATTR` and `ALLOW_ARIA_ATTR` default to `true`, which would admit
|
|
7
|
+
* every `data-*` and `aria-*` attribute on top of the five named above. Both
|
|
8
|
+
* matter here: the cards drive their resolved / expanded / status appearance off
|
|
9
|
+
* `[data-resolved]`, `[data-status]` and `[data-expanded]`, and an `aria-label`
|
|
10
|
+
* on model output makes a screen reader announce something other than what is on
|
|
11
|
+
* screen. Turning them off is what makes the declared list the real one.
|
|
12
|
+
*
|
|
13
|
+
* Exported so a test can assert the returned markup is a fixed point of it.
|
|
14
|
+
*/
|
|
15
|
+
export declare const SANITIZE_CONFIG: Config;
|
|
16
|
+
/** {@link SANITIZE_CONFIG} plus the images a host opts into. */
|
|
17
|
+
export declare const SANITIZE_CONFIG_WITH_IMAGES: Config;
|
|
18
|
+
/** Options for {@link renderMarkdown}. */
|
|
19
|
+
export interface RenderMarkdownOptions {
|
|
20
|
+
/**
|
|
21
|
+
* Permit `<img>` tags (and their `src`/`alt`/`width`/`height` attributes) in
|
|
22
|
+
* the sanitised output. Off by default; see the exfiltration note on the
|
|
23
|
+
* allowlist above. Only enable for trusted content sources.
|
|
24
|
+
*/
|
|
25
|
+
readonly allowImages?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Render markdown (and any embedded raw HTML) to a sanitised HTML string.
|
|
29
|
+
*
|
|
30
|
+
* Markdown syntax and literal HTML share one path: `marked` emits HTML, then
|
|
31
|
+
* DOMPurify strips everything outside {@link SANITIZE_CONFIG} — scripts, event
|
|
32
|
+
* handlers, `javascript:` URLs, `data-*`/`aria-*`, and every class but a code
|
|
33
|
+
* fence's `language-*` hint. Links come out with `target="_blank"` and
|
|
34
|
+
* `rel="noopener noreferrer"`.
|
|
35
|
+
*
|
|
36
|
+
* The returned string is the sanitiser's own output, trimmed. Nothing edits it
|
|
37
|
+
* afterwards, so what a caller inserts is what DOMPurify approved.
|
|
38
|
+
*/
|
|
39
|
+
export declare function renderMarkdown(text: string, options?: RenderMarkdownOptions): string;
|
|
40
|
+
//# sourceMappingURL=render_markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render_markdown.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/render_markdown.ts"],"names":[],"mappings":"AAEA,OAAkB,EAAE,KAAK,MAAM,EAA8B,MAAM,WAAW,CAAC;AA6D/E;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,MAK7B,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,2BAA2B,EAAE,MAIzC,CAAC;AAgEF,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAMpF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call a consumer's renderer, turning a throw into "nothing drawn".
|
|
3
|
+
*
|
|
4
|
+
* `render` is consumer code -- a host's activity renderer, a tool's `render` --
|
|
5
|
+
* and both call sites run inside the history replay, where a throw abandons the
|
|
6
|
+
* loop and takes every later turn of the transcript with it -- silently, and
|
|
7
|
+
* again on every reload. One thing that fails to draw is worth losing; the rest
|
|
8
|
+
* of the conversation is not. Reported so the failure is findable rather than
|
|
9
|
+
* merely survived.
|
|
10
|
+
*
|
|
11
|
+
* @param render - The consumer's renderer, already bound to its input.
|
|
12
|
+
* @param subject - What was being drawn, for the warning: `tool <name>` or
|
|
13
|
+
* `activity <type>`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function renderOrWarn(render: () => Node | null, subject: string): Node | null;
|
|
16
|
+
//# sourceMappingURL=render_or_warn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render_or_warn.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/render_or_warn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAOpF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wrap each word under ``root`` in `<span class="word" style="--ag-ui-word-index: N">`
|
|
3
|
+
* so CSS can reveal them one-by-one (staggered by the index). Whitespace is
|
|
4
|
+
* preserved as plain text. Used for the `word` text-animation mode on a
|
|
5
|
+
* completed assistant message; pure DOM, idempotent enough to re-run.
|
|
6
|
+
*/
|
|
7
|
+
export declare function wrapWords(root: HTMLElement): void;
|
|
8
|
+
//# sourceMappingURL=reveal_words.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reveal_words.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/reveal_words.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAuBjD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { UiStrings } from "../ui_strings.js";
|
|
2
|
+
/**
|
|
3
|
+
* The prompts offered on an empty transcript, from `element`'s `data-starters`.
|
|
4
|
+
*
|
|
5
|
+
* Different from the suggestion chips a run pushes, which are follow-ups to
|
|
6
|
+
* something already said. These answer the blank-page question instead, and
|
|
7
|
+
* they are the host's rather than the model's -- only the host knows what its
|
|
8
|
+
* page is for. Shares the renderer, the count and the length limit, because
|
|
9
|
+
* two rows of prompt chips that behaved differently would be the harder
|
|
10
|
+
* thing to explain.
|
|
11
|
+
*
|
|
12
|
+
* Read once at connect: it is content for a state the widget is in before
|
|
13
|
+
* anything happens, and a host that wants it to change has `slot="empty"`.
|
|
14
|
+
*
|
|
15
|
+
* Parses the attribute itself rather than through the element's JSON attribute
|
|
16
|
+
* reader, because the warning is its own: it says no starters are shown and
|
|
17
|
+
* gives an example of the shape, where the shared one says a built-in default
|
|
18
|
+
* is in use, which for this attribute there is not.
|
|
19
|
+
*/
|
|
20
|
+
export declare function renderStarterChips(element: Element, strings: UiStrings, onPick: (prompt: string) => void): HTMLElement | null;
|
|
21
|
+
//# sourceMappingURL=starter_chips.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starter_chips.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/starter_chips.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAC/B,WAAW,GAAG,IAAI,CAgBpB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** A transcript that follows new content, unless the reader has other ideas. */
|
|
2
|
+
export interface StickToBottom {
|
|
3
|
+
/**
|
|
4
|
+
* New content arrived. Scrolls to the bottom only while following, so
|
|
5
|
+
* reading older messages during a run is no longer undone on the next token.
|
|
6
|
+
*/
|
|
7
|
+
readonly follow: () => void;
|
|
8
|
+
/** Go to the bottom and resume following, whatever the reader was doing. */
|
|
9
|
+
readonly jump: () => void;
|
|
10
|
+
/** Whether the transcript is currently following new content. */
|
|
11
|
+
readonly following: () => boolean;
|
|
12
|
+
readonly dispose: () => void;
|
|
13
|
+
}
|
|
14
|
+
export interface StickToBottomOptions {
|
|
15
|
+
/** The scrolling element -- the message list. */
|
|
16
|
+
readonly viewport: HTMLElement;
|
|
17
|
+
/**
|
|
18
|
+
* Called whenever the answer to "should a jump-to-latest affordance show?"
|
|
19
|
+
* changes. True means the reader has scrolled away *and* has since missed
|
|
20
|
+
* something; scrolling up through a settled transcript is not a reason to
|
|
21
|
+
* nag.
|
|
22
|
+
*/
|
|
23
|
+
readonly onMissedContent: (missed: boolean) => void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Follow the foot of a scrolling transcript, and stop when the reader scrolls
|
|
27
|
+
* away.
|
|
28
|
+
*
|
|
29
|
+
* Before this, eleven separate sites assigned `scrollTop = scrollHeight`
|
|
30
|
+
* unconditionally and nothing anywhere listened for a `scroll` event -- so
|
|
31
|
+
* nothing knew the reader had scrolled up, and scrolling back through a run was
|
|
32
|
+
* undone by the next token. Stick-to-bottom with a jump-to-latest affordance is
|
|
33
|
+
* a named primitive elsewhere for exactly this reason: shadcn ships it as
|
|
34
|
+
* `MessageScroller`, AI Elements as `ConversationScrollButton`.
|
|
35
|
+
*
|
|
36
|
+
* **Telling a reader's scroll from our own is the whole problem**, and the
|
|
37
|
+
* answer here is that it does not have to be told. A programmatic scroll only
|
|
38
|
+
* ever happens while already following, and it lands at the bottom, so the
|
|
39
|
+
* `scroll` event it provokes recomputes "at the bottom" as true and changes
|
|
40
|
+
* nothing. A reader's scroll is the only kind that can move the answer.
|
|
41
|
+
*
|
|
42
|
+
* A `ResizeObserver` covers the case scroll events cannot see: the *viewport*
|
|
43
|
+
* changing size. Resizing the panel, or the keyboard opening on a phone, moves
|
|
44
|
+
* the foot without anything scrolling and without any content arriving, so a
|
|
45
|
+
* pinned transcript would silently come unpinned.
|
|
46
|
+
*
|
|
47
|
+
* ⚠ It does **not** cover content that grows after insertion -- an image
|
|
48
|
+
* decoding, a chart laying out. A `ResizeObserver` on a scroll container does
|
|
49
|
+
* not fire when its `scrollHeight` changes, so catching that means observing
|
|
50
|
+
* every child, and the payoff is one late nudge in a case the reader can fix by
|
|
51
|
+
* scrolling. Insertion itself is covered: every site that adds to the
|
|
52
|
+
* transcript calls {@link StickToBottom.follow}.
|
|
53
|
+
*/
|
|
54
|
+
export declare function createStickToBottom({ viewport, onMissedContent, }: StickToBottomOptions): StickToBottom;
|
|
55
|
+
//# sourceMappingURL=stick_to_bottom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stick_to_bottom.d.ts","sourceRoot":"","sources":["../../../src/ui/transcript/stick_to_bottom.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,eAAe,GAChB,EAAE,oBAAoB,GAAG,aAAa,CA0DtC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { UiStrings } from "../ui_strings.js";
|
|
2
|
+
/**
|
|
3
|
+
* Most prompts one push may draw.
|
|
4
|
+
*
|
|
5
|
+
* **Keep in step with `MAX_SUGGESTIONS` in django-ag-ui's
|
|
6
|
+
* `agent/suggestions_activity.py`**, which raises past it. Mirroring is the
|
|
7
|
+
* whole point: this side silently draws no more than its limit and has no
|
|
8
|
+
* channel to report the difference, so a producer that does not know the same
|
|
9
|
+
* number ships suggestions that never appear. That is the hole the chart bounds
|
|
10
|
+
* exist to close, and it was found there by shipping it.
|
|
11
|
+
*/
|
|
12
|
+
export declare const MAX_SUGGESTIONS = 4;
|
|
13
|
+
/** Longest one prompt may be. Mirrored for the same reason as the count. */
|
|
14
|
+
export declare const MAX_SUGGESTION_CHARS = 120;
|
|
15
|
+
/** The `prompts` a `suggestions` activity carries, or `null` when it carries none. */
|
|
16
|
+
export declare function suggestionPrompts(content: unknown): string[] | null;
|
|
17
|
+
/**
|
|
18
|
+
* Draw follow-up prompts as chips that send themselves when clicked.
|
|
19
|
+
*
|
|
20
|
+
* Returns `null` when nothing survives, which is the registry's signal to draw
|
|
21
|
+
* nothing rather than an empty row -- the same contract the chart renderer uses
|
|
22
|
+
* for a spec it cannot draw.
|
|
23
|
+
*
|
|
24
|
+
* Buttons rather than links or list items: each one performs an action in the
|
|
25
|
+
* page, and the thing it sends is the label, so the accessible name is the
|
|
26
|
+
* prompt itself and needs no `aria-label` restating it.
|
|
27
|
+
*/
|
|
28
|
+
export declare function renderSuggestionChips(content: unknown, strings: UiStrings, onPick: (prompt: string) => void): HTMLElement | null;
|
|
29
|
+
//# sourceMappingURL=suggestion_chips.d.ts.map
|