bangonit 0.5.2 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -2
- package/app/desktopapp/dist/main/index.js +69 -26
- package/app/desktopapp/dist/main/tabs.js +0 -9
- package/app/desktopapp/dist/shared/args.js +1 -0
- package/app/replay/dist/replay.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/BUILD_ID +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/app-build-manifest.json +11 -11
- package/app/webapp/.next/standalone/app/webapp/.next/app-path-routes-manifest.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/build-manifest.json +3 -3
- package/app/webapp/.next/standalone/app/webapp/.next/prerender-manifest.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/required-server-files.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/_not-found/page.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/_not-found.html +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/_not-found.rsc +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/api/chat/route.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/api/screenshot/route.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/api/screenshot/route.js.nft.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/app/page.js +6 -6
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/app/page_client-reference-manifest.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/app.html +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/app.rsc +2 -2
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/index.html +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/index.rsc +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/page.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app-paths-manifest.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/chunks/{708.js → 151.js} +9 -7
- package/app/webapp/.next/standalone/app/webapp/.next/server/chunks/679.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/middleware-build-manifest.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/pages/404.html +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/pages/500.html +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/server-reference-manifest.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/793-be37f231ca512496.js +36 -0
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/app/app/page-4c6dfbf12230aab7.js +1 -0
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/app/layout-57acb80d8da0067a.js +1 -0
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/{main-app-76384b941f0b51cb.js → main-app-106dd83f859b9dfa.js} +1 -1
- package/app/webapp/.next/standalone/app/webapp/package.json +1 -0
- package/app/webapp/.next/standalone/app/webapp/server.js +1 -1
- package/app/webapp/.next/standalone/package.json +2 -1
- package/app/webapp/.next/static/chunks/793-be37f231ca512496.js +36 -0
- package/app/webapp/.next/static/chunks/app/app/page-4c6dfbf12230aab7.js +1 -0
- package/app/webapp/.next/static/chunks/app/layout-57acb80d8da0067a.js +1 -0
- package/app/webapp/.next/static/chunks/{main-app-76384b941f0b51cb.js → main-app-106dd83f859b9dfa.js} +1 -1
- package/app/webapp/package.json +1 -0
- package/app/webapp/src/shared/api/chat.ts +13 -2
- package/app/webapp/src/shared/components/AppShell.tsx +15 -5
- package/app/webapp/src/shared/components/SessionView.tsx +10 -2
- package/app/webapp/src/shared/lib/browser/index.ts +2 -2
- package/app/webapp/src/shared/lib/browser/screenshot.ts +2 -2
- package/app/webapp/src/shared/lib/browser/snapshot.ts +107 -7
- package/app/webapp/src/shared/lib/browser/types.ts +1 -0
- package/bin/app/desktopapp/src/shared/args.js +1 -0
- package/bin/src/cli/bangonit.js +35 -25
- package/package.json +2 -1
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/631-0edca788fa58159b.js +0 -36
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/app/app/page-533a30559a8f39fa.js +0 -1
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/app/layout-40f50d9380154ecf.js +0 -1
- package/app/webapp/.next/static/chunks/631-0edca788fa58159b.js +0 -36
- package/app/webapp/.next/static/chunks/app/app/page-533a30559a8f39fa.js +0 -1
- package/app/webapp/.next/static/chunks/app/layout-40f50d9380154ecf.js +0 -1
- /package/app/webapp/.next/standalone/app/webapp/.next/static/{kz1a_SRPtSly3Fe8wHKDq → v4eeWwVGjBsQUZdT156fT}/_buildManifest.js +0 -0
- /package/app/webapp/.next/standalone/app/webapp/.next/static/{kz1a_SRPtSly3Fe8wHKDq → v4eeWwVGjBsQUZdT156fT}/_ssgManifest.js +0 -0
- /package/app/webapp/.next/static/{kz1a_SRPtSly3Fe8wHKDq → v4eeWwVGjBsQUZdT156fT}/_buildManifest.js +0 -0
- /package/app/webapp/.next/static/{kz1a_SRPtSly3Fe8wHKDq → v4eeWwVGjBsQUZdT156fT}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@ Bang On It! bangs on your apps so you don't have to.
|
|
|
4
4
|
|
|
5
5
|
Bang On It! replaces annoying manual QA and flakey end-to-end tests with a CLI-friendly AI agent that launches a real browser, reads your test plan, and executes it autonomously — clicking, typing, navigating, and verifying everything works.
|
|
6
6
|
|
|
7
|
+
[](https://www.loom.com/share/707405b0dd2f448ba7a53cf1fa93815f)
|
|
8
|
+
|
|
7
9
|
## Quick Start
|
|
8
10
|
|
|
9
11
|
```bash
|
|
@@ -248,7 +250,15 @@ boi run --filter checkout
|
|
|
248
250
|
|
|
249
251
|
## Project-Level System Prompt
|
|
250
252
|
|
|
251
|
-
You can customize the AI agent's behavior per-project by creating a `.bangonit/system_prompt.
|
|
253
|
+
You can customize the AI agent's behavior per-project by creating a `.bangonit/system_prompt.sh` script. This script is executed before each test run, and its stdout becomes the project-level system prompt. `boi init` creates one for you.
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
#!/bin/bash
|
|
257
|
+
# .bangonit/system_prompt.sh
|
|
258
|
+
echo "The app is running on http://localhost:${DEV_SERVER_PORT}"
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Environment variables are available for interpolation, making it easy to pass dynamic values like server ports or base URLs.
|
|
252
262
|
|
|
253
263
|
## Claude Code Skills
|
|
254
264
|
|
|
@@ -275,11 +285,12 @@ Run options:
|
|
|
275
285
|
--config <path> Path to config file (default: .bangonit/config.toml)
|
|
276
286
|
--plan <text> Inline test plan (instead of file)
|
|
277
287
|
|
|
278
|
-
--prompt <text>
|
|
288
|
+
--additional-system-prompt <text> Additional system prompt text appended to test plan
|
|
279
289
|
--record Record session replay
|
|
280
290
|
--retries <n> Retry failed tests N times
|
|
281
291
|
--headless Run without showing the browser window
|
|
282
292
|
--exit Exit immediately after tests complete
|
|
293
|
+
--keep-open Keep the browser window open after tests pass
|
|
283
294
|
--json Stream NDJSON events to stdout
|
|
284
295
|
--console Forward browser console logs to stdout
|
|
285
296
|
--output <file> Write JSON results to file
|
|
@@ -49,6 +49,37 @@ const ipc_1 = require("./ipc");
|
|
|
49
49
|
const tabs_1 = require("./tabs");
|
|
50
50
|
const args_1 = require("../shared/args");
|
|
51
51
|
let mainWindow = null;
|
|
52
|
+
// ANSI color codes for terminal output — disabled when piping to a file
|
|
53
|
+
const isTTY = process.stdout.isTTY;
|
|
54
|
+
const c = isTTY
|
|
55
|
+
? {
|
|
56
|
+
reset: "\x1b[0m",
|
|
57
|
+
bold: "\x1b[1m",
|
|
58
|
+
dim: "\x1b[2m",
|
|
59
|
+
red: "\x1b[31m",
|
|
60
|
+
green: "\x1b[32m",
|
|
61
|
+
yellow: "\x1b[33m",
|
|
62
|
+
blue: "\x1b[34m",
|
|
63
|
+
magenta: "\x1b[35m",
|
|
64
|
+
cyan: "\x1b[36m",
|
|
65
|
+
white: "\x1b[37m",
|
|
66
|
+
bgRed: "\x1b[41m",
|
|
67
|
+
bgGreen: "\x1b[42m",
|
|
68
|
+
}
|
|
69
|
+
: {
|
|
70
|
+
reset: "",
|
|
71
|
+
bold: "",
|
|
72
|
+
dim: "",
|
|
73
|
+
red: "",
|
|
74
|
+
green: "",
|
|
75
|
+
yellow: "",
|
|
76
|
+
blue: "",
|
|
77
|
+
magenta: "",
|
|
78
|
+
cyan: "",
|
|
79
|
+
white: "",
|
|
80
|
+
bgRed: "",
|
|
81
|
+
bgGreen: "",
|
|
82
|
+
};
|
|
52
83
|
// --- Parse args from env (set by CLI) ---
|
|
53
84
|
function parseArgs() {
|
|
54
85
|
const raw = process.env[args_1.ELECTRON_ARGS_ENV];
|
|
@@ -114,19 +145,21 @@ function finish(allPassed) {
|
|
|
114
145
|
jsonLine("done", { status: allPassed ? "pass" : "fail", tests: results });
|
|
115
146
|
}
|
|
116
147
|
else {
|
|
117
|
-
|
|
118
|
-
console.log(
|
|
119
|
-
console.log("
|
|
148
|
+
const summaryColor = allPassed ? c.green : c.red;
|
|
149
|
+
console.log(`\n${summaryColor}${"=".repeat(60)}${c.reset}`);
|
|
150
|
+
console.log(`${c.bold}${summaryColor}${allPassed ? "ALL TESTS PASSED" : "SOME TESTS FAILED"}${c.reset}`);
|
|
151
|
+
console.log(`${summaryColor}${"=".repeat(60)}${c.reset}`);
|
|
120
152
|
for (const r of results) {
|
|
121
|
-
const icon = r.status === "pass" ?
|
|
122
|
-
|
|
153
|
+
const icon = r.status === "pass" ? `${c.green}✓${c.reset}` : `${c.red}✗${c.reset}`;
|
|
154
|
+
const nameColor = r.status === "pass" ? c.white : c.red;
|
|
155
|
+
console.log(`${icon} ${nameColor}${r.name}${c.reset} ${c.dim}(${(r.duration / 1000).toFixed(1)}s)${c.reset}`);
|
|
123
156
|
}
|
|
124
157
|
}
|
|
125
158
|
if (cliArgs.output) {
|
|
126
159
|
const output = { status: allPassed ? "pass" : "fail", tests: results };
|
|
127
160
|
fs.writeFileSync(cliArgs.output, JSON.stringify(output, null, 2));
|
|
128
161
|
if (!cliArgs.json)
|
|
129
|
-
console.log(`\
|
|
162
|
+
console.log(`\n${c.dim}Results written to ${cliArgs.output}${c.reset}`);
|
|
130
163
|
}
|
|
131
164
|
if (cliArgs.record) {
|
|
132
165
|
const { getRunDir: getDir } = require("./ipc");
|
|
@@ -135,23 +168,27 @@ function finish(allPassed) {
|
|
|
135
168
|
if (cliArgs.json)
|
|
136
169
|
jsonLine("recording", { path: dir });
|
|
137
170
|
else
|
|
138
|
-
console.log(`\
|
|
171
|
+
console.log(`\n${c.dim}Recording saved to: ${dir}${c.reset}`);
|
|
139
172
|
}
|
|
140
173
|
}
|
|
141
|
-
// Stay open on failure so user can inspect, unless --exit or --headless
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
if (
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
174
|
+
// Stay open on failure (or --keep-open) so user can inspect, unless --exit or --headless
|
|
175
|
+
const stayOpen = !cliArgs.exit && !cliArgs.headless && (!allPassed || cliArgs.keepOpen);
|
|
176
|
+
if (stayOpen) {
|
|
177
|
+
if (!allPassed) {
|
|
178
|
+
const firstFailed = results.find((r) => r.status === "fail");
|
|
179
|
+
if (firstFailed && mainWindow) {
|
|
180
|
+
const agentId = Array.from(agentIdToLabel.entries()).find(([, n]) => n === firstFailed.name)?.[0];
|
|
181
|
+
if (agentId)
|
|
182
|
+
mainWindow.webContents.send("focus-agent", { agentId });
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (mainWindow) {
|
|
149
186
|
mainWindow.show();
|
|
150
187
|
mainWindow.focus();
|
|
151
188
|
}
|
|
152
189
|
if (!cliArgs.json)
|
|
153
|
-
console.log(
|
|
154
|
-
electron_1.app.on("window-all-closed", () => process.exit(1));
|
|
190
|
+
console.log(`\n${c.dim}Window kept open — close window to exit.${c.reset}`);
|
|
191
|
+
electron_1.app.on("window-all-closed", () => process.exit(allPassed ? 0 : 1));
|
|
155
192
|
return;
|
|
156
193
|
}
|
|
157
194
|
process.exit(allPassed ? 0 : 1);
|
|
@@ -277,8 +314,8 @@ function flushBuffer(agentId) {
|
|
|
277
314
|
jsonLine("text", { test: agentLabel(agentId), text: buf });
|
|
278
315
|
}
|
|
279
316
|
else {
|
|
280
|
-
const prefix = expectedResults > 1 ?
|
|
281
|
-
process.stdout.write(`${prefix}${buf}\n`);
|
|
317
|
+
const prefix = expectedResults > 1 ? `${c.blue}[${agentLabel(agentId)}]${c.reset} ` : "";
|
|
318
|
+
process.stdout.write(`${prefix}${c.dim}${buf}${c.reset}\n`);
|
|
282
319
|
}
|
|
283
320
|
}
|
|
284
321
|
// Handle test results from renderer
|
|
@@ -345,12 +382,12 @@ electron_1.ipcMain.on("agent-output", (_, data) => {
|
|
|
345
382
|
return;
|
|
346
383
|
}
|
|
347
384
|
// Human-readable mode
|
|
348
|
-
const prefix = expectedResults > 1 ?
|
|
385
|
+
const prefix = expectedResults > 1 ? `${c.blue}[${agentLabel(data.agentId)}]${c.reset} ` : "";
|
|
349
386
|
if (data.type === "text") {
|
|
350
387
|
const buf = (textBuffers.get(data.agentId) || "") + data.text;
|
|
351
388
|
const lines = buf.split("\n");
|
|
352
389
|
for (let i = 0; i < lines.length - 1; i++) {
|
|
353
|
-
process.stdout.write(`${prefix}${lines[i]}\n`);
|
|
390
|
+
process.stdout.write(`${prefix}${c.dim}${lines[i]}${c.reset}\n`);
|
|
354
391
|
}
|
|
355
392
|
const remainder = lines[lines.length - 1];
|
|
356
393
|
if (remainder)
|
|
@@ -360,11 +397,13 @@ electron_1.ipcMain.on("agent-output", (_, data) => {
|
|
|
360
397
|
}
|
|
361
398
|
else if (data.type === "tool") {
|
|
362
399
|
flushBuffer(data.agentId);
|
|
363
|
-
process.stdout.write(`${prefix} > ${data.text}\n`);
|
|
400
|
+
process.stdout.write(`${prefix}${c.cyan} > ${data.text}${c.reset}\n`);
|
|
364
401
|
}
|
|
365
402
|
else if (data.type === "status") {
|
|
366
403
|
flushBuffer(data.agentId);
|
|
367
|
-
|
|
404
|
+
const isPass = data.text.startsWith("PASS");
|
|
405
|
+
const color = isPass ? c.green : c.red;
|
|
406
|
+
process.stdout.write(`${prefix}${c.bold}${color}--- ${data.text} ---${c.reset}\n`);
|
|
368
407
|
}
|
|
369
408
|
});
|
|
370
409
|
// Forward browser console logs to stdout when --console is enabled
|
|
@@ -378,9 +417,13 @@ electron_1.ipcMain.on("console-message", (_, data) => {
|
|
|
378
417
|
jsonLine("console", { test: name, level: levelName, message: data.message, url: data.url, line: data.line });
|
|
379
418
|
}
|
|
380
419
|
else {
|
|
381
|
-
const prefix = expectedResults > 1 ?
|
|
382
|
-
const tag = levelName === "error"
|
|
383
|
-
|
|
420
|
+
const prefix = expectedResults > 1 ? `${c.blue}[${name}]${c.reset} ` : "";
|
|
421
|
+
const tag = levelName === "error"
|
|
422
|
+
? `${c.red}ERR${c.reset}`
|
|
423
|
+
: levelName === "warn"
|
|
424
|
+
? `${c.yellow}WRN${c.reset}`
|
|
425
|
+
: `${c.dim}LOG${c.reset}`;
|
|
426
|
+
process.stderr.write(`${prefix}[${tag}] ${c.dim}${data.message}${c.reset}\n`);
|
|
384
427
|
}
|
|
385
428
|
});
|
|
386
429
|
electron_1.app.whenReady().then(() => {
|
|
@@ -299,15 +299,6 @@ function addTab(ctx, tabId, wcId, sendToRenderer, agentId, initialUrl) {
|
|
|
299
299
|
setupDownloads(ctx, popupWc);
|
|
300
300
|
});
|
|
301
301
|
wc.on("destroyed", () => {
|
|
302
|
-
const t = ctx.tabs.get(tabId);
|
|
303
|
-
if (t) {
|
|
304
|
-
try {
|
|
305
|
-
t.wc.debugger.detach();
|
|
306
|
-
}
|
|
307
|
-
catch (e) {
|
|
308
|
-
console.error("[tabs] debugger.detach on destroy failed:", e.message);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
302
|
ctx.tabs.delete(tabId);
|
|
312
303
|
});
|
|
313
304
|
if (initialUrl && initialUrl !== "about:blank") {
|
|
@@ -6,6 +6,7 @@ exports.electronArgsSchema = zod_1.z.object({
|
|
|
6
6
|
testPlanFiles: zod_1.z.array(zod_1.z.string()),
|
|
7
7
|
headless: zod_1.z.boolean(),
|
|
8
8
|
exit: zod_1.z.boolean(),
|
|
9
|
+
keepOpen: zod_1.z.boolean(),
|
|
9
10
|
json: zod_1.z.boolean(),
|
|
10
11
|
console: zod_1.z.boolean(),
|
|
11
12
|
record: zod_1.z.boolean(),
|
|
@@ -67,5 +67,5 @@ Error generating stack: `+l.message+`
|
|
|
67
67
|
`))+1))}const o="#".repeat(i),u=n.enter("headingAtx"),s=n.enter("phrasing");l.move(o+" ");let a=n.containerPhrasing(e,{before:"# ",after:`
|
|
68
68
|
`,...l.current()});return/^[\t ]/.test(a)&&(a=ui(a.charCodeAt(0))+a.slice(1)),a=a?o+" "+a:o,n.options.closeAtx&&(a+=" "+o),s(),u(),a}Jd.peek=Tv;function Jd(e){return e.value||""}function Tv(){return"<"}Zd.peek=Pv;function Zd(e,t,n,r){const i=Ws(n),l=i==='"'?"Quote":"Apostrophe",o=n.enter("image");let u=n.enter("label");const s=n.createTracker(r);let a=s.move("![");return a+=s.move(n.safe(e.alt,{before:a,after:"]",...s.current()})),a+=s.move("]("),u(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(u=n.enter("destinationLiteral"),a+=s.move("<"),a+=s.move(n.safe(e.url,{before:a,after:">",...s.current()})),a+=s.move(">")):(u=n.enter("destinationRaw"),a+=s.move(n.safe(e.url,{before:a,after:e.title?" ":")",...s.current()}))),u(),e.title&&(u=n.enter(`title${l}`),a+=s.move(" "+i),a+=s.move(n.safe(e.title,{before:a,after:i,...s.current()})),a+=s.move(i),u()),a+=s.move(")"),o(),a}function Pv(){return"!"}eh.peek=_v;function eh(e,t,n,r){const i=e.referenceType,l=n.enter("imageReference");let o=n.enter("label");const u=n.createTracker(r);let s=u.move("![");const a=n.safe(e.alt,{before:s,after:"]",...u.current()});s+=u.move(a+"]["),o();const f=n.stack;n.stack=[],o=n.enter("reference");const c=n.safe(n.associationId(e),{before:s,after:"]",...u.current()});return o(),n.stack=f,l(),i==="full"||!a||a!==c?s+=u.move(c+"]"):i==="shortcut"?s=s.slice(0,-1):s+=u.move("]"),s}function _v(){return"!"}th.peek=Iv;function th(e,t,n){let r=e.value||"",i="`",l=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++l<n.unsafe.length;){const o=n.unsafe[l],u=n.compilePattern(o);let s;if(o.atBreak)for(;s=u.exec(r);){let a=s.index;r.charCodeAt(a)===10&&r.charCodeAt(a-1)===13&&a--,r=r.slice(0,a)+" "+r.slice(s.index+1)}}return i+r+i}function Iv(){return"`"}function nh(e,t){const n=xs(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type==="text"&&(n===e.url||"mailto:"+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}rh.peek=Nv;function rh(e,t,n,r){const i=Ws(n),l=i==='"'?"Quote":"Apostrophe",o=n.createTracker(r);let u,s;if(nh(e,n)){const f=n.stack;n.stack=[],u=n.enter("autolink");let c=o.move("<");return c+=o.move(n.containerPhrasing(e,{before:c,after:">",...o.current()})),c+=o.move(">"),u(),n.stack=f,c}u=n.enter("link"),s=n.enter("label");let a=o.move("[");return a+=o.move(n.containerPhrasing(e,{before:a,after:"](",...o.current()})),a+=o.move("]("),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),a+=o.move("<"),a+=o.move(n.safe(e.url,{before:a,after:">",...o.current()})),a+=o.move(">")):(s=n.enter("destinationRaw"),a+=o.move(n.safe(e.url,{before:a,after:e.title?" ":")",...o.current()}))),s(),e.title&&(s=n.enter(`title${l}`),a+=o.move(" "+i),a+=o.move(n.safe(e.title,{before:a,after:i,...o.current()})),a+=o.move(i),s()),a+=o.move(")"),u(),a}function Nv(e,t,n){return nh(e,n)?"<":"["}ih.peek=Lv;function ih(e,t,n,r){const i=e.referenceType,l=n.enter("linkReference");let o=n.enter("label");const u=n.createTracker(r);let s=u.move("[");const a=n.containerPhrasing(e,{before:s,after:"]",...u.current()});s+=u.move(a+"]["),o();const f=n.stack;n.stack=[],o=n.enter("reference");const c=n.safe(n.associationId(e),{before:s,after:"]",...u.current()});return o(),n.stack=f,l(),i==="full"||!a||a!==c?s+=u.move(c+"]"):i==="shortcut"?s=s.slice(0,-1):s+=u.move("]"),s}function Lv(){return"["}function Qs(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function Av(e){const t=Qs(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function Dv(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function lh(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function Rv(e,t,n,r){const i=n.enter("list"),l=n.bulletCurrent;let o=e.ordered?Dv(n):Qs(n);const u=e.ordered?o==="."?")":".":Av(n);let s=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){const f=e.children?e.children[0]:void 0;if((o==="*"||o==="-")&&f&&(!f.children||!f.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(s=!0),lh(n)===o&&f){let c=-1;for(;++c<e.children.length;){const p=e.children[c];if(p&&p.type==="listItem"&&p.children&&p.children[0]&&p.children[0].type==="thematicBreak"){s=!0;break}}}}s&&(o=u),n.bulletCurrent=o;const a=n.containerFlow(e,r);return n.bulletLastUsed=o,n.bulletCurrent=l,i(),a}function bv(e){const t=e.options.listItemIndent||"one";if(t!=="tab"&&t!=="one"&&t!=="mixed")throw new Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function Fv(e,t,n,r){const i=bv(n);let l=n.bulletCurrent||Qs(n);t&&t.type==="list"&&t.ordered&&(l=(typeof t.start=="number"&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+l);let o=l.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);const u=n.createTracker(r);u.move(l+" ".repeat(o-l.length)),u.shift(o);const s=n.enter("listItem"),a=n.indentLines(n.containerFlow(e,u.current()),f);return s(),a;function f(c,p,d){return p?(d?"":" ".repeat(o))+c:(d?l:l+" ".repeat(o-l.length))+c}}function Mv(e,t,n,r){const i=n.enter("paragraph"),l=n.enter("phrasing"),o=n.containerPhrasing(e,r);return l(),i(),o}const Ov=Fl(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function jv(e,t,n,r){return(e.children.some(function(o){return Ov(o)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function Bv(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}oh.peek=Uv;function oh(e,t,n,r){const i=Bv(n),l=n.enter("strong"),o=n.createTracker(r),u=o.move(i+i);let s=o.move(n.containerPhrasing(e,{after:i,before:u,...o.current()}));const a=s.charCodeAt(0),f=Bl(r.before.charCodeAt(r.before.length-1),a,i);f.inside&&(s=ui(a)+s.slice(1));const c=s.charCodeAt(s.length-1),p=Bl(r.after.charCodeAt(0),c,i);p.inside&&(s=s.slice(0,-1)+ui(c));const d=o.move(i+i);return l(),n.attentionEncodeSurroundingInfo={after:p.outside,before:f.outside},u+s+d}function Uv(e,t,n){return n.options.strong||"*"}function $v(e,t,n,r){return n.safe(e.value,r)}function Hv(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function Vv(e,t,n){const r=(lh(n)+(n.options.ruleSpaces?" ":"")).repeat(Hv(n));return n.options.ruleSpaces?r.slice(0,-1):r}const uh={blockquote:dv,break:Xd,code:kv,definition:wv,emphasis:Gd,hardBreak:Xd,heading:zv,html:Jd,image:Zd,imageReference:eh,inlineCode:th,link:rh,linkReference:ih,list:Rv,listItem:Fv,paragraph:Mv,root:jv,strong:oh,text:$v,thematicBreak:Vv};function Wv(){return{enter:{table:Qv,tableData:sh,tableHeader:sh,tableRow:Kv},exit:{codeText:qv,table:Yv,tableData:Ys,tableHeader:Ys,tableRow:Ys}}}function Qv(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function Yv(e){this.exit(e),this.data.inTable=void 0}function Kv(e){this.enter({type:"tableRow",children:[]},e)}function Ys(e){this.exit(e)}function sh(e){this.enter({type:"tableCell",children:[]},e)}function qv(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,Xv));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function Xv(e,t){return t==="|"?t:e}function Gv(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,l=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:`
|
|
69
69
|
`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:p,table:o,tableCell:s,tableRow:u}};function o(d,g,k,E){return a(f(d,k,E),d.align)}function u(d,g,k,E){const h=c(d,k,E),m=a([h]);return m.slice(0,m.indexOf(`
|
|
70
|
-
`))}function s(d,g,k,E){const h=k.enter("tableCell"),m=k.enter("phrasing"),y=k.containerPhrasing(d,{...E,before:l,after:l});return m(),h(),y}function a(d,g){return fv(d,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function f(d,g,k){const E=d.children;let h=-1;const m=[],y=g.enter("table");for(;++h<E.length;)m[h]=c(E[h],g,k);return y(),m}function c(d,g,k){const E=d.children;let h=-1;const m=[],y=g.enter("tableRow");for(;++h<E.length;)m[h]=s(E[h],d,g,k);return y(),m}function p(d,g,k){let E=uh.inlineCode(d,g,k);return k.stack.includes("tableCell")&&(E=E.replace(/\|/g,"\\$&")),E}}function Jv(){return{exit:{taskListCheckValueChecked:ah,taskListCheckValueUnchecked:ah,paragraph:ew}}}function Zv(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:tw}}}function ah(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function ew(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const i=t.children;let l=-1,o;for(;++l<i.length;){const u=i[l];if(u.type==="paragraph"){o=u;break}}o===n&&(r.value=r.value.slice(1),r.value.length===0?n.children.shift():n.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,n.position.start=Object.assign({},r.position.start)))}}this.exit(e)}function tw(e,t,n,r){const i=e.children[0],l=typeof e.checked=="boolean"&&i&&i.type==="paragraph",o="["+(e.checked?"x":" ")+"] ",u=n.createTracker(r);l&&u.move(o);let s=uh.listItem(e,t,n,{...r,...u.current()});return l&&(s=s.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,a)),s;function a(f){return f+o}}function nw(){return[Rk(),tv(),lv(),Wv(),Jv()]}function rw(e){return{extensions:[bk(),nv(e),ov(),Gv(e),Zv()]}}const iw={tokenize:cw,partial:!0},ch={tokenize:fw,partial:!0},fh={tokenize:pw,partial:!0},ph={tokenize:dw,partial:!0},lw={tokenize:hw,partial:!0},dh={name:"wwwAutolink",tokenize:sw,previous:mh},hh={name:"protocolAutolink",tokenize:aw,previous:gh},Dt={name:"emailAutolink",tokenize:uw,previous:yh},wt={};function ow(){return{text:wt}}let Cn=48;for(;Cn<123;)wt[Cn]=Dt,Cn++,Cn===58?Cn=65:Cn===91&&(Cn=97);wt[43]=Dt,wt[45]=Dt,wt[46]=Dt,wt[95]=Dt,wt[72]=[Dt,hh],wt[104]=[Dt,hh],wt[87]=[Dt,dh],wt[119]=[Dt,dh];function uw(e,t,n){const r=this;let i,l;return o;function o(c){return!Ks(c)||!yh.call(r,r.previous)||qs(r.events)?n(c):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),u(c))}function u(c){return Ks(c)?(e.consume(c),u):c===64?(e.consume(c),s):n(c)}function s(c){return c===46?e.check(lw,f,a)(c):c===45||c===95||Ne(c)?(l=!0,e.consume(c),s):f(c)}function a(c){return e.consume(c),i=!0,s}function f(c){return l&&i&&be(r.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(c)):n(c)}}function sw(e,t,n){const r=this;return i;function i(o){return o!==87&&o!==119||!mh.call(r,r.previous)||qs(r.events)?n(o):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(iw,e.attempt(ch,e.attempt(fh,l),n),n)(o))}function l(o){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(o)}}function aw(e,t,n){const r=this;let i="",l=!1;return o;function o(c){return(c===72||c===104)&&gh.call(r,r.previous)&&!qs(r.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),i+=String.fromCodePoint(c),e.consume(c),u):n(c)}function u(c){if(be(c)&&i.length<5)return i+=String.fromCodePoint(c),e.consume(c),u;if(c===58){const p=i.toLowerCase();if(p==="http"||p==="https")return e.consume(c),s}return n(c)}function s(c){return c===47?(e.consume(c),l?a:(l=!0,s)):n(c)}function a(c){return c===null||Pl(c)||ee(c)||Sn(c)||_l(c)?n(c):e.attempt(ch,e.attempt(fh,f),n)(c)}function f(c){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(c)}}function cw(e,t,n){let r=0;return i;function i(o){return(o===87||o===119)&&r<3?(r++,e.consume(o),i):o===46&&r===3?(e.consume(o),l):n(o)}function l(o){return o===null?n(o):t(o)}}function fw(e,t,n){let r,i,l;return o;function o(a){return a===46||a===95?e.check(ph,s,u)(a):a===null||ee(a)||Sn(a)||a!==45&&_l(a)?s(a):(l=!0,e.consume(a),o)}function u(a){return a===95?r=!0:(i=r,r=void 0),e.consume(a),o}function s(a){return i||r||!l?n(a):t(a)}}function pw(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?l(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(ph,t,l)(o):o===null||ee(o)||Sn(o)?t(o):(e.consume(o),i)}function l(o){return o===41&&r++,e.consume(o),i}}function dw(e,t,n){return r;function r(u){return u===33||u===34||u===39||u===41||u===42||u===44||u===46||u===58||u===59||u===63||u===95||u===126?(e.consume(u),r):u===38?(e.consume(u),l):u===93?(e.consume(u),i):u===60||u===null||ee(u)||Sn(u)?t(u):n(u)}function i(u){return u===null||u===40||u===91||ee(u)||Sn(u)?t(u):r(u)}function l(u){return be(u)?o(u):n(u)}function o(u){return u===59?(e.consume(u),r):be(u)?(e.consume(u),o):n(u)}}function hw(e,t,n){return r;function r(l){return e.consume(l),i}function i(l){return Ne(l)?n(l):t(l)}}function mh(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||ee(e)}function gh(e){return!be(e)}function yh(e){return!(e===47||Ks(e))}function Ks(e){return e===43||e===45||e===46||e===95||Ne(e)}function qs(e){let t=e.length,n=!1;for(;t--;){const r=e[t][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const mw={tokenize:Cw,partial:!0};function gw(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:vw,continuation:{tokenize:ww},exit:Sw}},text:{91:{name:"gfmFootnoteCall",tokenize:kw},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:yw,resolveTo:xw}}}}function yw(e,t,n){const r=this;let i=r.events.length;const l=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;i--;){const s=r.events[i][1];if(s.type==="labelImage"){o=s;break}if(s.type==="gfmFootnoteCall"||s.type==="labelLink"||s.type==="label"||s.type==="image"||s.type==="link")break}return u;function u(s){if(!o||!o._balanced)return n(s);const a=pt(r.sliceSerialize({start:o.end,end:r.now()}));return a.codePointAt(0)!==94||!l.includes(a.slice(1))?n(s):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(s),e.exit("gfmFootnoteCallLabelMarker"),t(s))}}function xw(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const l={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},l.start),end:Object.assign({},l.end)},u=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",l,t],["enter",o,t],["exit",o,t],["exit",l,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...u),e}function kw(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let l=0,o;return u;function u(c){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),s}function s(c){return c!==94?n(c):(e.enter("gfmFootnoteCallMarker"),e.consume(c),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",a)}function a(c){if(l>999||c===93&&!o||c===null||c===91||ee(c))return n(c);if(c===93){e.exit("chunkString");const p=e.exit("gfmFootnoteCallString");return i.includes(pt(r.sliceSerialize(p)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(c)}return ee(c)||(o=!0),l++,e.consume(c),c===92?f:a}function f(c){return c===91||c===92||c===93?(e.consume(c),l++,a):a(c)}}function vw(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let l,o=0,u;return s;function s(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),a}function a(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",f):n(g)}function f(g){if(o>999||g===93&&!u||g===null||g===91||ee(g))return n(g);if(g===93){e.exit("chunkString");const k=e.exit("gfmFootnoteDefinitionLabelString");return l=pt(r.sliceSerialize(k)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),p}return ee(g)||(u=!0),o++,e.consume(g),g===92?c:f}function c(g){return g===91||g===92||g===93?(e.consume(g),o++,f):f(g)}function p(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),i.includes(l)||i.push(l),q(e,d,"gfmFootnoteDefinitionWhitespace")):n(g)}function d(g){return t(g)}}function ww(e,t,n){return e.check(ti,t,e.attempt(mw,t,n))}function Sw(e){e.exit("gfmFootnoteDefinition")}function Cw(e,t,n){const r=this;return q(e,i,"gfmFootnoteDefinitionIndent",5);function i(l){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(l):n(l)}}function Ew(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:l,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(o,u){let s=-1;for(;++s<o.length;)if(o[s][0]==="enter"&&o[s][1].type==="strikethroughSequenceTemporary"&&o[s][1]._close){let a=s;for(;a--;)if(o[a][0]==="exit"&&o[a][1].type==="strikethroughSequenceTemporary"&&o[a][1]._open&&o[s][1].end.offset-o[s][1].start.offset===o[a][1].end.offset-o[a][1].start.offset){o[s][1].type="strikethroughSequence",o[a][1].type="strikethroughSequence";const f={type:"strikethrough",start:Object.assign({},o[a][1].start),end:Object.assign({},o[s][1].end)},c={type:"strikethroughText",start:Object.assign({},o[a][1].end),end:Object.assign({},o[s][1].start)},p=[["enter",f,u],["enter",o[a][1],u],["exit",o[a][1],u],["enter",c,u]],d=u.parser.constructs.insideSpan.null;d&&Xe(p,p.length,0,Il(d,o.slice(a+1,s),u)),Xe(p,p.length,0,[["exit",c,u],["enter",o[s][1],u],["exit",o[s][1],u],["exit",f,u]]),Xe(o,a-1,s-a+3,p),s=a+p.length-2;break}}for(s=-1;++s<o.length;)o[s][1].type==="strikethroughSequenceTemporary"&&(o[s][1].type="data");return o}function l(o,u,s){const a=this.previous,f=this.events;let c=0;return p;function p(g){return a===126&&f[f.length-1][1].type!=="characterEscape"?s(g):(o.enter("strikethroughSequenceTemporary"),d(g))}function d(g){const k=rr(a);if(g===126)return c>1?s(g):(o.consume(g),c++,d);if(c<2&&!n)return s(g);const E=o.exit("strikethroughSequenceTemporary"),h=rr(g);return E._open=!h||h===2&&!!k,E._close=!k||k===2&&!!h,u(g)}}}class zw{constructor(){this.map=[]}add(t,n,r){Tw(this,t,n,r)}consume(t){if(this.map.sort(function(l,o){return l[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const l of i)t.push(l);i=r.pop()}this.map.length=0}}function Tw(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function Pw(e,t){let n=!1;const r=[];for(;t<e.length;){const i=e[t];if(n){if(i[0]==="enter")i[1].type==="tableContent"&&r.push(e[t+1][1].type==="tableDelimiterMarker"?"left":"none");else if(i[1].type==="tableContent"){if(e[t-1][1].type==="tableDelimiterMarker"){const l=r.length-1;r[l]=r[l]==="left"?"center":"right"}}else if(i[1].type==="tableDelimiterRow")break}else i[0]==="enter"&&i[1].type==="tableDelimiterRow"&&(n=!0);t+=1}return r}function _w(){return{flow:{null:{name:"table",tokenize:Iw,resolveAll:Nw}}}}function Iw(e,t,n){const r=this;let i=0,l=0,o;return u;function u(S){let R=r.events.length-1;for(;R>-1;){const F=r.events[R][1].type;if(F==="lineEnding"||F==="linePrefix")R--;else break}const M=R>-1?r.events[R][1].type:null,U=M==="tableHead"||M==="tableRow"?w:s;return U===w&&r.parser.lazy[r.now().line]?n(S):U(S)}function s(S){return e.enter("tableHead"),e.enter("tableRow"),a(S)}function a(S){return S===124||(o=!0,l+=1),f(S)}function f(S){return S===null?n(S):j(S)?l>1?(l=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),d):n(S):Y(S)?q(e,f,"whitespace")(S):(l+=1,o&&(o=!1,i+=1),S===124?(e.enter("tableCellDivider"),e.consume(S),e.exit("tableCellDivider"),o=!0,f):(e.enter("data"),c(S)))}function c(S){return S===null||S===124||ee(S)?(e.exit("data"),f(S)):(e.consume(S),S===92?p:c)}function p(S){return S===92||S===124?(e.consume(S),c):c(S)}function d(S){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(S):(e.enter("tableDelimiterRow"),o=!1,Y(S)?q(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(S):g(S))}function g(S){return S===45||S===58?E(S):S===124?(o=!0,e.enter("tableCellDivider"),e.consume(S),e.exit("tableCellDivider"),k):T(S)}function k(S){return Y(S)?q(e,E,"whitespace")(S):E(S)}function E(S){return S===58?(l+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(S),e.exit("tableDelimiterMarker"),h):S===45?(l+=1,h(S)):S===null||j(S)?C(S):T(S)}function h(S){return S===45?(e.enter("tableDelimiterFiller"),m(S)):T(S)}function m(S){return S===45?(e.consume(S),m):S===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(S),e.exit("tableDelimiterMarker"),y):(e.exit("tableDelimiterFiller"),y(S))}function y(S){return Y(S)?q(e,C,"whitespace")(S):C(S)}function C(S){return S===124?g(S):S===null||j(S)?!o||i!==l?T(S):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(S)):T(S)}function T(S){return n(S)}function w(S){return e.enter("tableRow"),I(S)}function I(S){return S===124?(e.enter("tableCellDivider"),e.consume(S),e.exit("tableCellDivider"),I):S===null||j(S)?(e.exit("tableRow"),t(S)):Y(S)?q(e,I,"whitespace")(S):(e.enter("data"),L(S))}function L(S){return S===null||S===124||ee(S)?(e.exit("data"),I(S)):(e.consume(S),S===92?O:L)}function O(S){return S===92||S===124?(e.consume(S),L):L(S)}}function Nw(e,t){let n=-1,r=!0,i=0,l=[0,0,0,0],o=[0,0,0,0],u=!1,s=0,a,f,c;const p=new zw;for(;++n<e.length;){const d=e[n],g=d[1];d[0]==="enter"?g.type==="tableHead"?(u=!1,s!==0&&(xh(p,t,s,a,f),f=void 0,s=0),a={type:"table",start:Object.assign({},g.start),end:Object.assign({},g.end)},p.add(n,0,[["enter",a,t]])):g.type==="tableRow"||g.type==="tableDelimiterRow"?(r=!0,c=void 0,l=[0,0,0,0],o=[0,n+1,0,0],u&&(u=!1,f={type:"tableBody",start:Object.assign({},g.start),end:Object.assign({},g.end)},p.add(n,0,[["enter",f,t]])),i=g.type==="tableDelimiterRow"?2:f?3:1):i&&(g.type==="data"||g.type==="tableDelimiterMarker"||g.type==="tableDelimiterFiller")?(r=!1,o[2]===0&&(l[1]!==0&&(o[0]=o[1],c=Ul(p,t,l,i,void 0,c),l=[0,0,0,0]),o[2]=n)):g.type==="tableCellDivider"&&(r?r=!1:(l[1]!==0&&(o[0]=o[1],c=Ul(p,t,l,i,void 0,c)),l=o,o=[l[1],n,0,0])):g.type==="tableHead"?(u=!0,s=n):g.type==="tableRow"||g.type==="tableDelimiterRow"?(s=n,l[1]!==0?(o[0]=o[1],c=Ul(p,t,l,i,n,c)):o[1]!==0&&(c=Ul(p,t,o,i,n,c)),i=0):i&&(g.type==="data"||g.type==="tableDelimiterMarker"||g.type==="tableDelimiterFiller")&&(o[3]=n)}for(s!==0&&xh(p,t,s,a,f),p.consume(t.events),n=-1;++n<t.events.length;){const d=t.events[n];d[0]==="enter"&&d[1].type==="table"&&(d[1]._align=Pw(t.events,n))}return e}function Ul(e,t,n,r,i,l){const o=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",u="tableContent";n[0]!==0&&(l.end=Object.assign({},lr(t.events,n[0])),e.add(n[0],0,[["exit",l,t]]));const s=lr(t.events,n[1]);if(l={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[["enter",l,t]]),n[2]!==0){const a=lr(t.events,n[2]),f=lr(t.events,n[3]),c={type:u,start:Object.assign({},a),end:Object.assign({},f)};if(e.add(n[2],0,[["enter",c,t]]),r!==2){const p=t.events[n[2]],d=t.events[n[3]];if(p[1].end=Object.assign({},d[1].end),p[1].type="chunkText",p[1].contentType="text",n[3]>n[2]+1){const g=n[2]+1,k=n[3]-n[2]-1;e.add(g,k,[])}}e.add(n[3]+1,0,[["exit",c,t]])}return i!==void 0&&(l.end=Object.assign({},lr(t.events,i)),e.add(i,0,[["exit",l,t]]),l=void 0),l}function xh(e,t,n,r,i){const l=[],o=lr(t.events,n);i&&(i.end=Object.assign({},o),l.push(["exit",i,t])),r.end=Object.assign({},o),l.push(["exit",r,t]),e.add(n+1,0,l)}function lr(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const Lw={name:"tasklistCheck",tokenize:Dw};function Aw(){return{text:{91:Lw}}}function Dw(e,t,n){const r=this;return i;function i(s){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(s):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),l)}function l(s){return ee(s)?(e.enter("taskListCheckValueUnchecked"),e.consume(s),e.exit("taskListCheckValueUnchecked"),o):s===88||s===120?(e.enter("taskListCheckValueChecked"),e.consume(s),e.exit("taskListCheckValueChecked"),o):n(s)}function o(s){return s===93?(e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),u):n(s)}function u(s){return j(s)?t(s):Y(s)?e.check({tokenize:Rw},t,n)(s):n(s)}}function Rw(e,t,n){return q(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function bw(e){return Qp([ow(),gw(),Ew(e),_w(),Aw()])}const Fw={};function kh(e){const t=this,n=e||Fw,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),l=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(bw(n)),l.push(nw()),o.push(rw(n))}function Mw(e){return e.type==="dynamic-tool"||typeof e.type=="string"&&e.type.startsWith("tool-")}function Ow({message:e}){var t,n;if(e.role==="user"){const r=(t=e.parts)==null?void 0:t.find(i=>i.type==="text");return P.jsxs("div",{className:"text-sm",children:[P.jsx("span",{className:"text-xs text-zinc-500 block mb-1",children:"Test Plan"}),P.jsx("div",{className:"text-zinc-200 prose prose-invert prose-sm max-w-none",children:P.jsx($d,{remarkPlugins:[kh],children:(r==null?void 0:r.text)||""})})]})}return P.jsx("div",{className:"text-sm space-y-2",children:(n=e.parts)==null?void 0:n.map((r,i)=>{var l,o;if(r.type==="text"&&r.text)return((o=(l=r.providerMetadata)==null?void 0:l.anthropic)==null?void 0:o.type)==="compaction"?null:P.jsxs("div",{children:[P.jsx("span",{className:"text-xs text-zinc-500 block mb-1",children:"Agent"}),P.jsx("div",{className:"text-zinc-300 prose prose-invert prose-sm max-w-none",children:P.jsx($d,{remarkPlugins:[kh],children:r.text})})]},i);if(Mw(r)){const u=r.toolName||(typeof r.type=="string"?r.type.replace(/^tool-/,""):"");return u==="todos"||u==="report_result"?null:P.jsx(jw,{part:r},i)}return null})})}function jw({part:e}){const[t,n]=H.useState(!1),r=e.input||{},i=e.output,l=e.state||"input-available",o=l==="input-streaming"||l==="input-available",u=e.toolName||(typeof e.type=="string"?e.type.replace(/^tool-/,""):""),s=l==="input-streaming"?"":u==="browser"?(()=>{const a=(r.actions||[]).map(f=>{switch(f.action){case"navigate":return`navigate ${f.url||""}`;case"mouse":return`mouse ${(f.mouseActions||[]).map(p=>p.action==="wait"?`wait ${p.ms}ms`:`${p.action} ${p.ref||`${p.x},${p.y}`}`).join(" → ")}`;case"type":return`type "${(f.text||"").slice(0,40)}"`;case"press":return`press ${f.key||""}`;case"tabs":return`tabs ${f.tabAction||""}`;default:return f.action||""}});return r.observe&&a.push(r.observe),a.join(", ")})():r.command||(Object.keys(r).length>0?JSON.stringify(r):"");return P.jsxs("div",{className:"text-sm",children:[P.jsxs("button",{onClick:()=>n(!t),className:"flex items-center gap-2 text-xs px-2 py-1.5 bg-zinc-900 border border-zinc-800 rounded-lg hover:border-zinc-700 transition-colors w-full text-left min-w-0 overflow-hidden",children:[o?P.jsx("span",{className:"inline-block w-2 h-2 bg-amber-500 rounded-full shrink-0"}):P.jsx("span",{className:"text-green-500 shrink-0",children:"✓"}),P.jsx("span",{className:"text-zinc-400 font-mono truncate",children:s}),P.jsx("span",{className:`ml-auto transition-transform text-zinc-600 shrink-0 ${t?"rotate-90":""}`,children:"▶"})]}),t&&P.jsxs("pre",{className:"mt-1 px-3 py-2 bg-zinc-900/50 rounded-lg border border-zinc-800 text-xs whitespace-pre-wrap break-all max-h-60 overflow-y-auto",children:[s&&P.jsxs(P.Fragment,{children:[P.jsxs("span",{className:"text-zinc-300 select-all",children:["$ ",s]}),`
|
|
70
|
+
`))}function s(d,g,k,E){const h=k.enter("tableCell"),m=k.enter("phrasing"),y=k.containerPhrasing(d,{...E,before:l,after:l});return m(),h(),y}function a(d,g){return fv(d,{align:g,alignDelimiters:r,padding:n,stringLength:i})}function f(d,g,k){const E=d.children;let h=-1;const m=[],y=g.enter("table");for(;++h<E.length;)m[h]=c(E[h],g,k);return y(),m}function c(d,g,k){const E=d.children;let h=-1;const m=[],y=g.enter("tableRow");for(;++h<E.length;)m[h]=s(E[h],d,g,k);return y(),m}function p(d,g,k){let E=uh.inlineCode(d,g,k);return k.stack.includes("tableCell")&&(E=E.replace(/\|/g,"\\$&")),E}}function Jv(){return{exit:{taskListCheckValueChecked:ah,taskListCheckValueUnchecked:ah,paragraph:ew}}}function Zv(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:tw}}}function ah(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function ew(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const i=t.children;let l=-1,o;for(;++l<i.length;){const u=i[l];if(u.type==="paragraph"){o=u;break}}o===n&&(r.value=r.value.slice(1),r.value.length===0?n.children.shift():n.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,n.position.start=Object.assign({},r.position.start)))}}this.exit(e)}function tw(e,t,n,r){const i=e.children[0],l=typeof e.checked=="boolean"&&i&&i.type==="paragraph",o="["+(e.checked?"x":" ")+"] ",u=n.createTracker(r);l&&u.move(o);let s=uh.listItem(e,t,n,{...r,...u.current()});return l&&(s=s.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,a)),s;function a(f){return f+o}}function nw(){return[Rk(),tv(),lv(),Wv(),Jv()]}function rw(e){return{extensions:[bk(),nv(e),ov(),Gv(e),Zv()]}}const iw={tokenize:cw,partial:!0},ch={tokenize:fw,partial:!0},fh={tokenize:pw,partial:!0},ph={tokenize:dw,partial:!0},lw={tokenize:hw,partial:!0},dh={name:"wwwAutolink",tokenize:sw,previous:mh},hh={name:"protocolAutolink",tokenize:aw,previous:gh},Dt={name:"emailAutolink",tokenize:uw,previous:yh},wt={};function ow(){return{text:wt}}let Cn=48;for(;Cn<123;)wt[Cn]=Dt,Cn++,Cn===58?Cn=65:Cn===91&&(Cn=97);wt[43]=Dt,wt[45]=Dt,wt[46]=Dt,wt[95]=Dt,wt[72]=[Dt,hh],wt[104]=[Dt,hh],wt[87]=[Dt,dh],wt[119]=[Dt,dh];function uw(e,t,n){const r=this;let i,l;return o;function o(c){return!Ks(c)||!yh.call(r,r.previous)||qs(r.events)?n(c):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),u(c))}function u(c){return Ks(c)?(e.consume(c),u):c===64?(e.consume(c),s):n(c)}function s(c){return c===46?e.check(lw,f,a)(c):c===45||c===95||Ne(c)?(l=!0,e.consume(c),s):f(c)}function a(c){return e.consume(c),i=!0,s}function f(c){return l&&i&&be(r.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(c)):n(c)}}function sw(e,t,n){const r=this;return i;function i(o){return o!==87&&o!==119||!mh.call(r,r.previous)||qs(r.events)?n(o):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(iw,e.attempt(ch,e.attempt(fh,l),n),n)(o))}function l(o){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(o)}}function aw(e,t,n){const r=this;let i="",l=!1;return o;function o(c){return(c===72||c===104)&&gh.call(r,r.previous)&&!qs(r.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),i+=String.fromCodePoint(c),e.consume(c),u):n(c)}function u(c){if(be(c)&&i.length<5)return i+=String.fromCodePoint(c),e.consume(c),u;if(c===58){const p=i.toLowerCase();if(p==="http"||p==="https")return e.consume(c),s}return n(c)}function s(c){return c===47?(e.consume(c),l?a:(l=!0,s)):n(c)}function a(c){return c===null||Pl(c)||ee(c)||Sn(c)||_l(c)?n(c):e.attempt(ch,e.attempt(fh,f),n)(c)}function f(c){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(c)}}function cw(e,t,n){let r=0;return i;function i(o){return(o===87||o===119)&&r<3?(r++,e.consume(o),i):o===46&&r===3?(e.consume(o),l):n(o)}function l(o){return o===null?n(o):t(o)}}function fw(e,t,n){let r,i,l;return o;function o(a){return a===46||a===95?e.check(ph,s,u)(a):a===null||ee(a)||Sn(a)||a!==45&&_l(a)?s(a):(l=!0,e.consume(a),o)}function u(a){return a===95?r=!0:(i=r,r=void 0),e.consume(a),o}function s(a){return i||r||!l?n(a):t(a)}}function pw(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?l(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(ph,t,l)(o):o===null||ee(o)||Sn(o)?t(o):(e.consume(o),i)}function l(o){return o===41&&r++,e.consume(o),i}}function dw(e,t,n){return r;function r(u){return u===33||u===34||u===39||u===41||u===42||u===44||u===46||u===58||u===59||u===63||u===95||u===126?(e.consume(u),r):u===38?(e.consume(u),l):u===93?(e.consume(u),i):u===60||u===null||ee(u)||Sn(u)?t(u):n(u)}function i(u){return u===null||u===40||u===91||ee(u)||Sn(u)?t(u):r(u)}function l(u){return be(u)?o(u):n(u)}function o(u){return u===59?(e.consume(u),r):be(u)?(e.consume(u),o):n(u)}}function hw(e,t,n){return r;function r(l){return e.consume(l),i}function i(l){return Ne(l)?n(l):t(l)}}function mh(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||ee(e)}function gh(e){return!be(e)}function yh(e){return!(e===47||Ks(e))}function Ks(e){return e===43||e===45||e===46||e===95||Ne(e)}function qs(e){let t=e.length,n=!1;for(;t--;){const r=e[t][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const mw={tokenize:Cw,partial:!0};function gw(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:vw,continuation:{tokenize:ww},exit:Sw}},text:{91:{name:"gfmFootnoteCall",tokenize:kw},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:yw,resolveTo:xw}}}}function yw(e,t,n){const r=this;let i=r.events.length;const l=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o;for(;i--;){const s=r.events[i][1];if(s.type==="labelImage"){o=s;break}if(s.type==="gfmFootnoteCall"||s.type==="labelLink"||s.type==="label"||s.type==="image"||s.type==="link")break}return u;function u(s){if(!o||!o._balanced)return n(s);const a=pt(r.sliceSerialize({start:o.end,end:r.now()}));return a.codePointAt(0)!==94||!l.includes(a.slice(1))?n(s):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(s),e.exit("gfmFootnoteCallLabelMarker"),t(s))}}function xw(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const l={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:"chunkString",contentType:"string",start:Object.assign({},l.start),end:Object.assign({},l.end)},u=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",l,t],["enter",o,t],["exit",o,t],["exit",l,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...u),e}function kw(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let l=0,o;return u;function u(c){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),s}function s(c){return c!==94?n(c):(e.enter("gfmFootnoteCallMarker"),e.consume(c),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",a)}function a(c){if(l>999||c===93&&!o||c===null||c===91||ee(c))return n(c);if(c===93){e.exit("chunkString");const p=e.exit("gfmFootnoteCallString");return i.includes(pt(r.sliceSerialize(p)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(c)}return ee(c)||(o=!0),l++,e.consume(c),c===92?f:a}function f(c){return c===91||c===92||c===93?(e.consume(c),l++,a):a(c)}}function vw(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let l,o=0,u;return s;function s(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),a}function a(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",f):n(g)}function f(g){if(o>999||g===93&&!u||g===null||g===91||ee(g))return n(g);if(g===93){e.exit("chunkString");const k=e.exit("gfmFootnoteDefinitionLabelString");return l=pt(r.sliceSerialize(k)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),p}return ee(g)||(u=!0),o++,e.consume(g),g===92?c:f}function c(g){return g===91||g===92||g===93?(e.consume(g),o++,f):f(g)}function p(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),i.includes(l)||i.push(l),q(e,d,"gfmFootnoteDefinitionWhitespace")):n(g)}function d(g){return t(g)}}function ww(e,t,n){return e.check(ti,t,e.attempt(mw,t,n))}function Sw(e){e.exit("gfmFootnoteDefinition")}function Cw(e,t,n){const r=this;return q(e,i,"gfmFootnoteDefinitionIndent",5);function i(l){const o=r.events[r.events.length-1];return o&&o[1].type==="gfmFootnoteDefinitionIndent"&&o[2].sliceSerialize(o[1],!0).length===4?t(l):n(l)}}function Ew(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:l,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(o,u){let s=-1;for(;++s<o.length;)if(o[s][0]==="enter"&&o[s][1].type==="strikethroughSequenceTemporary"&&o[s][1]._close){let a=s;for(;a--;)if(o[a][0]==="exit"&&o[a][1].type==="strikethroughSequenceTemporary"&&o[a][1]._open&&o[s][1].end.offset-o[s][1].start.offset===o[a][1].end.offset-o[a][1].start.offset){o[s][1].type="strikethroughSequence",o[a][1].type="strikethroughSequence";const f={type:"strikethrough",start:Object.assign({},o[a][1].start),end:Object.assign({},o[s][1].end)},c={type:"strikethroughText",start:Object.assign({},o[a][1].end),end:Object.assign({},o[s][1].start)},p=[["enter",f,u],["enter",o[a][1],u],["exit",o[a][1],u],["enter",c,u]],d=u.parser.constructs.insideSpan.null;d&&Xe(p,p.length,0,Il(d,o.slice(a+1,s),u)),Xe(p,p.length,0,[["exit",c,u],["enter",o[s][1],u],["exit",o[s][1],u],["exit",f,u]]),Xe(o,a-1,s-a+3,p),s=a+p.length-2;break}}for(s=-1;++s<o.length;)o[s][1].type==="strikethroughSequenceTemporary"&&(o[s][1].type="data");return o}function l(o,u,s){const a=this.previous,f=this.events;let c=0;return p;function p(g){return a===126&&f[f.length-1][1].type!=="characterEscape"?s(g):(o.enter("strikethroughSequenceTemporary"),d(g))}function d(g){const k=rr(a);if(g===126)return c>1?s(g):(o.consume(g),c++,d);if(c<2&&!n)return s(g);const E=o.exit("strikethroughSequenceTemporary"),h=rr(g);return E._open=!h||h===2&&!!k,E._close=!k||k===2&&!!h,u(g)}}}class zw{constructor(){this.map=[]}add(t,n,r){Tw(this,t,n,r)}consume(t){if(this.map.sort(function(l,o){return l[0]-o[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const l of i)t.push(l);i=r.pop()}this.map.length=0}}function Tw(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function Pw(e,t){let n=!1;const r=[];for(;t<e.length;){const i=e[t];if(n){if(i[0]==="enter")i[1].type==="tableContent"&&r.push(e[t+1][1].type==="tableDelimiterMarker"?"left":"none");else if(i[1].type==="tableContent"){if(e[t-1][1].type==="tableDelimiterMarker"){const l=r.length-1;r[l]=r[l]==="left"?"center":"right"}}else if(i[1].type==="tableDelimiterRow")break}else i[0]==="enter"&&i[1].type==="tableDelimiterRow"&&(n=!0);t+=1}return r}function _w(){return{flow:{null:{name:"table",tokenize:Iw,resolveAll:Nw}}}}function Iw(e,t,n){const r=this;let i=0,l=0,o;return u;function u(S){let R=r.events.length-1;for(;R>-1;){const F=r.events[R][1].type;if(F==="lineEnding"||F==="linePrefix")R--;else break}const M=R>-1?r.events[R][1].type:null,U=M==="tableHead"||M==="tableRow"?w:s;return U===w&&r.parser.lazy[r.now().line]?n(S):U(S)}function s(S){return e.enter("tableHead"),e.enter("tableRow"),a(S)}function a(S){return S===124||(o=!0,l+=1),f(S)}function f(S){return S===null?n(S):j(S)?l>1?(l=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),d):n(S):Y(S)?q(e,f,"whitespace")(S):(l+=1,o&&(o=!1,i+=1),S===124?(e.enter("tableCellDivider"),e.consume(S),e.exit("tableCellDivider"),o=!0,f):(e.enter("data"),c(S)))}function c(S){return S===null||S===124||ee(S)?(e.exit("data"),f(S)):(e.consume(S),S===92?p:c)}function p(S){return S===92||S===124?(e.consume(S),c):c(S)}function d(S){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(S):(e.enter("tableDelimiterRow"),o=!1,Y(S)?q(e,g,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(S):g(S))}function g(S){return S===45||S===58?E(S):S===124?(o=!0,e.enter("tableCellDivider"),e.consume(S),e.exit("tableCellDivider"),k):T(S)}function k(S){return Y(S)?q(e,E,"whitespace")(S):E(S)}function E(S){return S===58?(l+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(S),e.exit("tableDelimiterMarker"),h):S===45?(l+=1,h(S)):S===null||j(S)?C(S):T(S)}function h(S){return S===45?(e.enter("tableDelimiterFiller"),m(S)):T(S)}function m(S){return S===45?(e.consume(S),m):S===58?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(S),e.exit("tableDelimiterMarker"),y):(e.exit("tableDelimiterFiller"),y(S))}function y(S){return Y(S)?q(e,C,"whitespace")(S):C(S)}function C(S){return S===124?g(S):S===null||j(S)?!o||i!==l?T(S):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(S)):T(S)}function T(S){return n(S)}function w(S){return e.enter("tableRow"),I(S)}function I(S){return S===124?(e.enter("tableCellDivider"),e.consume(S),e.exit("tableCellDivider"),I):S===null||j(S)?(e.exit("tableRow"),t(S)):Y(S)?q(e,I,"whitespace")(S):(e.enter("data"),L(S))}function L(S){return S===null||S===124||ee(S)?(e.exit("data"),I(S)):(e.consume(S),S===92?O:L)}function O(S){return S===92||S===124?(e.consume(S),L):L(S)}}function Nw(e,t){let n=-1,r=!0,i=0,l=[0,0,0,0],o=[0,0,0,0],u=!1,s=0,a,f,c;const p=new zw;for(;++n<e.length;){const d=e[n],g=d[1];d[0]==="enter"?g.type==="tableHead"?(u=!1,s!==0&&(xh(p,t,s,a,f),f=void 0,s=0),a={type:"table",start:Object.assign({},g.start),end:Object.assign({},g.end)},p.add(n,0,[["enter",a,t]])):g.type==="tableRow"||g.type==="tableDelimiterRow"?(r=!0,c=void 0,l=[0,0,0,0],o=[0,n+1,0,0],u&&(u=!1,f={type:"tableBody",start:Object.assign({},g.start),end:Object.assign({},g.end)},p.add(n,0,[["enter",f,t]])),i=g.type==="tableDelimiterRow"?2:f?3:1):i&&(g.type==="data"||g.type==="tableDelimiterMarker"||g.type==="tableDelimiterFiller")?(r=!1,o[2]===0&&(l[1]!==0&&(o[0]=o[1],c=Ul(p,t,l,i,void 0,c),l=[0,0,0,0]),o[2]=n)):g.type==="tableCellDivider"&&(r?r=!1:(l[1]!==0&&(o[0]=o[1],c=Ul(p,t,l,i,void 0,c)),l=o,o=[l[1],n,0,0])):g.type==="tableHead"?(u=!0,s=n):g.type==="tableRow"||g.type==="tableDelimiterRow"?(s=n,l[1]!==0?(o[0]=o[1],c=Ul(p,t,l,i,n,c)):o[1]!==0&&(c=Ul(p,t,o,i,n,c)),i=0):i&&(g.type==="data"||g.type==="tableDelimiterMarker"||g.type==="tableDelimiterFiller")&&(o[3]=n)}for(s!==0&&xh(p,t,s,a,f),p.consume(t.events),n=-1;++n<t.events.length;){const d=t.events[n];d[0]==="enter"&&d[1].type==="table"&&(d[1]._align=Pw(t.events,n))}return e}function Ul(e,t,n,r,i,l){const o=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",u="tableContent";n[0]!==0&&(l.end=Object.assign({},lr(t.events,n[0])),e.add(n[0],0,[["exit",l,t]]));const s=lr(t.events,n[1]);if(l={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[["enter",l,t]]),n[2]!==0){const a=lr(t.events,n[2]),f=lr(t.events,n[3]),c={type:u,start:Object.assign({},a),end:Object.assign({},f)};if(e.add(n[2],0,[["enter",c,t]]),r!==2){const p=t.events[n[2]],d=t.events[n[3]];if(p[1].end=Object.assign({},d[1].end),p[1].type="chunkText",p[1].contentType="text",n[3]>n[2]+1){const g=n[2]+1,k=n[3]-n[2]-1;e.add(g,k,[])}}e.add(n[3]+1,0,[["exit",c,t]])}return i!==void 0&&(l.end=Object.assign({},lr(t.events,i)),e.add(i,0,[["exit",l,t]]),l=void 0),l}function xh(e,t,n,r,i){const l=[],o=lr(t.events,n);i&&(i.end=Object.assign({},o),l.push(["exit",i,t])),r.end=Object.assign({},o),l.push(["exit",r,t]),e.add(n+1,0,l)}function lr(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const Lw={name:"tasklistCheck",tokenize:Dw};function Aw(){return{text:{91:Lw}}}function Dw(e,t,n){const r=this;return i;function i(s){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(s):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),l)}function l(s){return ee(s)?(e.enter("taskListCheckValueUnchecked"),e.consume(s),e.exit("taskListCheckValueUnchecked"),o):s===88||s===120?(e.enter("taskListCheckValueChecked"),e.consume(s),e.exit("taskListCheckValueChecked"),o):n(s)}function o(s){return s===93?(e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),u):n(s)}function u(s){return j(s)?t(s):Y(s)?e.check({tokenize:Rw},t,n)(s):n(s)}}function Rw(e,t,n){return q(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function bw(e){return Qp([ow(),gw(),Ew(e),_w(),Aw()])}const Fw={};function kh(e){const t=this,n=e||Fw,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),l=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),o=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(bw(n)),l.push(nw()),o.push(rw(n))}function Mw(e){return e.type==="dynamic-tool"||typeof e.type=="string"&&e.type.startsWith("tool-")}function Ow({message:e}){var t,n;if(e.role==="user"){const r=(t=e.parts)==null?void 0:t.find(i=>i.type==="text");return P.jsxs("div",{className:"text-sm",children:[P.jsx("span",{className:"text-xs text-zinc-500 block mb-1",children:"Test Plan"}),P.jsx("div",{className:"text-zinc-200 prose prose-invert prose-sm max-w-none",children:P.jsx($d,{remarkPlugins:[kh],children:(r==null?void 0:r.text)||""})})]})}return P.jsx("div",{className:"text-sm space-y-2",children:(n=e.parts)==null?void 0:n.map((r,i)=>{var l,o;if(r.type==="text"&&r.text)return((o=(l=r.providerMetadata)==null?void 0:l.anthropic)==null?void 0:o.type)==="compaction"?null:P.jsxs("div",{children:[P.jsx("span",{className:"text-xs text-zinc-500 block mb-1",children:"Agent"}),P.jsx("div",{className:"text-zinc-300 prose prose-invert prose-sm max-w-none",children:P.jsx($d,{remarkPlugins:[kh],children:r.text})})]},i);if(Mw(r)){const u=r.toolName||(typeof r.type=="string"?r.type.replace(/^tool-/,""):"");return u==="todos"||u==="report_result"?null:P.jsx(jw,{part:r},i)}return null})})}function jw({part:e}){const[t,n]=H.useState(!1),r=e.input||{},i=e.output,l=e.state||"input-available",o=l==="input-streaming"||l==="input-available",u=e.toolName||(typeof e.type=="string"?e.type.replace(/^tool-/,""):""),s=l==="input-streaming"?"":u==="browser"?(()=>{const a=(r.actions||[]).map(f=>{switch(f.action){case"navigate":return`navigate ${f.url||""}`;case"mouse":return`mouse ${(f.mouseActions||[]).map(p=>p.action==="wait"?`wait ${p.ms}ms`:`${p.action} ${p.ref||`${p.x},${p.y}`}`).join(" → ")}`;case"type":return`type "${(f.text||"").slice(0,40)}"`;case"press":return`press ${f.key||""}`;case"tabs":return`tabs ${f.tabAction||""}`;default:return f.action||""}});return r.observe&&a.push(r.observe),r.forceFull&&a.push("[full]"),a.join(", ")})():r.command||(Object.keys(r).length>0?JSON.stringify(r):"");return P.jsxs("div",{className:"text-sm",children:[P.jsxs("button",{onClick:()=>n(!t),className:"flex items-center gap-2 text-xs px-2 py-1.5 bg-zinc-900 border border-zinc-800 rounded-lg hover:border-zinc-700 transition-colors w-full text-left min-w-0 overflow-hidden",children:[o?P.jsx("span",{className:"inline-block w-2 h-2 bg-amber-500 rounded-full shrink-0"}):P.jsx("span",{className:"text-green-500 shrink-0",children:"✓"}),P.jsx("span",{className:"text-zinc-400 font-mono truncate",children:s}),P.jsx("span",{className:`ml-auto transition-transform text-zinc-600 shrink-0 ${t?"rotate-90":""}`,children:"▶"})]}),t&&P.jsxs("pre",{className:"mt-1 px-3 py-2 bg-zinc-900/50 rounded-lg border border-zinc-800 text-xs whitespace-pre-wrap break-all max-h-60 overflow-y-auto",children:[s&&P.jsxs(P.Fragment,{children:[P.jsxs("span",{className:"text-zinc-300 select-all",children:["$ ",s]}),`
|
|
71
71
|
`]}),i!=null&&(()=>{if(u==="browser"&&typeof i=="string")try{const a=JSON.parse(i);if(a.textOutput!==void 0)return P.jsx("span",{className:"text-zinc-500",children:a.textOutput})}catch{}return P.jsx("span",{className:"text-zinc-500",children:typeof i=="string"?i:JSON.stringify(i,null,2)})})()]})]})}function Bw({messages:e,currentTime:t}){const n=H.useRef(null),r=H.useRef(null),i=H.useMemo(()=>{const o=[];for(const u of e){if(u._ts&&u._ts>t)break;if(!u.parts){o.push(u);continue}const s=u.parts.filter(a=>!a._ts||a._ts<=t);s.length>0&&o.push({...u,parts:s})}return o},[e,t]),l=H.useRef(0);return H.useEffect(()=>{var u;const o=i.reduce((s,a)=>{var f;return s+(((f=a.parts)==null?void 0:f.length)||1)},0);o>l.current&&(l.current=o,(u=r.current)==null||u.scrollIntoView({behavior:"smooth"}))},[i]),P.jsxs("div",{ref:n,className:"flex-1 overflow-y-auto overflow-x-hidden px-3 md:px-4 py-4 space-y-3 break-words",children:[i.map((o,u)=>P.jsx(Ow,{message:o},o.id||u)),i.length===0&&P.jsx("div",{className:"text-sm text-zinc-600",children:"No messages"}),P.jsx("div",{ref:r})]})}function Uw({messages:e,currentTime:t}){const n=H.useMemo(()=>{var i;let r=[];for(const l of e){if(l._ts&&l._ts>t)break;for(const o of l.parts||[]){if(o._ts&&o._ts>t)break;(o.toolName||(typeof o.type=="string"?o.type.replace(/^tool-/,""):""))==="todos"&&((i=o.input)!=null&&i.todos)&&(r=o.input.todos)}}return r},[e,t]);return n.length===0?null:P.jsxs("div",{className:"px-3 md:px-4 py-3 border-b border-zinc-800",children:[P.jsx("div",{className:"text-xs font-medium text-zinc-500 uppercase tracking-wider mb-2",children:"Progress"}),P.jsx("div",{className:"space-y-1",children:n.map((r,i)=>P.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[P.jsx("span",{className:"shrink-0",children:r.status==="completed"?P.jsx("span",{className:"text-green-500",children:"✓"}):r.status==="in_progress"?P.jsx("span",{className:"inline-block w-2 h-2 bg-amber-500 rounded-full"}):P.jsx("span",{className:"inline-block w-2 h-2 border border-zinc-600 rounded-full"})}),P.jsx("span",{className:r.status==="completed"?"text-zinc-500 line-through":"text-zinc-300",children:r.content})]},i))})]})}const $w=[1,2,4,8];function Hw({startTime:e,currentTime:t,clips:n,playing:r,speed:i,autoSpeed:l,onSeek:o,onTogglePlay:u,onSetSpeed:s,onSetAutoSpeed:a,formatTime:f,elapsed:c,duration:p}){const d=H.useRef(null),g=H.useCallback(m=>{const y=d.current;if(!y)return;const C=y.getBoundingClientRect(),T=Math.max(0,Math.min(1,(m.clientX-C.left)/C.width));o(e+T*p)},[e,p,o]),k=H.useCallback(m=>{m.buttons===1&&g(m)},[g]),E=H.useCallback(m=>{const y=d.current;if(!y||!m.touches[0])return;const C=y.getBoundingClientRect(),T=Math.max(0,Math.min(1,(m.touches[0].clientX-C.left)/C.width));o(e+T*p)},[e,p,o]),h=p>0?(t-e)/p*100:0;return P.jsxs("div",{className:"border-t border-zinc-800 bg-zinc-900 px-3 md:px-4 py-2 md:py-3 shrink-0",children:[P.jsxs("div",{ref:d,className:"relative h-6 mb-2 cursor-pointer rounded overflow-hidden bg-zinc-800",onClick:g,onMouseMove:k,onTouchStart:E,onTouchMove:E,children:[n.map((m,y)=>{const C=p>0?(m.startTime-e)/p*100:0,T=p>0?(m.endTime-m.startTime)/p*100:0;return P.jsx("div",{className:"absolute top-0 bottom-0 bg-blue-900/60",style:{left:`${C}%`,width:`${T}%`}},y)}),P.jsx("div",{className:"absolute top-0 bottom-0 bg-blue-600/30 pointer-events-none",style:{width:`${h}%`}}),P.jsx("div",{className:"absolute top-0 bottom-0 w-0.5 bg-blue-400 pointer-events-none",style:{left:`${h}%`}})]}),P.jsxs("div",{className:"flex items-center gap-2 md:gap-3",children:[P.jsx("button",{onClick:u,className:"text-zinc-300 hover:text-white transition-colors text-sm px-3 py-2 md:px-2 md:py-1 rounded border border-zinc-700 hover:border-zinc-500",children:r?"⏸":"▶"}),P.jsxs("span",{className:"text-xs text-zinc-400 font-mono tabular-nums",children:[f(c)," / ",f(p)]}),P.jsx("div",{className:"flex-1"}),P.jsx("button",{onClick:()=>a(!l),className:`text-xs px-2 py-1 rounded border transition-colors ${l?"border-blue-600 text-blue-400 bg-blue-950/30":"border-zinc-700 text-zinc-500 hover:text-zinc-400"}`,children:"Auto"}),P.jsx("div",{className:"flex gap-1",children:$w.map(m=>P.jsxs("button",{onClick:()=>s(m),className:`text-xs px-2 py-1 rounded border transition-colors ${i===m?"border-zinc-500 text-zinc-200 bg-zinc-800":"border-zinc-700 text-zinc-500 hover:text-zinc-400"}`,children:[m,"x"]},m))})]})]})}function Vw({data:e}){const t=e.focusAgentId,[n,r]=H.useState(null),[i,l]=H.useState(e.startTime),[o,u]=H.useState(!1),[s,a]=H.useState(1),[f,c]=H.useState(!0),[p,d]=H.useState("video"),g=H.useRef(0),k=H.useRef(0),E=e.endTime-e.startTime,h=H.useMemo(()=>e.clips.filter(F=>F.agentId===t),[e.clips,t]),m=H.useMemo(()=>[...new Set(h.map(F=>F.tabId))],[h]),y=H.useMemo(()=>n!==null?h.filter(F=>F.tabId===n):h,[h,n]);H.useEffect(()=>{m.length>0&&n===null&&r(m[0])},[m.length]);const T=!y.find(F=>i>=F.startTime&&i<=F.endTime),w=f&&T?Math.max(s,4):s;H.useEffect(()=>{if(!o){cancelAnimationFrame(g.current);return}k.current=performance.now();const F=()=>{const $=performance.now(),ae=($-k.current)*w;k.current=$,l(oe=>{const A=oe+ae;return A>=e.endTime?(u(!1),e.endTime):A}),g.current=requestAnimationFrame(F)};return g.current=requestAnimationFrame(F),()=>cancelAnimationFrame(g.current)},[o,w,e.endTime]);const I=H.useCallback(F=>{l(Math.max(e.startTime,Math.min(e.endTime,F)))},[e.startTime,e.endTime]),L=H.useCallback(()=>{u(F=>(F||l($=>$>=e.endTime?e.startTime:$),!F))},[e.endTime,e.startTime]);H.useEffect(()=>{const F=$=>{$.code==="Space"&&($.preventDefault(),L())};return window.addEventListener("keydown",F),()=>window.removeEventListener("keydown",F)},[L]);const O=F=>{const $=Math.floor(F/1e3),ae=Math.floor($/60),oe=$%60;return`${ae}:${oe.toString().padStart(2,"0")}`},S=H.useMemo(()=>{for(let F=y.length-1;F>=0;F--)if(y[F].startTime<=i&&y[F].url)return y[F].url;return""},[y,i]),R=i-e.startTime,M=e.agents.length>1,U=e.agents.find(F=>F.id===t);return P.jsxs("div",{className:"flex flex-col h-screen overflow-hidden",children:[M&&P.jsx("div",{className:"md:hidden flex items-center gap-2 px-3 py-2 bg-zinc-900 border-b border-zinc-800 overflow-x-auto",children:e.agents.map(F=>P.jsxs("a",{href:e.agentFiles[F.id]||"#",className:`text-sm px-3 py-2 rounded border whitespace-nowrap transition-colors no-underline ${F.id===t?"border-zinc-500 text-zinc-200 bg-zinc-800":"border-zinc-700 text-zinc-500"}`,children:[F.result==="pass"?"✓ ":F.result==="fail"?"✗ ":"",F.name]},F.id))}),P.jsxs("div",{className:"md:hidden flex border-b border-zinc-800 bg-zinc-900",children:[P.jsx("button",{onClick:()=>d("video"),className:`flex-1 text-sm py-3 text-center transition-colors ${p==="video"?"text-zinc-200 border-b-2 border-blue-500":"text-zinc-500"}`,children:"Browser"}),P.jsxs("button",{onClick:()=>d("activity"),className:`flex-1 text-sm py-3 text-center transition-colors ${p==="activity"?"text-zinc-200 border-b-2 border-blue-500":"text-zinc-500"}`,children:["Activity",(U==null?void 0:U.result)&&P.jsx("span",{className:`ml-1.5 ${U.result==="pass"?"text-green-400":"text-red-400"}`,children:U.result==="pass"?"PASS":"FAIL"})]})]}),P.jsxs("div",{className:"flex flex-1 min-h-0",children:[M&&P.jsx("div",{className:"hidden md:flex",children:P.jsx(Zg,{agents:e.agents,activeAgentId:t,agentFiles:e.agentFiles})}),P.jsxs("div",{className:`flex-1 flex flex-col min-w-0 md:border-r border-zinc-800 ${p!=="video"?"hidden md:flex":""}`,children:[m.length>1&&P.jsx(ey,{tabIds:m,activeTabId:n,onSelectTab:r}),P.jsx("div",{className:"flex items-center gap-2 px-3 py-2 bg-zinc-900 border-b border-zinc-800",children:P.jsx("div",{className:"flex-1 px-3 py-1.5 bg-zinc-800 border border-zinc-700 rounded-lg text-xs text-zinc-400 truncate",children:S||"about:blank"})}),P.jsx("div",{className:"flex-1 min-h-0 relative",children:P.jsx(ty,{clips:y,currentTime:i,playing:o,speed:w})}),P.jsx(ny,{entries:e.consoleLogs[t]||[],currentTime:i})]}),P.jsxs("div",{className:`md:w-[420px] flex flex-col h-full md:shrink-0 min-w-0 overflow-hidden ${p!=="activity"?"hidden md:flex":"flex-1"}`,children:[P.jsxs("div",{className:"hidden md:flex items-center px-4 py-3 border-b border-zinc-800",children:[P.jsx("h2",{className:"text-sm font-medium text-zinc-300",children:(U==null?void 0:U.name)||"Activity"}),P.jsx("div",{className:"flex-1"}),(U==null?void 0:U.result)&&P.jsx("span",{className:`text-xs font-medium px-2 py-0.5 rounded ${U.result==="pass"?"bg-green-950/50 text-green-400":"bg-red-950/50 text-red-400"}`,children:U.result==="pass"?"PASSED":"FAILED"})]}),P.jsx(Uw,{messages:e.messages[t]||[],currentTime:i}),P.jsx(Bw,{messages:e.messages[t]||[],timeline:e.timeline.filter(F=>F.agentId===t),currentTime:i,startTime:e.startTime})]})]}),P.jsx(Hw,{startTime:e.startTime,currentTime:i,clips:y,playing:o,speed:s,autoSpeed:f,onSeek:I,onTogglePlay:L,onSetSpeed:a,onSetAutoSpeed:c,formatTime:O,elapsed:R,duration:E})]})}const vh=window.__REPLAY_DATA__;vh?ql.createRoot(document.getElementById("root")).render(P.jsx(Uh.StrictMode,{children:P.jsx(Vw,{data:vh})})):document.getElementById("root").innerHTML='<div style="color:#999;padding:40px;font-family:sans-serif">No replay data found.</div>'})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
v4eeWwVGjBsQUZdT156fT
|
|
@@ -4,32 +4,32 @@
|
|
|
4
4
|
"static/chunks/webpack-9e4fd47eb2c72de4.js",
|
|
5
5
|
"static/chunks/1dd3208c-2143388ffa327752.js",
|
|
6
6
|
"static/chunks/528-31e5ce0646826d75.js",
|
|
7
|
-
"static/chunks/main-app-
|
|
7
|
+
"static/chunks/main-app-106dd83f859b9dfa.js",
|
|
8
8
|
"static/chunks/app/_not-found/page-655fd05e2bb4ddca.js"
|
|
9
9
|
],
|
|
10
10
|
"/layout": [
|
|
11
11
|
"static/chunks/webpack-9e4fd47eb2c72de4.js",
|
|
12
12
|
"static/chunks/1dd3208c-2143388ffa327752.js",
|
|
13
13
|
"static/chunks/528-31e5ce0646826d75.js",
|
|
14
|
-
"static/chunks/main-app-
|
|
14
|
+
"static/chunks/main-app-106dd83f859b9dfa.js",
|
|
15
15
|
"static/css/d8c646fe7195c123.css",
|
|
16
|
-
"static/chunks/app/layout-
|
|
16
|
+
"static/chunks/app/layout-57acb80d8da0067a.js"
|
|
17
17
|
],
|
|
18
|
-
"/
|
|
18
|
+
"/page": [
|
|
19
19
|
"static/chunks/webpack-9e4fd47eb2c72de4.js",
|
|
20
20
|
"static/chunks/1dd3208c-2143388ffa327752.js",
|
|
21
21
|
"static/chunks/528-31e5ce0646826d75.js",
|
|
22
|
-
"static/chunks/main-app-
|
|
23
|
-
"static/chunks/
|
|
24
|
-
"static/chunks/631-0edca788fa58159b.js",
|
|
25
|
-
"static/chunks/app/app/page-533a30559a8f39fa.js"
|
|
22
|
+
"static/chunks/main-app-106dd83f859b9dfa.js",
|
|
23
|
+
"static/chunks/app/page-1f82fbf792d529fd.js"
|
|
26
24
|
],
|
|
27
|
-
"/page": [
|
|
25
|
+
"/app/page": [
|
|
28
26
|
"static/chunks/webpack-9e4fd47eb2c72de4.js",
|
|
29
27
|
"static/chunks/1dd3208c-2143388ffa327752.js",
|
|
30
28
|
"static/chunks/528-31e5ce0646826d75.js",
|
|
31
|
-
"static/chunks/main-app-
|
|
32
|
-
"static/chunks/
|
|
29
|
+
"static/chunks/main-app-106dd83f859b9dfa.js",
|
|
30
|
+
"static/chunks/02d30405-01bdf403629d0188.js",
|
|
31
|
+
"static/chunks/793-be37f231ca512496.js",
|
|
32
|
+
"static/chunks/app/app/page-4c6dfbf12230aab7.js"
|
|
33
33
|
]
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"/_not-found/page":"/_not-found","/
|
|
1
|
+
{"/_not-found/page":"/_not-found","/page":"/","/app/page":"/app","/api/chat/route":"/api/chat","/api/screenshot/route":"/api/screenshot"}
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"ampDevFiles": [],
|
|
7
7
|
"lowPriorityFiles": [
|
|
8
|
-
"static/
|
|
9
|
-
"static/
|
|
8
|
+
"static/v4eeWwVGjBsQUZdT156fT/_buildManifest.js",
|
|
9
|
+
"static/v4eeWwVGjBsQUZdT156fT/_ssgManifest.js"
|
|
10
10
|
],
|
|
11
11
|
"rootMainFiles": [
|
|
12
12
|
"static/chunks/webpack-9e4fd47eb2c72de4.js",
|
|
13
13
|
"static/chunks/1dd3208c-2143388ffa327752.js",
|
|
14
14
|
"static/chunks/528-31e5ce0646826d75.js",
|
|
15
|
-
"static/chunks/main-app-
|
|
15
|
+
"static/chunks/main-app-106dd83f859b9dfa.js"
|
|
16
16
|
],
|
|
17
17
|
"pages": {
|
|
18
18
|
"/_app": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":4,"routes":{"/":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/","dataRoute":"/index.rsc"},"/app":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/app","dataRoute":"/app.rsc"}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"
|
|
1
|
+
{"version":4,"routes":{"/":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/","dataRoute":"/index.rsc"},"/app":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/app","dataRoute":"/app.rsc"}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"144e72e2c2df1c28dfb5c19c0abf2ee1","previewModeSigningKey":"e6f908754b0ac1b123b5e6398e5aab1808f3d851c0ca52f01a9a700f292219e4","previewModeEncryptionKey":"d99b081b208bfc6c5c5f4ba02d415b1f7a37a555d711b6295ee60bdf59b4cadd"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"config":{"env":{"DESKTOP_APP_VERSION":"0.1.0"},"webpack":null,"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"distDir":".next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.js","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"analyticsId":"","images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"inline","remotePatterns":[],"unoptimized":false},"devIndicators":{"buildActivity":true,"buildActivityPosition":"bottom-right"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"optimizeFonts":true,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"httpAgentOptions":{"keepAlive":true},"outputFileTracing":true,"staticPageGenerationTimeout":60,"swcMinify":true,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"experimental":{"multiZoneDraftMode":false,"prerenderEarlyExit":false,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":
|
|
1
|
+
{"version":1,"config":{"env":{"DESKTOP_APP_VERSION":"0.1.0"},"webpack":null,"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"distDir":".next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.js","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"analyticsId":"","images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"inline","remotePatterns":[],"unoptimized":false},"devIndicators":{"buildActivity":true,"buildActivityPosition":"bottom-right"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"optimizeFonts":true,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"httpAgentOptions":{"keepAlive":true},"outputFileTracing":true,"staticPageGenerationTimeout":60,"swcMinify":true,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"experimental":{"multiZoneDraftMode":false,"prerenderEarlyExit":false,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":9,"memoryBasedWorkersCount":false,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"outputFileTracingRoot":"/Users/pete/repos/growthgirl","swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"adjustFontFallbacks":false,"adjustFontFallbacksWithSizeAdjust":false,"typedRoutes":false,"instrumentationHook":false,"bundlePagesExternals":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"missingSuspenseWithCSRBailout":true,"optimizeServerReact":true,"useEarlyImport":false,"staleTimes":{"dynamic":30,"static":300},"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"configFileName":"next.config.js"},"appDir":"/Users/pete/repos/growthgirl/app/webapp","relativeAppDir":"app/webapp","files":[".next/routes-manifest.json",".next/server/pages-manifest.json",".next/build-manifest.json",".next/prerender-manifest.json",".next/server/middleware-manifest.json",".next/server/middleware-build-manifest.js",".next/server/middleware-react-loadable-manifest.js",".next/server/app-paths-manifest.json",".next/app-path-routes-manifest.json",".next/app-build-manifest.json",".next/server/server-reference-manifest.js",".next/server/server-reference-manifest.json",".next/react-loadable-manifest.json",".next/server/font-manifest.json",".next/BUILD_ID",".next/server/next-font-manifest.js",".next/server/next-font-manifest.json"],"ignore":["../../node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/**/*"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var e={};e.id=409,e.ids=[409],e.modules={2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},
|
|
1
|
+
(()=>{var e={};e.id=409,e.ids=[409],e.modules={2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},9722:(e,t,n)=>{"use strict";n.r(t),n.d(t,{GlobalError:()=>s.a,__next_app__:()=>f,originalPathname:()=>c,pages:()=>d,routeModule:()=>p,tree:()=>a}),n(3627),n(7824),n(7718);var r=n(3282),o=n(5736),i=n(3906),s=n.n(i),u=n(6880),l={};for(let e in u)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>u[e]);n.d(t,l);let a=["",{children:["/_not-found",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(n.t.bind(n,7824,23)),"next/dist/client/components/not-found-error"]}]},{}]},{layout:[()=>Promise.resolve().then(n.bind(n,7718)),"/Users/pete/repos/growthgirl/app/webapp/src/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(n.t.bind(n,7824,23)),"next/dist/client/components/not-found-error"]}],d=[],c="/_not-found/page",f={require:n,loadChunk:()=>Promise.resolve()},p=new r.AppPageRouteModule({definition:{kind:o.x.APP_PAGE,page:"/_not-found/page",pathname:"/_not-found",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:a}})},3652:()=>{},1171:(e,t,n)=>{Promise.resolve().then(n.t.bind(n,4424,23)),Promise.resolve().then(n.t.bind(n,7752,23)),Promise.resolve().then(n.t.bind(n,5275,23)),Promise.resolve().then(n.t.bind(n,9842,23)),Promise.resolve().then(n.t.bind(n,1633,23)),Promise.resolve().then(n.t.bind(n,9224,23))},7718:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i,metadata:()=>o});var r=n(9013);n(5556);let o={title:"Bang On It!"};function i({children:e}){return r.jsx("html",{lang:"en",children:r.jsx("body",{children:e})})}},8433:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{isNotFoundError:function(){return o},notFound:function(){return r}});let n="NEXT_NOT_FOUND";function r(){let e=Error(n);throw e.digest=n,e}function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===n}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3627:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{PARALLEL_ROUTE_DEFAULT_PATH:function(){return o},default:function(){return i}});let r=n(8433),o="next/dist/client/components/parallel-route-default.js";function i(){(0,r.notFound)()}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5556:()=>{}};var t=require("../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[522,679],()=>n(9722));module.exports=r})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"1584":{"*":{"id":"5275","name":"*","chunks":[],"async":false}},"1815":{"*":{"id":"4424","name":"*","chunks":[],"async":false}},"2023":{"*":{"id":"9224","name":"*","chunks":[],"async":false}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","name":"*","chunks":[],"async":false}},"5274":{"*":{"id":"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"1584":{"*":{"id":"5275","name":"*","chunks":[],"async":false}},"1815":{"*":{"id":"4424","name":"*","chunks":[],"async":false}},"2023":{"*":{"id":"9224","name":"*","chunks":[],"async":false}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","name":"*","chunks":[],"async":false}},"5274":{"*":{"id":"4564","name":"*","chunks":[],"async":false}},"5428":{"*":{"id":"7752","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/app-router.js":{"id":1815,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/app-router.js":{"id":1815,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/client-page.js":{"id":5428,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/client-page.js":{"id":5428,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/error-boundary.js":{"id":1584,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":1584,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/layout-router.js":{"id":5092,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/layout-router.js":{"id":5092,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/not-found-boundary.js":{"id":3859,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":3859,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/render-from-template-context.js":{"id":2023,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":2023,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/app/webapp/src/app/globals.css":{"id":2625,"name":"*","chunks":["185","static/chunks/app/layout-57acb80d8da0067a.js"],"async":false},"/Users/pete/repos/growthgirl/app/webapp/src/app/app/page.tsx":{"id":5274,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/pete/repos/growthgirl/app/webapp/src/":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/layout":["static/css/d8c646fe7195c123.css"],"/Users/pete/repos/growthgirl/app/webapp/src/app/page":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/_not-found/page":[]}}
|