Class: Assistant::SeoToolBuilder

Inherits:
Object
  • Object
show all
Defined in:
app/services/assistant/seo_tool_builder.rb

Overview

Builds RubyLLM::Tool subclasses for SEO audit operations.
Provides tools for page analysis, internal link management,
and action item tracking.

Usage (via ChatToolBuilder):
tools = Assistant::SeoToolBuilder.tools

Constant Summary collapse

SEO_AUTO_VERIFY_WINDOW =

How recently a blog post must have been modified for seo_update_action_item
to accept a "completed" status. Needs headroom for multi-step plan execution.

30.minutes

Class Method Summary collapse

Class Method Details

.crm_url_for_source(source) ⇒ Object

Build the CRM URL where a Sunny user can visually confirm a content link
was placed. Used by seo_create_content_link / seo_get_content_links
responses so Sunny can quote a verification link to the user instead of
only saying "I added the link" (see /assistant/1639 — Julia couldn't
find the showcases Sunny said it added).



26
27
28
29
30
31
32
33
34
# File 'app/services/assistant/seo_tool_builder.rb', line 26

def crm_url_for_source(source)
  case source
  when Post    then "#{Assistant::BlogToolBuilder::CRM_POST_URL}/#{source.id}/edit"
  when Article then "#{Assistant::BlogToolBuilder::CRM_POST_URL}/#{source.id}/edit"
  when Video   then "#{CRM_URL}/en-US/videos/#{source.id}/edit"
  end
rescue StandardError
  nil
end

.toolsObject



17
18
19
# File 'app/services/assistant/seo_tool_builder.rb', line 17

def tools
  @tools ||= build_tools
end