sparkecoder 0.1.63 → 0.1.65
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/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.js +812 -30
- package/dist/agent/index.js.map +1 -1
- package/dist/cli.js +1115 -185
- package/dist/cli.js.map +1 -1
- package/dist/db/index.js.map +1 -1
- package/dist/{index-Dn-eCGLe.d.ts → index-BhKQYdOx.d.ts} +11 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1131 -166
- package/dist/index.js.map +1 -1
- package/dist/{search-DINnDTgj.d.ts → search-DkNNtC5A.d.ts} +1 -0
- package/dist/server/index.js +1131 -166
- package/dist/server/index.js.map +1 -1
- package/dist/skills/default/qa.md +317 -0
- package/dist/tools/index.d.ts +30 -3
- package/dist/tools/index.js +428 -7
- package/dist/tools/index.js.map +1 -1
- package/package.json +3 -1
- package/src/skills/default/qa.md +317 -0
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/web/.next/server/app/(main)/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app/(main)/session/[id]/page.js.nft.json +1 -1
- package/web/.next/standalone/web/.next/server/app/(main)/session/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/api/config/route.js.nft.json +1 -1
- package/web/.next/standalone/web/.next/server/app/api/health/route.js.nft.json +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.html +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/installation.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_full.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_index.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.html +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/skills.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_full.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_index.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.html +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/tools.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_full.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_index.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs.html +2 -2
- package/web/.next/standalone/web/.next/server/app/docs.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs.segments/_full.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs.segments/_index.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/embed/[id]/page.js.nft.json +1 -1
- package/web/.next/standalone/web/.next/server/app/embed/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/app/index.html +1 -1
- package/web/.next/standalone/web/.next/server/app/index.rsc +4 -4
- package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p/__PAGE__.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_bfc8ef7d._.js → 2374f_1225fb9d._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_c61a33b3._.js → 2374f_2775224f._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_de60e6ea._.js → 2374f_2eac907f._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_ab5b97d8._.js → 2374f_32fd5733._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_e366206f._.js → 2374f_3db08933._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_68abddfe._.js → 2374f_51500fd2._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_5d0b3394._.js → 2374f_6f1ea3a7._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_5c78460e._.js → 2374f_708e1a2e._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_04a544c8._.js → 2374f_7d957e38._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_72fb9db7._.js → 2374f_8385a57b._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_d5f5b9ba._.js → 2374f_95e53328._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_5e9eb6da._.js → 2374f_a19628a3._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_db790cfe._.js → 2374f_a90b70ee._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_45534372._.js → 2374f_f1f229dd._.js} +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/{[root-of-the-server]__d04c460d._.js → [root-of-the-server]__4085bf35._.js} +4 -4
- package/web/.next/standalone/web/.next/server/chunks/ssr/{[root-of-the-server]__aa788b85._.js → [root-of-the-server]__5bde4c40._.js} +2 -2
- package/web/.next/standalone/web/.next/server/chunks/ssr/{web_6fb589ac._.js → web_14735895._.js} +2 -2
- package/web/.next/standalone/web/.next/server/chunks/ssr/web_2b3a5919._.js +1 -1
- package/web/.next/standalone/web/.next/server/chunks/ssr/web_38156da8._.js +1 -1
- package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
- package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/standalone/web/.next/static/chunks/{054deec0c7b19894.js → 4a490bc538aa0940.js} +3 -3
- package/web/.next/{static/chunks/eea48be65cdb3f4b.js → standalone/web/.next/static/chunks/4b6a9454bc6460c5.js} +3 -3
- package/web/.next/standalone/web/.next/static/chunks/8b53c110c5a6f9a0.css +1 -0
- package/web/.next/standalone/web/.next/static/chunks/{7fb141141caa4fac.js → c2dccd8f56d8eb5a.js} +4 -4
- package/web/.next/{static/chunks/054deec0c7b19894.js → standalone/web/.next/static/static/chunks/4a490bc538aa0940.js} +3 -3
- package/web/.next/standalone/web/.next/static/static/chunks/{eea48be65cdb3f4b.js → 4b6a9454bc6460c5.js} +3 -3
- package/web/.next/standalone/web/.next/static/static/chunks/8b53c110c5a6f9a0.css +1 -0
- package/web/.next/standalone/web/.next/static/static/chunks/{7fb141141caa4fac.js → c2dccd8f56d8eb5a.js} +4 -4
- package/web/.next/standalone/web/src/components/ai-elements/browser-recording.tsx +100 -0
- package/web/.next/standalone/web/src/components/browser-preview.tsx +196 -0
- package/web/.next/standalone/web/src/components/chat-interface.tsx +92 -3
- package/web/.next/standalone/web/src/lib/api.ts +95 -0
- package/web/.next/{standalone/web/.next/static/static/chunks/054deec0c7b19894.js → static/chunks/4a490bc538aa0940.js} +3 -3
- package/web/.next/{standalone/web/.next/static/chunks/eea48be65cdb3f4b.js → static/chunks/4b6a9454bc6460c5.js} +3 -3
- package/web/.next/static/chunks/8b53c110c5a6f9a0.css +1 -0
- package/web/.next/static/chunks/{7fb141141caa4fac.js → c2dccd8f56d8eb5a.js} +4 -4
- package/web/.next/standalone/web/.next/static/chunks/1f42a42914068041.css +0 -1
- package/web/.next/standalone/web/.next/static/static/chunks/1f42a42914068041.css +0 -1
- package/web/.next/static/chunks/1f42a42914068041.css +0 -1
- /package/web/.next/standalone/web/.next/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_buildManifest.js +0 -0
- /package/web/.next/standalone/web/.next/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/standalone/web/.next/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_ssgManifest.js +0 -0
- /package/web/.next/standalone/web/.next/static/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_buildManifest.js +0 -0
- /package/web/.next/standalone/web/.next/static/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/standalone/web/.next/static/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_ssgManifest.js +0 -0
- /package/web/.next/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_buildManifest.js +0 -0
- /package/web/.next/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_ssgManifest.js +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sparkecoder",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.65",
|
|
4
4
|
"description": "A powerful coding agent CLI with HTTP API for development environments",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -58,12 +58,14 @@
|
|
|
58
58
|
"ora": "^8.1.1",
|
|
59
59
|
"resumable-stream": "^2.2.10",
|
|
60
60
|
"vscode-jsonrpc": "^8.2.0",
|
|
61
|
+
"ws": "^8.19.0",
|
|
61
62
|
"zod": "^3.24.0"
|
|
62
63
|
},
|
|
63
64
|
"devDependencies": {
|
|
64
65
|
"@tailwindcss/postcss": "^4",
|
|
65
66
|
"@types/minimatch": "^6.0.0",
|
|
66
67
|
"@types/node": "^22.10.0",
|
|
68
|
+
"@types/ws": "^8.18.1",
|
|
67
69
|
"drizzle-orm": "^0.45.1",
|
|
68
70
|
"tailwindcss": "^4",
|
|
69
71
|
"tsup": "^8.3.5",
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: QA Testing
|
|
3
|
+
description: Browser-based QA testing for web applications with structured reports covering functionality, UI, performance, accessibility, and responsiveness
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# QA Testing Skill
|
|
7
|
+
|
|
8
|
+
Perform structured QA testing on web URLs using `agent-browser`. This skill covers how to load the browser, run checks across multiple categories, and produce a formatted QA report.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
Before starting QA, load the **Browser Automation** skill if it hasn't been loaded already:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
load_skill({ name: "Browser Automation" })
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## QA Workflow
|
|
19
|
+
|
|
20
|
+
### 1. Open the Target URL
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
agent-browser open <url> && agent-browser wait --load networkidle
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 2. Take a Baseline Screenshot
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
agent-browser screenshot qa-home.png --fullpage
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Then view it with `read_file` to get a visual of the starting state, and upload it so it can be linked in the report:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
read_file({ path: "qa-home.png" })
|
|
36
|
+
upload_file({ path: "qa-home.png", name: "qa-home.png" })
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The `upload_file` tool returns a `downloadUrl` -- save this URL to include in the final report.
|
|
40
|
+
|
|
41
|
+
### 3. Run Through the QA Checklist
|
|
42
|
+
|
|
43
|
+
Work through each category below. After every navigation or interaction, re-snapshot to get fresh element refs:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
agent-browser snapshot -i
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 4. Compile the Report
|
|
50
|
+
|
|
51
|
+
After testing, produce the report using the template at the bottom of this skill.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## QA Checklist
|
|
56
|
+
|
|
57
|
+
### Page Load & Performance
|
|
58
|
+
- Does the page load without errors?
|
|
59
|
+
- Is there visible content within 2-3 seconds?
|
|
60
|
+
- Are all images, fonts, and assets loading?
|
|
61
|
+
- Check the console for errors:
|
|
62
|
+
```bash
|
|
63
|
+
agent-browser execute "JSON.stringify(window.__console_errors || [])"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Navigation & Links
|
|
67
|
+
- Snapshot interactive elements and click through primary navigation links
|
|
68
|
+
- Verify each link leads to the correct destination
|
|
69
|
+
- Check for broken links (404 pages, dead ends)
|
|
70
|
+
- Verify back/forward navigation works:
|
|
71
|
+
```bash
|
|
72
|
+
agent-browser click @e<nav-link>
|
|
73
|
+
agent-browser wait --load networkidle
|
|
74
|
+
agent-browser screenshot qa-nav.png
|
|
75
|
+
agent-browser back
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Forms & Inputs
|
|
79
|
+
- Identify all forms on the page via snapshot
|
|
80
|
+
- Test required field validation (submit empty forms)
|
|
81
|
+
- Test input constraints (email format, max length, number ranges)
|
|
82
|
+
- Verify error messages appear and are helpful
|
|
83
|
+
- Test successful submission flow:
|
|
84
|
+
```bash
|
|
85
|
+
agent-browser fill @e<input> "test value"
|
|
86
|
+
agent-browser click @e<submit>
|
|
87
|
+
agent-browser wait --load networkidle
|
|
88
|
+
agent-browser snapshot -i
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Visual & UI
|
|
92
|
+
- Take full-page screenshots and review for:
|
|
93
|
+
- Overlapping elements
|
|
94
|
+
- Text truncation or overflow
|
|
95
|
+
- Consistent spacing and alignment
|
|
96
|
+
- Correct colors and branding
|
|
97
|
+
- Readable font sizes
|
|
98
|
+
- Check dark mode if applicable
|
|
99
|
+
|
|
100
|
+
### Responsive Design
|
|
101
|
+
Test at multiple viewport sizes. Screenshot, review, and upload each:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Mobile
|
|
105
|
+
agent-browser resize 375 812
|
|
106
|
+
agent-browser screenshot qa-mobile.png --fullpage
|
|
107
|
+
```
|
|
108
|
+
```
|
|
109
|
+
read_file({ path: "qa-mobile.png" })
|
|
110
|
+
upload_file({ path: "qa-mobile.png", name: "qa-mobile.png" })
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Tablet
|
|
115
|
+
agent-browser resize 768 1024
|
|
116
|
+
agent-browser screenshot qa-tablet.png --fullpage
|
|
117
|
+
```
|
|
118
|
+
```
|
|
119
|
+
read_file({ path: "qa-tablet.png" })
|
|
120
|
+
upload_file({ path: "qa-tablet.png", name: "qa-tablet.png" })
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Desktop
|
|
125
|
+
agent-browser resize 1440 900
|
|
126
|
+
agent-browser screenshot qa-desktop.png --fullpage
|
|
127
|
+
```
|
|
128
|
+
```
|
|
129
|
+
read_file({ path: "qa-desktop.png" })
|
|
130
|
+
upload_file({ path: "qa-desktop.png", name: "qa-desktop.png" })
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Review each screenshot for layout breakage, hidden elements, or overflow.
|
|
134
|
+
|
|
135
|
+
### Accessibility
|
|
136
|
+
- Check for alt text on images:
|
|
137
|
+
```bash
|
|
138
|
+
agent-browser execute "document.querySelectorAll('img:not([alt])').length + ' images missing alt text'"
|
|
139
|
+
```
|
|
140
|
+
- Verify interactive elements are keyboard-focusable
|
|
141
|
+
- Check color contrast on text elements
|
|
142
|
+
- Verify ARIA labels on interactive components:
|
|
143
|
+
```bash
|
|
144
|
+
agent-browser execute "document.querySelectorAll('button:not([aria-label]):not([aria-labelledby])').length + ' buttons without ARIA labels'"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Authentication (if applicable)
|
|
148
|
+
- Test login with valid credentials
|
|
149
|
+
- Test login with invalid credentials (verify error messaging)
|
|
150
|
+
- Test logout flow
|
|
151
|
+
- Verify protected pages redirect to login
|
|
152
|
+
|
|
153
|
+
### Error Handling
|
|
154
|
+
- Navigate to a non-existent route and verify 404 handling:
|
|
155
|
+
```bash
|
|
156
|
+
agent-browser open <url>/this-page-does-not-exist-12345
|
|
157
|
+
agent-browser wait --load networkidle
|
|
158
|
+
agent-browser screenshot qa-404.png
|
|
159
|
+
```
|
|
160
|
+
```
|
|
161
|
+
read_file({ path: "qa-404.png" })
|
|
162
|
+
upload_file({ path: "qa-404.png", name: "qa-404.png" })
|
|
163
|
+
```
|
|
164
|
+
- Test behavior with slow/no network if relevant
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Uploading Screenshots
|
|
169
|
+
|
|
170
|
+
Every time you take a screenshot during QA, follow this pattern:
|
|
171
|
+
|
|
172
|
+
1. **Take** the screenshot with `agent-browser screenshot`
|
|
173
|
+
2. **Review** it with `read_file` to visually inspect it
|
|
174
|
+
3. **Upload** it with `upload_file` to get a shareable URL
|
|
175
|
+
4. **Save the URL** for the report
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
agent-browser screenshot qa-issue-login.png
|
|
179
|
+
```
|
|
180
|
+
```
|
|
181
|
+
read_file({ path: "qa-issue-login.png" })
|
|
182
|
+
upload_file({ path: "qa-issue-login.png", name: "qa-issue-login.png" })
|
|
183
|
+
# Returns: { downloadUrl: "https://storage.googleapis.com/..." }
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Use descriptive filenames that indicate what the screenshot shows:
|
|
187
|
+
- `qa-home.png` -- homepage baseline
|
|
188
|
+
- `qa-mobile.png` / `qa-tablet.png` / `qa-desktop.png` -- responsive viewports
|
|
189
|
+
- `qa-404.png` -- error page
|
|
190
|
+
- `qa-issue-<description>.png` -- specific issues (e.g. `qa-issue-nav-overlap.png`)
|
|
191
|
+
|
|
192
|
+
Also take a screenshot any time you find an issue -- visual evidence makes the report much more useful.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## QA Report Template
|
|
197
|
+
|
|
198
|
+
After testing, produce the report in this format. Replace `<download_url>` placeholders with the actual URLs returned by `upload_file`. Write the final report to `qa-report-<date>.md`.
|
|
199
|
+
|
|
200
|
+
```markdown
|
|
201
|
+
# QA Report
|
|
202
|
+
|
|
203
|
+
**URL:** <tested url>
|
|
204
|
+
**Date:** <date>
|
|
205
|
+
**Tester:** SparkECoder Agent
|
|
206
|
+
**Environment:** Chromium (headless) / <OS>
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Summary
|
|
211
|
+
|
|
212
|
+
| Category | Status | Issues |
|
|
213
|
+
|---------------------|--------|--------|
|
|
214
|
+
| Page Load | ✅ / ⚠️ / ❌ | <count> |
|
|
215
|
+
| Navigation & Links | ✅ / ⚠️ / ❌ | <count> |
|
|
216
|
+
| Forms & Inputs | ✅ / ⚠️ / ❌ | <count> |
|
|
217
|
+
| Visual & UI | ✅ / ⚠️ / ❌ | <count> |
|
|
218
|
+
| Responsive Design | ✅ / ⚠️ / ❌ | <count> |
|
|
219
|
+
| Accessibility | ✅ / ⚠️ / ❌ | <count> |
|
|
220
|
+
| Error Handling | ✅ / ⚠️ / ❌ | <count> |
|
|
221
|
+
|
|
222
|
+
**Overall:** ✅ Pass / ⚠️ Pass with warnings / ❌ Fail
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Detailed Findings
|
|
227
|
+
|
|
228
|
+
### Page Load & Performance
|
|
229
|
+
- **Status:** ✅ / ⚠️ / ❌
|
|
230
|
+
- **Load time:** <fast / moderate / slow>
|
|
231
|
+
- **Console errors:** <none / list>
|
|
232
|
+
- **Missing assets:** <none / list>
|
|
233
|
+
- **Baseline:** 
|
|
234
|
+
|
|
235
|
+
### Navigation & Links
|
|
236
|
+
- **Status:** ✅ / ⚠️ / ❌
|
|
237
|
+
- **Links tested:** <count>
|
|
238
|
+
- **Broken links:** <none / list with URLs>
|
|
239
|
+
|
|
240
|
+
### Forms & Inputs
|
|
241
|
+
- **Status:** ✅ / ⚠️ / ❌
|
|
242
|
+
- **Forms tested:** <count>
|
|
243
|
+
- **Validation issues:** <none / list>
|
|
244
|
+
- **Submission issues:** <none / list>
|
|
245
|
+
|
|
246
|
+
### Visual & UI
|
|
247
|
+
- **Status:** ✅ / ⚠️ / ❌
|
|
248
|
+
- **Issues:**
|
|
249
|
+
- <description of any visual issues found>
|
|
250
|
+
- 
|
|
251
|
+
|
|
252
|
+
### Responsive Design
|
|
253
|
+
- **Status:** ✅ / ⚠️ / ❌
|
|
254
|
+
- **Viewports tested:**
|
|
255
|
+
|
|
256
|
+
| Viewport | Size | Screenshot | Issues |
|
|
257
|
+
|----------|------|------------|--------|
|
|
258
|
+
| Mobile | 375 x 812 |  | <none / description> |
|
|
259
|
+
| Tablet | 768 x 1024 |  | <none / description> |
|
|
260
|
+
| Desktop | 1440 x 900 |  | <none / description> |
|
|
261
|
+
|
|
262
|
+
### Accessibility
|
|
263
|
+
- **Status:** ✅ / ⚠️ / ❌
|
|
264
|
+
- **Images missing alt text:** <count>
|
|
265
|
+
- **Buttons missing ARIA labels:** <count>
|
|
266
|
+
- **Other issues:** <list>
|
|
267
|
+
|
|
268
|
+
### Error Handling
|
|
269
|
+
- **Status:** ✅ / ⚠️ / ❌
|
|
270
|
+
- **404 page:** <present and styled / missing / broken>
|
|
271
|
+
- **Screenshot:** 
|
|
272
|
+
- **Other error handling:** <notes>
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Issues List
|
|
277
|
+
|
|
278
|
+
| # | Severity | Category | Description | Evidence |
|
|
279
|
+
|---|----------|----------|-------------|----------|
|
|
280
|
+
| 1 | 🔴 High / 🟡 Medium / 🟢 Low | <category> | <description> |  |
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## All Screenshots
|
|
285
|
+
|
|
286
|
+
| Name | Description | Link |
|
|
287
|
+
|------|-------------|------|
|
|
288
|
+
| qa-home.png | Homepage baseline | [View](<download_url>) |
|
|
289
|
+
| qa-mobile.png | Mobile viewport (375px) | [View](<download_url>) |
|
|
290
|
+
| qa-tablet.png | Tablet viewport (768px) | [View](<download_url>) |
|
|
291
|
+
| qa-desktop.png | Desktop viewport (1440px) | [View](<download_url>) |
|
|
292
|
+
| qa-404.png | 404 error page | [View](<download_url>) |
|
|
293
|
+
| <additional screenshots for specific issues> |||
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Recommendations
|
|
298
|
+
|
|
299
|
+
1. <Highest priority fix>
|
|
300
|
+
2. <Next priority>
|
|
301
|
+
3. ...
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## Best Practices
|
|
307
|
+
|
|
308
|
+
1. **Screenshot + upload every finding** -- take a screenshot, `read_file` to review it, `upload_file` to get a URL, then link it in the report
|
|
309
|
+
2. **Re-snapshot after every navigation** -- element refs go stale when the page changes
|
|
310
|
+
3. **Test the happy path first** -- verify core functionality works before edge cases
|
|
311
|
+
4. **Note severity levels** -- 🔴 High = broken functionality, 🟡 Medium = usability issue, 🟢 Low = cosmetic
|
|
312
|
+
5. **Be specific** -- "Submit button overlaps footer at 375px" is better than "layout issue on mobile"
|
|
313
|
+
6. **Use descriptive screenshot names** -- `qa-issue-nav-overlap.png` not `screenshot3.png`
|
|
314
|
+
7. **Close the browser when done** -- always run `agent-browser close` at the end
|
|
315
|
+
8. **Save the report** -- write the final report to `qa-report-<date>.md`
|
|
316
|
+
9. **Upload the report too** -- after writing the report file, `upload_file` it so the user gets a shareable link
|
|
317
|
+
8. **Upload the report** using the upload file tool and return that url to the user
|
package/web/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
NuySHGSR0CchKU9zo42LK
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
NuySHGSR0CchKU9zo42LK
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
"static/chunks/a6dad97d9634a72d.js"
|
|
8
8
|
],
|
|
9
9
|
"lowPriorityFiles": [
|
|
10
|
-
"static/
|
|
11
|
-
"static/
|
|
10
|
+
"static/NuySHGSR0CchKU9zo42LK/_ssgManifest.js",
|
|
11
|
+
"static/NuySHGSR0CchKU9zo42LK/_buildManifest.js"
|
|
12
12
|
],
|
|
13
13
|
"rootMainFiles": [
|
|
14
14
|
"static/chunks/651e187cc15d66de.js",
|
|
@@ -319,8 +319,8 @@
|
|
|
319
319
|
"dynamicRoutes": {},
|
|
320
320
|
"notFoundRoutes": [],
|
|
321
321
|
"preview": {
|
|
322
|
-
"previewModeId": "
|
|
323
|
-
"previewModeSigningKey": "
|
|
324
|
-
"previewModeEncryptionKey": "
|
|
322
|
+
"previewModeId": "937d24729b9da109ab06114a26bb546c",
|
|
323
|
+
"previewModeSigningKey": "dd5a90f43371119f1eb751d02592c89135ac5558927907996d514c0d00b30f0d",
|
|
324
|
+
"previewModeEncryptionKey": "d7c305b71c4d310ff795e08ac97791c627b496c767e47eed482e306325ecb923"
|
|
325
325
|
}
|
|
326
326
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
|
|
2
|
-
globalThis.__RSC_MANIFEST["/(main)/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/web/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":488287,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":488287,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":174895,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":174895,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":683380,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-page.js":{"id":683380,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":808719,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":808719,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":824163,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":824163,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":349310,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":349310,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":151858,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":151858,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>":{"id":552576,"name":"*","chunks":[],"async":false},"[project]/web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":552576,"name":"*","chunks":[],"async":false},"[project]/web/src/components/api-init.tsx <module evaluation>":{"id":760800,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js"],"async":false},"[project]/web/src/components/api-init.tsx":{"id":760800,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js"],"async":false},"[project]/web/src/app/(main)/layout.tsx <module evaluation>":{"id":138134,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js","/_next/static/chunks/c6f40df16a9396b9.js","/_next/static/chunks/26eb5fab5216f3cc.js","/_next/static/chunks/ea29be392100ab0f.js","/_next/static/chunks/054deec0c7b19894.js","/_next/static/chunks/ea57058fc6ebf4d3.js"],"async":false},"[project]/web/src/app/(main)/layout.tsx":{"id":138134,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js","/_next/static/chunks/c6f40df16a9396b9.js","/_next/static/chunks/26eb5fab5216f3cc.js","/_next/static/chunks/ea29be392100ab0f.js","/_next/static/chunks/054deec0c7b19894.js","/_next/static/chunks/ea57058fc6ebf4d3.js"],"async":false},"[project]/web/src/app/(main)/page.tsx <module evaluation>":{"id":375635,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js","/_next/static/chunks/c6f40df16a9396b9.js","/_next/static/chunks/26eb5fab5216f3cc.js","/_next/static/chunks/ea29be392100ab0f.js","/_next/static/chunks/054deec0c7b19894.js","/_next/static/chunks/ea57058fc6ebf4d3.js","/_next/static/chunks/8d3efc76109d2efc.js"],"async":false},"[project]/web/src/app/(main)/page.tsx":{"id":375635,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js","/_next/static/chunks/c6f40df16a9396b9.js","/_next/static/chunks/26eb5fab5216f3cc.js","/_next/static/chunks/ea29be392100ab0f.js","/_next/static/chunks/054deec0c7b19894.js","/_next/static/chunks/ea57058fc6ebf4d3.js","/_next/static/chunks/8d3efc76109d2efc.js"],"async":false}},"ssrModuleMapping":{"488287":{"*":{"id":547492,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"174895":{"*":{"id":714433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"683380":{"*":{"id":824449,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"808719":{"*":{"id":354833,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"824163":{"*":{"id":113588,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"349310":{"*":{"id":913578,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"151858":{"*":{"id":633121,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"552576":{"*":{"id":261905,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__61a0b842._.js"],"async":false}},"760800":{"*":{"id":956805,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__be5e2967._.js"],"async":false}},"138134":{"*":{"id":126823,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__be5e2967._.js","server/chunks/ssr/[root-of-the-server]__de76483d._.js","server/chunks/ssr/2374f_clsx_dist_clsx_mjs_da08f035._.js","server/chunks/ssr/web_src_components_sessions-sidebar_tsx_92510070._.js","server/chunks/ssr/web_08bbd8c8._.js","server/chunks/ssr/2374f_next_dist_bbe64674._.js","server/chunks/ssr/web_2b3a5919._.js"],"async":false}},"375635":{"*":{"id":908810,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__be5e2967._.js","server/chunks/ssr/[root-of-the-server]__de76483d._.js","server/chunks/ssr/2374f_clsx_dist_clsx_mjs_da08f035._.js","server/chunks/ssr/web_src_components_sessions-sidebar_tsx_92510070._.js","server/chunks/ssr/web_08bbd8c8._.js","server/chunks/ssr/2374f_next_dist_bbe64674._.js","server/chunks/ssr/web_2b3a5919._.js","server/chunks/ssr/web_src_app_(main)_page_tsx_5ac4794b._.js","server/chunks/ssr/web_b42ed1be._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"488287":{"*":{"id":786309,"name":"*","chunks":[],"async":false}},"174895":{"*":{"id":306660,"name":"*","chunks":[],"async":false}},"683380":{"*":{"id":52093,"name":"*","chunks":[],"async":false}},"808719":{"*":{"id":156801,"name":"*","chunks":[],"async":false}},"824163":{"*":{"id":551240,"name":"*","chunks":[],"async":false}},"349310":{"*":{"id":767168,"name":"*","chunks":[],"async":false}},"151858":{"*":{"id":215798,"name":"*","chunks":[],"async":false}},"552576":{"*":{"id":463741,"name":"*","chunks":[],"async":false}},"760800":{"*":{"id":317911,"name":"*","chunks":[],"async":false}},"138134":{"*":{"id":174916,"name":"*","chunks":[],"async":false}},"375635":{"*":{"id":535097,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/web/src/app/favicon.ico":[],"[project]/web/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/web/src/app/layout":[{"path":"static/chunks/2473c16c0c2f6b5f.css","inlined":false},{"path":"static/chunks/1f42a42914068041.css","inlined":false}],"[project]/web/src/app/(main)/layout":[{"path":"static/chunks/2473c16c0c2f6b5f.css","inlined":false},{"path":"static/chunks/1f42a42914068041.css","inlined":false}],"[project]/web/src/app/(main)/page":[{"path":"static/chunks/2473c16c0c2f6b5f.css","inlined":false},{"path":"static/chunks/1f42a42914068041.css","inlined":false}]},"entryJSFiles":{"[project]/web/src/app/favicon.ico":["static/chunks/9b5512fb633ef95d.js","static/chunks/0f1cf11540868e42.js"],"[project]/web/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/web/src/app/layout":["static/chunks/b31b0765abe0c427.js"],"[project]/web/src/app/(main)/layout":["static/chunks/b31b0765abe0c427.js","static/chunks/c6f40df16a9396b9.js","static/chunks/26eb5fab5216f3cc.js","static/chunks/ea29be392100ab0f.js","static/chunks/054deec0c7b19894.js","static/chunks/ea57058fc6ebf4d3.js"],"[project]/web/src/app/(main)/page":["static/chunks/b31b0765abe0c427.js","static/chunks/c6f40df16a9396b9.js","static/chunks/26eb5fab5216f3cc.js","static/chunks/ea29be392100ab0f.js","static/chunks/054deec0c7b19894.js","static/chunks/ea57058fc6ebf4d3.js","static/chunks/8d3efc76109d2efc.js"]}}
|
|
2
|
+
globalThis.__RSC_MANIFEST["/(main)/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/web/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":488287,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/layout-router.js":{"id":488287,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":174895,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":174895,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":683380,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-page.js":{"id":683380,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":808719,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/client-segment.js":{"id":808719,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":824163,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":824163,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":349310,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":349310,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":151858,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":151858,"name":"*","chunks":["/_next/static/chunks/9b5512fb633ef95d.js","/_next/static/chunks/0f1cf11540868e42.js"],"async":false},"[project]/web/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>":{"id":552576,"name":"*","chunks":[],"async":false},"[project]/web/node_modules/next/dist/client/components/builtin/global-error.js":{"id":552576,"name":"*","chunks":[],"async":false},"[project]/web/src/components/api-init.tsx <module evaluation>":{"id":760800,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js"],"async":false},"[project]/web/src/components/api-init.tsx":{"id":760800,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js"],"async":false},"[project]/web/src/app/(main)/layout.tsx <module evaluation>":{"id":138134,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js","/_next/static/chunks/c6f40df16a9396b9.js","/_next/static/chunks/26eb5fab5216f3cc.js","/_next/static/chunks/ea29be392100ab0f.js","/_next/static/chunks/4a490bc538aa0940.js","/_next/static/chunks/ea57058fc6ebf4d3.js"],"async":false},"[project]/web/src/app/(main)/layout.tsx":{"id":138134,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js","/_next/static/chunks/c6f40df16a9396b9.js","/_next/static/chunks/26eb5fab5216f3cc.js","/_next/static/chunks/ea29be392100ab0f.js","/_next/static/chunks/4a490bc538aa0940.js","/_next/static/chunks/ea57058fc6ebf4d3.js"],"async":false},"[project]/web/src/app/(main)/page.tsx <module evaluation>":{"id":375635,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js","/_next/static/chunks/c6f40df16a9396b9.js","/_next/static/chunks/26eb5fab5216f3cc.js","/_next/static/chunks/ea29be392100ab0f.js","/_next/static/chunks/4a490bc538aa0940.js","/_next/static/chunks/ea57058fc6ebf4d3.js","/_next/static/chunks/8d3efc76109d2efc.js"],"async":false},"[project]/web/src/app/(main)/page.tsx":{"id":375635,"name":"*","chunks":["/_next/static/chunks/b31b0765abe0c427.js","/_next/static/chunks/c6f40df16a9396b9.js","/_next/static/chunks/26eb5fab5216f3cc.js","/_next/static/chunks/ea29be392100ab0f.js","/_next/static/chunks/4a490bc538aa0940.js","/_next/static/chunks/ea57058fc6ebf4d3.js","/_next/static/chunks/8d3efc76109d2efc.js"],"async":false}},"ssrModuleMapping":{"488287":{"*":{"id":547492,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"174895":{"*":{"id":714433,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"683380":{"*":{"id":824449,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"808719":{"*":{"id":354833,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"824163":{"*":{"id":113588,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"349310":{"*":{"id":913578,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"151858":{"*":{"id":633121,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1e06ddf7._.js","server/chunks/ssr/2374f_next_dist_esm_b9db965e._.js"],"async":false}},"552576":{"*":{"id":261905,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__61a0b842._.js"],"async":false}},"760800":{"*":{"id":956805,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__be5e2967._.js"],"async":false}},"138134":{"*":{"id":126823,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__be5e2967._.js","server/chunks/ssr/[root-of-the-server]__de76483d._.js","server/chunks/ssr/2374f_clsx_dist_clsx_mjs_da08f035._.js","server/chunks/ssr/web_src_components_sessions-sidebar_tsx_92510070._.js","server/chunks/ssr/web_08bbd8c8._.js","server/chunks/ssr/2374f_next_dist_bbe64674._.js","server/chunks/ssr/web_2b3a5919._.js"],"async":false}},"375635":{"*":{"id":908810,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__be5e2967._.js","server/chunks/ssr/[root-of-the-server]__de76483d._.js","server/chunks/ssr/2374f_clsx_dist_clsx_mjs_da08f035._.js","server/chunks/ssr/web_src_components_sessions-sidebar_tsx_92510070._.js","server/chunks/ssr/web_08bbd8c8._.js","server/chunks/ssr/2374f_next_dist_bbe64674._.js","server/chunks/ssr/web_2b3a5919._.js","server/chunks/ssr/web_src_app_(main)_page_tsx_5ac4794b._.js","server/chunks/ssr/web_b42ed1be._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"488287":{"*":{"id":786309,"name":"*","chunks":[],"async":false}},"174895":{"*":{"id":306660,"name":"*","chunks":[],"async":false}},"683380":{"*":{"id":52093,"name":"*","chunks":[],"async":false}},"808719":{"*":{"id":156801,"name":"*","chunks":[],"async":false}},"824163":{"*":{"id":551240,"name":"*","chunks":[],"async":false}},"349310":{"*":{"id":767168,"name":"*","chunks":[],"async":false}},"151858":{"*":{"id":215798,"name":"*","chunks":[],"async":false}},"552576":{"*":{"id":463741,"name":"*","chunks":[],"async":false}},"760800":{"*":{"id":317911,"name":"*","chunks":[],"async":false}},"138134":{"*":{"id":174916,"name":"*","chunks":[],"async":false}},"375635":{"*":{"id":535097,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/web/src/app/favicon.ico":[],"[project]/web/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/web/src/app/layout":[{"path":"static/chunks/2473c16c0c2f6b5f.css","inlined":false},{"path":"static/chunks/8b53c110c5a6f9a0.css","inlined":false}],"[project]/web/src/app/(main)/layout":[{"path":"static/chunks/2473c16c0c2f6b5f.css","inlined":false},{"path":"static/chunks/8b53c110c5a6f9a0.css","inlined":false}],"[project]/web/src/app/(main)/page":[{"path":"static/chunks/2473c16c0c2f6b5f.css","inlined":false},{"path":"static/chunks/8b53c110c5a6f9a0.css","inlined":false}]},"entryJSFiles":{"[project]/web/src/app/favicon.ico":["static/chunks/9b5512fb633ef95d.js","static/chunks/0f1cf11540868e42.js"],"[project]/web/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/web/src/app/layout":["static/chunks/b31b0765abe0c427.js"],"[project]/web/src/app/(main)/layout":["static/chunks/b31b0765abe0c427.js","static/chunks/c6f40df16a9396b9.js","static/chunks/26eb5fab5216f3cc.js","static/chunks/ea29be392100ab0f.js","static/chunks/4a490bc538aa0940.js","static/chunks/ea57058fc6ebf4d3.js"],"[project]/web/src/app/(main)/page":["static/chunks/b31b0765abe0c427.js","static/chunks/c6f40df16a9396b9.js","static/chunks/26eb5fab5216f3cc.js","static/chunks/ea29be392100ab0f.js","static/chunks/4a490bc538aa0940.js","static/chunks/ea57058fc6ebf4d3.js","static/chunks/8d3efc76109d2efc.js"]}}
|