headless_browser_tool 0.1.1 → 0.1.3
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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/CHANGELOG.md +2 -1
- data/README.md +7 -7
- data/claude-swarm.yml +37 -0
- data/lib/headless_browser_tool/browser.rb +7 -7
- data/lib/headless_browser_tool/tools/maximize_window_tool.rb +2 -2
- data/lib/headless_browser_tool/tools/resize_window_tool.rb +2 -2
- data/lib/headless_browser_tool/version.rb +1 -1
- metadata +9 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 290c3d1595365bb41070457d7ba8026f8abbfc771aba7fabd0409b740d7d5f7d
|
|
4
|
+
data.tar.gz: 0454c5c97401fcd82070719031361d3627a3240c3142fc485585a66f49ddf79d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c9b91e594463aad6541c01f7431e382a0028ec4d566d68fcc825b7c0ecf8ec7392b7dd6ada719de62955c2d39848aa6c191362df492b007334852435b9a005f5
|
|
7
|
+
data.tar.gz: 37efabbfc4c278f126f97fce97f40656ce99e2eee0814da95cc15c068c89707e6a7aa4997a13aee21145851672a2ae0f8e5a37c7ea709cc9b325f257843cb6c8
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ruby-3.4.
|
|
1
|
+
ruby-3.4.5
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -358,7 +358,13 @@ All tools are available through the MCP protocol. Here's a complete reference:
|
|
|
358
358
|
| `maximize_window` | Maximize window | None | `{size_before: {width, height}, size_after: {width, height}, status}` |
|
|
359
359
|
| `resize_window` | Resize window | `width`, `height` (required) | `{requested_size, size_before, size_after, status}` |
|
|
360
360
|
|
|
361
|
-
####
|
|
361
|
+
#### Session Management Tools
|
|
362
|
+
|
|
363
|
+
| Tool | Description | Returns |
|
|
364
|
+
|------|-------------|---------|
|
|
365
|
+
| `get_session_info` | Get session information | Session details |
|
|
366
|
+
|
|
367
|
+
#### Smart Tools (experimental)
|
|
362
368
|
|
|
363
369
|
| Tool | Description | Parameters |
|
|
364
370
|
|------|-------------|------------|
|
|
@@ -366,12 +372,6 @@ All tools are available through the MCP protocol. Here's a complete reference:
|
|
|
366
372
|
| `get_narration_history` | Get narration history | None |
|
|
367
373
|
| `visual_diff` | Compare screenshots | `before_path`, `after_path` (required) |
|
|
368
374
|
|
|
369
|
-
#### Session Management Tools
|
|
370
|
-
|
|
371
|
-
| Tool | Description | Returns |
|
|
372
|
-
|------|-------------|---------|
|
|
373
|
-
| `get_session_info` | Get session information | Session details |
|
|
374
|
-
|
|
375
375
|
### Tool Response Structure
|
|
376
376
|
|
|
377
377
|
All tools now return structured data instead of simple strings. This makes it easier to:
|
data/claude-swarm.yml
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
swarm:
|
|
3
|
+
name: "Swarm Name"
|
|
4
|
+
main: lead_developer
|
|
5
|
+
instances:
|
|
6
|
+
lead_developer:
|
|
7
|
+
directory: .
|
|
8
|
+
model: sonnet
|
|
9
|
+
prompt: "You are the lead developer coordinating the team"
|
|
10
|
+
tools: [Read, Edit, Bash, Write]
|
|
11
|
+
connections: [frontend_dev, backend_dev]
|
|
12
|
+
|
|
13
|
+
# Example instances (uncomment and modify as needed):
|
|
14
|
+
|
|
15
|
+
frontend_dev:
|
|
16
|
+
directory: .
|
|
17
|
+
model: sonnet
|
|
18
|
+
prompt: "You specialize in frontend development with React, TypeScript, and modern web technologies"
|
|
19
|
+
tools: [Read, Edit, Write, "Bash(npm:*)", "Bash(yarn:*)", "Bash(pnpm:*)"]
|
|
20
|
+
|
|
21
|
+
backend_dev:
|
|
22
|
+
directory: .
|
|
23
|
+
model: sonnet
|
|
24
|
+
prompt: "You specialize in backend development, APIs, databases, and server architecture"
|
|
25
|
+
tools: [Read, Edit, Write, Bash]
|
|
26
|
+
|
|
27
|
+
# devops_engineer:
|
|
28
|
+
# directory: .
|
|
29
|
+
# model: sonnet
|
|
30
|
+
# prompt: "You specialize in infrastructure, CI/CD, containerization, and deployment"
|
|
31
|
+
# tools: [Read, Edit, Write, "Bash(docker:*)", "Bash(kubectl:*)", "Bash(terraform:*)"]
|
|
32
|
+
|
|
33
|
+
# qa_engineer:
|
|
34
|
+
# directory: ./tests
|
|
35
|
+
# model: sonnet
|
|
36
|
+
# prompt: "You specialize in testing, quality assurance, and test automation"
|
|
37
|
+
# tools: [Read, Edit, Write, Bash]
|
|
@@ -326,6 +326,13 @@ module HeadlessBrowserTool
|
|
|
326
326
|
}
|
|
327
327
|
end
|
|
328
328
|
|
|
329
|
+
def get_window_size
|
|
330
|
+
size = @session.current_window.size
|
|
331
|
+
{ width: size[0], height: size[1] }
|
|
332
|
+
rescue StandardError
|
|
333
|
+
{ width: nil, height: nil }
|
|
334
|
+
end
|
|
335
|
+
|
|
329
336
|
private
|
|
330
337
|
|
|
331
338
|
def extract_attributes(element)
|
|
@@ -338,13 +345,6 @@ module HeadlessBrowserTool
|
|
|
338
345
|
attrs
|
|
339
346
|
end
|
|
340
347
|
|
|
341
|
-
def get_window_size
|
|
342
|
-
size = @session.current_window.size
|
|
343
|
-
{ width: size[0], height: size[1] }
|
|
344
|
-
rescue StandardError
|
|
345
|
-
{ width: nil, height: nil }
|
|
346
|
-
end
|
|
347
|
-
|
|
348
348
|
def get_window_position
|
|
349
349
|
# Try to get window position, but this might not be supported by all drivers
|
|
350
350
|
|
|
@@ -10,12 +10,12 @@ module HeadlessBrowserTool
|
|
|
10
10
|
|
|
11
11
|
def execute
|
|
12
12
|
# Get window size before maximizing
|
|
13
|
-
size_before = browser.
|
|
13
|
+
size_before = browser.get_window_size
|
|
14
14
|
|
|
15
15
|
browser.maximize_window
|
|
16
16
|
|
|
17
17
|
# Get window size after maximizing
|
|
18
|
-
size_after = browser.
|
|
18
|
+
size_after = browser.get_window_size
|
|
19
19
|
|
|
20
20
|
{
|
|
21
21
|
size_before: {
|
|
@@ -15,12 +15,12 @@ module HeadlessBrowserTool
|
|
|
15
15
|
|
|
16
16
|
def execute(width:, height:)
|
|
17
17
|
# Get window size before resizing
|
|
18
|
-
size_before = browser.
|
|
18
|
+
size_before = browser.get_window_size
|
|
19
19
|
|
|
20
20
|
browser.resize_window(width, height)
|
|
21
21
|
|
|
22
22
|
# Get actual window size after resizing
|
|
23
|
-
size_after = browser.
|
|
23
|
+
size_after = browser.get_window_size
|
|
24
24
|
|
|
25
25
|
{
|
|
26
26
|
requested_size: {
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: headless_browser_tool
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Paulo Arruda
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: capybara
|
|
@@ -24,19 +24,19 @@ dependencies:
|
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '0'
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: fast-mcp
|
|
27
|
+
name: fast-mcp-annotations
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
|
-
- - "
|
|
30
|
+
- - "~>"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
32
|
+
version: '1.5'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
|
-
- - "
|
|
37
|
+
- - "~>"
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
39
|
+
version: '1.5'
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: json
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -166,6 +166,7 @@ files:
|
|
|
166
166
|
- LICENSE.md
|
|
167
167
|
- README.md
|
|
168
168
|
- Rakefile
|
|
169
|
+
- claude-swarm.yml
|
|
169
170
|
- config.ru
|
|
170
171
|
- exe/hbt
|
|
171
172
|
- lib/headless_browser_tool.rb
|
|
@@ -250,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
250
251
|
- !ruby/object:Gem::Version
|
|
251
252
|
version: '0'
|
|
252
253
|
requirements: []
|
|
253
|
-
rubygems_version: 3.6.
|
|
254
|
+
rubygems_version: 3.6.9
|
|
254
255
|
specification_version: 4
|
|
255
256
|
summary: A headless browser control tool with MCP server
|
|
256
257
|
test_files: []
|