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.
@@ -0,0 +1,11 @@
1
+ import {
2
+ generateIndexHtml,
3
+ generateReadme,
4
+ generateSectionMarkdown
5
+ } from "./cli-6qr9gvkp.js";
6
+ import"./cli-wckvcay0.js";
7
+ export {
8
+ generateSectionMarkdown,
9
+ generateReadme,
10
+ generateIndexHtml
11
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zefiro",
3
- "version": "0.8.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