Class: Puppeteer::WebMCP

Inherits:
Object
  • Object
show all
Includes:
DebugPrint, EventCallbackable
Defined in:
lib/puppeteer/web_mcp.rb,
sig/puppeteer/web_mcp.rbs

Defined Under Namespace

Classes: ToolsEvent

Instance Method Summary collapse

Methods included from DebugPrint

#debug_print, #debug_puts

Methods included from EventCallbackable

#add_event_listener, #emit_event, #observe_first, #off, #on_event, #remove_event_listener

Constructor Details

#initialize(client, frame_manager) ⇒ Object

Parameters:



102
103
104
105
106
107
108
109
# File 'lib/puppeteer/web_mcp.rb', line 102

def initialize(client, frame_manager)
  @client = client
  @frame_manager = frame_manager
  @tools = {}
  @pending_calls = {}
  @context_listener_ids = {}
  bind_listeners
end

Instance Method Details

#initialize_domainvoid

This method returns an undefined value.



112
113
114
115
116
117
# File 'lib/puppeteer/web_mcp.rb', line 112

def initialize_domain
  @client.send_message('WebMCP.enable')
rescue => error
  debug_puts(error)
  nil
end

#invoke_tool(tool, input) ⇒ Hash[String, untyped]

Parameters:

Returns:

  • (Hash[String, untyped])


124
125
126
127
128
129
130
# File 'lib/puppeteer/web_mcp.rb', line 124

def invoke_tool(tool, input)
  @client.send_message('WebMCP.invokeTool', {
    frameId: tool.frame.id,
    toolName: tool.name,
    input: input,
  })
end

#toolsArray[Puppeteer::WebMCPTool]

Returns:



133
134
135
# File 'lib/puppeteer/web_mcp.rb', line 133

def tools
  @tools.values.flat_map(&:values)
end

#update_client(client) ⇒ void

This method returns an undefined value.

Parameters:



139
140
141
142
143
# File 'lib/puppeteer/web_mcp.rb', line 139

def update_client(client)
  @client.remove_event_listener(*@listener_ids) if @listener_ids
  @client = client
  bind_listeners
end