Module: AssistantChat::Broadcaster
- Extended by:
- ActiveSupport::Concern
- Includes:
- BroadcasterRendering, BroadcasterStreaming, IconHelper
- Included in:
- AssistantChatWorker
- Defined in:
- app/services/assistant_chat/broadcaster.rb
Overview
Service object: broadcaster.
Constant Summary collapse
- STATUS_BROADCAST_INTERVAL =
Status broadcast interval.
0.3- TOOL_DISPLAY_NAMES =
Recognised tool display names.
{ 'execute_sql' => 'Querying database', 'describe_available_data' => 'Checking schema', 'semantic_search' => 'Searching content', 'search_products' => 'Searching products', 'browse_product_line' => 'Browsing product line', 'get_product' => 'Loading product details', 'list_product_lines' => 'Listing product lines', 'list_blog_posts' => 'Searching blog posts', 'get_blog_post' => 'Loading blog post', 'create_blog_post' => 'Creating blog post', 'update_blog_post' => 'Updating blog post', 'edit_blog_post' => 'Editing blog post', 'remove_embed' => 'Removing embed', 'replace_embed' => 'Replacing embed', 'move_embed' => 'Moving embed', 'insert_blog_section' => 'Inserting section', 'list_blog_tags' => 'Loading tags', 'find_faqs' => 'Searching FAQs', 'create_faq' => 'Creating FAQ', 'search_images' => 'Searching images', 'find_link_opportunities' => 'Finding link opportunities', 'find_call_recordings' => 'Searching call recordings', 'ga4_top_pages' => 'Checking GA4 pages', 'ga4_page_metrics' => 'Loading page metrics', 'ga4_traffic_sources' => 'Checking traffic sources', 'ga4_run_report' => 'Running GA4 report', 'gsc_search_analytics' => 'Querying Search Console', 'gsc_page_metrics' => 'Loading search metrics', 'gsc_page_queries' => 'Loading search queries', 'ahrefs_overview' => 'Checking Ahrefs overview', 'ahrefs_top_pages' => 'Loading top pages', 'ahrefs_organic_keywords' => 'Loading keyword rankings', 'seo_get_page' => 'Loading SEO page data', 'seo_refresh_page' => 'Refreshing SEO data', 'seo_link_gaps' => 'Analyzing link gaps', 'seo_inbound_links' => 'Checking inbound links', 'seo_outbound_links' => 'Checking outbound links', 'seo_get_action_items' => 'Loading SEO action items', 'seo_action_items' => 'Loading SEO action items', 'seo_update_action_item' => 'Updating action item', 'seo_batch_update_action_items' => 'Batch updating action items', 'seo_page_report' => 'Running SEO page report', 'insert_faqs' => 'Embedding FAQs', 'fetch_url' => 'Fetching web page', 'search_brain' => 'Checking knowledge base', 'propose_brain_entry' => 'Learning new rule', 'list_my_conversations' => 'Browsing conversations', 'search_my_conversations' => 'Searching conversations', 'declare_plan' => 'Planning approach', 'mark_step_complete' => 'Updating progress', 'list_schemas' => 'Listing schemas', 'list_objects' => 'Listing tables', 'get_object_details' => 'Loading table details', 'find_employee' => 'Looking up employee', 'get_team_availability' => 'Checking team availability', 'get_pipeline_summary' => 'Loading pipeline data', 'get_rep_workload' => 'Checking rep workload', 'get_rep_performance' => 'Loading performance data', 'get_recent_calls' => 'Loading call records' }.freeze
- TOOLS_WITH_SUMMARIES =
Tools with summaries. Suffix match — the SQL/describe tools are emitted as
app_db_execute_sql,versions_db_execute_sql, etc. via PostgresChatToolBuilder
prefixing, so the broadcaster strips known prefixes before lookup. See
BroadcasterRendering#humanize_tool_name and BroadcasterStreaming#broadcast_tool_result_summary. %w[ seo_batch_update_action_items seo_get_action_items edit_blog_post insert_faqs create_faq execute_sql describe_available_data ].freeze
- TOOL_PREFIXES =
Tool-name prefixes injected by PostgresChatToolBuilder so multiple databases
(production, versions) can expose distinct copies of the same logical tools.
The broadcaster strips these so display names and per-tool argument/result
formatters work without duplicating every prefixed variant in the dicts. %w[app_db_ versions_db_].freeze
Constants included from IconHelper
IconHelper::CUSTOM_ICON_MAP, IconHelper::CUSTOM_SVG_DIR, IconHelper::DEFAULT_FAMILY