@veolab/discoverylab 0.1.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.
Files changed (47) hide show
  1. package/.claude-plugin/marketplace.json +15 -0
  2. package/.claude-plugin/plugin.json +12 -0
  3. package/.mcp.json +6 -0
  4. package/README.md +214 -0
  5. package/assets/applab-discovery.jpeg +0 -0
  6. package/assets/backgrounds/abstract-colorful-gradient-orange-background.jpg +0 -0
  7. package/assets/backgrounds/blurred-colorful-luxury-gradient-rainbow-abstract.jpg +0 -0
  8. package/assets/backgrounds/glowing-neon-moving-continuously-looking-bright.jpg +0 -0
  9. package/assets/backgrounds/glowing-neon-moving-continuously-looking-bright2.jpg +0 -0
  10. package/assets/backgrounds/macos-big-sur-apple-layers-fluidic-colorful-wwdc-stock-4096x2304-1455.jpg +0 -0
  11. package/assets/backgrounds/macos-sierra-mountain-peak-sunset-evening-stock-5k-5120x3684-3987.jpg +0 -0
  12. package/assets/backgrounds/macos-tahoe-26-5120x2880-22674.jpg +0 -0
  13. package/assets/backgrounds/macos-tahoe-26-5120x2880-22675.jpg +0 -0
  14. package/assets/backgrounds/view-of-the-sea-from-the-window-of-an-airplane-2024-10-21-11-25-30-utc.jpg +0 -0
  15. package/assets/cursor/cursor-blue.png +0 -0
  16. package/assets/icons/android-head_3D.png +0 -0
  17. package/assets/icons/apple-logo.png +0 -0
  18. package/assets/icons/apple-logo.svg +4 -0
  19. package/assets/icons/claude-ai-icon.svg +1 -0
  20. package/assets/icons/icons8-apple-intelligence-48.png +0 -0
  21. package/assets/icons/icons8-apple-intelligence-96.png +0 -0
  22. package/dist/chunk-7IDQLLBW.js +311 -0
  23. package/dist/chunk-MLKGABMK.js +9 -0
  24. package/dist/chunk-MN6LCZHZ.js +1320 -0
  25. package/dist/chunk-PBHUHSC3.js +6002 -0
  26. package/dist/chunk-QJXXHOV7.js +205 -0
  27. package/dist/chunk-SSRXIO2V.js +6822 -0
  28. package/dist/chunk-VY3BLXBW.js +329 -0
  29. package/dist/chunk-W3WJGYR6.js +354 -0
  30. package/dist/cli.d.ts +1 -0
  31. package/dist/cli.js +120 -0
  32. package/dist/db-IWIL65EX.js +33 -0
  33. package/dist/gridCompositor-ENKLFPWR.js +409 -0
  34. package/dist/index.d.ts +1648 -0
  35. package/dist/index.js +869 -0
  36. package/dist/ocr-UTWC7537.js +21 -0
  37. package/dist/server-3FBHBA7L.js +15 -0
  38. package/dist/server-NM5CKDUU.js +13 -0
  39. package/dist/setup-27CQAX6K.js +17 -0
  40. package/dist/tools-75BAPCUM.js +177 -0
  41. package/package.json +84 -0
  42. package/skills/generate-assets/SKILL.md +44 -0
  43. package/skills/mobile-test/SKILL.md +33 -0
  44. package/skills/open-ui/SKILL.md +24 -0
  45. package/skills/quick-capture/SKILL.md +28 -0
  46. package/skills/task-hub/SKILL.md +44 -0
  47. package/skills/web-test/SKILL.md +41 -0
@@ -0,0 +1,21 @@
1
+ import {
2
+ analyzeText,
3
+ checkTesseractAvailable,
4
+ checkVisionAvailable,
5
+ getAvailableOCREngines,
6
+ recognizeText,
7
+ recognizeTextBatch,
8
+ recognizeTextWithTesseract,
9
+ recognizeTextWithVision
10
+ } from "./chunk-W3WJGYR6.js";
11
+ import "./chunk-MLKGABMK.js";
12
+ export {
13
+ analyzeText,
14
+ checkTesseractAvailable,
15
+ checkVisionAvailable,
16
+ getAvailableOCREngines,
17
+ recognizeText,
18
+ recognizeTextBatch,
19
+ recognizeTextWithTesseract,
20
+ recognizeTextWithVision
21
+ };
@@ -0,0 +1,15 @@
1
+ import {
2
+ MCPServer,
3
+ createErrorResult,
4
+ createJsonResult,
5
+ createTextResult,
6
+ mcpServer
7
+ } from "./chunk-QJXXHOV7.js";
8
+ import "./chunk-MLKGABMK.js";
9
+ export {
10
+ MCPServer,
11
+ createErrorResult,
12
+ createJsonResult,
13
+ createTextResult,
14
+ mcpServer
15
+ };
@@ -0,0 +1,13 @@
1
+ import {
2
+ app,
3
+ startServer,
4
+ stopServer
5
+ } from "./chunk-PBHUHSC3.js";
6
+ import "./chunk-MN6LCZHZ.js";
7
+ import "./chunk-VY3BLXBW.js";
8
+ import "./chunk-MLKGABMK.js";
9
+ export {
10
+ app,
11
+ startServer,
12
+ stopServer
13
+ };
@@ -0,0 +1,17 @@
1
+ import {
2
+ setupCheckTool,
3
+ setupInitTool,
4
+ setupInstallTool,
5
+ setupStatusTool,
6
+ setupTools
7
+ } from "./chunk-7IDQLLBW.js";
8
+ import "./chunk-QJXXHOV7.js";
9
+ import "./chunk-VY3BLXBW.js";
10
+ import "./chunk-MLKGABMK.js";
11
+ export {
12
+ setupCheckTool,
13
+ setupInitTool,
14
+ setupInstallTool,
15
+ setupStatusTool,
16
+ setupTools
17
+ };
@@ -0,0 +1,177 @@
1
+ import {
2
+ analyzeScreenshotTool,
3
+ analyzeTools,
4
+ analyzeVideoTool,
5
+ canvasCompareTool,
6
+ canvasCreateTool,
7
+ canvasDevicesTool,
8
+ canvasHtmlTool,
9
+ canvasPresetsTool,
10
+ canvasSvgTool,
11
+ canvasTools,
12
+ captureEmulatorTool,
13
+ captureScreenTool,
14
+ captureTools,
15
+ driveFolderTool,
16
+ driveLoginTool,
17
+ driveQuickExportTool,
18
+ driveStatusTool,
19
+ driveUploadTool,
20
+ exportBatchTool,
21
+ exportClipboardTool,
22
+ exportConcatTool,
23
+ exportGifTool,
24
+ exportImageTool,
25
+ exportInfoTool,
26
+ exportMockupsTool,
27
+ exportRevealTool,
28
+ exportSequenceTool,
29
+ exportThumbnailTool,
30
+ exportToTool,
31
+ exportTools,
32
+ exportTrimTool,
33
+ exportVideoTool,
34
+ extractFramesTool,
35
+ integrationTools,
36
+ jiraAttachTool,
37
+ jiraCommentTool,
38
+ jiraCreateTool,
39
+ jiraLoginTool,
40
+ jiraQuickExportTool,
41
+ jiraStatusTool,
42
+ listEmulatorsTool,
43
+ maestroGenerateTool,
44
+ maestroRunTool,
45
+ maestroStatusTool,
46
+ maestroStudioTool,
47
+ notionExportTool,
48
+ notionLoginTool,
49
+ notionQuickExportTool,
50
+ notionStatusTool,
51
+ playwrightCodegenTool,
52
+ playwrightDevicesTool,
53
+ playwrightGenerateTool,
54
+ playwrightInstallTool,
55
+ playwrightReportTool,
56
+ playwrightRunTool,
57
+ playwrightStatusTool,
58
+ projectCreateTool,
59
+ projectDeleteTool,
60
+ projectGetTool,
61
+ projectListTool,
62
+ projectSaveTool,
63
+ projectTools,
64
+ startRecordingTool,
65
+ stopRecordingTool,
66
+ taskHubGenerateTool,
67
+ taskHubLinksAddTool,
68
+ taskHubLinksListTool,
69
+ taskHubLinksRemoveTool,
70
+ taskHubMetadataFetchTool,
71
+ taskHubRequirementsGetTool,
72
+ taskHubTestMapGetTool,
73
+ taskHubTestMapToggleTool,
74
+ taskHubTools,
75
+ testDevicesTool,
76
+ testingTools,
77
+ uiOpenTool,
78
+ uiStatusTool,
79
+ uiTools,
80
+ videoInfoTool
81
+ } from "./chunk-SSRXIO2V.js";
82
+ import "./chunk-W3WJGYR6.js";
83
+ import {
84
+ setupCheckTool,
85
+ setupInitTool,
86
+ setupStatusTool,
87
+ setupTools
88
+ } from "./chunk-7IDQLLBW.js";
89
+ import "./chunk-QJXXHOV7.js";
90
+ import "./chunk-MN6LCZHZ.js";
91
+ import "./chunk-VY3BLXBW.js";
92
+ import "./chunk-MLKGABMK.js";
93
+ export {
94
+ analyzeScreenshotTool,
95
+ analyzeTools,
96
+ analyzeVideoTool,
97
+ canvasCompareTool,
98
+ canvasCreateTool,
99
+ canvasDevicesTool,
100
+ canvasHtmlTool,
101
+ canvasPresetsTool,
102
+ canvasSvgTool,
103
+ canvasTools,
104
+ captureEmulatorTool,
105
+ captureScreenTool,
106
+ captureTools,
107
+ driveFolderTool,
108
+ driveLoginTool,
109
+ driveQuickExportTool,
110
+ driveStatusTool,
111
+ driveUploadTool,
112
+ exportBatchTool,
113
+ exportClipboardTool,
114
+ exportConcatTool,
115
+ exportGifTool,
116
+ exportImageTool,
117
+ exportInfoTool,
118
+ exportMockupsTool,
119
+ exportRevealTool,
120
+ exportSequenceTool,
121
+ exportThumbnailTool,
122
+ exportToTool,
123
+ exportTools,
124
+ exportTrimTool,
125
+ exportVideoTool,
126
+ extractFramesTool,
127
+ integrationTools,
128
+ jiraAttachTool,
129
+ jiraCommentTool,
130
+ jiraCreateTool,
131
+ jiraLoginTool,
132
+ jiraQuickExportTool,
133
+ jiraStatusTool,
134
+ listEmulatorsTool,
135
+ maestroGenerateTool,
136
+ maestroRunTool,
137
+ maestroStatusTool,
138
+ maestroStudioTool,
139
+ notionExportTool,
140
+ notionLoginTool,
141
+ notionQuickExportTool,
142
+ notionStatusTool,
143
+ playwrightCodegenTool,
144
+ playwrightDevicesTool,
145
+ playwrightGenerateTool,
146
+ playwrightInstallTool,
147
+ playwrightReportTool,
148
+ playwrightRunTool,
149
+ playwrightStatusTool,
150
+ projectCreateTool,
151
+ projectDeleteTool,
152
+ projectGetTool,
153
+ projectListTool,
154
+ projectSaveTool,
155
+ projectTools,
156
+ setupCheckTool,
157
+ setupInitTool,
158
+ setupStatusTool,
159
+ setupTools,
160
+ startRecordingTool,
161
+ stopRecordingTool,
162
+ taskHubGenerateTool,
163
+ taskHubLinksAddTool,
164
+ taskHubLinksListTool,
165
+ taskHubLinksRemoveTool,
166
+ taskHubMetadataFetchTool,
167
+ taskHubRequirementsGetTool,
168
+ taskHubTestMapGetTool,
169
+ taskHubTestMapToggleTool,
170
+ taskHubTools,
171
+ testDevicesTool,
172
+ testingTools,
173
+ uiOpenTool,
174
+ uiStatusTool,
175
+ uiTools,
176
+ videoInfoTool
177
+ };
package/package.json ADDED
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "@veolab/discoverylab",
3
+ "version": "0.1.0",
4
+ "description": "AI-powered app testing & evidence generator - Claude Code Plugin",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "discoverylab": "dist/cli.js"
9
+ },
10
+ "scripts": {
11
+ "dev": "tsx watch src/cli.ts serve",
12
+ "build": "tsup src/index.ts src/cli.ts --format esm --dts",
13
+ "start": "node dist/cli.js serve",
14
+ "mcp": "node dist/index.js"
15
+ },
16
+ "keywords": [
17
+ "claude",
18
+ "mcp",
19
+ "plugin",
20
+ "app-testing",
21
+ "evidence",
22
+ "mockup",
23
+ "screen-recording",
24
+ "maestro",
25
+ "playwright",
26
+ "ai"
27
+ ],
28
+ "author": "Anderson Melo",
29
+ "license": "MIT",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/veolab/applab-discovery.git"
33
+ },
34
+ "engines": {
35
+ "node": ">=20.0.0"
36
+ },
37
+ "dependencies": {
38
+ "@anthropic-ai/sdk": "^0.30.0",
39
+ "@hono/node-server": "^1.19.9",
40
+ "@types/ws": "^8.18.1",
41
+ "better-sqlite3": "^11.0.0",
42
+ "canvas": "^3.2.1",
43
+ "chalk": "^5.3.0",
44
+ "commander": "^12.0.0",
45
+ "drizzle-orm": "^0.35.0",
46
+ "hono": "^4.0.0",
47
+ "open": "^10.0.0",
48
+ "playwright": "^1.57.0",
49
+ "three": "^0.170.0",
50
+ "ws": "^8.19.0",
51
+ "zod": "^3.23.0"
52
+ },
53
+ "devDependencies": {
54
+ "@types/better-sqlite3": "^7.6.0",
55
+ "@types/node": "^20.0.0",
56
+ "@types/three": "^0.170.0",
57
+ "drizzle-kit": "^0.26.0",
58
+ "tsup": "^8.0.0",
59
+ "tsx": "^4.0.0",
60
+ "typescript": "^5.4.0"
61
+ },
62
+ "claude-plugin": {
63
+ "name": "DiscoveryLab",
64
+ "description": "AI-powered app testing & evidence generator",
65
+ "version": "0.1.0",
66
+ "tools": [
67
+ "dlab.capture.screen",
68
+ "dlab.capture.emulator",
69
+ "dlab.analyze.video",
70
+ "dlab.analyze.screenshot",
71
+ "dlab.canvas.create",
72
+ "dlab.canvas.export",
73
+ "dlab.maestro.run",
74
+ "dlab.playwright.run",
75
+ "dlab.ui.open",
76
+ "dlab.project.list",
77
+ "dlab.project.create",
78
+ "dlab.project.save",
79
+ "dlab.project.export",
80
+ "dlab.setup.status",
81
+ "dlab.setup.install"
82
+ ]
83
+ }
84
+ }
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: generate-assets
3
+ description: Generate marketing assets from app screenshots
4
+ context: fork
5
+ agent: general-purpose
6
+ ---
7
+
8
+ # Generate Marketing Assets
9
+
10
+ Create professional marketing assets from captured app screenshots and recordings.
11
+
12
+ ## Workflow
13
+
14
+ 1. **Select Project**: Use `dlab.project.list` to find project with captures
15
+ 2. **Review Frames**: Analyze available screenshots and extracted frames
16
+ 3. **Generate Assets**: Create marketing materials:
17
+ - App Store screenshots with device frames
18
+ - Feature highlight images
19
+ - Social media banners
20
+ - Documentation screenshots
21
+ 4. **Export**: Use `dlab.project.export` to save final assets
22
+
23
+ ## Asset Types
24
+
25
+ ### App Store Screenshots
26
+ - iPhone/iPad device frames
27
+ - Android device frames
28
+ - Custom backgrounds and captions
29
+
30
+ ### Marketing Materials
31
+ - Feature spotlights
32
+ - Before/after comparisons
33
+ - UI walkthrough sequences
34
+
35
+ ### Documentation
36
+ - User guide screenshots
37
+ - Help center images
38
+ - Release notes visuals
39
+
40
+ ## Integration
41
+
42
+ - Export to Notion with `dlab.notion.export`
43
+ - Upload to Google Drive with `dlab.drive.upload`
44
+ - Attach to Jira tickets with `dlab.jira.attach`
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: mobile-test
3
+ description: Full mobile testing workflow with Maestro recording
4
+ context: fork
5
+ agent: general-purpose
6
+ ---
7
+
8
+ # Mobile Test Workflow
9
+
10
+ Complete mobile app testing workflow using Maestro for iOS/Android automation and recording.
11
+
12
+ ## Workflow
13
+
14
+ 1. **Setup Check**: Use `dlab.setup.status` to verify dependencies (Maestro, emulators)
15
+ 2. **Project Setup**: Create or select project with `dlab.project.create` or `dlab.project.list`
16
+ 3. **Start Recording**: Begin recording with `dlab.capture.start`
17
+ 4. **Guide Testing**: Help user through app interactions while recording
18
+ 5. **Stop Recording**: End recording with `dlab.capture.stop`
19
+ 6. **Process Results**: Frames are extracted and analyzed automatically
20
+ 7. **Generate Tests**: Use `dlab.taskhub.generate` to create test cases from recording
21
+
22
+ ## Prerequisites
23
+
24
+ - iOS Simulator or Android Emulator running
25
+ - Maestro CLI installed (`brew install maestro`)
26
+ - App under test launched on emulator
27
+
28
+ ## Output
29
+
30
+ - Extracted frames with OCR analysis
31
+ - AI-generated test cases
32
+ - Requirements documentation
33
+ - Evidence for QA/stakeholders
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: open-ui
3
+ description: Open the DiscoveryLab web interface
4
+ disable-model-invocation: true
5
+ allowed-tools: dlab.ui.open, dlab.ui.status
6
+ ---
7
+
8
+ # Open DiscoveryLab UI
9
+
10
+ Opens the DiscoveryLab web interface in your default browser.
11
+
12
+ ## Workflow
13
+
14
+ 1. Check if server is running with `dlab.ui.status`
15
+ 2. If not running, start server and open UI with `dlab.ui.open`
16
+ 3. Return the URL to the user
17
+
18
+ ## Usage
19
+
20
+ This skill provides quick access to the DiscoveryLab dashboard where you can:
21
+ - Manage projects
22
+ - View captured screenshots and recordings
23
+ - Configure settings
24
+ - Access the Task Hub
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: quick-capture
3
+ description: Quickly capture iOS/Android emulator screen
4
+ disable-model-invocation: true
5
+ allowed-tools: dlab.capture.emulator, dlab.project.create, dlab.project.list
6
+ ---
7
+
8
+ # Quick Capture
9
+
10
+ Quickly capture the current screen from an iOS Simulator or Android Emulator.
11
+
12
+ ## Workflow
13
+
14
+ 1. Use `dlab.capture.emulator` to capture current emulator screen
15
+ 2. Optionally use `dlab.project.create` to create a new project with the capture
16
+ 3. Return the captured image path to user
17
+
18
+ ## Parameters
19
+
20
+ - **platform**: `ios` or `android` (auto-detected if only one is running)
21
+ - **projectId**: Optional - associate capture with existing project
22
+
23
+ ## Usage
24
+
25
+ Perfect for:
26
+ - Quick bug documentation
27
+ - UI state capture during development
28
+ - Creating evidence for QA tickets
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: task-hub
3
+ description: Manage external links, requirements and test maps
4
+ context: fork
5
+ agent: general-purpose
6
+ ---
7
+
8
+ # Task Hub Management
9
+
10
+ Manage external links (Jira, Notion, Figma, GitHub) and generate requirements and test maps.
11
+
12
+ ## Workflow
13
+
14
+ 1. **Select Project**: Use `dlab.project.list` to find or create project
15
+ 2. **Add Links**: Use `dlab.taskhub.links.add` to connect external resources:
16
+ - Jira tickets for requirements
17
+ - Notion pages for documentation
18
+ - Figma files for designs
19
+ - GitHub issues/PRs for code context
20
+ 3. **Fetch Metadata**: Use `dlab.taskhub.metadata.fetch` to extract info from links
21
+ 4. **Generate Content**: Use `dlab.taskhub.generate` to create:
22
+ - Requirements list from linked resources
23
+ - Test map with acceptance criteria
24
+ 5. **Track Progress**: Use `dlab.taskhub.testmap.toggle` to mark tests complete
25
+
26
+ ## Link Types
27
+
28
+ | Type | Extracted Info |
29
+ |------|----------------|
30
+ | Jira | Ticket key, title, description, status |
31
+ | Notion | Page title, content summary |
32
+ | Figma | File name, frame names, comments |
33
+ | GitHub | Issue/PR title, description, labels |
34
+
35
+ ## Tools
36
+
37
+ - `dlab.taskhub.links.list` - View all linked resources
38
+ - `dlab.taskhub.links.add` - Add new external link
39
+ - `dlab.taskhub.links.remove` - Remove a link
40
+ - `dlab.taskhub.metadata.fetch` - Fetch URL metadata
41
+ - `dlab.taskhub.generate` - Generate requirements & tests
42
+ - `dlab.taskhub.requirements.get` - Get requirements list
43
+ - `dlab.taskhub.testmap.get` - Get test checklist
44
+ - `dlab.taskhub.testmap.toggle` - Toggle test completion
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: web-test
3
+ description: Web testing workflow with Playwright recording
4
+ context: fork
5
+ agent: general-purpose
6
+ ---
7
+
8
+ # Web Test Workflow
9
+
10
+ Complete web application testing workflow using Playwright for browser automation and recording.
11
+
12
+ ## Workflow
13
+
14
+ 1. **Setup Check**: Use `dlab.setup.status` to verify Playwright is installed
15
+ 2. **Project Setup**: Create or select project with `dlab.project.create` or `dlab.project.list`
16
+ 3. **Start Recording**: Launch browser and begin recording with web recording tools
17
+ 4. **Guide Testing**: Help user navigate the web application while capturing interactions
18
+ 5. **Stop Recording**: End recording and save video
19
+ 6. **Process Results**: Extract frames and analyze with AI
20
+ 7. **Generate Tests**: Create Playwright test scripts from recorded interactions
21
+
22
+ ## Prerequisites
23
+
24
+ - Node.js 20+
25
+ - Playwright installed (`npx playwright install`)
26
+ - Target URL accessible
27
+
28
+ ## Features
29
+
30
+ - Uses user's installed Chrome (not bundled Chromium)
31
+ - Configurable viewport sizes
32
+ - Network request capture
33
+ - Console log capture
34
+ - Video recording with frame extraction
35
+
36
+ ## Output
37
+
38
+ - Recorded video of session
39
+ - Extracted key frames
40
+ - Generated Playwright test scripts
41
+ - Requirements and test documentation