Class: BrainzLab::Vision::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/brainzlab/vision/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Client

Returns a new instance of Client.



10
11
12
# File 'lib/brainzlab/vision/client.rb', line 10

def initialize(config)
  @config = config
end

Instance Method Details

#ai_action(session_id:, instruction:, model: nil) ⇒ Object

Perform an AI-powered action



39
40
41
42
43
44
45
46
47
# File 'lib/brainzlab/vision/client.rb', line 39

def ai_action(session_id:, instruction:, model: nil)
  payload = {
    session_id: session_id,
    instruction: instruction
  }
  payload[:model] = model if model

  post('/mcp/tools/vision_ai_action', payload)
end

#close_session(session_id:) ⇒ Object

Close a session



73
74
75
# File 'lib/brainzlab/vision/client.rb', line 73

def close_session(session_id:)
  post('/mcp/tools/vision_session_close', { session_id: session_id })
end

#create_session(url: nil, viewport: nil, browser_provider: nil) ⇒ Object

Create a browser session



29
30
31
32
33
34
35
36
# File 'lib/brainzlab/vision/client.rb', line 29

def create_session(url: nil, viewport: nil, browser_provider: nil)
  payload = {}
  payload[:url] = url if url
  payload[:viewport] = viewport if viewport
  payload[:browser_provider] = browser_provider if browser_provider

  post('/mcp/tools/vision_session_create', payload)
end

#execute_task(instruction:, start_url:, model: nil, browser_provider: nil, max_steps: 50, timeout: 300) ⇒ Object

Execute an autonomous AI task



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/brainzlab/vision/client.rb', line 15

def execute_task(instruction:, start_url:, model: nil, browser_provider: nil, max_steps: 50, timeout: 300)
  payload = {
    instruction: instruction,
    start_url: start_url,
    max_steps: max_steps,
    timeout: timeout
  }
  payload[:model] = model if model
  payload[:browser_provider] = browser_provider if browser_provider

  post('/mcp/tools/vision_task', payload)
end

#extract(session_id:, schema:, instruction: nil) ⇒ Object

Extract structured data



62
63
64
65
66
67
68
69
70
# File 'lib/brainzlab/vision/client.rb', line 62

def extract(session_id:, schema:, instruction: nil)
  payload = {
    session_id: session_id,
    schema: schema
  }
  payload[:instruction] = instruction if instruction

  post('/mcp/tools/vision_extract', payload)
end

#perform(session_id:, action:, selector: nil, value: nil) ⇒ Object

Perform a direct browser action



50
51
52
53
54
55
56
57
58
59
# File 'lib/brainzlab/vision/client.rb', line 50

def perform(session_id:, action:, selector: nil, value: nil)
  payload = {
    session_id: session_id,
    action: action.to_s
  }
  payload[:selector] = selector if selector
  payload[:value] = value if value

  post('/mcp/tools/vision_perform', payload)
end

#screenshot(session_id:, full_page: true) ⇒ Object

Take a screenshot



78
79
80
81
82
83
# File 'lib/brainzlab/vision/client.rb', line 78

def screenshot(session_id:, full_page: true)
  post('/mcp/tools/vision_screenshot', {
         session_id: session_id,
         full_page: full_page
       })
end