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.
Files changed (144) hide show
  1. package/dist/agent/index.d.ts +2 -2
  2. package/dist/agent/index.js +812 -30
  3. package/dist/agent/index.js.map +1 -1
  4. package/dist/cli.js +1115 -185
  5. package/dist/cli.js.map +1 -1
  6. package/dist/db/index.js.map +1 -1
  7. package/dist/{index-Dn-eCGLe.d.ts → index-BhKQYdOx.d.ts} +11 -1
  8. package/dist/index.d.ts +3 -3
  9. package/dist/index.js +1131 -166
  10. package/dist/index.js.map +1 -1
  11. package/dist/{search-DINnDTgj.d.ts → search-DkNNtC5A.d.ts} +1 -0
  12. package/dist/server/index.js +1131 -166
  13. package/dist/server/index.js.map +1 -1
  14. package/dist/skills/default/qa.md +317 -0
  15. package/dist/tools/index.d.ts +30 -3
  16. package/dist/tools/index.js +428 -7
  17. package/dist/tools/index.js.map +1 -1
  18. package/package.json +3 -1
  19. package/src/skills/default/qa.md +317 -0
  20. package/web/.next/BUILD_ID +1 -1
  21. package/web/.next/standalone/web/.next/BUILD_ID +1 -1
  22. package/web/.next/standalone/web/.next/build-manifest.json +2 -2
  23. package/web/.next/standalone/web/.next/prerender-manifest.json +3 -3
  24. package/web/.next/standalone/web/.next/server/app/(main)/page_client-reference-manifest.js +1 -1
  25. package/web/.next/standalone/web/.next/server/app/(main)/session/[id]/page.js.nft.json +1 -1
  26. package/web/.next/standalone/web/.next/server/app/(main)/session/[id]/page_client-reference-manifest.js +1 -1
  27. package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
  28. package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
  29. package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  30. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  31. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  32. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  33. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  34. package/web/.next/standalone/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  35. package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
  36. package/web/.next/standalone/web/.next/server/app/_not-found.rsc +2 -2
  37. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  38. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  39. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  40. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  41. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  42. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  43. package/web/.next/standalone/web/.next/server/app/api/config/route.js.nft.json +1 -1
  44. package/web/.next/standalone/web/.next/server/app/api/health/route.js.nft.json +1 -1
  45. package/web/.next/standalone/web/.next/server/app/docs/installation/page_client-reference-manifest.js +1 -1
  46. package/web/.next/standalone/web/.next/server/app/docs/installation.html +2 -2
  47. package/web/.next/standalone/web/.next/server/app/docs/installation.rsc +2 -2
  48. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_full.segment.rsc +2 -2
  49. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_head.segment.rsc +1 -1
  50. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_index.segment.rsc +2 -2
  51. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_tree.segment.rsc +2 -2
  52. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation/__PAGE__.segment.rsc +1 -1
  53. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation.segment.rsc +1 -1
  54. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs.segment.rsc +1 -1
  55. package/web/.next/standalone/web/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  56. package/web/.next/standalone/web/.next/server/app/docs/skills/page_client-reference-manifest.js +1 -1
  57. package/web/.next/standalone/web/.next/server/app/docs/skills.html +2 -2
  58. package/web/.next/standalone/web/.next/server/app/docs/skills.rsc +2 -2
  59. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_full.segment.rsc +2 -2
  60. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_head.segment.rsc +1 -1
  61. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_index.segment.rsc +2 -2
  62. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_tree.segment.rsc +2 -2
  63. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills/__PAGE__.segment.rsc +1 -1
  64. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills.segment.rsc +1 -1
  65. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs.segment.rsc +1 -1
  66. package/web/.next/standalone/web/.next/server/app/docs/tools/page_client-reference-manifest.js +1 -1
  67. package/web/.next/standalone/web/.next/server/app/docs/tools.html +2 -2
  68. package/web/.next/standalone/web/.next/server/app/docs/tools.rsc +2 -2
  69. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_full.segment.rsc +2 -2
  70. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_head.segment.rsc +1 -1
  71. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_index.segment.rsc +2 -2
  72. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_tree.segment.rsc +2 -2
  73. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools/__PAGE__.segment.rsc +1 -1
  74. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools.segment.rsc +1 -1
  75. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs.segment.rsc +1 -1
  76. package/web/.next/standalone/web/.next/server/app/docs.html +2 -2
  77. package/web/.next/standalone/web/.next/server/app/docs.rsc +2 -2
  78. package/web/.next/standalone/web/.next/server/app/docs.segments/_full.segment.rsc +2 -2
  79. package/web/.next/standalone/web/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  80. package/web/.next/standalone/web/.next/server/app/docs.segments/_index.segment.rsc +2 -2
  81. package/web/.next/standalone/web/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  82. package/web/.next/standalone/web/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  83. package/web/.next/standalone/web/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  84. package/web/.next/standalone/web/.next/server/app/embed/[id]/page.js.nft.json +1 -1
  85. package/web/.next/standalone/web/.next/server/app/embed/[id]/page_client-reference-manifest.js +1 -1
  86. package/web/.next/standalone/web/.next/server/app/index.html +1 -1
  87. package/web/.next/standalone/web/.next/server/app/index.rsc +4 -4
  88. package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p/__PAGE__.segment.rsc +2 -2
  89. package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p.segment.rsc +2 -2
  90. package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +4 -4
  91. package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  92. package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +2 -2
  93. package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  94. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_bfc8ef7d._.js → 2374f_1225fb9d._.js} +1 -1
  95. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_c61a33b3._.js → 2374f_2775224f._.js} +1 -1
  96. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_de60e6ea._.js → 2374f_2eac907f._.js} +1 -1
  97. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_ab5b97d8._.js → 2374f_32fd5733._.js} +1 -1
  98. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_e366206f._.js → 2374f_3db08933._.js} +1 -1
  99. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_68abddfe._.js → 2374f_51500fd2._.js} +1 -1
  100. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_5d0b3394._.js → 2374f_6f1ea3a7._.js} +1 -1
  101. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_5c78460e._.js → 2374f_708e1a2e._.js} +1 -1
  102. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_04a544c8._.js → 2374f_7d957e38._.js} +1 -1
  103. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_72fb9db7._.js → 2374f_8385a57b._.js} +1 -1
  104. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_d5f5b9ba._.js → 2374f_95e53328._.js} +1 -1
  105. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_5e9eb6da._.js → 2374f_a19628a3._.js} +1 -1
  106. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_db790cfe._.js → 2374f_a90b70ee._.js} +1 -1
  107. package/web/.next/standalone/web/.next/server/chunks/ssr/{2374f_45534372._.js → 2374f_f1f229dd._.js} +1 -1
  108. package/web/.next/standalone/web/.next/server/chunks/ssr/{[root-of-the-server]__d04c460d._.js → [root-of-the-server]__4085bf35._.js} +4 -4
  109. package/web/.next/standalone/web/.next/server/chunks/ssr/{[root-of-the-server]__aa788b85._.js → [root-of-the-server]__5bde4c40._.js} +2 -2
  110. package/web/.next/standalone/web/.next/server/chunks/ssr/{web_6fb589ac._.js → web_14735895._.js} +2 -2
  111. package/web/.next/standalone/web/.next/server/chunks/ssr/web_2b3a5919._.js +1 -1
  112. package/web/.next/standalone/web/.next/server/chunks/ssr/web_38156da8._.js +1 -1
  113. package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
  114. package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
  115. package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -1
  116. package/web/.next/standalone/web/.next/server/server-reference-manifest.json +1 -1
  117. package/web/.next/standalone/web/.next/static/chunks/{054deec0c7b19894.js → 4a490bc538aa0940.js} +3 -3
  118. package/web/.next/{static/chunks/eea48be65cdb3f4b.js → standalone/web/.next/static/chunks/4b6a9454bc6460c5.js} +3 -3
  119. package/web/.next/standalone/web/.next/static/chunks/8b53c110c5a6f9a0.css +1 -0
  120. package/web/.next/standalone/web/.next/static/chunks/{7fb141141caa4fac.js → c2dccd8f56d8eb5a.js} +4 -4
  121. package/web/.next/{static/chunks/054deec0c7b19894.js → standalone/web/.next/static/static/chunks/4a490bc538aa0940.js} +3 -3
  122. package/web/.next/standalone/web/.next/static/static/chunks/{eea48be65cdb3f4b.js → 4b6a9454bc6460c5.js} +3 -3
  123. package/web/.next/standalone/web/.next/static/static/chunks/8b53c110c5a6f9a0.css +1 -0
  124. package/web/.next/standalone/web/.next/static/static/chunks/{7fb141141caa4fac.js → c2dccd8f56d8eb5a.js} +4 -4
  125. package/web/.next/standalone/web/src/components/ai-elements/browser-recording.tsx +100 -0
  126. package/web/.next/standalone/web/src/components/browser-preview.tsx +196 -0
  127. package/web/.next/standalone/web/src/components/chat-interface.tsx +92 -3
  128. package/web/.next/standalone/web/src/lib/api.ts +95 -0
  129. package/web/.next/{standalone/web/.next/static/static/chunks/054deec0c7b19894.js → static/chunks/4a490bc538aa0940.js} +3 -3
  130. package/web/.next/{standalone/web/.next/static/chunks/eea48be65cdb3f4b.js → static/chunks/4b6a9454bc6460c5.js} +3 -3
  131. package/web/.next/static/chunks/8b53c110c5a6f9a0.css +1 -0
  132. package/web/.next/static/chunks/{7fb141141caa4fac.js → c2dccd8f56d8eb5a.js} +4 -4
  133. package/web/.next/standalone/web/.next/static/chunks/1f42a42914068041.css +0 -1
  134. package/web/.next/standalone/web/.next/static/static/chunks/1f42a42914068041.css +0 -1
  135. package/web/.next/static/chunks/1f42a42914068041.css +0 -1
  136. /package/web/.next/standalone/web/.next/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_buildManifest.js +0 -0
  137. /package/web/.next/standalone/web/.next/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_clientMiddlewareManifest.json +0 -0
  138. /package/web/.next/standalone/web/.next/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_ssgManifest.js +0 -0
  139. /package/web/.next/standalone/web/.next/static/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_buildManifest.js +0 -0
  140. /package/web/.next/standalone/web/.next/static/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_clientMiddlewareManifest.json +0 -0
  141. /package/web/.next/standalone/web/.next/static/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_ssgManifest.js +0 -0
  142. /package/web/.next/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_buildManifest.js +0 -0
  143. /package/web/.next/static/{Xc8ztiG5d6CHUNHm_1G8b → NuySHGSR0CchKU9zo42LK}/_clientMiddlewareManifest.json +0 -0
  144. /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.63",
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:** ![Homepage](<download_url for qa-home.png>)
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
+ - ![Issue screenshot](<download_url>)
251
+
252
+ ### Responsive Design
253
+ - **Status:** ✅ / ⚠️ / ❌
254
+ - **Viewports tested:**
255
+
256
+ | Viewport | Size | Screenshot | Issues |
257
+ |----------|------|------------|--------|
258
+ | Mobile | 375 x 812 | ![Mobile](<download_url for qa-mobile.png>) | <none / description> |
259
+ | Tablet | 768 x 1024 | ![Tablet](<download_url for qa-tablet.png>) | <none / description> |
260
+ | Desktop | 1440 x 900 | ![Desktop](<download_url for qa-desktop.png>) | <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:** ![404 page](<download_url for qa-404.png>)
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> | ![Issue](<download_url>) |
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
@@ -1 +1 @@
1
- Xc8ztiG5d6CHUNHm_1G8b
1
+ NuySHGSR0CchKU9zo42LK
@@ -1 +1 @@
1
- Xc8ztiG5d6CHUNHm_1G8b
1
+ NuySHGSR0CchKU9zo42LK
@@ -7,8 +7,8 @@
7
7
  "static/chunks/a6dad97d9634a72d.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/Xc8ztiG5d6CHUNHm_1G8b/_ssgManifest.js",
11
- "static/Xc8ztiG5d6CHUNHm_1G8b/_buildManifest.js"
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": "4780cc437f5f923edc9647978663991d",
323
- "previewModeSigningKey": "d9eef7abb678d373bf524f0db4167fde80fd339fe2580bf1374fa8e379b89194",
324
- "previewModeEncryptionKey": "046e68e6bff3ec46f39637f1eb8e87c87975836d8804189cc0b2c3bf1fc42438"
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"]}}