bangonit 0.5.2 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -2
- package/app/desktopapp/dist/main/index.js +69 -26
- package/app/desktopapp/dist/main/tabs.js +0 -9
- package/app/desktopapp/dist/shared/args.js +1 -0
- package/app/replay/dist/replay.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/BUILD_ID +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/app-build-manifest.json +11 -11
- package/app/webapp/.next/standalone/app/webapp/.next/app-path-routes-manifest.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/build-manifest.json +3 -3
- package/app/webapp/.next/standalone/app/webapp/.next/prerender-manifest.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/required-server-files.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/_not-found/page.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/_not-found.html +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/_not-found.rsc +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/api/chat/route.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/api/screenshot/route.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/api/screenshot/route.js.nft.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/app/page.js +6 -6
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/app/page_client-reference-manifest.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/app.html +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/app.rsc +2 -2
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/index.html +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/index.rsc +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/page.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/app-paths-manifest.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/chunks/{708.js → 151.js} +9 -7
- package/app/webapp/.next/standalone/app/webapp/.next/server/chunks/679.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/middleware-build-manifest.js +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/pages/404.html +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/pages/500.html +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/server/server-reference-manifest.json +1 -1
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/793-be37f231ca512496.js +36 -0
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/app/app/page-4c6dfbf12230aab7.js +1 -0
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/app/layout-57acb80d8da0067a.js +1 -0
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/{main-app-76384b941f0b51cb.js → main-app-106dd83f859b9dfa.js} +1 -1
- package/app/webapp/.next/standalone/app/webapp/package.json +1 -0
- package/app/webapp/.next/standalone/app/webapp/server.js +1 -1
- package/app/webapp/.next/standalone/package.json +2 -1
- package/app/webapp/.next/static/chunks/793-be37f231ca512496.js +36 -0
- package/app/webapp/.next/static/chunks/app/app/page-4c6dfbf12230aab7.js +1 -0
- package/app/webapp/.next/static/chunks/app/layout-57acb80d8da0067a.js +1 -0
- package/app/webapp/.next/static/chunks/{main-app-76384b941f0b51cb.js → main-app-106dd83f859b9dfa.js} +1 -1
- package/app/webapp/package.json +1 -0
- package/app/webapp/src/shared/api/chat.ts +13 -2
- package/app/webapp/src/shared/components/AppShell.tsx +15 -5
- package/app/webapp/src/shared/components/SessionView.tsx +10 -2
- package/app/webapp/src/shared/lib/browser/index.ts +2 -2
- package/app/webapp/src/shared/lib/browser/screenshot.ts +2 -2
- package/app/webapp/src/shared/lib/browser/snapshot.ts +107 -7
- package/app/webapp/src/shared/lib/browser/types.ts +1 -0
- package/bin/app/desktopapp/src/shared/args.js +1 -0
- package/bin/src/cli/bangonit.js +35 -25
- package/package.json +2 -1
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/631-0edca788fa58159b.js +0 -36
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/app/app/page-533a30559a8f39fa.js +0 -1
- package/app/webapp/.next/standalone/app/webapp/.next/static/chunks/app/layout-40f50d9380154ecf.js +0 -1
- package/app/webapp/.next/static/chunks/631-0edca788fa58159b.js +0 -36
- package/app/webapp/.next/static/chunks/app/app/page-533a30559a8f39fa.js +0 -1
- package/app/webapp/.next/static/chunks/app/layout-40f50d9380154ecf.js +0 -1
- /package/app/webapp/.next/standalone/app/webapp/.next/static/{kz1a_SRPtSly3Fe8wHKDq → v4eeWwVGjBsQUZdT156fT}/_buildManifest.js +0 -0
- /package/app/webapp/.next/standalone/app/webapp/.next/static/{kz1a_SRPtSly3Fe8wHKDq → v4eeWwVGjBsQUZdT156fT}/_ssgManifest.js +0 -0
- /package/app/webapp/.next/static/{kz1a_SRPtSly3Fe8wHKDq → v4eeWwVGjBsQUZdT156fT}/_buildManifest.js +0 -0
- /package/app/webapp/.next/static/{kz1a_SRPtSly3Fe8wHKDq → v4eeWwVGjBsQUZdT156fT}/_ssgManifest.js +0 -0
|
@@ -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}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","name":"*","chunks":[],"async":false}},"5274":{"*":{"id":"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/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}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","name":"*","chunks":[],"async":false}},"5274":{"*":{"id":"4564","name":"*","chunks":[],"async":false}},"5428":{"*":{"id":"7752","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/app-router.js":{"id":1815,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/app-router.js":{"id":1815,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/client-page.js":{"id":5428,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/client-page.js":{"id":5428,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/error-boundary.js":{"id":1584,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":1584,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/layout-router.js":{"id":5092,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/layout-router.js":{"id":5092,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/not-found-boundary.js":{"id":3859,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":3859,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/render-from-template-context.js":{"id":2023,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":2023,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/app/webapp/src/app/globals.css":{"id":2625,"name":"*","chunks":["185","static/chunks/app/layout-57acb80d8da0067a.js"],"async":false},"/Users/pete/repos/growthgirl/app/webapp/src/app/app/page.tsx":{"id":5274,"name":"*","chunks":["46","static/chunks/02d30405-01bdf403629d0188.js","793","static/chunks/793-be37f231ca512496.js","191","static/chunks/app/app/page-4c6dfbf12230aab7.js"],"async":false}},"entryCSSFiles":{"/Users/pete/repos/growthgirl/app/webapp/src/":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/layout":["static/css/d8c646fe7195c123.css"],"/Users/pete/repos/growthgirl/app/webapp/src/app/page":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/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/d8c646fe7195c123.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-
|
|
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/d8c646fe7195c123.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/793-be37f231ca512496.js" async=""></script><script src="/_next/static/chunks/app/app/page-4c6dfbf12230aab7.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/d8c646fe7195c123.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[1815,[],\"\"]\n4:I[5428,[],\"ClientPageRoot\"]\n5:I[5274,[\"46\",\"static/chunks/02d30405-01bdf403629d0188.js\",\"793\",\"static/chunks/793-be37f231ca512496.js\",\"191\",\"static/chunks/app/app/page-4c6dfbf12230aab7.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\":\"v4eeWwVGjBsQUZdT156fT\",\"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/d8c646fe7195c123.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[5274,["46","static/chunks/02d30405-01bdf403629d0188.js","
|
|
2
|
+
3:I[5274,["46","static/chunks/02d30405-01bdf403629d0188.js","793","static/chunks/793-be37f231ca512496.js","191","static/chunks/app/app/page-4c6dfbf12230aab7.js"],"default",1]
|
|
3
3
|
4:I[5092,[],""]
|
|
4
4
|
5:I[2023,[],""]
|
|
5
|
-
0:["
|
|
5
|
+
0:["v4eeWwVGjBsQUZdT156fT",[[["",{"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/d8c646fe7195c123.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-
|
|
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/d8c646fe7195c123.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\":\"v4eeWwVGjBsQUZdT156fT\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",\"$L4\",null],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d8c646fe7195c123.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:["
|
|
3
|
+
0:["v4eeWwVGjBsQUZdT156fT",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1","$L2",null],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/d8c646fe7195c123.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
|
-
(()=>{var e={};e.id=931,e.ids=[931],e.modules={2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},
|
|
1
|
+
(()=>{var e={};e.id=931,e.ids=[931],e.modules={2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},6064:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>u.a,__next_app__:()=>p,originalPathname:()=>c,pages:()=>l,routeModule:()=>f,tree:()=>d}),r(6485),r(7718),r(7824);var n=r(3282),o=r(5736),i=r(3906),u=r.n(i),a=r(6880),s={};for(let e in a)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(s[e]=()=>a[e]);r.d(t,s);let d=["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,6485)),"/Users/pete/repos/growthgirl/app/webapp/src/app/page.tsx"]}]},{layout:[()=>Promise.resolve().then(r.bind(r,7718)),"/Users/pete/repos/growthgirl/app/webapp/src/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,7824,23)),"next/dist/client/components/not-found-error"]}],l=["/Users/pete/repos/growthgirl/app/webapp/src/app/page.tsx"],c="/page",p={require:r,loadChunk:()=>Promise.resolve()},f=new n.AppPageRouteModule({definition:{kind:o.x.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},3652:()=>{},1171:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,4424,23)),Promise.resolve().then(r.t.bind(r,7752,23)),Promise.resolve().then(r.t.bind(r,5275,23)),Promise.resolve().then(r.t.bind(r,9842,23)),Promise.resolve().then(r.t.bind(r,1633,23)),Promise.resolve().then(r.t.bind(r,9224,23))},3245:()=>{},7718:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i,metadata:()=>o});var n=r(9013);r(5556);let o={title:"Bang On It!"};function i({children:e}){return n.jsx("html",{lang:"en",children:n.jsx("body",{children:e})})}},6485:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=r(2349);function o(){(0,n.redirect)("/app")}},2349:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ReadonlyURLSearchParams:function(){return u},RedirectType:function(){return n.RedirectType},notFound:function(){return o.notFound},permanentRedirect:function(){return n.permanentRedirect},redirect:function(){return n.redirect}});let n=r(9520),o=r(8433);class i extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class u extends URLSearchParams{append(){throw new i}delete(){throw new i}set(){throw new i}sort(){throw new i}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8433:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{isNotFoundError:function(){return o},notFound:function(){return n}});let r="NEXT_NOT_FOUND";function n(){let e=Error(r);throw e.digest=r,e}function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8218:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RedirectStatusCode",{enumerable:!0,get:function(){return r}}),function(e){e[e.SeeOther=303]="SeeOther",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect"}(r||(r={})),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9520:(e,t,r)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RedirectType:function(){return n},getRedirectError:function(){return s},getRedirectStatusCodeFromError:function(){return g},getRedirectTypeFromError:function(){return f},getURLFromRedirectError:function(){return p},isRedirectError:function(){return c},permanentRedirect:function(){return l},redirect:function(){return d}});let o=r(4580),i=r(2934),u=r(8218),a="NEXT_REDIRECT";function s(e,t,r){void 0===r&&(r=u.RedirectStatusCode.TemporaryRedirect);let n=Error(a);n.digest=a+";"+t+";"+e+";"+r+";";let i=o.requestAsyncStorage.getStore();return i&&(n.mutableCookies=i.mutableCookies),n}function d(e,t){void 0===t&&(t="replace");let r=i.actionAsyncStorage.getStore();throw s(e,t,(null==r?void 0:r.isAction)?u.RedirectStatusCode.SeeOther:u.RedirectStatusCode.TemporaryRedirect)}function l(e,t){void 0===t&&(t="replace");let r=i.actionAsyncStorage.getStore();throw s(e,t,(null==r?void 0:r.isAction)?u.RedirectStatusCode.SeeOther:u.RedirectStatusCode.PermanentRedirect)}function c(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r,n,o]=e.digest.split(";",4),i=Number(o);return t===a&&("replace"===r||"push"===r)&&"string"==typeof n&&!isNaN(i)&&i in u.RedirectStatusCode}function p(e){return c(e)?e.digest.split(";",3)[2]:null}function f(e){if(!c(e))throw Error("Not a redirect error");return e.digest.split(";",2)[1]}function g(e){if(!c(e))throw Error("Not a redirect error");return Number(e.digest.split(";",4)[3])}(function(e){e.push="push",e.replace="replace"})(n||(n={})),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5556:()=>{}};var t=require("../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[522,679],()=>r(6064));module.exports=n})();
|
package/app/webapp/.next/standalone/app/webapp/.next/server/app/page_client-reference-manifest.js
CHANGED
|
@@ -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}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","name":"*","chunks":[],"async":false}},"5274":{"*":{"id":"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"1584":{"*":{"id":"5275","name":"*","chunks":[],"async":false}},"1815":{"*":{"id":"4424","name":"*","chunks":[],"async":false}},"2023":{"*":{"id":"9224","name":"*","chunks":[],"async":false}},"3859":{"*":{"id":"1633","name":"*","chunks":[],"async":false}},"5092":{"*":{"id":"9842","name":"*","chunks":[],"async":false}},"5274":{"*":{"id":"4564","name":"*","chunks":[],"async":false}},"5428":{"*":{"id":"7752","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/app-router.js":{"id":1815,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/app-router.js":{"id":1815,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/client-page.js":{"id":5428,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/client-page.js":{"id":5428,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/error-boundary.js":{"id":1584,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":1584,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/layout-router.js":{"id":5092,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/layout-router.js":{"id":5092,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/not-found-boundary.js":{"id":3859,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":3859,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/client/components/render-from-template-context.js":{"id":2023,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":2023,"name":"*","chunks":[],"async":false},"/Users/pete/repos/growthgirl/app/webapp/src/app/globals.css":{"id":2625,"name":"*","chunks":["185","static/chunks/app/layout-57acb80d8da0067a.js"],"async":false},"/Users/pete/repos/growthgirl/app/webapp/src/app/app/page.tsx":{"id":5274,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/pete/repos/growthgirl/app/webapp/src/":[],"/Users/pete/repos/growthgirl/app/webapp/src/app/layout":["static/css/d8c646fe7195c123.css"],"/Users/pete/repos/growthgirl/app/webapp/src/app/page":[]}}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";exports.id=
|
|
1
|
+
"use strict";exports.id=151,exports.ids=[151],exports.modules={3151:(e,t,o)=>{o.d(t,{V:()=>y,u:()=>b});var s=o(4523),n=o(6365),a=o(1041),r=o(2048),i=o.n(r),l=o(5315),c=o.n(l),p=o(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(),r=process.env.ANTHROPIC_API_KEY;if(!r)return new Response(JSON.stringify({error:"Server API key not configured"}),{status:500,headers:{"Content-Type":"application/json",...d}});let l=e.headers.get("x-client-platform")||"",p=process.cwd(),u=(0,s.D3)({apiKey:r}),y={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"]}},forceFull:{type:"boolean",description:"Force complete snapshot and screenshot output, bypassing diff/dedup optimization. Use when you need full page context (e.g. after context compaction or when a diff is confusing)."}},required:["actions","observe"]}),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"]})})},m=await (0,a.bS)(t.messages,{tools:y});return(0,a.kP)({model:u("claude-sonnet-4-6"),system:function(e,t){let s=e.toLowerCase().includes("mac"),n=s?"Meta":"Control",a=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"";let s=c().join(t,"system_prompt.sh");if(!i().existsSync(s))return"";let{execSync:n}=o(1282);return n(`bash "${s}"`,{cwd:e,encoding:"utf-8",timeout:5e3}).trim()}catch(e){return console.error("Failed to run system_prompt.sh:",e),""}}(t),r=`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
|
|
|
5
|
-
The user is on ${s?"macOS":"Windows/Linux"}. For keyboard shortcuts, use ${s?"Cmd":"Ctrl"} (${
|
|
5
|
+
The user is on ${s?"macOS":"Windows/Linux"}. For keyboard shortcuts, use ${s?"Cmd":"Ctrl"} (${n}).
|
|
6
6
|
|
|
7
7
|
## Browser tool
|
|
8
8
|
The browser tool takes an array of actions to execute sequentially, plus an optional "observe" field to observe the page after actions complete.
|
|
@@ -20,7 +20,7 @@ Actions:
|
|
|
20
20
|
ms: milliseconds (for "wait" only)
|
|
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
|
-
press <key> — press a key or combo (Enter, Tab, ${
|
|
23
|
+
press <key> — press a key or combo (Enter, Tab, ${n}+a, Shift+Enter)
|
|
24
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
25
|
upload --cancel=true — cancel/dismiss an open file picker
|
|
26
26
|
tabs --action=list — list open tabs
|
|
@@ -39,6 +39,8 @@ Observation — the "observe" field (REQUIRED):
|
|
|
39
39
|
## Workflow — BATCH actions, use observe to verify
|
|
40
40
|
Pack as many actions as you can into a single browser tool call. Set observe: "snapshot" to verify and get element refs for the next action.
|
|
41
41
|
|
|
42
|
+
Snapshot diffing: After the first observation, snapshots show only what changed (a unified diff) instead of the full page tree. If you navigate to a new URL, you get the full snapshot automatically. If the snapshot is identical to the last one, you'll see "[snapshot unchanged]". If a diff is confusing or you need full context (e.g. after context was compacted), set "forceFull": true to get the complete snapshot and screenshot.
|
|
43
|
+
|
|
42
44
|
Use observe: "snapshot" as your default. It's fast and gives you element refs for precise clicking. Use observe: "snapshot_and_screenshot" ONLY when:
|
|
43
45
|
- You need to see visual content (images, charts, colors, spatial layout)
|
|
44
46
|
- The snapshot tree doesn't give you enough info to proceed
|
|
@@ -72,10 +74,10 @@ For tasks with 3+ distinct steps, call the todos tool to show progress. Call it
|
|
|
72
74
|
Keep todos short (5-10 words each). The user watches your progress in real time, so update todos promptly after each step finishes.
|
|
73
75
|
To read the current todo list, call todos without the "todos" parameter. Only you can write todos, so you normally don't need to read them — use this only when you've lost track (e.g. after context was compacted).
|
|
74
76
|
|
|
75
|
-
Be concise and token-efficient. Don't narrate every step — just act. Summarize successes and failures briefly (e.g. "3 todos added, footer shows correct count" not a blow-by-blow of each click). The user watches your actions in real time.`;return
|
|
76
|
-
${
|
|
77
|
+
Be concise and token-efficient. Don't narrate every step — just act. Summarize successes and failures briefly (e.g. "3 todos added, footer shows correct count" not a blow-by-blow of each click). The user watches your actions in real time.`;return a&&(r=`## Project Instructions
|
|
78
|
+
${a}
|
|
77
79
|
|
|
78
|
-
${
|
|
80
|
+
${r}`),r}(l,p),providerOptions:{anthropic:{cacheControl:{type:"ephemeral"},contextManagement:{edits:[{type:"compact_20260112",trigger:{type:"input_tokens",value:12e4},instructions:"Summarize the conversation concisely. Preserve: the test plan, all URLs visited, current page/tab state, actions completed, current test state (done/in-progress/remaining), errors and resolutions, key decisions made. Include exact URLs, filenames, and values."}]}}},messages:m,tools:y,stopWhen:(0,a.vk)(50)}).toUIMessageStreamResponse({headers:d})}}}var m=o(1379);let f=`You are a vision subagent for Bang On It!, an AI QA testing tool.
|
|
79
81
|
You receive screenshots of the currently visible viewport of a web page.
|
|
80
82
|
The image shows only what is on screen — content above or below the fold is not visible.
|
|
81
83
|
|
|
@@ -88,4 +90,4 @@ Respond with a JSON object containing:
|
|
|
88
90
|
|
|
89
91
|
Include ALL interactive elements you can see plus any elements relevant to the user's questions.
|
|
90
92
|
|
|
91
|
-
Respond with ONLY the JSON object, no markdown fences or other text.`,g={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};async function w(e,t){let
|
|
93
|
+
Respond with ONLY the JSON object, no markdown fences or other text.`,g={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"Content-Type"};async function w(e,t){let o=process.env.ANTHROPIC_API_KEY;if(!o)throw Error("Server API key not configured");let s=new m.ZP({apiKey:o});return(await s.messages.create({model:"claude-haiku-4-5",max_tokens:4096,system:f,messages:[{role:"user",content:[{type:"image",source:{type:"base64",media_type:"image/jpeg",data:e}},{type:"text",text:t}]}]})).content.filter(e=>"text"===e.type).map(e=>e.text).join("")}function b(){return{OPTIONS:async()=>new Response(null,{status:204,headers:g}),POST:async e=>{let{image:t,prompts:o}=await e.json();if(!t||!o?.length)return new Response(JSON.stringify({error:"image and prompts are required"}),{status:400,headers:{"Content-Type":"application/json",...g}});let s=1===o.length?o[0]:o.map((e,t)=>`${t+1}. ${e}`).join("\n");try{let e=await w(t,s);return new Response(e,{headers:{"Content-Type":"application/json",...g}})}catch(e){return new Response(JSON.stringify({error:e.message}),{status:500,headers:{"Content-Type":"application/json",...g}})}}}}}};
|