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