bangonit 0.3.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +24 -33
  2. package/app/desktopapp/dist/main/index.js +7 -3
  3. package/app/desktopapp/dist/main/ipc.js +96 -20
  4. package/app/desktopapp/dist/main/preload.js +4 -3
  5. package/app/desktopapp/dist/main/tabs.js +86 -44
  6. package/app/replay/dist/replay.css +1 -1
  7. package/app/replay/dist/replay.js +24 -24
  8. package/app/webapp/.next/standalone/app/webapp/.next/BUILD_ID +1 -1
  9. package/app/webapp/.next/standalone/app/webapp/.next/app-build-manifest.json +2 -2
  10. package/app/webapp/.next/standalone/app/webapp/.next/app-path-routes-manifest.json +1 -1
  11. package/app/webapp/.next/standalone/app/webapp/.next/build-manifest.json +2 -2
  12. package/app/webapp/.next/standalone/app/webapp/.next/prerender-manifest.json +1 -1
  13. package/app/webapp/.next/standalone/app/webapp/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/app/webapp/.next/standalone/app/webapp/.next/server/app/_not-found.html +1 -1
  15. package/app/webapp/.next/standalone/app/webapp/.next/server/app/_not-found.rsc +1 -1
  16. package/app/webapp/.next/standalone/app/webapp/.next/server/app/app/page.js +3 -3
  17. package/app/webapp/.next/standalone/app/webapp/.next/server/app/app/page_client-reference-manifest.js +1 -1
  18. package/app/webapp/.next/standalone/app/webapp/.next/server/app/app.html +1 -1
  19. package/app/webapp/.next/standalone/app/webapp/.next/server/app/app.rsc +2 -2
  20. package/app/webapp/.next/standalone/app/webapp/.next/server/app/index.html +1 -1
  21. package/app/webapp/.next/standalone/app/webapp/.next/server/app/index.rsc +1 -1
  22. package/app/webapp/.next/standalone/app/webapp/.next/server/app/page_client-reference-manifest.js +1 -1
  23. package/app/webapp/.next/standalone/app/webapp/.next/server/app-paths-manifest.json +2 -2
  24. package/app/webapp/.next/standalone/app/webapp/.next/server/chunks/708.js +6 -2
  25. package/app/webapp/.next/standalone/app/webapp/.next/server/pages/404.html +1 -1
  26. package/app/webapp/.next/standalone/app/webapp/.next/server/pages/500.html +1 -1
  27. package/app/webapp/.next/standalone/app/webapp/.next/server/pages-manifest.json +1 -1
  28. package/app/webapp/.next/standalone/app/webapp/.next/server/server-reference-manifest.json +1 -1
  29. package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/app/app/page-d6a322343ab207d9.js +1 -0
  30. package/app/webapp/.next/{static/css/38219627f55424f2.css → standalone/app/webapp/.next/static/css/85c115515088d5dd.css} +1 -1
  31. package/app/webapp/.next/standalone/package.json +5 -2
  32. package/app/webapp/.next/static/chunks/app/app/page-d6a322343ab207d9.js +1 -0
  33. package/app/webapp/.next/{standalone/app/webapp/.next/static/css/38219627f55424f2.css → static/css/85c115515088d5dd.css} +1 -1
  34. package/app/webapp/src/shared/api/chat.ts +8 -2
  35. package/app/webapp/src/shared/components/AppShell.tsx +6 -5
  36. package/app/webapp/src/shared/components/SessionView.tsx +5 -4
  37. package/app/webapp/src/shared/lib/browser/index.ts +17 -27
  38. package/app/webapp/src/shared/lib/browser/recorder.ts +13 -4
  39. package/app/webapp/src/shared/lib/browser/snapshot.ts +19 -5
  40. package/app/webapp/src/shared/lib/browser/types.ts +21 -6
  41. package/app/webapp/src/shared/types/global.d.ts +6 -4
  42. package/bin/src/cli/bangonit.js +22 -12
  43. package/package.json +5 -2
  44. package/scripts/regen-replays.sh +101 -0
  45. package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/app/app/page-0e096497dcb81dae.js +0 -1
  46. package/app/webapp/.next/static/chunks/app/app/page-0e096497dcb81dae.js +0 -1
  47. /package/app/webapp/.next/standalone/app/webapp/.next/static/{CIPi_XcKXl17yJkvAnMYF → GYX27NS_2uYjr9ksgGxIo}/_buildManifest.js +0 -0
  48. /package/app/webapp/.next/standalone/app/webapp/.next/static/{CIPi_XcKXl17yJkvAnMYF → GYX27NS_2uYjr9ksgGxIo}/_ssgManifest.js +0 -0
  49. /package/app/webapp/.next/static/{CIPi_XcKXl17yJkvAnMYF → GYX27NS_2uYjr9ksgGxIo}/_buildManifest.js +0 -0
  50. /package/app/webapp/.next/static/{CIPi_XcKXl17yJkvAnMYF → GYX27NS_2uYjr9ksgGxIo}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- CIPi_XcKXl17yJkvAnMYF
1
+ GYX27NS_2uYjr9ksgGxIo
@@ -12,7 +12,7 @@
12
12
  "static/chunks/1dd3208c-2143388ffa327752.js",
13
13
  "static/chunks/528-31e5ce0646826d75.js",
14
14
  "static/chunks/main-app-106dd83f859b9dfa.js",
15
- "static/css/38219627f55424f2.css",
15
+ "static/css/85c115515088d5dd.css",
16
16
  "static/chunks/app/layout-57acb80d8da0067a.js"
17
17
  ],
18
18
  "/page": [
@@ -29,7 +29,7 @@
29
29
  "static/chunks/main-app-106dd83f859b9dfa.js",
30
30
  "static/chunks/02d30405-01bdf403629d0188.js",
31
31
  "static/chunks/631-0edca788fa58159b.js",
32
- "static/chunks/app/app/page-0e096497dcb81dae.js"
32
+ "static/chunks/app/app/page-d6a322343ab207d9.js"
33
33
  ]
34
34
  }
35
35
  }
@@ -1 +1 @@
1
- {"/_not-found/page":"/_not-found","/page":"/","/app/page":"/app","/api/screenshot/route":"/api/screenshot","/api/chat/route":"/api/chat"}
1
+ {"/_not-found/page":"/_not-found","/page":"/","/app/page":"/app","/api/chat/route":"/api/chat","/api/screenshot/route":"/api/screenshot"}
@@ -5,8 +5,8 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/CIPi_XcKXl17yJkvAnMYF/_buildManifest.js",
9
- "static/CIPi_XcKXl17yJkvAnMYF/_ssgManifest.js"
8
+ "static/GYX27NS_2uYjr9ksgGxIo/_buildManifest.js",
9
+ "static/GYX27NS_2uYjr9ksgGxIo/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [
12
12
  "static/chunks/webpack-9e4fd47eb2c72de4.js",
@@ -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":"d1177f7c3846aeea7ee482e35e4e2503","previewModeSigningKey":"fd69301c640b0c867845b64feecd768ee0ed9e1622df71638514a83abff728b7","previewModeEncryptionKey":"fa5f5ac494b5256a8ee28d9948ca4c329b6ade2504ab57951aa1e1643ff44ee9"}}
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":"586f08a09898088ffcfb853a255542f4","previewModeSigningKey":"82680d3db2c331e488e58151a9ad9361ee6a18134e54fb19970e3cd6552e46d3","previewModeEncryptionKey":"be521418aae5c4609a2d5aeca3377321d81711640b3d777b3545c245c7d5d79b"}}
@@ -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}},"2953":{"*":{"id":"5016","name":"*","chunks":[],"async":false}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","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":2953,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/pete/repos/growthgirl/app/webapp/src/":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/layout":["static/css/38219627f55424f2.css"],"/Users/pete/repos/growthgirl/app/webapp/src/app/page":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/_not-found/page":[]}}
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}},"2953":{"*":{"id":"5016","name":"*","chunks":[],"async":false}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","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":2953,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/pete/repos/growthgirl/app/webapp/src/":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/layout":["static/css/85c115515088d5dd.css"],"/Users/pete/repos/growthgirl/app/webapp/src/app/page":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/_not-found/page":[]}}
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/38219627f55424f2.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js"/><script src="/_next/static/chunks/1dd3208c-2143388ffa327752.js" async=""></script><script src="/_next/static/chunks/528-31e5ce0646826d75.js" async=""></script><script src="/_next/static/chunks/main-app-106dd83f859b9dfa.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Bang On It!</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/38219627f55424f2.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[1815,[],\"\"]\n4:I[5092,[],\"\"]\n5:I[2023,[],\"\"]\nb:I[1584,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"CIPi_XcKXl17yJkvAnMYF\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/38219627f55424f2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Bang On It!\"}]]\n3:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/85c115515088d5dd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js"/><script src="/_next/static/chunks/1dd3208c-2143388ffa327752.js" async=""></script><script src="/_next/static/chunks/528-31e5ce0646826d75.js" async=""></script><script src="/_next/static/chunks/main-app-106dd83f859b9dfa.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Bang On It!</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/85c115515088d5dd.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[1815,[],\"\"]\n4:I[5092,[],\"\"]\n5:I[2023,[],\"\"]\nb:I[1584,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"GYX27NS_2uYjr9ksgGxIo\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/85c115515088d5dd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Bang On It!\"}]]\n3:null\n"])</script></body></html>
@@ -4,6 +4,6 @@
4
4
  5:{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"}
5
5
  6:{"display":"inline-block"}
6
6
  7:{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0}
7
- 0:["CIPi_XcKXl17yJkvAnMYF",[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["/_not-found",{"children":["__PAGE__",{},[["$L1",[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null],null],null]},[null,["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children","/_not-found","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/38219627f55424f2.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$4","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$5","children":"404"}],["$","div",null,{"style":"$6","children":["$","h2",null,{"style":"$7","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L8",["$","meta",null,{"name":"robots","content":"noindex"}]]]]]
7
+ 0:["GYX27NS_2uYjr9ksgGxIo",[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["/_not-found",{"children":["__PAGE__",{},[["$L1",[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null],null],null]},[null,["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children","/_not-found","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/85c115515088d5dd.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$4","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$5","children":"404"}],["$","div",null,{"style":"$6","children":["$","h2",null,{"style":"$7","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L8",["$","meta",null,{"name":"robots","content":"noindex"}]]]]]
8
8
  8:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Bang On It!"}]]
9
9
  1:null
@@ -42,6 +42,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
42
42
  0% { width: 0; height: 0; opacity: 0.9; }
43
43
  100% { width: 64px; height: 64px; opacity: 0; }
44
44
  }
45
- `})]}):null}let p5=ny("type",[ng({type:nv("not_changed")}),ng({type:nv("changed"),base64:nm()})]);ng({textOutput:nm(),imageOutput:p5.nullable()}),Promise.resolve();class p3{constructor(e){this.clips=[],this.currentFrames=[],this.cursorPos={x:0,y:0},this.clicking=!1,this.recording=!1,this.currentTabId=0,this.clipStartTime=0,this.cdpCleanup=null,this.ripples=[],this.currentUrl="",this.agentId=e}async startClip(e,t){this.currentUrl=t||"",this.recording&&await this.cancelClip(),this.recording=!0,this.currentTabId=e,this.currentFrames=[],this.clipStartTime=Date.now();let n=window.bangonit;this.cdpCleanup=n.onCdpEvent(e=>{if(e.agentId!==this.agentId||"Page.screencastFrame"!==e.method||!this.recording)return;let{data:t,metadata:r,sessionId:a}=e.params;this.currentFrames.push({imageData:t,cursor:{...this.cursorPos},clicking:this.clicking,ts:Date.now(),sessionId:a,deviceWidth:r?.deviceWidth||0,deviceHeight:r?.deviceHeight||0,scrollOffsetX:r?.scrollOffsetX||0,scrollOffsetY:r?.scrollOffsetY||0}),n.cdpSend(this.agentId,"Page.screencastFrameAck",{sessionId:a}).catch(e=>console.error(e))}),await n.cdpSend(this.agentId,"Page.startScreencast",{format:"png",quality:100,maxWidth:1920,maxHeight:1080})}async stopClip(){if(!this.recording)return null;this.recording=!1;let e=Date.now();await window.bangonit.cdpSend(this.agentId,"Page.stopScreencast").catch(e=>console.error(e)),this.cdpCleanup&&(this.cdpCleanup(),this.cdpCleanup=null);let t=this.currentFrames;if(this.currentFrames=[],0===t.length)return null;let n=await this.compositeAndEncode(t);if(!n||0===n.size)return null;let r={agentId:this.agentId,tabId:this.currentTabId,index:this.clips.length,startTime:this.clipStartTime,endTime:e,path:`clips/${this.agentId}/clip-${this.clips.length}-tab-${this.currentTabId}.webm`,url:this.currentUrl||void 0};return this.clips.push(r),{blob:n,meta:r}}async cancelClip(){this.recording=!1,this.currentFrames=[],this.cdpCleanup&&(this.cdpCleanup(),this.cdpCleanup=null),await window.bangonit?.cdpSend(this.agentId,"Page.stopScreencast").catch(e=>console.error(e))}async compositeAndEncode(e){if(0===e.length)return null;let t=await this.decodeFrame(e[0].imageData);if(!t)return null;let n=t.width,r=t.height,a=document.createElement("canvas");a.width=n,a.height=r;let i=a.getContext("2d"),s=a.captureStream(0),o=s.getVideoTracks()[0],l=new MediaRecorder(s,{mimeType:"video/webm;codecs=vp8",videoBitsPerSecond:8e6}),u=[];l.ondataavailable=e=>{e.data.size>0&&u.push(e.data)};let c=new Promise(e=>{l.onstop=()=>{e(new Blob(u,{type:"video/webm"}))}});l.start();let d=[];for(let a=0;a<e.length;a++){let s=e[a],l=0===a?t:await this.decodeFrame(s.imageData);if(!l)continue;let u=s.deviceWidth>0?n/s.deviceWidth:1,c=s.deviceHeight>0?r/s.deviceHeight:1,m=s.cursor.x*u,g=s.cursor.y*c;s.clicking&&(0===a||!e[a-1].clicking)&&d.push({x:m,y:g,startTs:s.ts}),i.clearRect(0,0,n,r),i.drawImage(l,0,0,n,r);for(let e=d.length-1;e>=0;e--){var p,f,h;let t=d[e],n=s.ts-t.startTs;if(n>=400){d.splice(e,1);continue}p=t.x,f=t.y,h=n/400,i.save(),i.beginPath(),i.arc(p,f,24*h,0,2*Math.PI),i.fillStyle=`rgba(96, 165, 250, ${.8*(1-h)})`,i.fill(),i.restore(),i.save(),i.beginPath(),i.arc(p,f,32*h,0,2*Math.PI),i.strokeStyle=`rgba(96, 165, 250, ${.9*(1-h)})`,i.lineWidth=2,i.stroke(),i.restore()}if(function(e,t,n,r){e.save(),e.translate(t-2,n-1),e.scale(28/24,28/24);let a=new Path2D("M5 3l14 8.5-6.5 1.5-3.5 6z");e.fillStyle="white",e.strokeStyle="black",e.lineWidth=1.5,e.lineJoin="round",e.fill(a),e.stroke(a),e.restore(),r&&(e.save(),e.beginPath(),e.arc(t,n,4,0,2*Math.PI),e.fillStyle="rgba(59, 130, 246, 0.5)",e.fill(),e.restore())}(i,m,g,s.clicking),o&&"function"==typeof o.requestFrame&&o.requestFrame(),a<e.length-1){let t=Math.max(16,Math.min(e[a+1].ts-s.ts,100));await new Promise(e=>setTimeout(e,t))}}return await new Promise(e=>setTimeout(e,100)),l.stop(),c}async decodeFrame(e){try{let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);let r=new Blob([n],{type:"image/png"});return createImageBitmap(r)}catch(e){return console.warn("Failed to decode frame:",e),null}}updateCursor(e,t){this.cursorPos={x:e,y:t}}setCursorDown(){this.clicking=!0}setCursorUp(){this.clicking=!1}getClipsMeta(){return[...this.clips]}}function p6({agentId:e,agentName:t,initialPrompt:n,onStatusChange:r,onRerun:a,initialMessages:i,initialTabs:s,initialActiveTabId:o,initialTodos:l,record:u,sessionRecorder:c,onRegisterRecorder:d}){let[p,f]=(0,et.useState)(s?.map(e=>({...e,initialUrl:e.url}))||[{id:0,url:"about:blank",title:"",initialUrl:"about:blank"}]),[h,m]=(0,et.useState)(o??0),[g,y]=(0,et.useState)(()=>{let e=s?.find(e=>e.id===(o??0));return e?.url||""}),[v,b]=(0,et.useState)(null),[x,k]=(0,et.useState)(!1),[w,_]=(0,et.useState)(!1),S=(0,et.useRef)(new Map),[I,E]=(0,et.useState)(l||[]),T=(0,et.useRef)(null);(0,et.useRef)(!1);let C=(0,et.useRef)(s?Math.max(...s.map(e=>e.id))+1:1),A=(0,et.useRef)(new Set),[N,z]=(0,et.useState)(0);(0,et.useRef)(null);let O=(0,et.useRef)(null);O.current;let P=(0,et.useRef)(null);u&&!P.current&&O.current&&(P.current=new p3(e),O.current.enableRecording(P.current),d?.(e,P.current));let R=(0,et.useRef)(c);R.current=c;let j=(0,et.useMemo)(()=>new lv({api:"/api/chat",headers:()=>({"X-Client-Platform":navigator.platform})}),[]),D=(0,et.useRef)(!1),M=(0,et.useCallback)((n,r)=>{window.bangonit?.emitAgentOutput?.({agentId:e,type:n,text:r,name:t})},[e,t]),{messages:$,setMessages:L,sendMessage:F,addToolOutput:Z,stop:q,status:U,error:V}=function({experimental_throttle:e,resume:t=!1,...n}={}){let r=(0,et.useRef)("chat"in n?{}:{onToolCall:n.onToolCall,onData:n.onData,onFinish:n.onFinish,onError:n.onError,sendAutomaticallyWhen:n.sendAutomaticallyWhen});"chat"in n||(r.current={onToolCall:n.onToolCall,onData:n.onData,onFinish:n.onFinish,onError:n.onError,sendAutomaticallyWhen:n.sendAutomaticallyWhen});let a={...n,onToolCall:e=>{var t,n;return null==(n=(t=r.current).onToolCall)?void 0:n.call(t,e)},onData:e=>{var t,n;return null==(n=(t=r.current).onData)?void 0:n.call(t,e)},onFinish:e=>{var t,n;return null==(n=(t=r.current).onFinish)?void 0:n.call(t,e)},onError:e=>{var t,n;return null==(n=(t=r.current).onError)?void 0:n.call(t,e)},sendAutomaticallyWhen:e=>{var t,n,a;return null!=(a=null==(n=(t=r.current).sendAutomaticallyWhen)?void 0:n.call(t,e))&&a}},i=(0,et.useRef)("chat"in n?n.chat:new lE(a));("chat"in n&&n.chat!==i.current||"id"in n&&i.current.id!==n.id)&&(i.current="chat"in n?n.chat:new lE(a));let s=(0,et.useCallback)(t=>i.current["~registerMessagesCallback"](t,e),[e,i.current.id]),o=(0,et.useSyncExternalStore)(s,()=>i.current.messages,()=>i.current.messages),l=(0,et.useSyncExternalStore)(i.current["~registerStatusCallback"],()=>i.current.status,()=>i.current.status),u=(0,et.useSyncExternalStore)(i.current["~registerErrorCallback"],()=>i.current.error,()=>i.current.error),c=(0,et.useCallback)(e=>{"function"==typeof e&&(e=e(i.current.messages)),i.current.messages=e},[i]);return(0,et.useEffect)(()=>{t&&i.current.resumeStream()},[t,i]),{id:i.current.id,messages:o,setMessages:c,sendMessage:i.current.sendMessage,regenerate:i.current.regenerate,clearError:i.current.clearError,stop:i.current.stop,error:u,resumeStream:i.current.resumeStream,status:l,addToolResult:i.current.addToolOutput,addToolOutput:i.current.addToolOutput,addToolApprovalResponse:i.current.addToolApprovalResponse}}({transport:j,messages:i,sendAutomaticallyWhen:({messages:e})=>!D.current&&!x&&function({messages:e}){let t=e[e.length-1];if(!t||"assistant"!==t.role)return!1;let n=t.parts.reduce((e,t,n)=>"step-start"===t.type?n:e,-1),r=t.parts.slice(n+1).filter(ln).filter(e=>!e.providerExecuted);return r.length>0&&r.every(e=>"output-available"===e.state||"output-error"===e.state)}({messages:e}),async onToolCall({toolCall:n}){if("report_result"===n.toolName){let r=n.input,a=r?.result==="pass"?"pass":"fail",i=r?.summary||"";if(M("status",`${a.toUpperCase()}: ${i}`),b({result:a,summary:i}),R.current){R.current.addEvent({ts:Date.now(),agentId:e,type:"result",data:{result:a,summary:i}});try{let n=await window.bangonit?.getRunDir?.();if(n){let r=P.current?.getClipsMeta()||[],s=[{id:e,name:t,result:a,summary:i}],o=R.current.toJSON(s,r);await window.bangonit?.saveReplayData?.({runDir:n,data:JSON.stringify(o)}),await window.bangonit?.generateReplayHtml?.({runDir:n})}}catch(e){console.error(e)}}window.bangonit?.reportTestResult?.({agentId:e,status:a,summary:i}),Z({tool:n.toolName,toolCallId:n.toolCallId,output:`Test result recorded: ${a}`});return}if("todos"===n.toolName){let e=n.input,t=e?.todos||I;e?.todos&&E(e.todos),Z({tool:n.toolName,toolCallId:n.toolCallId,output:JSON.stringify(t)});return}if("browser"===n.toolName){try{let t=n.input,r=(t?.actions||[]).map(e=>"navigate"===e.action?`navigate ${e.url}`:"type"===e.action?`type "${(e.text||"").slice(0,30)}"`:"press"===e.action?`press ${e.key}`:"mouse"===e.action?`mouse ${(e.mouseActions||[]).map(e=>`${e.action} ${e.ref||`${e.x},${e.y}`}`).join(" > ")}`:e.action).join(", ");M("tool",`browser: ${r}${t?.observe?` [${t.observe}]`:""}`),R.current?.addEvent({ts:Date.now(),agentId:e,type:"tool-start",data:{tool:"browser",label:r}});let a=O.current,i=a?await a.exec({actions:t?.actions||[],observe:t?.observe,prompts:t?.prompts}):{error:"Error: browser tools not available"};R.current?.addEvent({ts:Date.now(),agentId:e,type:"tool-end",data:{tool:"browser"}}),Z({tool:n.toolName,toolCallId:n.toolCallId,output:D.current?{error:"[Stopped by user]"}:JSON.stringify(i)})}catch(e){Z({tool:n.toolName,toolCallId:n.toolCallId,...D.current?{output:"[Stopped by user]"}:{state:"output-error",errorText:e.message}})}return}}});(0,et.useCallback)(()=>{D.current=!0,q()},[q]);let B=$.length>0,W=null!==v;(0,et.useRef)(null),(0,et.useRef)(0),(0,et.useRef)("submitted"===U||"streaming"===U),(0,et.useRef)(!1),(0,et.useRef)(!1),(0,et.useRef)(null);let H=(0,et.useCallback)(t=>{let n=C.current++;f(e=>[...e,{id:n,url:"about:blank",title:"",initialUrl:t}]),m(n),y("about:blank"===t?"":t),window.bangonit?.setActiveTab(e,n)},[e]),J=(0,et.useCallback)(t=>{f(n=>{let r=n.findIndex(e=>e.id===t);if(-1===r)return n;let a=n.filter(e=>e.id!==t);return 0===a.length?n:(m(n=>{if(n===t){let t=a[Math.max(0,r-1)].id,n=a.find(e=>e.id===t);return n&&y("about:blank"===n.url?"":n.url),window.bangonit?.setActiveTab(e,t),t}return n}),a)})},[e]),G=(0,et.useCallback)(t=>{m(t),window.bangonit?.setActiveTab(e,t),f(e=>{let n=e.find(e=>e.id===t);return n&&y("about:blank"===n.url?"":n.url),e})},[e]),K=(0,et.useRef)(H),Y=(0,et.useRef)(J),Q=(0,et.useRef)(G);K.current=H,Y.current=J,Q.current=G;let X=(0,et.useCallback)((t,n,r)=>{if(!t)return;S.current.set(n,t);let a=()=>{if(!A.current.has(n))try{let a=t.getWebContentsId?.();a&&(A.current.add(n),window.bangonit?.registerTab(e,n,a,r),n===h&&window.bangonit?.setActiveTab(e,n))}catch(e){console.error(e)}};a(),t.addEventListener("did-attach",a),t.addEventListener("close",()=>Y.current(n)),t._consoleListenerAttached||(t._consoleListenerAttached=!0,t.addEventListener("console-message",t=>{window.bangonit?.emitConsoleMessage?.({agentId:e,level:t.level,message:t.message,url:t.sourceId||"",line:t.lineNumber||0}),R.current?.addConsoleLog(e,t.level,t.message,t.sourceId||"",t.lineNumber||0)}))},[e,h]),en=e=>`${Math.floor(e/60)}:${(e%60).toString().padStart(2,"0")}`;return(0,ee.jsxs)("div",{className:"flex h-full w-full bg-zinc-950 overflow-hidden",children:[(0,ee.jsxs)("div",{className:"flex-1 flex flex-col border-r border-zinc-800 min-w-0",children:[ee.jsx("div",{className:"flex items-center bg-zinc-900 border-b border-zinc-800 overflow-x-auto",children:p.map(e=>ee.jsx("button",{onClick:()=>G(e.id),className:`flex items-center gap-1.5 px-3 py-2 text-xs border-r border-zinc-800 min-w-0 max-w-[200px] shrink-0
46
- ${e.id===h?"bg-zinc-800 text-zinc-200":"text-zinc-500 hover:text-zinc-300 hover:bg-zinc-850"}`,children:(0,ee.jsxs)("span",{className:"truncate",children:[e.isPopup?"↗ ":"",e.title||(e.url&&"about:blank"!==e.url?e.url:"New Tab")]})},e.id))}),ee.jsx("div",{className:"flex items-center gap-2 px-3 py-2 bg-zinc-900 border-b border-zinc-800",children:ee.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:g||"about:blank"})}),(0,ee.jsxs)("div",{className:"flex-1 relative bg-white overflow-hidden",onWheel:e=>e.stopPropagation(),children:[p.map(t=>t.isPopup?t.id===h&&(0,ee.jsxs)("div",{className:"absolute inset-0 flex items-center justify-center bg-zinc-900 text-zinc-400 text-sm z-[1]",children:["Popup window open — ",t.title||t.url]},t.id):ee.jsx("webview",{ref:e=>X(e,t.id,t.initialUrl),src:"about:blank",partition:`persist:agent-${e}`,allowpopups:"",style:{width:"100%",height:"100%",position:"absolute",backgroundColor:"white",top:0,left:0,pointerEvents:t.id===h?"auto":"none",zIndex:t.id===h?1:0}},t.id)),!p.find(e=>e.id===h)?.isPopup&&ee.jsx(p9,{agentId:e}),!W&&ee.jsx("div",{className:"absolute inset-0 z-10 cursor-not-allowed"})]})]}),(0,ee.jsxs)("div",{className:"w-[420px] flex flex-col h-full shrink-0",children:[(0,ee.jsxs)("div",{className:"flex items-center px-4 py-3 border-b border-zinc-800",children:[ee.jsx("h2",{className:"text-sm font-medium text-zinc-300",children:t}),ee.jsx("div",{className:"flex-1"})]}),v&&(0,ee.jsxs)("div",{className:`px-4 py-2 text-sm border-b flex items-center gap-3 ${"pass"===v.result?"bg-green-950/30 border-green-900/50":"bg-red-950/30 border-red-900/50"}`,children:[ee.jsx("span",{className:`font-medium ${"pass"===v.result?"text-green-400":"text-red-400"}`,children:"pass"===v.result?"PASSED":"FAILED"}),ee.jsx("span",{className:"text-zinc-500 text-xs",children:en(N)}),v.summary&&ee.jsx("span",{className:"text-zinc-400 text-xs truncate flex-1",children:v.summary})]}),I.length>0&&ee.jsx("div",{className:"text-xs space-y-1 px-4 py-2 border-b border-zinc-800 bg-zinc-900/80 shrink-0",children:I.map((e,t)=>(0,ee.jsxs)("div",{className:`flex items-center gap-2 ${"completed"===e.status?"text-zinc-500":"text-zinc-300"}`,children:[ee.jsx("span",{className:"shrink-0",children:"completed"===e.status?"✓":"in_progress"===e.status?ee.jsx("span",{className:"inline-block w-2 h-2 bg-blue-500 rounded-full animate-pulse"}):"○"}),ee.jsx("span",{className:"completed"===e.status?"line-through":"",children:e.content})]},t))}),(0,ee.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-4 space-y-3",children:[$.map(e=>ee.jsx(p8,{message:e,agentName:t},e.id)),V&&ee.jsx("div",{className:"text-sm px-3 py-2 bg-red-950/30 border border-red-900/50 rounded-lg text-red-400",children:V.message}),ee.jsx("div",{ref:T})]}),ee.jsx("div",{className:"px-4 py-2 border-t border-zinc-800 flex items-center gap-3 shrink-0",children:W?(0,ee.jsxs)(ee.Fragment,{children:[ee.jsx("span",{className:`inline-block w-2 h-2 rounded-full shrink-0 ${"pass"===v.result?"bg-green-500":"bg-red-500"}`}),(0,ee.jsxs)("span",{className:`text-xs font-medium ${"pass"===v.result?"text-green-400":"text-red-400"}`,children:["pass"===v.result?"Passed":"Failed"," in ",en(N)]}),ee.jsx("div",{className:"flex-1"}),ee.jsx("button",{onClick:()=>{let e=S.current.get(h);e&&(w?e.closeDevTools():e.openDevTools(),_(!w))},className:`text-xs px-2 py-1 rounded border transition-colors ${w?"border-blue-600 text-blue-400 bg-blue-950/30":"border-zinc-700 hover:border-zinc-500 text-zinc-500 hover:text-zinc-300"}`,title:"Toggle DevTools",children:"DevTools"}),ee.jsx("button",{onClick:()=>{window.bangonit?.emitTestRerun?.(),a?.()},className:"text-xs px-3 py-1 rounded border border-zinc-700 hover:border-zinc-500 text-zinc-400 hover:text-zinc-200 transition-colors",children:"Rerun"})]}):B?(0,ee.jsxs)(ee.Fragment,{children:[ee.jsx("span",{className:`inline-block w-2 h-2 rounded-full shrink-0 ${x?"bg-amber-500":"bg-blue-500 animate-pulse"}`}),(0,ee.jsxs)("span",{className:"text-xs text-zinc-400",children:[x?"Paused":"Working"," ",en(N)]}),ee.jsx("div",{className:"flex-1"}),ee.jsx("button",{onClick:()=>{let e=S.current.get(h);e&&(w?e.closeDevTools():e.openDevTools(),_(!w))},className:`text-xs px-2 py-1 rounded border transition-colors ${w?"border-blue-600 text-blue-400 bg-blue-950/30":"border-zinc-700 hover:border-zinc-500 text-zinc-500 hover:text-zinc-300"}`,title:"Toggle DevTools",children:"DevTools"}),ee.jsx("button",{onClick:()=>k(!x),className:"text-xs px-2 py-1 rounded border border-zinc-700 hover:border-zinc-500 text-zinc-400 hover:text-zinc-200 transition-colors",children:x?"Continue":"Pause"})]}):(0,ee.jsxs)(ee.Fragment,{children:[ee.jsx("span",{className:"inline-block w-2 h-2 bg-zinc-600 rounded-full shrink-0"}),ee.jsx("span",{className:"text-xs text-zinc-500",children:"Queued"})]})})]})]})}function p8({message:e,agentName:t}){if("user"===e.role){let t=e.parts?.find(e=>"text"===e.type);return(0,ee.jsxs)("div",{className:"text-sm",children:[ee.jsx("span",{className:"text-xs text-zinc-500 block mb-1",children:"Test Plan"}),ee.jsx("div",{className:"text-zinc-200 prose prose-invert prose-sm max-w-none",children:ee.jsx(dW,{remarkPlugins:[p4],children:t?.text||""})})]})}return ee.jsx("div",{className:"text-sm space-y-2",children:e.parts?.map((e,n)=>{if("text"===e.type&&e.text)return e.providerMetadata?.anthropic?.type==="compaction"?null:ee.jsxs("div",{children:[ee.jsx("span",{className:"text-xs text-zinc-500 block mb-1",children:t}),ee.jsx("div",{className:"text-zinc-300 prose prose-invert prose-sm max-w-none",children:ee.jsx(dW,{remarkPlugins:[p4],children:e.text})})]},n);if("dynamic-tool"===e.type||"string"==typeof e.type&&e.type.startsWith("tool-")){let t=e.toolName||("string"==typeof e.type?e.type.replace(/^tool-/,""):"");return"todos"===t||"report_result"===t?null:ee.jsx(p7,{part:e},n)}return null})})}function p7({part:e}){let[t,n]=(0,et.useState)(!1),r=e.input||{},a=e.output,i=e.state||"input-available",s=e.toolName||("string"==typeof e.type?e.type.replace(/^tool-/,""):""),o="input-streaming"===i?"":"browser"===s?(()=>{let e=(r.actions||[]).map(e=>{switch(e.action){case"navigate":return`navigate ${e.url||""}`;case"mouse":{let t=(e.mouseActions||[]).map(e=>"wait"===e.action?`wait ${e.ms}ms`:"wheel"===e.action?`wheel ${e.ref||`${e.x},${e.y}`}`:`${e.action} ${e.ref||`${e.x},${e.y}`}`).join(" → ");return`mouse ${t}`}case"type":return`type "${(e.text||"").slice(0,40)}"`;case"press":return`press ${e.key||""}`;case"tabs":return`tabs ${e.tabAction||""}${e.tabId?" "+e.tabId:""}`;default:return e.action||""}});return r.observe&&e.push(r.observe),e.join(", ")})():r.command||(Object.keys(r).length>0?JSON.stringify(r):"");return(0,ee.jsxs)("div",{className:"text-sm",children:[(0,ee.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",children:["input-streaming"===i||"input-available"===i?ee.jsx("span",{className:"inline-block w-2 h-2 bg-amber-500 rounded-full animate-pulse shrink-0"}):ee.jsx("span",{className:"text-green-500 shrink-0",children:"✓"}),ee.jsx("span",{className:"text-zinc-400 font-mono truncate",children:o}),ee.jsx("span",{className:`ml-auto transition-transform text-zinc-600 shrink-0 ${t?"rotate-90":""}`,children:"▶"})]}),t&&(0,ee.jsxs)("pre",{className:"mt-1 px-3 py-2 bg-zinc-900/50 rounded-lg border border-zinc-800 text-xs whitespace-pre-wrap overflow-x-auto max-h-60 overflow-y-auto",children:[o&&(0,ee.jsxs)(ee.Fragment,{children:[(0,ee.jsxs)("span",{className:"text-zinc-300 select-all",children:["$ ",o]}),"\n"]}),null!=a&&(()=>{if("browser"===s&&"string"==typeof a)try{let e=JSON.parse(a);if(void 0!==e.textOutput)return(0,ee.jsxs)(ee.Fragment,{children:[ee.jsx("span",{className:"text-zinc-500",children:e.textOutput}),e.imageOutput&&(0,ee.jsxs)(ee.Fragment,{children:["\n",ee.jsx("span",{className:"changed"===e.imageOutput.type?"text-blue-400":"text-zinc-600",children:"changed"===e.imageOutput.type?"[screenshot: changed]":"[screenshot: unchanged]"})]})]})}catch(e){console.error(e)}return ee.jsx("span",{className:"text-zinc-500",children:"string"==typeof a?a:JSON.stringify(a,null,2)})})()]})]})}function fe(){let[e,t]=(0,et.useState)([]),[n,r]=(0,et.useState)({}),[a,i]=(0,et.useState)({}),[s,o]=(0,et.useState)(!1),[l,u]=(0,et.useState)({}),c=(0,et.useRef)(new Map),[d,p]=(0,et.useState)(null),[f,h]=(0,et.useState)(!1),[m,g]=(0,et.useState)(!1),y=(0,et.useRef)(null),v=(0,et.useRef)(new Map),b=(0,et.useRef)(e);b.current=e;let x=(0,et.useCallback)(async e=>{await window.bangonit?.clearPartition?.(e);let t=a[e];t&&(r(t=>({...t,[e]:"running"})),u(t=>({...t,[e]:(t[e]||0)+1})),i(n=>({...n,[e]:{initialPrompt:t.initialPrompt}})))},[a]),k=(0,et.useCallback)((e,t)=>{v.current.set(e,t)},[]),w=(0,et.useRef)(n);w.current=n;let _=(0,et.useCallback)(async(e,t)=>{let n=y.current;if(!n)return;let r=await window.bangonit?.getRunDir?.();if(!r)return;let a=[];for(let e of v.current.values())a.push(...e.getClipsMeta());let i={...w.current,[e]:t},s=b.current.map(e=>{let t=i[e.id];return{id:e.id,name:e.name,result:"completed"===t?"pass":"failed"===t?"fail":void 0}}),o=n.toJSON(s,a);await window.bangonit?.saveReplayData?.({runDir:r,data:JSON.stringify(o)}),await window.bangonit?.generateReplayHtml?.({runDir:r})},[]),S=(0,et.useCallback)((e,t,n)=>{let a;if(a="running"===t?"running":"pass"===n?"completed":"fail"===n?"failed":"idle",r(t=>({...t,[e]:a})),f&&("pass"===n||"fail"===n)&&_(e,a),"fail"===n){let t=c.current.get(e);t&&t.attempt<t.maxRetries&&(t.attempt++,window.bangonit?.emitTestRetry?.({agentId:e,attempt:t.attempt,maxRetries:t.maxRetries}),setTimeout(()=>x(e),1e3))}},[x,f,_]),I=(0,et.useCallback)((e,n,a)=>{a&&t(t=>t.map(t=>t.id===e?{...t,name:a}:t)),i(t=>({...t,[e]:{initialPrompt:n}})),r(t=>({...t,[e]:"running"})),p(e)},[]),E=(0,et.useCallback)(()=>{let n=crypto.randomUUID(),r={id:n,name:`Test ${e.length+1}`,createdAt:Date.now()};t(e=>[...e,r]),p(n)},[e.length]);if(!s)return ee.jsx("div",{className:"flex h-screen bg-zinc-950"});e.some(e=>a[e.id]);let T=e.find(e=>e.id===d),C=!!d&&!!a[d];return(0,ee.jsxs)("div",{className:"flex h-screen bg-zinc-950 overflow-hidden",children:[(0,ee.jsxs)("div",{className:"flex flex-col bg-zinc-900 border-r border-zinc-800 shrink-0 w-48 overflow-y-auto",children:[(0,ee.jsxs)("div",{className:"flex items-center px-3 py-2 border-b border-zinc-800",children:[ee.jsx("span",{className:"text-xs font-medium text-zinc-500 uppercase tracking-wider",children:"Tests"}),ee.jsx("div",{className:"flex-1"}),ee.jsx("button",{onClick:E,className:"text-zinc-500 hover:text-zinc-300 transition-colors text-lg leading-none",title:"Add test",children:"+"})]}),e.map(e=>{let t=n[e.id];return a[e.id],ee.jsx("button",{onClick:()=>p(e.id),className:`px-3 py-2 text-xs text-left border-b border-zinc-800 transition-colors
47
- ${e.id===d?"bg-zinc-800 text-zinc-200":"text-zinc-500 hover:text-zinc-300"}`,children:(0,ee.jsxs)("span",{className:"flex items-center gap-2",children:[ee.jsx("span",{className:`inline-block w-2 h-2 rounded-full shrink-0 ${"running"===t?"bg-blue-500 animate-pulse":"completed"===t?"bg-green-500":"failed"===t?"bg-red-500":"bg-zinc-600"}`}),ee.jsx("span",{className:"truncate",children:e.name})]})},e.id)})]}),(0,ee.jsxs)("div",{className:"flex-1 min-w-0 h-full relative",children:[e.map(e=>a[e.id]?ee.jsx("div",{className:"absolute inset-0 z-0",style:{display:"flex",zIndex:e.id===d?1:0,pointerEvents:e.id===d?"auto":"none"},children:ee.jsx(p6,{agentId:e.id,agentName:e.name,initialPrompt:a[e.id].initialPrompt,initialMessages:a[e.id].initialMessages,initialTabs:a[e.id].initialTabs,initialActiveTabId:a[e.id].initialActiveTabId,initialTodos:a[e.id].initialTodos,onStatusChange:S,onRerun:()=>x(e.id),record:f,sessionRecorder:y.current||void 0,onRegisterRecorder:k})},`${e.id}-${l[e.id]||0}`):null),T&&!C&&!m&&ee.jsx(ft,{agentId:T.id,agentName:T.name,onSubmit:I})]})]})}function ft({agentId:e,agentName:t,onSubmit:n}){let[r,a]=(0,et.useState)(""),i=(0,et.useRef)(null),s=()=>{let t=r.trim();t&&n(e,t)};return ee.jsx("div",{className:"absolute inset-0 flex items-center justify-center z-10 bg-zinc-950",children:(0,ee.jsxs)("div",{className:"w-full max-w-xl px-6",children:[ee.jsx("h2",{className:"text-lg font-medium text-zinc-200 mb-4",children:"What would you like to test?"}),(0,ee.jsxs)("div",{className:"relative",children:[ee.jsx("textarea",{ref:i,value:r,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),s())},placeholder:"Describe what to test in plain English...",className:"w-full px-4 py-3 bg-zinc-800 border border-zinc-700 rounded-lg text-sm text-zinc-200 placeholder-zinc-500 resize-none focus:outline-none focus:border-zinc-500 transition-colors",rows:4}),ee.jsx("button",{onClick:s,disabled:!r.trim(),className:"absolute bottom-3 right-3 px-3 py-1.5 bg-blue-600 hover:bg-blue-500 disabled:bg-zinc-700 disabled:text-zinc-500 text-white text-xs font-medium rounded transition-colors",children:"Run"})]}),ee.jsx("p",{className:"text-xs text-zinc-600 mt-2",children:"Press Enter to run. Shift+Enter for a new line."}),(0,ee.jsxs)("div",{className:"mt-4",children:[ee.jsx("p",{className:"text-xs text-zinc-600 mb-2",children:"Examples:"}),ee.jsx("div",{className:"flex flex-col gap-1.5",children:["Go to example.com and verify the homepage loads with a heading","Navigate to my-app.com/login, sign in with test@example.com / password123, and verify the dashboard loads","Go to localhost:3000, add an item to the cart, proceed to checkout, and verify the order summary"].map((e,t)=>ee.jsx("button",{onClick:()=>a(e),className:"text-left text-xs text-zinc-500 hover:text-zinc-300 bg-zinc-900 hover:bg-zinc-800 px-3 py-2 rounded border border-zinc-800 transition-colors",children:e},t))})]})]})})}function fn(){return ee.jsx(fe,{})}},1345:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},s=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,a=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!a&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},o=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(a)return a(e,n).value}return e[n]};e.exports=function e(){var t,n,r,a,u,c,d=arguments[0],p=1,f=arguments.length,h=!1;for("boolean"==typeof d&&(h=d,d=arguments[1]||{},p=2),(null==d||"object"!=typeof d&&"function"!=typeof d)&&(d={});p<f;++p)if(t=arguments[p],null!=t)for(n in t)r=l(d,n),d!==(a=l(t,n))&&(h&&a&&(s(a)||(u=i(a)))?(u?(u=!1,c=r&&i(r)?r:[]):c=r&&s(r)?r:{},o(d,{name:n,newValue:e(h,c,a)})):void 0!==a&&o(d,{name:n,newValue:a}));return d}},1627:e=>{"use strict";var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,o=/^[;\s]*/,l=/^\s+|\s+$/g;function u(e){return e?e.replace(l,""):""}e.exports=function(e,l){if("string"!=typeof e)throw TypeError("First argument must be a string");if(!e)return[];l=l||{};var c=1,d=1;function p(e){var t=e.match(n);t&&(c+=t.length);var r=e.lastIndexOf("\n");d=~r?e.length-r:d+e.length}function f(){var e={line:c,column:d};return function(t){return t.position=new h(e),g(r),t}}function h(e){this.start=e,this.end={line:c,column:d},this.source=l.source}function m(t){var n=Error(l.source+":"+c+":"+d+": "+t);if(n.reason=t,n.filename=l.source,n.line=c,n.column=d,n.source=e,l.silent);else throw n}function g(t){var n=t.exec(e);if(n){var r=n[0];return p(r),e=e.slice(r.length),n}}function y(e){var t;for(e=e||[];t=v();)!1!==t&&e.push(t);return e}function v(){var t=f();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;""!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,""===e.charAt(n-1))return m("End of comment missing");var r=e.slice(2,n-2);return d+=2,p(r),e=e.slice(n),d+=2,t({type:"comment",comment:r})}}return h.prototype.content=e,g(r),function(){var e,n=[];for(y(n);e=function(){var e=f(),n=g(a);if(n){if(v(),!g(i))return m("property missing ':'");var r=g(s),l=e({type:"declaration",property:u(n[0].replace(t,"")),value:r?u(r[0].replace(t,"")):""});return g(o),l}}();)!1!==e&&(n.push(e),y(n));return n}()}},393:function(e,t,n){"use strict";var r=(this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(n(9514)),a=n(1203);function i(e,t){var n={};return e&&"string"==typeof e&&(0,r.default)(e,function(e,r){e&&r&&(n[(0,a.camelCase)(e,t)]=r)}),n}i.default=i,e.exports=i},1203:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.camelCase=void 0;var n=/^--[a-zA-Z0-9_-]+$/,r=/-([a-z])/g,a=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,o=function(e,t){return t.toUpperCase()},l=function(e,t){return"".concat(t,"-")};t.camelCase=function(e,t){var u;return(void 0===t&&(t={}),!(u=e)||a.test(u)||n.test(u))?e:(e=e.toLowerCase(),(e=t.reactCompat?e.replace(s,l):e.replace(i,l)).replace(r,o))}},9514:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){let n=null;if(!e||"string"!=typeof e)return n;let r=(0,a.default)(e),i="function"==typeof t;return r.forEach(e=>{if("declaration"!==e.type)return;let{property:r,value:a}=e;i?t(r,a,e):a&&((n=n||{})[r]=a)}),n};let a=r(n(1627))},5987:e=>{e.exports=function(e,t){let n;if("function"!=typeof e)throw TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let r=0;return function(...a){clearTimeout(n);let i=Date.now(),s=t-(i-r);s<=0?(r=i,e.apply(this,a)):n=setTimeout(()=>{r=Date.now(),e.apply(this,a)},s)}}},1241:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});let r=(0,n(3189).createProxy)(String.raw`/Users/pete/repos/growthgirl/app/webapp/src/app/app/page.tsx#default`)},7718:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i,metadata:()=>a});var r=n(9013);n(5556);let a={title:"Bang On It!"};function i({children:e}){return r.jsx("html",{lang:"en",children:r.jsx("body",{children:e})})}},5556:()=>{}};var t=require("../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[522,679],()=>n(7541));module.exports=r})();
45
+ `})]}):null}let p5=ny("type",[ng({type:nv("not_changed")}),ng({type:nv("changed"),base64:nm()})]);ng({textOutput:nm(),imageOutput:p5.nullable()}),Promise.resolve();class p3{constructor(e){this.clips=[],this.currentFrames=[],this.cursorPos={x:0,y:0},this.clicking=!1,this.recording=!1,this.currentTabId=0,this.clipStartTime=0,this.cdpCleanup=null,this.ripples=[],this.currentUrl="",this.agentId=e}async startClip(e,t){this.currentUrl=t||"",this.recording&&await this.cancelClip(),this.recording=!0,this.currentTabId=e,this.currentFrames=[],this.clipStartTime=Date.now();let n=window.bangonit;this.cdpCleanup=n.onCdpEvent(e=>{if(e.agentId!==this.agentId||"Page.screencastFrame"!==e.method||!this.recording)return;let{data:t,metadata:r,sessionId:a}=e.params;this.currentFrames.push({imageData:t,cursor:{...this.cursorPos},clicking:this.clicking,ts:Date.now(),sessionId:a,deviceWidth:r?.deviceWidth||0,deviceHeight:r?.deviceHeight||0,scrollOffsetX:r?.scrollOffsetX||0,scrollOffsetY:r?.scrollOffsetY||0}),n.cdpSend(this.agentId,"Page.screencastFrameAck",{sessionId:a}).catch(e=>console.error(e))}),await n.cdpSend(this.agentId,"Page.startScreencast",{format:"png",quality:100,maxWidth:1920,maxHeight:1080})}async stopClip(){if(!this.recording)return null;this.recording=!1;let e=Date.now();await window.bangonit.cdpSend(this.agentId,"Page.stopScreencast").catch(e=>console.error(e)),this.cdpCleanup&&(this.cdpCleanup(),this.cdpCleanup=null);let t=this.currentFrames;if(this.currentFrames=[],0===t.length)return null;let n=await this.compositeAndEncode(t);if(!n||0===n.size)return null;let r=new Uint8Array(await n.arrayBuffer()),a="";for(let e=0;e<r.length;e++)a+=String.fromCharCode(r[e]);let i=btoa(a),s={agentId:this.agentId,tabId:this.currentTabId,index:this.clips.length,startTime:this.clipStartTime,endTime:e,url:this.currentUrl||void 0,data:i};return this.clips.push(s),{meta:s}}async cancelClip(){this.recording=!1,this.currentFrames=[],this.cdpCleanup&&(this.cdpCleanup(),this.cdpCleanup=null),await window.bangonit?.cdpSend(this.agentId,"Page.stopScreencast").catch(e=>console.error(e))}async compositeAndEncode(e){if(0===e.length)return null;let t=await this.decodeFrame(e[0].imageData);if(!t)return null;let n=t.width,r=t.height,a=document.createElement("canvas");a.width=n,a.height=r;let i=a.getContext("2d"),s=a.captureStream(0),o=s.getVideoTracks()[0],l=new MediaRecorder(s,{mimeType:"video/webm;codecs=vp8",videoBitsPerSecond:8e6}),u=[];l.ondataavailable=e=>{e.data.size>0&&u.push(e.data)};let c=new Promise(e=>{l.onstop=()=>{e(new Blob(u,{type:"video/webm"}))}});l.start();let d=[];for(let a=0;a<e.length;a++){let s=e[a],l=0===a?t:await this.decodeFrame(s.imageData);if(!l)continue;let u=s.deviceWidth>0?n/s.deviceWidth:1,c=s.deviceHeight>0?r/s.deviceHeight:1,m=s.cursor.x*u,g=s.cursor.y*c;s.clicking&&(0===a||!e[a-1].clicking)&&d.push({x:m,y:g,startTs:s.ts}),i.clearRect(0,0,n,r),i.drawImage(l,0,0,n,r);for(let e=d.length-1;e>=0;e--){var p,f,h;let t=d[e],n=s.ts-t.startTs;if(n>=400){d.splice(e,1);continue}p=t.x,f=t.y,h=n/400,i.save(),i.beginPath(),i.arc(p,f,24*h,0,2*Math.PI),i.fillStyle=`rgba(96, 165, 250, ${.8*(1-h)})`,i.fill(),i.restore(),i.save(),i.beginPath(),i.arc(p,f,32*h,0,2*Math.PI),i.strokeStyle=`rgba(96, 165, 250, ${.9*(1-h)})`,i.lineWidth=2,i.stroke(),i.restore()}if(function(e,t,n,r){e.save(),e.translate(t-2,n-1),e.scale(28/24,28/24);let a=new Path2D("M5 3l14 8.5-6.5 1.5-3.5 6z");e.fillStyle="white",e.strokeStyle="black",e.lineWidth=1.5,e.lineJoin="round",e.fill(a),e.stroke(a),e.restore(),r&&(e.save(),e.beginPath(),e.arc(t,n,4,0,2*Math.PI),e.fillStyle="rgba(59, 130, 246, 0.5)",e.fill(),e.restore())}(i,m,g,s.clicking),o&&"function"==typeof o.requestFrame&&o.requestFrame(),a<e.length-1){let t=Math.max(16,Math.min(e[a+1].ts-s.ts,100));await new Promise(e=>setTimeout(e,t))}}return await new Promise(e=>setTimeout(e,100)),l.stop(),c}async decodeFrame(e){try{let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);let r=new Blob([n],{type:"image/png"});return createImageBitmap(r)}catch(e){return console.warn("Failed to decode frame:",e),null}}updateCursor(e,t){this.cursorPos={x:e,y:t}}setCursorDown(){this.clicking=!0}setCursorUp(){this.clicking=!1}getClipsMeta(){return[...this.clips]}}function p6({agentId:e,agentName:t,initialPrompt:n,onStatusChange:r,onRerun:a,initialMessages:i,initialTabs:s,initialActiveTabId:o,initialTodos:l,record:u,sessionRecorder:c,onRegisterRecorder:d,planDir:p}){let[f,h]=(0,et.useState)(s?.map(e=>({...e,initialUrl:e.url}))||[{id:0,url:"about:blank",title:"",initialUrl:"about:blank"}]),[m,g]=(0,et.useState)(o??0),[y,v]=(0,et.useState)(()=>{let e=s?.find(e=>e.id===(o??0));return e?.url||""}),[b,x]=(0,et.useState)(null),[k,w]=(0,et.useState)(!1),[_,S]=(0,et.useState)(!1),I=(0,et.useRef)(new Map),[E,T]=(0,et.useState)(l||[]),C=(0,et.useRef)(null);(0,et.useRef)(!1);let A=(0,et.useRef)(s?Math.max(...s.map(e=>e.id))+1:1),N=(0,et.useRef)(new Set),[z,O]=(0,et.useState)(0);(0,et.useRef)(null);let P=(0,et.useRef)(null);P.current;let R=(0,et.useRef)(null);u&&!R.current&&P.current&&(R.current=new p3(e),P.current.enableRecording(R.current),d?.(e,R.current));let j=(0,et.useRef)(c);j.current=c;let D=(0,et.useMemo)(()=>new lv({api:"/api/chat",headers:()=>({"X-Client-Platform":navigator.platform})}),[]),M=(0,et.useRef)(!1),$=(0,et.useCallback)((n,r)=>{window.bangonit?.emitAgentOutput?.({agentId:e,type:n,text:r,name:t})},[e,t]),{messages:L,setMessages:F,sendMessage:Z,addToolOutput:q,stop:U,status:V,error:B}=function({experimental_throttle:e,resume:t=!1,...n}={}){let r=(0,et.useRef)("chat"in n?{}:{onToolCall:n.onToolCall,onData:n.onData,onFinish:n.onFinish,onError:n.onError,sendAutomaticallyWhen:n.sendAutomaticallyWhen});"chat"in n||(r.current={onToolCall:n.onToolCall,onData:n.onData,onFinish:n.onFinish,onError:n.onError,sendAutomaticallyWhen:n.sendAutomaticallyWhen});let a={...n,onToolCall:e=>{var t,n;return null==(n=(t=r.current).onToolCall)?void 0:n.call(t,e)},onData:e=>{var t,n;return null==(n=(t=r.current).onData)?void 0:n.call(t,e)},onFinish:e=>{var t,n;return null==(n=(t=r.current).onFinish)?void 0:n.call(t,e)},onError:e=>{var t,n;return null==(n=(t=r.current).onError)?void 0:n.call(t,e)},sendAutomaticallyWhen:e=>{var t,n,a;return null!=(a=null==(n=(t=r.current).sendAutomaticallyWhen)?void 0:n.call(t,e))&&a}},i=(0,et.useRef)("chat"in n?n.chat:new lE(a));("chat"in n&&n.chat!==i.current||"id"in n&&i.current.id!==n.id)&&(i.current="chat"in n?n.chat:new lE(a));let s=(0,et.useCallback)(t=>i.current["~registerMessagesCallback"](t,e),[e,i.current.id]),o=(0,et.useSyncExternalStore)(s,()=>i.current.messages,()=>i.current.messages),l=(0,et.useSyncExternalStore)(i.current["~registerStatusCallback"],()=>i.current.status,()=>i.current.status),u=(0,et.useSyncExternalStore)(i.current["~registerErrorCallback"],()=>i.current.error,()=>i.current.error),c=(0,et.useCallback)(e=>{"function"==typeof e&&(e=e(i.current.messages)),i.current.messages=e},[i]);return(0,et.useEffect)(()=>{t&&i.current.resumeStream()},[t,i]),{id:i.current.id,messages:o,setMessages:c,sendMessage:i.current.sendMessage,regenerate:i.current.regenerate,clearError:i.current.clearError,stop:i.current.stop,error:u,resumeStream:i.current.resumeStream,status:l,addToolResult:i.current.addToolOutput,addToolOutput:i.current.addToolOutput,addToolApprovalResponse:i.current.addToolApprovalResponse}}({transport:D,messages:i,sendAutomaticallyWhen:({messages:e})=>!M.current&&!k&&function({messages:e}){let t=e[e.length-1];if(!t||"assistant"!==t.role)return!1;let n=t.parts.reduce((e,t,n)=>"step-start"===t.type?n:e,-1),r=t.parts.slice(n+1).filter(ln).filter(e=>!e.providerExecuted);return r.length>0&&r.every(e=>"output-available"===e.state||"output-error"===e.state)}({messages:e}),async onToolCall({toolCall:n}){if("report_result"===n.toolName){let r=n.input,a=r?.result==="pass"?"pass":"fail",i=r?.summary||"";if($("status",`${a.toUpperCase()}: ${i}`),x({result:a,summary:i}),j.current){j.current.addEvent({ts:Date.now(),agentId:e,type:"result",data:{result:a,summary:i}});try{let n=await window.bangonit?.getRunDir?.();if(n){let r=R.current?.getClipsMeta()||[],s=[{id:e,name:t,result:a,summary:i}],o=j.current.toJSON(s,r);await window.bangonit?.generateReplayHtml?.({runDir:n,data:JSON.stringify(o)})}}catch(e){console.error(e)}}window.bangonit?.reportTestResult?.({agentId:e,status:a,summary:i}),q({tool:n.toolName,toolCallId:n.toolCallId,output:`Test result recorded: ${a}`});return}if("todos"===n.toolName){let e=n.input,t=e?.todos||E;e?.todos&&T(e.todos),q({tool:n.toolName,toolCallId:n.toolCallId,output:JSON.stringify(t)});return}if("browser"===n.toolName){try{let t=n.input,r=(t?.actions||[]).map(e=>"navigate"===e.action?`navigate ${e.url}`:"type"===e.action?`type "${(e.text||"").slice(0,30)}"`:"press"===e.action?`press ${e.key}`:"mouse"===e.action?`mouse ${(e.mouseActions||[]).map(e=>`${e.action} ${e.ref||`${e.x},${e.y}`}`).join(" > ")}`:e.action).join(", ");$("tool",`browser: ${r}${t?.observe?` [${t.observe}]`:""}`),j.current?.addEvent({ts:Date.now(),agentId:e,type:"tool-start",data:{tool:"browser",label:r}});let a=P.current,i=a?await a.exec({actions:t?.actions||[],observe:t?.observe,prompts:t?.prompts}):{error:"Error: browser tools not available"};j.current?.addEvent({ts:Date.now(),agentId:e,type:"tool-end",data:{tool:"browser"}}),q({tool:n.toolName,toolCallId:n.toolCallId,output:M.current?{error:"[Stopped by user]"}:JSON.stringify(i)})}catch(e){q({tool:n.toolName,toolCallId:n.toolCallId,...M.current?{output:"[Stopped by user]"}:{state:"output-error",errorText:e.message}})}return}}});(0,et.useCallback)(()=>{M.current=!0,U()},[U]);let W=L.length>0,H=null!==b;(0,et.useRef)(null),(0,et.useRef)(0),(0,et.useRef)("submitted"===V||"streaming"===V),(0,et.useRef)(!1),(0,et.useRef)(!1),(0,et.useRef)(null);let J=(0,et.useCallback)(t=>{let n=A.current++;h(e=>[...e,{id:n,url:"about:blank",title:"",initialUrl:t}]),g(n),v("about:blank"===t?"":t),window.bangonit?.setActiveTab(e,n)},[e]),G=(0,et.useCallback)(t=>{h(n=>{let r=n.findIndex(e=>e.id===t);if(-1===r)return n;let a=n.filter(e=>e.id!==t);return 0===a.length?n:(g(n=>{if(n===t){let t=a[Math.max(0,r-1)].id,n=a.find(e=>e.id===t);return n&&v("about:blank"===n.url?"":n.url),window.bangonit?.setActiveTab(e,t),t}return n}),a)})},[e]),K=(0,et.useCallback)(t=>{g(t),window.bangonit?.setActiveTab(e,t),h(e=>{let n=e.find(e=>e.id===t);return n&&v("about:blank"===n.url?"":n.url),e})},[e]),Y=(0,et.useRef)(J),Q=(0,et.useRef)(G),X=(0,et.useRef)(K);Y.current=J,Q.current=G,X.current=K;let en=(0,et.useCallback)((t,n,r)=>{if(!t)return;I.current.set(n,t);let a=()=>{if(!N.current.has(n))try{let a=t.getWebContentsId?.();a&&(N.current.add(n),window.bangonit?.registerTab(e,n,a,r,p),n===m&&window.bangonit?.setActiveTab(e,n))}catch(e){console.error(e)}};a(),t.addEventListener("did-attach",a),t.addEventListener("close",()=>Q.current(n)),t._consoleListenerAttached||(t._consoleListenerAttached=!0,t.addEventListener("console-message",t=>{window.bangonit?.emitConsoleMessage?.({agentId:e,level:t.level,message:t.message,url:t.sourceId||"",line:t.lineNumber||0}),j.current?.addConsoleLog(e,t.level,t.message,t.sourceId||"",t.lineNumber||0)}))},[e,m]),er=e=>`${Math.floor(e/60)}:${(e%60).toString().padStart(2,"0")}`;return(0,ee.jsxs)("div",{className:"flex h-full w-full bg-zinc-950 overflow-hidden",children:[(0,ee.jsxs)("div",{className:"flex-1 flex flex-col border-r border-zinc-800 min-w-0",children:[ee.jsx("div",{className:"flex items-center bg-zinc-900 border-b border-zinc-800 overflow-x-auto",children:f.map(e=>ee.jsx("button",{onClick:()=>K(e.id),className:`flex items-center gap-1.5 px-3 py-2 text-xs border-r border-zinc-800 min-w-0 max-w-[200px] shrink-0
46
+ ${e.id===m?"bg-zinc-800 text-zinc-200":"text-zinc-500 hover:text-zinc-300 hover:bg-zinc-850"}`,children:(0,ee.jsxs)("span",{className:"truncate",children:[e.isPopup?"↗ ":"",e.title||(e.url&&"about:blank"!==e.url?e.url:"New Tab")]})},e.id))}),ee.jsx("div",{className:"flex items-center gap-2 px-3 py-2 bg-zinc-900 border-b border-zinc-800",children:ee.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:y||"about:blank"})}),(0,ee.jsxs)("div",{className:"flex-1 relative bg-white overflow-hidden",onWheel:e=>e.stopPropagation(),children:[f.map(t=>t.isPopup?t.id===m&&(0,ee.jsxs)("div",{className:"absolute inset-0 flex items-center justify-center bg-zinc-900 text-zinc-400 text-sm z-[1]",children:["Popup window open — ",t.title||t.url]},t.id):ee.jsx("webview",{ref:e=>en(e,t.id,t.initialUrl),src:"about:blank",partition:`persist:agent-${e}`,allowpopups:"",style:{width:"100%",height:"100%",position:"absolute",backgroundColor:"white",top:0,left:0,pointerEvents:t.id===m?"auto":"none",zIndex:t.id===m?1:0}},t.id)),!f.find(e=>e.id===m)?.isPopup&&ee.jsx(p9,{agentId:e}),!H&&ee.jsx("div",{className:"absolute inset-0 z-10 cursor-not-allowed"})]})]}),(0,ee.jsxs)("div",{className:"w-[420px] flex flex-col h-full shrink-0",children:[(0,ee.jsxs)("div",{className:"flex items-center px-4 py-3 border-b border-zinc-800",children:[ee.jsx("h2",{className:"text-sm font-medium text-zinc-300",children:t}),ee.jsx("div",{className:"flex-1"})]}),b&&(0,ee.jsxs)("div",{className:`px-4 py-2 text-sm border-b flex items-center gap-3 ${"pass"===b.result?"bg-green-950/30 border-green-900/50":"bg-red-950/30 border-red-900/50"}`,children:[ee.jsx("span",{className:`font-medium ${"pass"===b.result?"text-green-400":"text-red-400"}`,children:"pass"===b.result?"PASSED":"FAILED"}),ee.jsx("span",{className:"text-zinc-500 text-xs",children:er(z)}),b.summary&&ee.jsx("span",{className:"text-zinc-400 text-xs truncate flex-1",children:b.summary})]}),E.length>0&&ee.jsx("div",{className:"text-xs space-y-1 px-4 py-2 border-b border-zinc-800 bg-zinc-900/80 shrink-0 max-h-48 overflow-y-auto",children:E.map((e,t)=>(0,ee.jsxs)("div",{className:`flex items-center gap-2 ${"completed"===e.status?"text-zinc-500":"text-zinc-300"}`,children:[ee.jsx("span",{className:"shrink-0",children:"completed"===e.status?"✓":"in_progress"===e.status?ee.jsx("span",{className:"inline-block w-2 h-2 bg-blue-500 rounded-full animate-pulse"}):"○"}),ee.jsx("span",{className:"completed"===e.status?"line-through":"",children:e.content})]},t))}),(0,ee.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-4 space-y-3",children:[L.map(e=>ee.jsx(p8,{message:e,agentName:t},e.id)),B&&ee.jsx("div",{className:"text-sm px-3 py-2 bg-red-950/30 border border-red-900/50 rounded-lg text-red-400",children:B.message}),ee.jsx("div",{ref:C})]}),ee.jsx("div",{className:"px-4 py-2 border-t border-zinc-800 flex items-center gap-3 shrink-0",children:H?(0,ee.jsxs)(ee.Fragment,{children:[ee.jsx("span",{className:`inline-block w-2 h-2 rounded-full shrink-0 ${"pass"===b.result?"bg-green-500":"bg-red-500"}`}),(0,ee.jsxs)("span",{className:`text-xs font-medium ${"pass"===b.result?"text-green-400":"text-red-400"}`,children:["pass"===b.result?"Passed":"Failed"," in ",er(z)]}),ee.jsx("div",{className:"flex-1"}),ee.jsx("button",{onClick:()=>{let e=I.current.get(m);e&&(_?e.closeDevTools():e.openDevTools(),S(!_))},className:`text-xs px-2 py-1 rounded border transition-colors ${_?"border-blue-600 text-blue-400 bg-blue-950/30":"border-zinc-700 hover:border-zinc-500 text-zinc-500 hover:text-zinc-300"}`,title:"Toggle DevTools",children:"DevTools"}),ee.jsx("button",{onClick:()=>{window.bangonit?.emitTestRerun?.(),a?.()},className:"text-xs px-3 py-1 rounded border border-zinc-700 hover:border-zinc-500 text-zinc-400 hover:text-zinc-200 transition-colors",children:"Rerun"})]}):W?(0,ee.jsxs)(ee.Fragment,{children:[ee.jsx("span",{className:`inline-block w-2 h-2 rounded-full shrink-0 ${k?"bg-amber-500":"bg-blue-500 animate-pulse"}`}),(0,ee.jsxs)("span",{className:"text-xs text-zinc-400",children:[k?"Paused":"Working"," ",er(z)]}),ee.jsx("div",{className:"flex-1"}),ee.jsx("button",{onClick:()=>{let e=I.current.get(m);e&&(_?e.closeDevTools():e.openDevTools(),S(!_))},className:`text-xs px-2 py-1 rounded border transition-colors ${_?"border-blue-600 text-blue-400 bg-blue-950/30":"border-zinc-700 hover:border-zinc-500 text-zinc-500 hover:text-zinc-300"}`,title:"Toggle DevTools",children:"DevTools"}),ee.jsx("button",{onClick:()=>w(!k),className:"text-xs px-2 py-1 rounded border border-zinc-700 hover:border-zinc-500 text-zinc-400 hover:text-zinc-200 transition-colors",children:k?"Continue":"Pause"})]}):(0,ee.jsxs)(ee.Fragment,{children:[ee.jsx("span",{className:"inline-block w-2 h-2 bg-zinc-600 rounded-full shrink-0"}),ee.jsx("span",{className:"text-xs text-zinc-500",children:"Queued"})]})})]})]})}function p8({message:e,agentName:t}){if("user"===e.role){let t=e.parts?.find(e=>"text"===e.type);return(0,ee.jsxs)("div",{className:"text-sm",children:[ee.jsx("span",{className:"text-xs text-zinc-500 block mb-1",children:"Test Plan"}),ee.jsx("div",{className:"text-zinc-200 prose prose-invert prose-sm max-w-none",children:ee.jsx(dW,{remarkPlugins:[p4],children:t?.text||""})})]})}return ee.jsx("div",{className:"text-sm space-y-2",children:e.parts?.map((e,n)=>{if("text"===e.type&&e.text)return e.providerMetadata?.anthropic?.type==="compaction"?null:ee.jsxs("div",{children:[ee.jsx("span",{className:"text-xs text-zinc-500 block mb-1",children:t}),ee.jsx("div",{className:"text-zinc-300 prose prose-invert prose-sm max-w-none",children:ee.jsx(dW,{remarkPlugins:[p4],children:e.text})})]},n);if("dynamic-tool"===e.type||"string"==typeof e.type&&e.type.startsWith("tool-")){let t=e.toolName||("string"==typeof e.type?e.type.replace(/^tool-/,""):"");return"todos"===t||"report_result"===t?null:ee.jsx(p7,{part:e},n)}return null})})}function p7({part:e}){let[t,n]=(0,et.useState)(!1),r=e.input||{},a=e.output,i=e.state||"input-available",s=e.toolName||("string"==typeof e.type?e.type.replace(/^tool-/,""):""),o="input-streaming"===i?"":"browser"===s?(()=>{let e=(r.actions||[]).map(e=>{switch(e.action){case"navigate":return`navigate ${e.url||""}`;case"mouse":{let t=(e.mouseActions||[]).map(e=>"wait"===e.action?`wait ${e.ms}ms`:"wheel"===e.action?`wheel ${e.ref||`${e.x},${e.y}`}`:`${e.action} ${e.ref||`${e.x},${e.y}`}`).join(" → ");return`mouse ${t}`}case"type":return`type "${(e.text||"").slice(0,40)}"`;case"press":return`press ${e.key||""}`;case"tabs":return`tabs ${e.tabAction||""}${e.tabId?" "+e.tabId:""}`;default:return e.action||""}});return r.observe&&e.push(r.observe),e.join(", ")})():r.command||(Object.keys(r).length>0?JSON.stringify(r):"");return(0,ee.jsxs)("div",{className:"text-sm",children:[(0,ee.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",children:["input-streaming"===i||"input-available"===i?ee.jsx("span",{className:"inline-block w-2 h-2 bg-amber-500 rounded-full animate-pulse shrink-0"}):ee.jsx("span",{className:"text-green-500 shrink-0",children:"✓"}),ee.jsx("span",{className:"text-zinc-400 font-mono truncate",children:o}),ee.jsx("span",{className:`ml-auto transition-transform text-zinc-600 shrink-0 ${t?"rotate-90":""}`,children:"▶"})]}),t&&(0,ee.jsxs)("pre",{className:"mt-1 px-3 py-2 bg-zinc-900/50 rounded-lg border border-zinc-800 text-xs whitespace-pre-wrap overflow-x-auto max-h-60 overflow-y-auto",children:[o&&(0,ee.jsxs)(ee.Fragment,{children:[(0,ee.jsxs)("span",{className:"text-zinc-300 select-all",children:["$ ",o]}),"\n"]}),null!=a&&(()=>{if("browser"===s&&"string"==typeof a)try{let e=JSON.parse(a);if(void 0!==e.textOutput)return(0,ee.jsxs)(ee.Fragment,{children:[ee.jsx("span",{className:"text-zinc-500",children:e.textOutput}),e.imageOutput&&(0,ee.jsxs)(ee.Fragment,{children:["\n",ee.jsx("span",{className:"changed"===e.imageOutput.type?"text-blue-400":"text-zinc-600",children:"changed"===e.imageOutput.type?"[screenshot: changed]":"[screenshot: unchanged]"})]})]})}catch(e){console.error(e)}return ee.jsx("span",{className:"text-zinc-500",children:"string"==typeof a?a:JSON.stringify(a,null,2)})})()]})]})}function fe(){let[e,t]=(0,et.useState)([]),[n,r]=(0,et.useState)({}),[a,i]=(0,et.useState)({}),[s,o]=(0,et.useState)(!1),[l,u]=(0,et.useState)({}),c=(0,et.useRef)(new Map),[d,p]=(0,et.useState)(null),[f,h]=(0,et.useState)(!1),[m,g]=(0,et.useState)(!1),y=(0,et.useRef)(null),v=(0,et.useRef)(new Map),b=(0,et.useRef)(e);b.current=e;let x=(0,et.useCallback)(async e=>{await window.bangonit?.clearPartition?.(e);let t=a[e];t&&(r(t=>({...t,[e]:"running"})),u(t=>({...t,[e]:(t[e]||0)+1})),i(n=>({...n,[e]:{initialPrompt:t.initialPrompt}})))},[a]),k=(0,et.useCallback)((e,t)=>{v.current.set(e,t)},[]),w=(0,et.useRef)(n);w.current=n;let _=(0,et.useCallback)(async(e,t)=>{let n=y.current;if(!n)return;let r=await window.bangonit?.getRunDir?.();if(!r)return;let a=[];for(let e of v.current.values())a.push(...e.getClipsMeta());let i={...w.current,[e]:t},s=b.current.map(e=>{let t=i[e.id];return{id:e.id,name:e.name,result:"completed"===t?"pass":"failed"===t?"fail":void 0}}),o=n.toJSON(s,a);await window.bangonit?.generateReplayHtml?.({runDir:r,data:JSON.stringify(o)})},[]),S=(0,et.useCallback)((e,t,n)=>{let a;if(a="running"===t?"running":"pass"===n?"completed":"fail"===n?"failed":"idle",r(t=>({...t,[e]:a})),f&&("pass"===n||"fail"===n)&&_(e,a),"fail"===n){let t=c.current.get(e);t&&t.attempt<t.maxRetries&&(t.attempt++,window.bangonit?.emitTestRetry?.({agentId:e,attempt:t.attempt,maxRetries:t.maxRetries}),setTimeout(()=>x(e),1e3))}},[x,f,_]),I=(0,et.useCallback)((e,n,a)=>{a&&t(t=>t.map(t=>t.id===e?{...t,name:a}:t)),i(t=>({...t,[e]:{initialPrompt:n}})),r(t=>({...t,[e]:"running"})),p(e)},[]),E=(0,et.useCallback)(()=>{let n=crypto.randomUUID(),r={id:n,name:`Test ${e.length+1}`,createdAt:Date.now()};t(e=>[...e,r]),p(n)},[e.length]);if(!s)return ee.jsx("div",{className:"flex h-screen bg-zinc-950"});e.some(e=>a[e.id]);let T=e.find(e=>e.id===d),C=!!d&&!!a[d];return(0,ee.jsxs)("div",{className:"flex h-screen bg-zinc-950 overflow-hidden",children:[(0,ee.jsxs)("div",{className:"flex flex-col bg-zinc-900 border-r border-zinc-800 shrink-0 w-48 overflow-y-auto",children:[(0,ee.jsxs)("div",{className:"flex items-center px-3 py-2 border-b border-zinc-800",children:[ee.jsx("span",{className:"text-xs font-medium text-zinc-500 uppercase tracking-wider",children:"Tests"}),ee.jsx("div",{className:"flex-1"}),ee.jsx("button",{onClick:E,className:"text-zinc-500 hover:text-zinc-300 transition-colors text-lg leading-none",title:"Add test",children:"+"})]}),e.map(e=>{let t=n[e.id];return a[e.id],ee.jsx("button",{onClick:()=>p(e.id),className:`px-3 py-2 text-xs text-left border-b border-zinc-800 transition-colors
47
+ ${e.id===d?"bg-zinc-800 text-zinc-200":"text-zinc-500 hover:text-zinc-300"}`,children:(0,ee.jsxs)("span",{className:"flex items-center gap-2",children:[ee.jsx("span",{className:`inline-block w-2 h-2 rounded-full shrink-0 ${"running"===t?"bg-blue-500 animate-pulse":"completed"===t?"bg-green-500":"failed"===t?"bg-red-500":"bg-zinc-600"}`}),ee.jsx("span",{className:"truncate",children:e.name})]})},e.id)})]}),(0,ee.jsxs)("div",{className:"flex-1 min-w-0 h-full relative",children:[e.map(e=>a[e.id]?ee.jsx("div",{className:"absolute inset-0 z-0",style:{display:"flex",zIndex:e.id===d?1:0,pointerEvents:e.id===d?"auto":"none"},children:ee.jsx(p6,{agentId:e.id,agentName:e.name,initialPrompt:a[e.id].initialPrompt,initialMessages:a[e.id].initialMessages,initialTabs:a[e.id].initialTabs,initialActiveTabId:a[e.id].initialActiveTabId,initialTodos:a[e.id].initialTodos,onStatusChange:S,onRerun:()=>x(e.id),record:f,sessionRecorder:y.current||void 0,onRegisterRecorder:k,planDir:a[e.id].planDir})},`${e.id}-${l[e.id]||0}`):null),T&&!C&&!m&&ee.jsx(ft,{agentId:T.id,agentName:T.name,onSubmit:I})]})]})}function ft({agentId:e,agentName:t,onSubmit:n}){let[r,a]=(0,et.useState)(""),i=(0,et.useRef)(null),s=()=>{let t=r.trim();t&&n(e,t)};return ee.jsx("div",{className:"absolute inset-0 flex items-center justify-center z-10 bg-zinc-950",children:(0,ee.jsxs)("div",{className:"w-full max-w-xl px-6",children:[ee.jsx("h2",{className:"text-lg font-medium text-zinc-200 mb-4",children:"What would you like to test?"}),(0,ee.jsxs)("div",{className:"relative",children:[ee.jsx("textarea",{ref:i,value:r,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),s())},placeholder:"Describe what to test in plain English...",className:"w-full px-4 py-3 bg-zinc-800 border border-zinc-700 rounded-lg text-sm text-zinc-200 placeholder-zinc-500 resize-none focus:outline-none focus:border-zinc-500 transition-colors",rows:4}),ee.jsx("button",{onClick:s,disabled:!r.trim(),className:"absolute bottom-3 right-3 px-3 py-1.5 bg-blue-600 hover:bg-blue-500 disabled:bg-zinc-700 disabled:text-zinc-500 text-white text-xs font-medium rounded transition-colors",children:"Run"})]}),ee.jsx("p",{className:"text-xs text-zinc-600 mt-2",children:"Press Enter to run. Shift+Enter for a new line."}),(0,ee.jsxs)("div",{className:"mt-4",children:[ee.jsx("p",{className:"text-xs text-zinc-600 mb-2",children:"Examples:"}),ee.jsx("div",{className:"flex flex-col gap-1.5",children:["Go to example.com and verify the homepage loads with a heading","Navigate to my-app.com/login, sign in with test@example.com / password123, and verify the dashboard loads","Go to localhost:3000, add an item to the cart, proceed to checkout, and verify the order summary"].map((e,t)=>ee.jsx("button",{onClick:()=>a(e),className:"text-left text-xs text-zinc-500 hover:text-zinc-300 bg-zinc-900 hover:bg-zinc-800 px-3 py-2 rounded border border-zinc-800 transition-colors",children:e},t))})]})]})})}function fn(){return ee.jsx(fe,{})}},1345:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,i=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},s=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,a=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!a&&!i)return!1;for(r in e);return void 0===r||t.call(e,r)},o=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(a)return a(e,n).value}return e[n]};e.exports=function e(){var t,n,r,a,u,c,d=arguments[0],p=1,f=arguments.length,h=!1;for("boolean"==typeof d&&(h=d,d=arguments[1]||{},p=2),(null==d||"object"!=typeof d&&"function"!=typeof d)&&(d={});p<f;++p)if(t=arguments[p],null!=t)for(n in t)r=l(d,n),d!==(a=l(t,n))&&(h&&a&&(s(a)||(u=i(a)))?(u?(u=!1,c=r&&i(r)?r:[]):c=r&&s(r)?r:{},o(d,{name:n,newValue:e(h,c,a)})):void 0!==a&&o(d,{name:n,newValue:a}));return d}},1627:e=>{"use strict";var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,o=/^[;\s]*/,l=/^\s+|\s+$/g;function u(e){return e?e.replace(l,""):""}e.exports=function(e,l){if("string"!=typeof e)throw TypeError("First argument must be a string");if(!e)return[];l=l||{};var c=1,d=1;function p(e){var t=e.match(n);t&&(c+=t.length);var r=e.lastIndexOf("\n");d=~r?e.length-r:d+e.length}function f(){var e={line:c,column:d};return function(t){return t.position=new h(e),g(r),t}}function h(e){this.start=e,this.end={line:c,column:d},this.source=l.source}function m(t){var n=Error(l.source+":"+c+":"+d+": "+t);if(n.reason=t,n.filename=l.source,n.line=c,n.column=d,n.source=e,l.silent);else throw n}function g(t){var n=t.exec(e);if(n){var r=n[0];return p(r),e=e.slice(r.length),n}}function y(e){var t;for(e=e||[];t=v();)!1!==t&&e.push(t);return e}function v(){var t=f();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;""!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,""===e.charAt(n-1))return m("End of comment missing");var r=e.slice(2,n-2);return d+=2,p(r),e=e.slice(n),d+=2,t({type:"comment",comment:r})}}return h.prototype.content=e,g(r),function(){var e,n=[];for(y(n);e=function(){var e=f(),n=g(a);if(n){if(v(),!g(i))return m("property missing ':'");var r=g(s),l=e({type:"declaration",property:u(n[0].replace(t,"")),value:r?u(r[0].replace(t,"")):""});return g(o),l}}();)!1!==e&&(n.push(e),y(n));return n}()}},393:function(e,t,n){"use strict";var r=(this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(n(9514)),a=n(1203);function i(e,t){var n={};return e&&"string"==typeof e&&(0,r.default)(e,function(e,r){e&&r&&(n[(0,a.camelCase)(e,t)]=r)}),n}i.default=i,e.exports=i},1203:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.camelCase=void 0;var n=/^--[a-zA-Z0-9_-]+$/,r=/-([a-z])/g,a=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,o=function(e,t){return t.toUpperCase()},l=function(e,t){return"".concat(t,"-")};t.camelCase=function(e,t){var u;return(void 0===t&&(t={}),!(u=e)||a.test(u)||n.test(u))?e:(e=e.toLowerCase(),(e=t.reactCompat?e.replace(s,l):e.replace(i,l)).replace(r,o))}},9514:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){let n=null;if(!e||"string"!=typeof e)return n;let r=(0,a.default)(e),i="function"==typeof t;return r.forEach(e=>{if("declaration"!==e.type)return;let{property:r,value:a}=e;i?t(r,a,e):a&&((n=n||{})[r]=a)}),n};let a=r(n(1627))},5987:e=>{e.exports=function(e,t){let n;if("function"!=typeof e)throw TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let r=0;return function(...a){clearTimeout(n);let i=Date.now(),s=t-(i-r);s<=0?(r=i,e.apply(this,a)):n=setTimeout(()=>{r=Date.now(),e.apply(this,a)},s)}}},1241:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});let r=(0,n(3189).createProxy)(String.raw`/Users/pete/repos/growthgirl/app/webapp/src/app/app/page.tsx#default`)},7718:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i,metadata:()=>a});var r=n(9013);n(5556);let a={title:"Bang On It!"};function i({children:e}){return r.jsx("html",{lang:"en",children:r.jsx("body",{children:e})})}},5556:()=>{}};var t=require("../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[522,679],()=>n(7541));module.exports=r})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/app/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}},"2953":{"*":{"id":"5016","name":"*","chunks":[],"async":false}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","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":2953,"name":"*","chunks":["46","static/chunks/02d30405-01bdf403629d0188.js","631","static/chunks/631-0edca788fa58159b.js","191","static/chunks/app/app/page-0e096497dcb81dae.js"],"async":false}},"entryCSSFiles":{"/Users/pete/repos/growthgirl/app/webapp/src/":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/layout":["static/css/38219627f55424f2.css"],"/Users/pete/repos/growthgirl/app/webapp/src/app/page":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/app/page":[]}}
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/app/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}},"2953":{"*":{"id":"5016","name":"*","chunks":[],"async":false}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","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":2953,"name":"*","chunks":["46","static/chunks/02d30405-01bdf403629d0188.js","631","static/chunks/631-0edca788fa58159b.js","191","static/chunks/app/app/page-d6a322343ab207d9.js"],"async":false}},"entryCSSFiles":{"/Users/pete/repos/growthgirl/app/webapp/src/":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/layout":["static/css/85c115515088d5dd.css"],"/Users/pete/repos/growthgirl/app/webapp/src/app/page":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/app/page":[]}}
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/38219627f55424f2.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js"/><script src="/_next/static/chunks/1dd3208c-2143388ffa327752.js" async=""></script><script src="/_next/static/chunks/528-31e5ce0646826d75.js" async=""></script><script src="/_next/static/chunks/main-app-106dd83f859b9dfa.js" async=""></script><script src="/_next/static/chunks/02d30405-01bdf403629d0188.js" async=""></script><script src="/_next/static/chunks/631-0edca788fa58159b.js" async=""></script><script src="/_next/static/chunks/app/app/page-0e096497dcb81dae.js" async=""></script><title>Bang On It!</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div class="flex h-screen bg-zinc-950"></div><script src="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/38219627f55424f2.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[1815,[],\"\"]\n4:I[5428,[],\"ClientPageRoot\"]\n5:I[2953,[\"46\",\"static/chunks/02d30405-01bdf403629d0188.js\",\"631\",\"static/chunks/631-0edca788fa58159b.js\",\"191\",\"static/chunks/app/app/page-0e096497dcb81dae.js\"],\"default\",1]\n6:I[5092,[],\"\"]\n7:I[2023,[],\"\"]\n9:I[1584,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"CIPi_XcKXl17yJkvAnMYF\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"app\"],\"initialTree\":[\"\",{\"children\":[\"app\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"app\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"app\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/38219627f55424f2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Bang On It!\"}]]\n3:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/85c115515088d5dd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js"/><script src="/_next/static/chunks/1dd3208c-2143388ffa327752.js" async=""></script><script src="/_next/static/chunks/528-31e5ce0646826d75.js" async=""></script><script src="/_next/static/chunks/main-app-106dd83f859b9dfa.js" async=""></script><script src="/_next/static/chunks/02d30405-01bdf403629d0188.js" async=""></script><script src="/_next/static/chunks/631-0edca788fa58159b.js" async=""></script><script src="/_next/static/chunks/app/app/page-d6a322343ab207d9.js" async=""></script><title>Bang On It!</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div class="flex h-screen bg-zinc-950"></div><script src="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/85c115515088d5dd.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[1815,[],\"\"]\n4:I[5428,[],\"ClientPageRoot\"]\n5:I[2953,[\"46\",\"static/chunks/02d30405-01bdf403629d0188.js\",\"631\",\"static/chunks/631-0edca788fa58159b.js\",\"191\",\"static/chunks/app/app/page-d6a322343ab207d9.js\"],\"default\",1]\n6:I[5092,[],\"\"]\n7:I[2023,[],\"\"]\n9:I[1584,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"GYX27NS_2uYjr9ksgGxIo\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"app\"],\"initialTree\":[\"\",{\"children\":[\"app\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"app\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"app\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/85c115515088d5dd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Bang On It!\"}]]\n3:null\n"])</script></body></html>
@@ -1,7 +1,7 @@
1
1
  2:I[5428,[],"ClientPageRoot"]
2
- 3:I[2953,["46","static/chunks/02d30405-01bdf403629d0188.js","631","static/chunks/631-0edca788fa58159b.js","191","static/chunks/app/app/page-0e096497dcb81dae.js"],"default",1]
2
+ 3:I[2953,["46","static/chunks/02d30405-01bdf403629d0188.js","631","static/chunks/631-0edca788fa58159b.js","191","static/chunks/app/app/page-d6a322343ab207d9.js"],"default",1]
3
3
  4:I[5092,[],""]
4
4
  5:I[2023,[],""]
5
- 0:["CIPi_XcKXl17yJkvAnMYF",[[["",{"children":["app",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["app",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","app","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/38219627f55424f2.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
5
+ 0:["GYX27NS_2uYjr9ksgGxIo",[[["",{"children":["app",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["app",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","app","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/85c115515088d5dd.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
6
6
  6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Bang On It!"}]]
7
7
  1:null
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js"/><script src="/_next/static/chunks/1dd3208c-2143388ffa327752.js" async=""></script><script src="/_next/static/chunks/528-31e5ce0646826d75.js" async=""></script><script src="/_next/static/chunks/main-app-106dd83f859b9dfa.js" async=""></script><title>Bang On It!</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><script src="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/38219627f55424f2.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[1815,[],\"\"]\n5:I[5092,[],\"\"]\n6:I[2023,[],\"\"]\n8:I[1584,[],\"\"]\n9:[]\n0:[\"$\",\"$L2\",null,{\"buildId\":\"CIPi_XcKXl17yJkvAnMYF\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",\"$L4\",null],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/38219627f55424f2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L7\"],\"globalErrorComponent\":\"$8\",\"missingSlots\":\"$W9\"}]\n4:E{\"digest\":\"NEXT_REDIRECT;replace;/app;307"])</script><script>self.__next_f.push([1,";\"}\n"])</script><script>self.__next_f.push([1,"7:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Bang On It!\"}]]\n3:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js"/><script src="/_next/static/chunks/1dd3208c-2143388ffa327752.js" async=""></script><script src="/_next/static/chunks/528-31e5ce0646826d75.js" async=""></script><script src="/_next/static/chunks/main-app-106dd83f859b9dfa.js" async=""></script><title>Bang On It!</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><script src="/_next/static/chunks/webpack-9e4fd47eb2c72de4.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/85c115515088d5dd.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[1815,[],\"\"]\n5:I[5092,[],\"\"]\n6:I[2023,[],\"\"]\n8:I[1584,[],\"\"]\n9:[]\n0:[\"$\",\"$L2\",null,{\"buildId\":\"GYX27NS_2uYjr9ksgGxIo\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",\"$L4\",null],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/85c115515088d5dd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L7\"],\"globalErrorComponent\":\"$8\",\"missingSlots\":\"$W9\"}]\n4:E{\"digest\":\"NEXT_REDIRECT;replace;/app;307"])</script><script>self.__next_f.push([1,";\"}\n"])</script><script>self.__next_f.push([1,"7:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Bang On It!\"}]]\n3:null\n"])</script></body></html>
@@ -1,6 +1,6 @@
1
1
  3:I[5092,[],""]
2
2
  4:I[2023,[],""]
3
- 0:["CIPi_XcKXl17yJkvAnMYF",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1","$L2",null],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/38219627f55424f2.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L5",null]]]]
3
+ 0:["GYX27NS_2uYjr9ksgGxIo",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1","$L2",null],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/85c115515088d5dd.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L5",null]]]]
4
4
  2:E{"digest":"NEXT_REDIRECT;replace;/app;307;"}
5
5
  5:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Bang On It!"}]]
6
6
  1:null
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/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}},"2953":{"*":{"id":"5016","name":"*","chunks":[],"async":false}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","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":2953,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/pete/repos/growthgirl/app/webapp/src/":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/layout":["static/css/38219627f55424f2.css"],"/Users/pete/repos/growthgirl/app/webapp/src/app/page":[]}}
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/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}},"2953":{"*":{"id":"5016","name":"*","chunks":[],"async":false}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","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":2953,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/pete/repos/growthgirl/app/webapp/src/":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/layout":["static/css/85c115515088d5dd.css"],"/Users/pete/repos/growthgirl/app/webapp/src/app/page":[]}}
@@ -2,6 +2,6 @@
2
2
  "/_not-found/page": "app/_not-found/page.js",
3
3
  "/page": "app/page.js",
4
4
  "/app/page": "app/app/page.js",
5
- "/api/screenshot/route": "app/api/screenshot/route.js",
6
- "/api/chat/route": "app/api/chat/route.js"
5
+ "/api/chat/route": "app/api/chat/route.js",
6
+ "/api/screenshot/route": "app/api/screenshot/route.js"
7
7
  }
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=708,exports.ids=[708],exports.modules={5708:(e,t,s)=>{s.d(t,{V:()=>y,u:()=>b});var o=s(4523),n=s(6365),a=s(1041),r=s(2048),i=s.n(r),l=s(5315),c=s.n(l),p=s(9763);let u=p.VK("type",[p.Ry({type:p.i0("not_changed")}),p.Ry({type:p.i0("changed"),base64:p.Z_()})]),h=p.Ry({textOutput:p.Z_(),imageOutput:u.nullable()});Promise.resolve();let d={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, X-Client-Platform"};function y(){return{OPTIONS:async()=>new Response(null,{status:204,headers:d}),POST:async e=>{let t=await e.json(),s=process.env.ANTHROPIC_API_KEY;if(!s)return new Response(JSON.stringify({error:"Server API key not configured"}),{status:500,headers:{"Content-Type":"application/json",...d}});let r=e.headers.get("x-client-platform")||"",l=process.cwd(),p=(0,o.D3)({apiKey:s}),u={browser:(0,n.w3)({description:"Control the browser. Pass an array of actions to execute sequentially. Set 'observe' to observe the page after actions complete. The system waits for network idle before observation.",inputSchema:(0,n.fB)({type:"object",properties:{observe:{type:"string",enum:["snapshot","snapshot_and_screenshot"],description:"How to observe the page after actions. 'snapshot' takes a fast accessibility snapshot with element refs. 'snapshot_and_screenshot' also takes a screenshot analyzed by a vision subagent (slower — use only when the snapshot doesn't have the info you need)."},prompts:{type:"array",items:{type:"string"},description:"Questions for screenshot vision analysis (only used with observe: 'snapshot_and_screenshot')"},actions:{type:"array",items:{type:"object",properties:{action:{type:"string",enum:["navigate","back","forward","mouse","type","press","tabs","downloads","wait","close"],description:"The browser action to perform"},url:{type:"string",description:"URL for navigate or new tab"},text:{type:"string",description:"Text to type"},key:{type:"string",description:"Key combo for press"},mouseActions:{type:"array",items:{type:"object",properties:{action:{type:"string",enum:["click","dblclick","down","move","up","wheel","wait"]},ref:{type:"string",description:"Element ref from snapshot"},x:{type:"number"},y:{type:"number"},dx:{type:"number"},dy:{type:"number"},ms:{type:"number"}},required:["action"]}},tabAction:{type:"string",enum:["list","new","close","select"]},tabId:{type:"number"},timeout:{type:"number"},width:{type:"number"},height:{type:"number"}},required:["action"]}}},required:["actions"]}),toModelOutput({output:e}){let t=h.parse(JSON.parse(e));return t.imageOutput?"not_changed"===t.imageOutput.type?{type:"content",value:[{type:"text",text:t.textOutput+"\n\n[screenshot did not change since last screenshot]"}]}:{type:"content",value:[{type:"text",text:t.textOutput},{type:"image-data",mediaType:"image/jpeg",data:t.imageOutput.base64}]}:{type:"content",value:[{type:"text",text:t.textOutput}]}}}),todos:(0,n.w3)({description:"Track progress on multi-step tasks. Call with the FULL list of todos to update, or omit 'todos' to read the current list.",inputSchema:(0,n.fB)({type:"object",properties:{todos:{type:"array",items:{type:"object",properties:{content:{type:"string"},status:{type:"string",enum:["pending","in_progress","completed"]}},required:["content","status"]}}}})}),report_result:(0,n.w3)({description:"Report the final test result. You MUST call this exactly once at the end of every test run. Pass 'pass' if all test steps succeeded, or 'fail' with a summary of what went wrong.",inputSchema:(0,n.fB)({type:"object",properties:{result:{type:"string",enum:["pass","fail"],description:"Whether the test passed or failed"},summary:{type:"string",description:"Brief summary of test results. For failures, describe what went wrong."}},required:["result","summary"]})})},y=await (0,a.bS)(t.messages,{tools:u});return(0,a.kP)({model:p("claude-sonnet-4-6"),system:function(e,t){let s=e.toLowerCase().includes("mac"),o=s?"Meta":"Control",n=function(e){try{let t=function(e){let t=e;for(;;){if(i().existsSync(c().join(t,".bangonit")))return c().join(t,".bangonit");if(i().existsSync(c().join(t,".git")))return null;let e=c().dirname(t);if(e===t)return null;t=e}}(e);if(!t)return"";return i().readFileSync(c().join(t,"system_prompt.md"),"utf-8").trim()}catch(e){return console.error(e),""}}(t),a=`You are Bang On It!, a QA testing agent that executes test plans by controlling a browser.
1
+ "use strict";exports.id=708,exports.ids=[708],exports.modules={5708:(e,t,s)=>{s.d(t,{V:()=>y,u:()=>b});var o=s(4523),n=s(6365),a=s(1041),r=s(2048),i=s.n(r),l=s(5315),c=s.n(l),p=s(9763);let u=p.VK("type",[p.Ry({type:p.i0("not_changed")}),p.Ry({type:p.i0("changed"),base64:p.Z_()})]),h=p.Ry({textOutput:p.Z_(),imageOutput:u.nullable()});Promise.resolve();let d={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, X-Client-Platform"};function y(){return{OPTIONS:async()=>new Response(null,{status:204,headers:d}),POST:async e=>{let t=await e.json(),s=process.env.ANTHROPIC_API_KEY;if(!s)return new Response(JSON.stringify({error:"Server API key not configured"}),{status:500,headers:{"Content-Type":"application/json",...d}});let r=e.headers.get("x-client-platform")||"",l=process.cwd(),p=(0,o.D3)({apiKey:s}),u={browser:(0,n.w3)({description:"Control the browser. Pass an array of actions to execute sequentially. Set 'observe' to observe the page after actions complete. The system waits for network idle before observation.",inputSchema:(0,n.fB)({type:"object",properties:{observe:{type:"string",enum:["snapshot","snapshot_and_screenshot"],description:"How to observe the page after actions. 'snapshot' takes a fast accessibility snapshot with element refs. 'snapshot_and_screenshot' also takes a screenshot analyzed by a vision subagent (slower — use only when the snapshot doesn't have the info you need)."},prompts:{type:"array",items:{type:"string"},description:"Questions for screenshot vision analysis (only used with observe: 'snapshot_and_screenshot')"},actions:{type:"array",items:{type:"object",properties:{action:{type:"string",enum:["navigate","back","forward","mouse","type","press","upload","tabs","wait","close"],description:"The browser action to perform"},url:{type:"string",description:"URL for navigate or new tab"},text:{type:"string",description:"Text to type"},key:{type:"string",description:"Key combo for press"},mouseActions:{type:"array",items:{type:"object",properties:{action:{type:"string",enum:["click","dblclick","down","move","up","wheel","wait"]},ref:{type:"string",description:"Element ref from snapshot"},x:{type:"number"},y:{type:"number"},dx:{type:"number"},dy:{type:"number"},ms:{type:"number"}},required:["action"]}},paths:{type:"array",items:{type:"string"},description:"File paths for upload"},cancel:{type:"boolean",description:"Cancel file picker"},tabAction:{type:"string",enum:["list","new","close","select"]},tabId:{type:"number"},timeout:{type:"number"},width:{type:"number"},height:{type:"number"}},required:["action"]}}},required:["actions"]}),toModelOutput({output:e}){let t=h.parse(JSON.parse(e));return t.imageOutput?"not_changed"===t.imageOutput.type?{type:"content",value:[{type:"text",text:t.textOutput+"\n\n[screenshot did not change since last screenshot]"}]}:{type:"content",value:[{type:"text",text:t.textOutput},{type:"image-data",mediaType:"image/jpeg",data:t.imageOutput.base64}]}:{type:"content",value:[{type:"text",text:t.textOutput}]}}}),todos:(0,n.w3)({description:"Track progress on multi-step tasks. Call with the FULL list of todos to update, or omit 'todos' to read the current list.",inputSchema:(0,n.fB)({type:"object",properties:{todos:{type:"array",items:{type:"object",properties:{content:{type:"string"},status:{type:"string",enum:["pending","in_progress","completed"]}},required:["content","status"]}}}})}),report_result:(0,n.w3)({description:"Report the final test result. You MUST call this exactly once at the end of every test run. Pass 'pass' if all test steps succeeded, or 'fail' with a summary of what went wrong.",inputSchema:(0,n.fB)({type:"object",properties:{result:{type:"string",enum:["pass","fail"],description:"Whether the test passed or failed"},summary:{type:"string",description:"Brief summary of test results. For failures, describe what went wrong."}},required:["result","summary"]})})},y=await (0,a.bS)(t.messages,{tools:u});return(0,a.kP)({model:p("claude-sonnet-4-6"),system:function(e,t){let s=e.toLowerCase().includes("mac"),o=s?"Meta":"Control",n=function(e){try{let t=function(e){let t=e;for(;;){if(i().existsSync(c().join(t,".bangonit")))return c().join(t,".bangonit");if(i().existsSync(c().join(t,".git")))return null;let e=c().dirname(t);if(e===t)return null;t=e}}(e);if(!t)return"";return i().readFileSync(c().join(t,"system_prompt.md"),"utf-8").trim()}catch(e){return console.error(e),""}}(t),a=`You are Bang On It!, a QA testing agent that executes test plans by controlling a browser.
2
2
 
3
3
  You run test plans autonomously. When you have finished executing all test steps, you MUST call the report_result tool to report whether the test passed or failed. This is mandatory — every test run must end with a report_result call.
4
4
 
@@ -21,7 +21,8 @@ Actions:
21
21
  IMPORTANT: Mouse actions move a real cursor across the screen. The cursor travels from its current position to the target, which may trigger hover effects (tooltips, dropdowns, highlights) on elements along the path. If a hover side-effect disrupts your intended action (e.g. a menu opens over your click target), take a fresh snapshot and retry. You can also use this to your advantage — use "move" to intentionally hover over elements to reveal tooltips or dropdown menus.
22
22
  type <text> — type text at cursor (keystrokes)
23
23
  press <key> — press a key or combo (Enter, Tab, ${o}+a, Shift+Enter)
24
- downloads list recent file downloads
24
+ upload --paths=["/path/to/file"] upload files to an open file picker (the snapshot will tell you when a file picker is open)
25
+ upload --cancel=true — cancel/dismiss an open file picker
25
26
  tabs --action=list — list open tabs
26
27
  tabs --action=new --url=<url> — open new tab
27
28
  tabs --action=select --tabId=<id> — switch tab
@@ -60,6 +61,9 @@ Good — use screenshot when you need visual info:
60
61
  Good — drag from one point to another:
61
62
  { actions: [{"action":"mouse","mouseActions":[{"action":"down","x":100,"y":200},{"action":"move","x":300,"y":400},{"action":"up","x":300,"y":400}]}] }
62
63
 
64
+ ## Dialogs and file pickers
65
+ JavaScript dialogs are automatically handled: alert() is suppressed, confirm() returns true, and prompt() returns the default value. File picker dialogs are intercepted — they will not visually appear, but the snapshot will show "[File picker is open]" when one is triggered. Use the "upload" action to provide file paths or cancel the picker.
66
+
63
67
  ## Todo tracking
64
68
  For tasks with 3+ distinct steps, call the todos tool to show progress. Call it with the FULL list each time:
65
69
  1. At the start: create all todos as "pending"