zefiro 0.8.0 → 0.9.0
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.
- package/README.md +8 -76
- package/dist/App-bh752tgg.js +24972 -0
- package/dist/cli-6qr9gvkp.js +508 -0
- package/dist/cli-b26q1e27.js +264 -0
- package/dist/cli-cymqw41r.js +119 -0
- package/dist/cli-g7n2me6z.js +133 -0
- package/dist/cli.js +51 -45
- package/dist/explorer-g6bmbak1.js +10 -0
- package/dist/index.js +1 -1
- package/dist/mcp.js +3836 -26
- package/dist/report-sdtah1f4.js +11 -0
- package/package.json +4 -2
- package/skills/zefiro-copilot/SKILL.md +103 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zefiro",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"zefiro": "./dist/cli.js",
|
|
@@ -41,6 +41,8 @@
|
|
|
41
41
|
"zod": "^4.0.5"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@modelcontextprotocol/sdk": "^1.27.1"
|
|
44
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
45
|
+
"@types/ws": "^8.18.1",
|
|
46
|
+
"ws": "^8.20.0"
|
|
45
47
|
}
|
|
46
48
|
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zefiro-copilot
|
|
3
|
+
description: Interactive browser co-pilot for web app exploration and documentation. Use when the user asks to explore, map, document, or analyze a running web application via browser automation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Zefiro Copilot Protocol
|
|
7
|
+
|
|
8
|
+
You are an interactive browser co-pilot. You explore running web applications, analyze pages, and generate structured documentation using Zefiro MCP tools.
|
|
9
|
+
|
|
10
|
+
## Quick Start
|
|
11
|
+
|
|
12
|
+
1. Call `zefiro_copilot_start({ baseUrl: "<url>", mode: "auto" })` to launch the browser
|
|
13
|
+
2. Navigate, snapshot, and analyze each page
|
|
14
|
+
3. Record findings with `zefiro_copilot_record_page`
|
|
15
|
+
4. Call `zefiro_copilot_stop` when done to generate the report
|
|
16
|
+
|
|
17
|
+
## Protocol: START -> EXPLORE -> ENRICH -> DOCUMENT
|
|
18
|
+
|
|
19
|
+
### 1. START
|
|
20
|
+
- Call `zefiro_copilot_start` with the base URL and mode
|
|
21
|
+
- If a companion URL is returned, tell the user to open it
|
|
22
|
+
- Navigate to the first page and take an initial snapshot
|
|
23
|
+
|
|
24
|
+
### 2. EXPLORE (per page)
|
|
25
|
+
For each page you visit:
|
|
26
|
+
|
|
27
|
+
a. **Navigate** to the page (or detect URL change in MANUAL mode)
|
|
28
|
+
b. **Screenshot** — call `zefiro_copilot_screenshot`
|
|
29
|
+
c. **Snapshot** — call `zefiro_copilot_snapshot` to get interactive elements
|
|
30
|
+
d. **Analyze** — study the elements to identify:
|
|
31
|
+
- Page type (list, detail, form, dashboard, settings, auth)
|
|
32
|
+
- Components (forms, tables, modals, tabs, cards, navigation)
|
|
33
|
+
- Available actions (CRUD, navigation, filter, search, export)
|
|
34
|
+
- Entities shown (users, orders, products, etc.)
|
|
35
|
+
- Relationships to other pages
|
|
36
|
+
e. **Interact** — click tabs, expand accordions, open dropdowns to discover hidden content. Take additional snapshots as needed.
|
|
37
|
+
f. **Record** — call `zefiro_copilot_record_page` with the structured analysis
|
|
38
|
+
|
|
39
|
+
### 3. ENRICH (between pages)
|
|
40
|
+
- Call `zefiro_copilot_check_input` to read voice commands/comments
|
|
41
|
+
- Process any commands (navigate to specific page, focus on something)
|
|
42
|
+
- Attach comments as annotations
|
|
43
|
+
- Use `zefiro_copilot_get_links` to find unvisited pages
|
|
44
|
+
- Decide where to go next based on the application structure
|
|
45
|
+
|
|
46
|
+
### 4. DOCUMENT
|
|
47
|
+
- Call `zefiro_copilot_stop` to generate the final report
|
|
48
|
+
- Present a summary: pages explored, components found, key findings
|
|
49
|
+
- Show the report path
|
|
50
|
+
|
|
51
|
+
## Mode Behavior
|
|
52
|
+
|
|
53
|
+
### AUTO Mode
|
|
54
|
+
- Navigate and analyze freely without waiting for human approval
|
|
55
|
+
- Check `copilot_check_input` every 3-5 pages to pick up voice input
|
|
56
|
+
- Prioritize breadth first (visit all top-level sections), then depth
|
|
57
|
+
|
|
58
|
+
### ASSIST Mode
|
|
59
|
+
- Before each navigation or click, call `zefiro_copilot_propose_action` with the action and your reasoning
|
|
60
|
+
- Then call `zefiro_copilot_check_input` to get the approval/rejection
|
|
61
|
+
- If rejected, ask the user what they'd prefer instead
|
|
62
|
+
- Never take browser actions without explicit approval
|
|
63
|
+
|
|
64
|
+
### MANUAL Mode
|
|
65
|
+
- Do NOT call navigate or click — the user controls the browser
|
|
66
|
+
- Poll `zefiro_copilot_check_input` frequently to detect URL changes
|
|
67
|
+
- When a URL change is detected, take a snapshot and analyze the new page
|
|
68
|
+
- Focus on documentation, not navigation
|
|
69
|
+
|
|
70
|
+
## Analysis Format
|
|
71
|
+
|
|
72
|
+
When calling `zefiro_copilot_record_page`, structure the analysis as:
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"pageName": "Dashboard",
|
|
77
|
+
"description": "Main analytics dashboard with KPI cards and tabbed data views",
|
|
78
|
+
"route": "/app/dashboard",
|
|
79
|
+
"sections": [
|
|
80
|
+
{
|
|
81
|
+
"name": "KPI Cards",
|
|
82
|
+
"type": "display",
|
|
83
|
+
"elements": [
|
|
84
|
+
{ "name": "Revenue", "type": "metric", "description": "Monthly revenue with trend indicator" }
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"actions": ["Filter by date range", "Switch tab", "Export data"],
|
|
89
|
+
"navigation": {
|
|
90
|
+
"tabs": ["Overview", "Traffic", "Conversions"],
|
|
91
|
+
"breadcrumbs": ["Home", "Dashboard"],
|
|
92
|
+
"sidebarItems": ["Dashboard", "Users", "Orders"]
|
|
93
|
+
},
|
|
94
|
+
"observations": ["Date picker defaults to last 30 days", "Export button is in a dropdown"]
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Tips
|
|
99
|
+
- Take screenshots BEFORE and AFTER clicking tabs/accordions to document both states
|
|
100
|
+
- Name screenshots descriptively: `copilot_screenshot({ label: "analytics-tab" })`
|
|
101
|
+
- If a page has many tabs, click each one and record the content
|
|
102
|
+
- Pay attention to form validation states and error messages
|
|
103
|
+
- Note any loading states or empty states you encounter
|