bangonit 0.2.1 → 0.2.2

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 (44) hide show
  1. package/app/desktopapp/package.json +1 -38
  2. package/app/webapp/.next/BUILD_ID +1 -1
  3. package/app/webapp/.next/app-build-manifest.json +11 -11
  4. package/app/webapp/.next/app-path-routes-manifest.json +1 -1
  5. package/app/webapp/.next/build-manifest.json +3 -3
  6. package/app/webapp/.next/next-server.js.nft.json +1 -1
  7. package/app/webapp/.next/prerender-manifest.json +1 -1
  8. package/app/webapp/.next/required-server-files.json +1 -1
  9. package/app/webapp/.next/server/app/_not-found/page.js +1 -1
  10. package/app/webapp/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/app/webapp/.next/server/app/_not-found.html +1 -1
  12. package/app/webapp/.next/server/app/_not-found.rsc +1 -1
  13. package/app/webapp/.next/server/app/api/chat/route.js +1 -1
  14. package/app/webapp/.next/server/app/api/screenshot/route.js +1 -1
  15. package/app/webapp/.next/server/app/app/page.js +2 -2
  16. package/app/webapp/.next/server/app/app/page_client-reference-manifest.js +1 -1
  17. package/app/webapp/.next/server/app/app.html +1 -1
  18. package/app/webapp/.next/server/app/app.rsc +2 -2
  19. package/app/webapp/.next/server/app/index.html +1 -1
  20. package/app/webapp/.next/server/app/index.rsc +1 -1
  21. package/app/webapp/.next/server/app/page.js +1 -1
  22. package/app/webapp/.next/server/app/page_client-reference-manifest.js +1 -1
  23. package/app/webapp/.next/server/app-paths-manifest.json +1 -1
  24. package/app/webapp/.next/server/chunks/679.js +1 -1
  25. package/app/webapp/.next/server/middleware-build-manifest.js +1 -1
  26. package/app/webapp/.next/server/pages/404.html +1 -1
  27. package/app/webapp/.next/server/pages/500.html +1 -1
  28. package/app/webapp/.next/server/pages-manifest.json +1 -1
  29. package/app/webapp/.next/server/server-reference-manifest.json +1 -1
  30. package/app/webapp/.next/static/chunks/app/app/{page-41ee880e93966e12.js → page-d38c1e48d37def82.js} +1 -1
  31. package/app/webapp/.next/static/chunks/app/layout-57acb80d8da0067a.js +1 -0
  32. package/app/webapp/.next/static/chunks/{main-app-76384b941f0b51cb.js → main-app-106dd83f859b9dfa.js} +1 -1
  33. package/app/webapp/.next/trace +2 -2
  34. package/app/webapp/.next/types/app/api/chat/route.ts +1 -1
  35. package/app/webapp/.next/types/app/api/screenshot/route.ts +1 -1
  36. package/app/webapp/.next/types/app/app/page.ts +1 -1
  37. package/app/webapp/.next/types/app/layout.ts +1 -1
  38. package/app/webapp/.next/types/app/page.ts +1 -1
  39. package/bin/bangonit.js +1 -1
  40. package/package.json +1 -1
  41. package/app/webapp/.next/static/chunks/app/layout-40f50d9380154ecf.js +0 -1
  42. package/scripts/regen-replays.sh +0 -46
  43. /package/app/webapp/.next/static/{BkuEihcexhIRjEt7SHF91 → VAxJ7wm0K-fSKpsIoB9lY}/_buildManifest.js +0 -0
  44. /package/app/webapp/.next/static/{BkuEihcexhIRjEt7SHF91 → VAxJ7wm0K-fSKpsIoB9lY}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[191],{7555:function(e,t,n){Promise.resolve().then(n.bind(n,2953))},2953:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return L}});var a=n(7573),i=n(7653),r=n(774),o=n(1446),l=n(2574),s=n(3334);function c(e){let{agentId:t}=e,[n,r]=(0,i.useState)(null),[o,l]=(0,i.useState)(!1),[s,c]=(0,i.useState)(!1),[u,d]=(0,i.useState)([]),p=(0,i.useRef)(),h=(0,i.useRef)(0),b=(0,i.useCallback)(()=>{l(!0),clearTimeout(p.current),p.current=setTimeout(()=>l(!1),2e3)},[]);return((0,i.useEffect)(()=>{var e,n,a;let i=[];return i.push(null===(e=window.bangonit)||void 0===e?void 0:e.onCursorMove(e=>{e.agentId===t&&(r({x:e.x,y:e.y}),b())})),i.push(null===(n=window.bangonit)||void 0===n?void 0:n.onCursorDown(e=>{if(e.agentId!==t)return;r({x:e.x,y:e.y}),c(!0),b();let n=++h.current;d(t=>[...t,{id:n,x:e.x,y:e.y}]),setTimeout(()=>{d(e=>e.filter(e=>e.id!==n))},400)})),i.push(null===(a=window.bangonit)||void 0===a?void 0:a.onCursorUp(e=>{e.agentId===t&&(c(!1),b())})),()=>{i.forEach(e=>null==e?void 0:e()),clearTimeout(p.current)}},[t,b]),n)?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("svg",{width:"28",height:"28",viewBox:"0 0 24 24",className:"pointer-events-none absolute z-20",style:{left:n.x,top:n.y,transform:"translate(-2px, -1px) ".concat(s?"scale(0.8)":"scale(1)"),transition:"left 30ms linear, top 30ms linear, transform 80ms ease-out, opacity 400ms ease-out",opacity:o?1:0,filter:"drop-shadow(0 1px 2px rgba(0,0,0,0.5))"},children:(0,a.jsx)("path",{d:"M5 3l14 8.5-6.5 1.5-3.5 6z",fill:"white",stroke:"black",strokeWidth:"1.5",strokeLinejoin:"round"})}),u.map(e=>(0,a.jsxs)("span",{children:[(0,a.jsx)("span",{className:"pointer-events-none absolute z-20 rounded-full bg-blue-400/50",style:{left:e.x,top:e.y,width:0,height:0,transform:"translate(-50%, -50%)",animation:"cursor-ripple ".concat(400,"ms ease-out forwards")}}),(0,a.jsx)("span",{className:"pointer-events-none absolute z-20 rounded-full border-2 border-blue-400/60",style:{left:e.x,top:e.y,width:0,height:0,transform:"translate(-50%, -50%)",animation:"cursor-ripple-ring ".concat(400,"ms ease-out forwards")}})]},e.id)),(0,a.jsx)("style",{children:"\n @keyframes cursor-ripple {\n 0% { width: 0; height: 0; opacity: 0.8; }\n 100% { width: 48px; height: 48px; opacity: 0; }\n }\n @keyframes cursor-ripple-ring {\n 0% { width: 0; height: 0; opacity: 0.9; }\n 100% { width: 64px; height: 64px; opacity: 0; }\n }\n "})]}):null}async function u(e,t,n,a){let{result:i}=await window.bangonit.cdpSend(e,"Runtime.evaluate",{expression:"\n(function() {\n var MAX_CHARS = 60000;\n var MAX_ELEMENTS = 5000;\n var MAX_DEPTH = 1500;\n var totalChars = 0;\n var visited = 0;\n var truncated = false;\n var refCounter = 0;\n\n window.__dmjRefs = new Map();\n\n var SKIP_TAGS = {SCRIPT:1,STYLE:1,NOSCRIPT:1,SVG:1,PATH:1,META:1,LINK:1,TEMPLATE:1,IFRAME:1,BR:1,HR:1,WBR:1,CANVAS:1,VIDEO:1,AUDIO:1,MAP:1,AREA:1,PICTURE:1,SOURCE:1,TRACK:1,OBJECT:1,EMBED:1};\n var INTERACTIVE_ROLES = {button:1,link:1,textbox:1,checkbox:1,radio:1,combobox:1,menuitem:1,tab:1,switch:1,option:1};\n var INPUT_ROLE = {checkbox:'checkbox',radio:'radio',submit:'button',button:'button',search:'searchbox',file:'file'};\n var TAG_ROLE = {A:'link',BUTTON:'button',SELECT:'combobox',TEXTAREA:'textbox',IMG:'img',H1:'heading',H2:'heading',H3:'heading',H4:'heading',H5:'heading',H6:'heading',NAV:'navigation',MAIN:'main',FORM:'form',TABLE:'table',UL:'list',OL:'list',LI:'listitem'};\n\n function isVisible(el) {\n if (el.hidden || el.getAttribute('aria-hidden') === 'true') return false;\n if (!el.offsetParent && el.tagName !== 'BODY' && el.tagName !== 'HTML') {\n var pos = getComputedStyle(el).position;\n if (pos !== 'fixed' && pos !== 'sticky') return false;\n }\n var s = el.style;\n if (s.display === 'none' || s.visibility === 'hidden') return false;\n return true;\n }\n\n function isInteractive(el) {\n var tag = el.tagName;\n if (tag === 'A' || tag === 'BUTTON' || tag === 'SELECT' || tag === 'TEXTAREA') return true;\n if (tag === 'INPUT' && el.type !== 'hidden') return true;\n var role = el.getAttribute('role');\n if (role && INTERACTIVE_ROLES[role]) return true;\n var tabindex = el.getAttribute('tabindex');\n if (el.onclick || (tabindex !== null && tabindex >= '0')) return true;\n if (el.contentEditable === 'true') return true;\n return false;\n }\n\n function getRole(el) {\n var r = el.getAttribute('role');\n if (r) return r;\n if (el.tagName === 'INPUT') return INPUT_ROLE[(el.type||'text').toLowerCase()] || 'textbox';\n return TAG_ROLE[el.tagName] || null;\n }\n\n function getLabel(el) {\n return (el.getAttribute('aria-label') || el.getAttribute('placeholder') || el.getAttribute('alt') || el.getAttribute('title') || '').slice(0, 50);\n }\n\n function directText(el) {\n var t = '';\n for (var n = el.firstChild; n; n = n.nextSibling) {\n if (n.nodeType === 3) t += n.data;\n if (t.length > 60) break;\n }\n return t.trim().replace(/\\s+/g, ' ').slice(0, 60);\n }\n\n function walk(el, depth) {\n if (truncated || !el || el.nodeType !== 1) return '';\n if (SKIP_TAGS[el.tagName]) return '';\n if (!isVisible(el)) return '';\n if (depth > MAX_DEPTH) return '';\n if (++visited > MAX_ELEMENTS) { truncated = true; return ''; }\n\n var role = getRole(el);\n var interactive = isInteractive(el);\n var showThis = !!(role || interactive);\n var lines = [];\n\n if (showThis) {\n var label = getLabel(el);\n var dtext = directText(el);\n var line = '[' + (role || el.tagName.toLowerCase());\n var txt = label || dtext;\n if (txt) line += ' \"' + txt.replace(/\"/g, \"'\") + '\"';\n if (interactive) {\n var ref = 'e' + (++refCounter);\n window.__dmjRefs.set(ref, new WeakRef(el));\n line += ' ref=' + ref;\n }\n line += ']';\n if (el === document.activeElement) line += ' [focused]';\n if ((el.tagName === 'INPUT' || el.tagName === 'TEXTAREA') && el.value) line += ' val=\"' + el.value.slice(0,40) + '\"';\n if (el.tagName === 'INPUT' && (el.type === 'checkbox' || el.type === 'radio')) line += el.checked ? ' [x]' : ' [ ]';\n\n totalChars += line.length;\n if (totalChars > MAX_CHARS) { truncated = true; return ''; }\n lines.push(line);\n }\n\n for (var c = el.firstElementChild; c; c = c.nextElementSibling) {\n if (truncated) break;\n var out = walk(c, showThis ? depth + 1 : depth);\n if (out) lines.push(showThis ? out.split('\\n').map(function(l){return ' '+l}).join('\\n') : out);\n }\n\n if (!showThis) {\n var dt = directText(el);\n if (dt.length > 2) {\n totalChars += dt.length;\n if (totalChars > MAX_CHARS) { truncated = true; return ''; }\n lines.push('\"' + dt + '\"');\n }\n }\n\n return lines.join('\\n');\n }\n\n var tree = walk(document.body, 0);\n var h = 'URL: ' + location.href + '\\nTitle: ' + document.title;\n if (truncated) h += '\\n[TRUNCATED - page too large]';\n return h + '\\n\\n' + tree;\n})()\n",returnByValue:!0});return(i.value||"Empty page")+"\n\nMouse position: ".concat(t,",").concat(n)+a}async function d(e,t,n){let a=window.bangonit;if(t.ref){let{result:r}=await a.cdpSend(e,"Runtime.evaluate",{expression:'(function() { var r = window.__dmjRefs && window.__dmjRefs.get("'.concat(t.ref,'"); return r ? r.deref() || null : null; })()'),returnByValue:!1});if(!r.objectId)throw Error('Element ref "'.concat(t.ref,'" not found — take a new snapshot'));try{let{model:i}=await a.cdpSend(e,"DOM.getBoxModel",{objectId:r.objectId}),o=i.content,l=Math.round((o[0]+o[2]+o[4]+o[6])/4),s=Math.round((o[1]+o[3]+o[5]+o[7])/4);if(n){let{result:t}=await a.cdpSend(e,"Runtime.evaluate",{expression:"JSON.stringify({ w: window.innerWidth, h: window.innerHeight })",returnByValue:!0}),n=JSON.parse(t.value);if(l<0||l>n.w||s<0||s>n.h){await a.cdpSend(e,"Runtime.callFunctionOn",{objectId:r.objectId,functionDeclaration:'function() { this.scrollIntoView({ block: "center", inline: "center", behavior: "instant" }); }',returnByValue:!0}),await new Promise(e=>setTimeout(e,100));let{model:t}=await a.cdpSend(e,"DOM.getBoxModel",{objectId:r.objectId}),n=t.content;l=Math.round((n[0]+n[2]+n[4]+n[6])/4),s=Math.round((n[1]+n[3]+n[5]+n[7])/4)}}else if(l<0||s<0){let{result:n}=await a.cdpSend(e,"Runtime.callFunctionOn",{objectId:r.objectId,functionDeclaration:"function() {\n var r = this.getBoundingClientRect();\n return { top: r.top, bottom: r.bottom, left: r.left, right: r.right, vh: window.innerHeight, vw: window.innerWidth };\n }",returnByValue:!0}),i=n.value;if(i){let e=i.top<0?Math.round(i.top-100):i.bottom>i.vh?Math.round(i.bottom-i.vh+100):0,n=0!==e?" Scroll ".concat(e>0?"down":"up"," ~").concat(Math.abs(e),"px (wheel dy=").concat(e," at current mouse position)"):"";throw Error('Element ref "'.concat(t.ref,'" is not in the viewport and cannot auto-scroll because this batch contains x,y coordinates that would be invalidated by scrolling.').concat(n))}}return{x:l,y:s}}catch(o){var i;if(null===(i=o.message)||void 0===i?void 0:i.includes("not in the viewport"))throw o;if(n)try{await a.cdpSend(e,"Runtime.callFunctionOn",{objectId:r.objectId,functionDeclaration:'function() { this.scrollIntoView({ block: "center", inline: "center", behavior: "instant" }); }',returnByValue:!0}),await new Promise(e=>setTimeout(e,100));let{model:t}=await a.cdpSend(e,"DOM.getBoxModel",{objectId:r.objectId}),n=t.content;return{x:Math.round((n[0]+n[2]+n[4]+n[6])/4),y:Math.round((n[1]+n[3]+n[5]+n[7])/4)}}catch(e){throw Error('Element ref "'.concat(t.ref,'" could not be scrolled into view'))}try{let{result:n}=await a.cdpSend(e,"Runtime.callFunctionOn",{objectId:r.objectId,functionDeclaration:"function() {\n var r = this.getBoundingClientRect();\n return { top: r.top, bottom: r.bottom, left: r.left, right: r.right, vh: window.innerHeight, vw: window.innerWidth };\n }",returnByValue:!0}),i=n.value;if(i){let e=i.top<0?Math.round(i.top-100):i.bottom>i.vh?Math.round(i.bottom-i.vh+100):0,n=0!==e?" Scroll ".concat(e>0?"down":"up"," ~").concat(Math.abs(e),"px (wheel dy=").concat(e," at current mouse position)"):"";throw Error('Element ref "'.concat(t.ref,'" is not in the viewport and cannot auto-scroll because this batch contains x,y coordinates that would be invalidated by scrolling.').concat(n))}}catch(e){if(e.message.includes("not in the viewport"))throw e}throw Error('Element ref "'.concat(t.ref,'" is not visible in the viewport — use only refs or scroll manually first'))}finally{a.cdpSend(e,"Runtime.releaseObject",{objectId:r.objectId}).catch(()=>{})}}return{x:t.x,y:t.y}}async function p(e,t,n,a,i,r){let o=window.bangonit,l=Math.hypot(a-t,i-n);if(l<1){null==r||r(a,i);return}let s=Math.min(Math.max(Math.round(l/15),3),40),c=Math.min(Math.max(.8*l,30),300);for(let l=1;l<=s;l++){let u=l/s,d=u<.5?4*u*u*u:1-Math.pow(-2*u+2,3)/2,p=Math.round(t+(a-t)*d),h=Math.round(n+(i-n)*d);await o.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseMoved",x:p,y:h}),null==r||r(p,h),l<s&&await new Promise(e=>setTimeout(e,c/s))}}async function h(e,t,n,a,i){var r,o,l,s,c,u,h,b;let m=window.bangonit;null===(r=i.onMouseLock)||void 0===r||r.call(i);let w=!t.some(e=>"wait"!==e.action&&void 0!==e.x),g=n,f=a;try{let n=[];for(let a of t){if("wait"===a.action){await new Promise(e=>setTimeout(e,Math.min(a.ms||100,2e3))),n.push("wait(".concat(a.ms||100,"ms)"));continue}let t=a.ref?{ref:a.ref}:{x:a.x,y:a.y},r=await d(e,t,w),b="".concat(r.x,",").concat(r.y),{x:v,y:x}=r;switch(a.action){case"down":await p(e,g,f,v,x,i.onCursorMove),g=v,f=x,null===(o=i.onCursorDown)||void 0===o||o.call(i,v,x),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mousePressed",x:v,y:x,button:"left",clickCount:1}),n.push("down(".concat(b,")"));break;case"move":await p(e,g,f,v,x,i.onCursorMove),g=v,f=x,n.push("move(".concat(b,")"));break;case"up":await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseReleased",x:v,y:x,button:"left",clickCount:1}),null===(l=i.onCursorUp)||void 0===l||l.call(i,v,x),n.push("up(".concat(b,")"));break;case"click":await p(e,g,f,v,x,i.onCursorMove),g=v,f=x,null===(s=i.onCursorDown)||void 0===s||s.call(i,v,x),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mousePressed",x:v,y:x,button:"left",clickCount:1}),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseReleased",x:v,y:x,button:"left",clickCount:1}),null===(c=i.onCursorUp)||void 0===c||c.call(i,v,x),n.push("click(".concat(b,")"));break;case"dblclick":await p(e,g,f,v,x,i.onCursorMove),g=v,f=x,null===(u=i.onCursorDown)||void 0===u||u.call(i,v,x),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mousePressed",x:v,y:x,button:"left",clickCount:1}),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseReleased",x:v,y:x,button:"left",clickCount:1}),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mousePressed",x:v,y:x,button:"left",clickCount:2}),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseReleased",x:v,y:x,button:"left",clickCount:2}),null===(h=i.onCursorUp)||void 0===h||h.call(i,v,x),n.push("dblclick(".concat(b,")"));break;case"wheel":{await p(e,g,f,v,x,i.onCursorMove),g=v,f=x;let t=a.dx||0,r=a.dy||0;await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseWheel",x:v,y:x,deltaX:t,deltaY:r}),n.push("wheel(".concat(b,",").concat(t,",").concat(r,")"))}}}return{result:"Mouse: ".concat(n.join(" → ")),mouseX:g,mouseY:f}}finally{null===(b=i.onMouseUnlock)||void 0===b||b.call(i)}}async function b(e,t){let n=window.bangonit;for(let a of t)await n.sendInputEvent(e,{type:"keyDown",keyCode:a}),await n.sendInputEvent(e,{type:"char",keyCode:a}),await n.sendInputEvent(e,{type:"keyUp",keyCode:a}),await new Promise(e=>setTimeout(e,30+70*Math.random()));return'Typed "'.concat(t.slice(0,50),'"')}async function m(e,t){let n=window.bangonit,a=t.split("+"),i=a.pop(),r=a.map(e=>e.toLowerCase()),o=[];for(let e of r)"control"===e||"ctrl"===e?o.push("control"):"meta"===e||"command"===e||"cmd"===e?o.push("meta"):"alt"===e||"option"===e?o.push("alt"):"shift"===e&&o.push("shift");return await n.sendInputEvent(e,{type:"keyDown",keyCode:i,modifiers:o}),0===o.length&&("Enter"===i?await n.sendInputEvent(e,{type:"char",keyCode:"\r"}):1===i.length&&await n.sendInputEvent(e,{type:"char",keyCode:i})),await n.sendInputEvent(e,{type:"keyUp",keyCode:i,modifiers:o}),"Pressed ".concat(t)}let w=new Map;async function g(e){let t=new TextEncoder().encode(e);return Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",t))).map(e=>e.toString(16).padStart(2,"0")).join("")}async function f(e){let t;let n=window.bangonit;try{t=await n.capturePage(e)}catch(e){throw Error("could not capture page (page may be navigating)")}let{activeTabId:a}=await n.getTabInfo(e),i="".concat(e,":").concat(null!=a?a:0),r=await g(t);return w.get(i)===r?{type:"not_changed"}:(w.set(i,r),{type:"changed",base64:t})}async function v(e,t){let n=window.bangonit;t.startsWith("http://")||t.startsWith("https://")||(t="https://"+t);let{url:a}=await n.loadURL(e,t);return"Navigated to ".concat(a)}async function x(e){let{ok:t,url:n,reason:a}=await window.bangonit.goBack(e);return t?"Navigated back to ".concat(n):"Cannot go back — ".concat(a)}async function y(e){let{ok:t,url:n,reason:a}=await window.bangonit.goForward(e);return t?"Navigated forward to ".concat(n):"Cannot go forward — ".concat(a)}async function I(e,t){let n=window.bangonit,a=t.action;switch(a){case"list":{let{tabs:t,activeTabId:a}=await n.getTabInfo(e);if(!t.length)return"No tabs open";return t.map(e=>{let t=e.tabId===a?" (active)":"",n=e.isPopup?" (popup)":"";return"Tab ".concat(e.tabId,": ").concat(e.title||"(untitled)"," — ").concat(e.url).concat(t).concat(n)}).join("\n")}case"new":{await n.requestNewTab(e,t.url||"about:blank"),await new Promise(e=>setTimeout(e,3e3));let{activeTabId:a}=await n.getTabInfo(e);return"Opened new tab".concat(t.url?": "+t.url:"",". Active tab is now ").concat(a,".")}case"select":{let a=t.tabId;if(void 0===a)return"Error: tabId required for select";let{tabs:i}=await n.getTabInfo(e);if(!i.find(e=>e.tabId===a))return"Error: tab ".concat(a,' not found. Use browser_tabs with action "list" to see available tabs.');await n.setActiveTab(e,a),await n.requestSelectTab(e,a);let r=i.find(e=>e.tabId===a);return"Switched to tab ".concat(a,": ").concat(null==r?void 0:r.url)}case"close":{var i;let{tabs:a,activeTabId:r}=await n.getTabInfo(e),o=null!==(i=t.tabId)&&void 0!==i?i:r;if(null===o)return"Error: no tab to close";if(!a.find(e=>e.tabId===o))return"Error: tab ".concat(o," not found.");if(a.length<=1)return"Cannot close the last tab.";return await n.requestCloseTab(e,o),"Closed tab ".concat(o)}default:return'Error: unknown tab action "'.concat(a,'". Use list, new, select, or close.')}}async function k(e){let{tabs:t,activeTabId:n}=await window.bangonit.getTabInfo(e);return t.length<=1?"":"\n\nOpen tabs:\n"+t.map(e=>{let t=e.tabId===n?" (active)":"",a=e.isPopup?" (popup)":"";return" Tab ".concat(e.tabId,": ").concat(e.title||"(untitled)"," — ").concat(e.url).concat(t).concat(a)}).join("\n")}async function T(e,t){let n=window.bangonit,a=Math.min(Math.max((null==t?void 0:t.timeout)||10,.1),30),i=null==t?void 0:t.text,r="visible"===((null==t?void 0:t.state)||"visible");if(!i)return await new Promise(e=>setTimeout(e,1e3*a)),"Waited ".concat(a," seconds");let o=Date.now()+1e3*a;for(;Date.now()<o;){let{result:t}=await n.cdpSend(e,"Runtime.evaluate",{expression:"document.body.innerText.includes(".concat(JSON.stringify(i),")"),returnByValue:!0}),a=t.value;if(r&&a)return'Text "'.concat(i,'" is now visible on the page.');if(!r&&!a)return'Text "'.concat(i,'" is no longer visible on the page.');await new Promise(e=>setTimeout(e,500))}return'Timeout: text "'.concat(i,'" ').concat(r?"did not appear":"did not disappear"," within ").concat(a,"s.")}class N{start(){!this.cleanup&&window.bangonit&&(this.cleanup=window.bangonit.onCdpEvent(e=>{"Network.requestWillBeSent"===e.method?this.inflightRequests++:("Network.loadingFinished"===e.method||"Network.loadingFailed"===e.method)&&(this.inflightRequests=Math.max(0,this.inflightRequests-1))}))}stop(){var e;null===(e=this.cleanup)||void 0===e||e.call(this),this.cleanup=null,this.inflightRequests=0}async waitForIdle(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:500,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e3,n=Date.now()+t,a=0===this.inflightRequests?Date.now():null;for(;Date.now()<n;){if(0===this.inflightRequests){if(a||(a=Date.now()),Date.now()-a>=e)return}else a=null;await new Promise(e=>setTimeout(e,50))}}constructor(){this.inflightRequests=0,this.cleanup=null}}let C={navigate:"browser_navigate",back:"browser_navigate_back",forward:"browser_go_forward",mouse:"browser_mouse",type:"browser_type",press:"browser_press_key",tabs:"browser_tabs",downloads:"browser_downloads",wait:"browser_wait_for",close:"browser_close"};var j=n(8204);let E=j.VK("type",[j.Ry({type:j.i0("not_changed")}),j.Ry({type:j.i0("changed"),base64:j.Z_()})]);j.Ry({textOutput:j.Z_(),imageOutput:E.nullable()});let S=Promise.resolve();class R{destroy(){this.networkTracker.stop()}enableRecording(e){this.recorder=e}cursorCallbacks(){let e=this.agentId,t=window.bangonit,n=this.recorder;return{onCursorMove:(a,i)=>{t.emitCursorMove(e,a,i),null==n||n.updateCursor(a,i)},onCursorDown:(a,i)=>{t.emitCursorDown(e,a,i),null==n||n.setCursorDown()},onCursorUp:(a,i)=>{t.emitCursorUp(e,a,i),null==n||n.setCursorUp()},onMouseLock:()=>t.emitMouseLock(e),onMouseUnlock:()=>t.emitMouseUnlock(e)}}async callTool(e,t){switch(e){case"browser_navigate":return v(this.agentId,t.url);case"browser_navigate_back":return x(this.agentId);case"browser_go_forward":return y(this.agentId);case"browser_mouse":{let{result:e,mouseX:n,mouseY:a}=await h(this.agentId,t.steps,this.mouseX,this.mouseY,this.cursorCallbacks());return this.mouseX=n,this.mouseY=a,e}case"browser_type":return b(this.agentId,t.text);case"browser_press_key":return m(this.agentId,t.key);case"browser_close":return I(this.agentId,{action:"close"});case"browser_wait_for":return T(this.agentId,t);case"browser_tabs":return I(this.agentId,t);case"browser_downloads":{let e=await window.bangonit.getDownloads(this.agentId);if(!e.length)return"No downloads.";return e.map(e=>{let t=e.totalBytes>0?Math.round(e.bytes/e.totalBytes*100)+"%":"";return"[".concat(e.state,"] ").concat(e.filename," ").concat(t," → ").concat(e.path)}).join("\n")}default:throw Error("Unknown tool: ".concat(e))}}async exec(e){let t=function(){let e;let t=new Promise(t=>{e=t}),n=S;return S=S.then(()=>t),{promise:n,release:e}}();await t.promise;try{return await this._exec(e)}finally{t.release()}}async _exec(e){var t,n,a,i,r,o,l;let{actions:s,observe:c}=e,d=[],p=null;if(this.recorder)try{let e=await (null===(t=window.bangonit)||void 0===t?void 0:t.getTabInfo(this.agentId)),i=null!==(a=null==e?void 0:e.activeTabId)&&void 0!==a?a:0,r=null==e?void 0:null===(n=e.tabs)||void 0===n?void 0:n.find(e=>e.tabId===i);await this.recorder.startClip(i,null==r?void 0:r.url)}catch(e){console.warn("Failed to start recording clip:",e)}for(let e=0;e<s.length;e++){let t=s[e];if(!t||!t.action)continue;let n=C[t.action];if(!n){d.push("".concat(t.action,": Error — unknown action"));continue}try{let e=this.actionToToolArgs(t),a=await this.callTool(n,e);d.push(a||"OK")}catch(e){d.push("".concat(this.actionLabel(t),": Error — ").concat(e.message))}}if(c){s.length>0&&await this.networkTracker.waitForIdle(500,2e3);try{let e=await k(this.agentId),t=await u(this.agentId,this.mouseX,this.mouseY,e);d.push(t),"snapshot_and_screenshot"===c&&(p=await f(this.agentId))}catch(e){d.push("observe: Error — ".concat(e.message))}}if(this.recorder)try{let e=await this.recorder.stopClip();if(e){let t=await (null===(r=window.bangonit)||void 0===r?void 0:null===(i=r.getRunDir)||void 0===i?void 0:i.call(r));if(t){let n=await e.blob.arrayBuffer();await (null===(l=window.bangonit)||void 0===l?void 0:null===(o=l.saveRecordingClip)||void 0===o?void 0:o.call(l,{runDir:t,agentId:e.meta.agentId,clipIndex:e.meta.index,tabId:e.meta.tabId,data:n}))}}}catch(e){console.warn("Failed to save recording clip:",e)}return{textOutput:d.join("\n\n"),imageOutput:p}}actionToToolArgs(e){switch(e.action){case"navigate":return{url:e.url};case"back":case"forward":case"close":case"downloads":default:return{};case"mouse":return{steps:(e.mouseActions||[]).map(e=>{if("wait"===e.action)return{action:"wait",ms:e.ms||100};let t=e.ref?{ref:e.ref}:{x:e.x,y:e.y};return"wheel"===e.action?{action:"wheel",...t,dx:e.dx||0,dy:e.dy||0}:{action:e.action,...t}})};case"type":return{text:e.text};case"press":return{key:e.key};case"tabs":return{action:e.tabAction,tabId:e.tabId,url:e.url};case"wait":return{timeout:e.timeout}}}actionLabel(e){switch(e.action){case"navigate":return"navigate ".concat(e.url);case"mouse":{let t=(e.mouseActions||[]).map(e=>"wait"===e.action?"wait ".concat(e.ms,"ms"):"wheel"===e.action?"wheel ".concat(e.x,",").concat(e.y," ").concat(e.dx,",").concat(e.dy):"".concat(e.action," ").concat(e.x,",").concat(e.y)).join(" → ");return"mouse ".concat(t)}case"type":return'type "'.concat((e.text||"").slice(0,30),'"');case"press":return"press ".concat(e.key);case"tabs":return"tabs ".concat(e.tabAction).concat(e.tabId?" "+e.tabId:"");case"wait":return"wait ".concat(e.timeout||10,"s");default:return e.action}}constructor(e){this.mouseX=0,this.mouseY=0,this.networkTracker=new N,this.recorder=null,this.agentId=e,this.networkTracker.start()}}class M{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:a,sessionId:i}=e.params;this.currentFrames.push({imageData:t,cursor:{...this.cursorPos},clicking:this.clicking,ts:Date.now(),sessionId:i,deviceWidth:(null==a?void 0:a.deviceWidth)||0,deviceHeight:(null==a?void 0:a.deviceHeight)||0,scrollOffsetX:(null==a?void 0:a.scrollOffsetX)||0,scrollOffsetY:(null==a?void 0:a.scrollOffsetY)||0}),n.cdpSend(this.agentId,"Page.screencastFrameAck",{sessionId:i}).catch(()=>{})}),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(()=>{}),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 a={agentId:this.agentId,tabId:this.currentTabId,index:this.clips.length,startTime:this.clipStartTime,endTime:e,path:"clips/".concat(this.agentId,"/clip-").concat(this.clips.length,"-tab-").concat(this.currentTabId,".webm"),url:this.currentUrl||void 0};return this.clips.push(a),{blob:n,meta:a}}async cancelClip(){var e;this.recording=!1,this.currentFrames=[],this.cdpCleanup&&(this.cdpCleanup(),this.cdpCleanup=null),await (null===(e=window.bangonit)||void 0===e?void 0:e.cdpSend(this.agentId,"Page.stopScreencast").catch(()=>{}))}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,a=t.height,i=document.createElement("canvas");i.width=n,i.height=a;let r=i.getContext("2d"),o=i.captureStream(0),l=o.getVideoTracks()[0],s=new MediaRecorder(o,{mimeType:"video/webm;codecs=vp8",videoBitsPerSecond:8e6}),c=[];s.ondataavailable=e=>{e.data.size>0&&c.push(e.data)};let u=new Promise(e=>{s.onstop=()=>{e(new Blob(c,{type:"video/webm"}))}});s.start();let d=[];for(let i=0;i<e.length;i++){let o=e[i],s=0===i?t:await this.decodeFrame(o.imageData);if(!s)continue;let c=o.deviceWidth>0?n/o.deviceWidth:1,u=o.deviceHeight>0?a/o.deviceHeight:1,m=o.cursor.x*c,w=o.cursor.y*u;o.clicking&&(0===i||!e[i-1].clicking)&&d.push({x:m,y:w,startTs:o.ts}),r.clearRect(0,0,n,a),r.drawImage(s,0,0,n,a);for(let e=d.length-1;e>=0;e--){var p,h,b;let t=d[e],n=o.ts-t.startTs;if(n>=400){d.splice(e,1);continue}p=t.x,h=t.y,b=n/400,r.save(),r.beginPath(),r.arc(p,h,24*b,0,2*Math.PI),r.fillStyle="rgba(96, 165, 250, ".concat(.8*(1-b),")"),r.fill(),r.restore(),r.save(),r.beginPath(),r.arc(p,h,32*b,0,2*Math.PI),r.strokeStyle="rgba(96, 165, 250, ".concat(.9*(1-b),")"),r.lineWidth=2,r.stroke(),r.restore()}if(!function(e,t,n,a){e.save(),e.translate(t-2,n-1),e.scale(28/24,28/24);let i=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(i),e.stroke(i),e.restore(),a&&(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())}(r,m,w,o.clicking),l&&"function"==typeof l.requestFrame&&l.requestFrame(),i<e.length-1){let t=Math.max(16,Math.min(e[i+1].ts-o.ts,100));await new Promise(e=>setTimeout(e,t))}}return await new Promise(e=>setTimeout(e,100)),s.stop(),u}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 a=new Blob([n],{type:"image/png"});return createImageBitmap(a)}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]}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}}function z(e){var t;let{agentId:n,agentName:l,initialPrompt:s,onStatusChange:u,onRerun:d,initialMessages:p,initialTabs:h,initialActiveTabId:b,initialTodos:m,record:w,sessionRecorder:g,onRegisterRecorder:f}=e,[v,x]=(0,i.useState)((null==h?void 0:h.map(e=>({...e,initialUrl:e.url})))||[{id:0,url:"about:blank",title:"",initialUrl:"about:blank"}]),[y,I]=(0,i.useState)(null!=b?b:0),k=(0,i.useRef)(y);k.current=y;let[T,N]=(0,i.useState)(()=>{let e=null==h?void 0:h.find(e=>e.id===(null!=b?b:0));return(null==e?void 0:e.url)||""}),[C,j]=(0,i.useState)(null),[E,S]=(0,i.useState)(!1),[z,A]=(0,i.useState)(!1),D=(0,i.useRef)(new Map),[_,O]=(0,i.useState)(m||[]),U=(0,i.useRef)(null),L=(0,i.useRef)(!1),F=(0,i.useRef)(h?Math.max(...h.map(e=>e.id))+1:1),B=(0,i.useRef)(new Set),[H,W]=(0,i.useState)(0),V=(0,i.useRef)(null),X=(0,i.useRef)(null);!X.current&&window.bangonit&&(X.current=new R(n));let J=(0,i.useRef)(null);w&&!J.current&&X.current&&(J.current=new M(n),X.current.enableRecording(J.current),null==f||f(n,J.current));let q=(0,i.useRef)(g);q.current=g;let Y=(0,i.useMemo)(()=>new o.PD({api:"/api/chat",headers:()=>({"X-Client-Platform":navigator.platform})}),[]),G=(0,i.useRef)(!1),K=(0,i.useCallback)((e,t)=>{var a,i;null===(i=window.bangonit)||void 0===i||null===(a=i.emitAgentOutput)||void 0===a||a.call(i,{agentId:n,type:e,text:t,name:l})},[n,l]),{messages:Z,setMessages:Q,sendMessage:$,addToolOutput:ee,stop:et,status:en,error:ea}=(0,r.RJ)({transport:Y,messages:p,sendAutomaticallyWhen:e=>{let{messages:t}=e;return!G.current&&!E&&(0,o.Qk)({messages:t})},async onToolCall(e){var t,a,i,r,o,s,c,u,d,p,h,b,m;let{toolCall:w}=e;if("report_result"===w.toolName){let e=w.input,p=(null==e?void 0:e.result)==="pass"?"pass":"fail",h=(null==e?void 0:e.summary)||"";if(K("status","".concat(p.toUpperCase(),": ").concat(h)),j({result:p,summary:h}),q.current){q.current.addEvent({ts:Date.now(),agentId:n,type:"result",data:{result:p,summary:h}});try{let e=await (null===(r=window.bangonit)||void 0===r?void 0:null===(i=r.getRunDir)||void 0===i?void 0:i.call(r));if(e){let t=(null===(o=J.current)||void 0===o?void 0:o.getClipsMeta())||[],a=[{id:n,name:l,result:p,summary:h}],i=q.current.toJSON(a,t);await (null===(c=window.bangonit)||void 0===c?void 0:null===(s=c.saveReplayData)||void 0===s?void 0:s.call(c,{runDir:e,data:JSON.stringify(i)})),await (null===(d=window.bangonit)||void 0===d?void 0:null===(u=d.generateReplayHtml)||void 0===u?void 0:u.call(d,{runDir:e}))}}catch(e){}}null===(a=window.bangonit)||void 0===a||null===(t=a.reportTestResult)||void 0===t||t.call(a,{agentId:n,status:p,summary:h}),ee({tool:w.toolName,toolCallId:w.toolCallId,output:"Test result recorded: ".concat(p)});return}if("todos"===w.toolName){let e=w.input,t=(null==e?void 0:e.todos)||_;(null==e?void 0:e.todos)&&O(e.todos),ee({tool:w.toolName,toolCallId:w.toolCallId,output:JSON.stringify(t)});return}if("browser"===w.toolName){try{let e=w.input,t=((null==e?void 0:e.actions)||[]).map(e=>"navigate"===e.action?"navigate ".concat(e.url):"type"===e.action?'type "'.concat((e.text||"").slice(0,30),'"'):"press"===e.action?"press ".concat(e.key):"mouse"===e.action?"mouse ".concat((e.mouseActions||[]).map(e=>"".concat(e.action," ").concat(e.ref||"".concat(e.x,",").concat(e.y))).join(" > ")):e.action).join(", ");K("tool","browser: ".concat(t).concat((null==e?void 0:e.observe)?" [".concat(e.observe,"]"):"")),null===(p=q.current)||void 0===p||p.addEvent({ts:Date.now(),agentId:n,type:"tool-start",data:{tool:"browser",label:t}});let a=X.current,i=a?await a.exec({actions:(null==e?void 0:e.actions)||[],observe:null==e?void 0:e.observe,prompts:null==e?void 0:e.prompts}):{error:"Error: browser tools not available"};null===(h=q.current)||void 0===h||h.addEvent({ts:Date.now(),agentId:n,type:"tool-end",data:{tool:"browser"}}),ee({tool:w.toolName,toolCallId:w.toolCallId,output:G.current?{error:"[Stopped by user]"}:JSON.stringify(i)})}catch(e){ee({tool:w.toolName,toolCallId:w.toolCallId,...G.current?{output:"[Stopped by user]"}:{state:"output-error",errorText:e.message}})}return}try{let e=null===(b=w.input)||void 0===b?void 0:b.command;K("tool","bash: ".concat((e||"").slice(0,100)));let t=await (null===(m=window.bangonit)||void 0===m?void 0:m.bashExec(n,e))||"OK";ee({tool:w.toolName,toolCallId:w.toolCallId,output:G.current?"[Stopped by user]":function(e){if(e.length<=65536)return e;let t=e.length-32768-32768;return e.slice(0,32768)+"\n\n[... truncated ".concat(t," characters ...]\n\n")+e.slice(-32768)}(t)})}catch(e){ee({tool:w.toolName,toolCallId:w.toolCallId,...G.current?{output:"[Stopped by user]"}:{state:"output-error",errorText:e.message}})}}});(0,i.useCallback)(()=>{G.current=!0,et()},[et]);let ei="submitted"===en||"streaming"===en;(0,i.useEffect)(()=>{ei&&(G.current=!1)},[ei]);let er=Z.length>0,eo=null!==C;(0,i.useEffect)(()=>{if(er&&!V.current&&(V.current=Date.now()),!er||eo)return;let e=setInterval(()=>{V.current&&W(Math.floor((Date.now()-V.current)/1e3))},1e3);return()=>clearInterval(e)},[er,eo]);let el=(0,i.useRef)(null),es=(0,i.useRef)(0);(0,i.useEffect)(()=>{var e;if(0===Z.length)return;let t=Z[Z.length-1];if("assistant"!==t.role)return;let n=(null===(e=t.parts)||void 0===e?void 0:e.filter(e=>"text"===e.type).map(e=>e.text).join(""))||"";t.id!==el.current&&(el.current=t.id,es.current=0);let a=n.slice(es.current);a&&(K("text",a),es.current=n.length)},[Z,K]);let ec=(0,i.useRef)(ei),eu=(0,i.useRef)(!1);(0,i.useEffect)(()=>{!eu.current&&ec.current!==ei&&(ec.current=ei,ei?null==u||u(n,"running"):(null==u||u(n,"idle",null==C?void 0:C.result),(null==C?void 0:C.result)&&(eu.current=!0)))},[ei,n,u,C]);let ed=(0,i.useRef)(!1),ep=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(ep.current&&(clearTimeout(ep.current),ep.current=null),!ei&&!eo&&!E&&!ed.current&&!(Z.length<2))return ep.current=setTimeout(()=>{ep.current=null,ed.current||eo||(ed.current=!0,$({text:"You must call the report_result tool to finalize this test run. Call it now with the result (pass or fail) and a summary."}))},5e3),()=>{ep.current&&clearTimeout(ep.current)}},[ei,eo,E,Z.length,$]),(0,i.useEffect)(()=>{var e,t;null===(t=window.bangonit)||void 0===t||null===(e=t.clearPartition)||void 0===e||e.call(t,n)},[n]),(0,i.useEffect)(()=>{q.current&&Z.length>0&&q.current.setMessages(n,Z)},[Z,n]),(0,i.useEffect)(()=>{if(Z.length>0){var e,t,a,i;null===(a=window.bangonit)||void 0===a||a.setAgentSession(n,{messages:Z,initialPrompt:s,tabs:v.filter(e=>!e.isPopup).map(e=>{let{id:t,url:n,title:a}=e;return{id:t,url:n,title:a}}),activeTabId:(null===(e=v.find(e=>e.id===y))||void 0===e?void 0:e.isPopup)?null!==(i=null===(t=v.find(e=>!e.isPopup))||void 0===t?void 0:t.id)&&void 0!==i?i:0:y,todos:_})}},[Z,v,y,n,s,_]);let eh=(0,i.useCallback)(e=>{var t;let a=F.current++;x(t=>[...t,{id:a,url:"about:blank",title:"",initialUrl:e}]),I(a),N("about:blank"===e?"":e),null===(t=window.bangonit)||void 0===t||t.setActiveTab(n,a)},[n]),eb=(0,i.useCallback)(e=>{x(t=>{let a=t.findIndex(t=>t.id===e);if(-1===a)return t;let i=t.filter(t=>t.id!==e);return 0===i.length?t:(I(t=>{if(t===e){var r;let e=i[Math.max(0,a-1)].id,t=i.find(t=>t.id===e);return t&&N("about:blank"===t.url?"":t.url),null===(r=window.bangonit)||void 0===r||r.setActiveTab(n,e),e}return t}),i)})},[n]),em=(0,i.useCallback)(e=>{var t;I(e),null===(t=window.bangonit)||void 0===t||t.setActiveTab(n,e),x(t=>{let n=t.find(t=>t.id===e);return n&&N("about:blank"===n.url?"":n.url),t})},[n]),ew=(0,i.useRef)(eh),eg=(0,i.useRef)(eb),ef=(0,i.useRef)(em);ew.current=eh,eg.current=eb,ef.current=em,(0,i.useEffect)(()=>{var e,t,a,i,r;let o=[],l=e=>{e&&o.push(e)};return l(null===(e=window.bangonit)||void 0===e?void 0:e.onTabUpdated(e=>{if(e.agentId!==n)return;let t="about:blank"===e.url,a="about:blank"===e.title;x(n=>n.map(n=>n.id===e.tabId?{...n,...!t&&void 0!==e.url&&{url:e.url},...!a&&void 0!==e.title&&{title:e.title}}:n)),void 0===e.url||t||I(t=>(t===e.tabId&&N(e.url),t))})),l(null===(t=window.bangonit)||void 0===t?void 0:t.onOpenNewTab(e=>{e.agentId===n&&ew.current(e.url)})),l(null===(a=window.bangonit)||void 0===a?void 0:a.onPopupOpened(e=>{e.agentId===n&&x(t=>[...t,{id:e.tabId,url:e.url||"about:blank",title:"",initialUrl:e.url||"about:blank",isPopup:!0}])})),l(null===(i=window.bangonit)||void 0===i?void 0:i.onCloseTab(e=>{e.agentId===n&&eg.current(e.tabId)})),l(null===(r=window.bangonit)||void 0===r?void 0:r.onSelectTab(e=>{e.agentId===n&&ef.current(e.tabId)})),()=>o.forEach(e=>null==e?void 0:e())},[n]),(0,i.useEffect)(()=>{L.current||(null==p?void 0:p.length)||(L.current=!0,$({text:s}))},[s,$,p]),(0,i.useEffect)(()=>{var e;null===(e=U.current)||void 0===e||e.scrollIntoView({behavior:"smooth"})},[Z]);let ev=(0,i.useCallback)((e,t,a)=>{if(!e)return;D.current.set(t,e);let i=()=>{if(!B.current.has(t))try{var i,r,o;let l=null===(i=e.getWebContentsId)||void 0===i?void 0:i.call(e);l&&(B.current.add(t),null===(r=window.bangonit)||void 0===r||r.registerTab(n,t,l,a),t===k.current&&(null===(o=window.bangonit)||void 0===o||o.setActiveTab(n,t)))}catch(e){}};i(),e.addEventListener("did-attach",i),e.addEventListener("close",()=>eg.current(t)),e.addEventListener("console-message",e=>{var t,a,i;null===(a=window.bangonit)||void 0===a||null===(t=a.emitConsoleMessage)||void 0===t||t.call(a,{agentId:n,level:e.level,message:e.message,url:e.sourceId||"",line:e.lineNumber||0}),null===(i=q.current)||void 0===i||i.addConsoleLog(n,e.level,e.message,e.sourceId||"",e.lineNumber||0)})},[n]),ex=e=>"".concat(Math.floor(e/60),":").concat((e%60).toString().padStart(2,"0"));return(0,a.jsxs)("div",{className:"flex h-full w-full bg-zinc-950 overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex-1 flex flex-col border-r border-zinc-800 min-w-0",children:[(0,a.jsx)("div",{className:"flex items-center bg-zinc-900 border-b border-zinc-800 overflow-x-auto",children:v.map(e=>(0,a.jsx)("button",{onClick:()=>em(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\n ".concat(e.id===y?"bg-zinc-800 text-zinc-200":"text-zinc-500 hover:text-zinc-300 hover:bg-zinc-850"),children:(0,a.jsxs)("span",{className:"truncate",children:[e.isPopup?"↗ ":"",e.title||(e.url&&"about:blank"!==e.url?e.url:"New Tab")]})},e.id))}),(0,a.jsx)("div",{className:"flex items-center gap-2 px-3 py-2 bg-zinc-900 border-b border-zinc-800",children:(0,a.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:T||"about:blank"})}),(0,a.jsxs)("div",{className:"flex-1 relative bg-white overflow-hidden",onWheel:e=>e.stopPropagation(),children:[v.map(e=>e.isPopup?e.id===y&&(0,a.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 — ",e.title||e.url]},e.id):(0,a.jsx)("webview",{ref:t=>ev(t,e.id,e.initialUrl),src:"about:blank",partition:"persist:agent-".concat(n),allowpopups:"",style:{width:"100%",height:"100%",position:"absolute",backgroundColor:"white",top:0,left:0,pointerEvents:e.id===y?"auto":"none",zIndex:e.id===y?1:0}},e.id)),!(null===(t=v.find(e=>e.id===y))||void 0===t?void 0:t.isPopup)&&(0,a.jsx)(c,{agentId:n}),!eo&&(0,a.jsx)("div",{className:"absolute inset-0 z-10 cursor-not-allowed"})]})]}),(0,a.jsxs)("div",{className:"w-[420px] flex flex-col h-full shrink-0",children:[(0,a.jsxs)("div",{className:"flex items-center px-4 py-3 border-b border-zinc-800",children:[(0,a.jsx)("h2",{className:"text-sm font-medium text-zinc-300",children:l}),(0,a.jsx)("div",{className:"flex-1"})]}),C&&(0,a.jsxs)("div",{className:"px-4 py-2 text-sm border-b flex items-center gap-3 ".concat("pass"===C.result?"bg-green-950/30 border-green-900/50":"bg-red-950/30 border-red-900/50"),children:[(0,a.jsx)("span",{className:"font-medium ".concat("pass"===C.result?"text-green-400":"text-red-400"),children:"pass"===C.result?"PASSED":"FAILED"}),(0,a.jsx)("span",{className:"text-zinc-500 text-xs",children:ex(H)}),C.summary&&(0,a.jsx)("span",{className:"text-zinc-400 text-xs truncate flex-1",children:C.summary})]}),_.length>0&&(0,a.jsx)("div",{className:"text-xs space-y-1 px-4 py-2 border-b border-zinc-800 bg-zinc-900/80 shrink-0",children:_.map((e,t)=>(0,a.jsxs)("div",{className:"flex items-center gap-2 ".concat("completed"===e.status?"text-zinc-500":"text-zinc-300"),children:[(0,a.jsx)("span",{className:"shrink-0",children:"completed"===e.status?"✓":"in_progress"===e.status?(0,a.jsx)("span",{className:"inline-block w-2 h-2 bg-blue-500 rounded-full animate-pulse"}):"○"}),(0,a.jsx)("span",{className:"completed"===e.status?"line-through":"",children:e.content})]},t))}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-4 space-y-3",children:[Z.map(e=>(0,a.jsx)(P,{message:e,agentName:l},e.id)),ea&&(0,a.jsx)("div",{className:"text-sm px-3 py-2 bg-red-950/30 border border-red-900/50 rounded-lg text-red-400",children:ea.message}),(0,a.jsx)("div",{ref:U})]}),(0,a.jsx)("div",{className:"px-4 py-2 border-t border-zinc-800 flex items-center gap-3 shrink-0",children:eo?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"inline-block w-2 h-2 rounded-full shrink-0 ".concat("pass"===C.result?"bg-green-500":"bg-red-500")}),(0,a.jsxs)("span",{className:"text-xs font-medium ".concat("pass"===C.result?"text-green-400":"text-red-400"),children:["pass"===C.result?"Passed":"Failed"," in ",ex(H)]}),(0,a.jsx)("div",{className:"flex-1"}),(0,a.jsx)("button",{onClick:()=>{let e=D.current.get(y);e&&(z?e.closeDevTools():e.openDevTools(),A(!z))},className:"text-xs px-2 py-1 rounded border transition-colors ".concat(z?"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"}),(0,a.jsx)("button",{onClick:()=>{var e,t;null===(t=window.bangonit)||void 0===t||null===(e=t.emitTestRerun)||void 0===e||e.call(t),null==d||d()},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"})]}):er?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"inline-block w-2 h-2 rounded-full shrink-0 ".concat(E?"bg-amber-500":"bg-blue-500 animate-pulse")}),(0,a.jsxs)("span",{className:"text-xs text-zinc-400",children:[E?"Paused":"Working"," ",ex(H)]}),(0,a.jsx)("div",{className:"flex-1"}),(0,a.jsx)("button",{onClick:()=>{let e=D.current.get(y);e&&(z?e.closeDevTools():e.openDevTools(),A(!z))},className:"text-xs px-2 py-1 rounded border transition-colors ".concat(z?"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"}),(0,a.jsx)("button",{onClick:()=>S(!E),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:E?"Continue":"Pause"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"inline-block w-2 h-2 bg-zinc-600 rounded-full shrink-0"}),(0,a.jsx)("span",{className:"text-xs text-zinc-500",children:"Queued"})]})})]})]})}function P(e){var t,n;let{message:i,agentName:r}=e;if("user"===i.role){let e=null===(n=i.parts)||void 0===n?void 0:n.find(e=>"text"===e.type);return(0,a.jsxs)("div",{className:"text-sm",children:[(0,a.jsx)("span",{className:"text-xs text-zinc-500 block mb-1",children:"Test Plan"}),(0,a.jsx)("div",{className:"text-zinc-200 prose prose-invert prose-sm max-w-none",children:(0,a.jsx)(l.UG,{remarkPlugins:[s.Z],children:(null==e?void 0:e.text)||""})})]})}return(0,a.jsx)("div",{className:"text-sm space-y-2",children:null===(t=i.parts)||void 0===t?void 0:t.map((e,t)=>{var n,i;if("text"===e.type&&e.text)return(null===(i=e.providerMetadata)||void 0===i?void 0:null===(n=i.anthropic)||void 0===n?void 0:n.type)==="compaction"?null:(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-xs text-zinc-500 block mb-1",children:r}),(0,a.jsx)("div",{className:"text-zinc-300 prose prose-invert prose-sm max-w-none",children:(0,a.jsx)(l.UG,{remarkPlugins:[s.Z],children:e.text})})]},t);if("dynamic-tool"===e.type||"string"==typeof e.type&&e.type.startsWith("tool-")){let n=e.toolName||("string"==typeof e.type?e.type.replace(/^tool-/,""):"");return"todos"===n||"report_result"===n?null:(0,a.jsx)(A,{part:e},t)}return null})})}function A(e){let{part:t}=e,[n,r]=(0,i.useState)(!1),o=t.input||{},l=t.output,s=t.state||"input-available",c=t.toolName||("string"==typeof t.type?t.type.replace(/^tool-/,""):""),u="input-streaming"===s?"":"browser"===c?(()=>{let e=(o.actions||[]).map(e=>{switch(e.action){case"navigate":return"navigate ".concat(e.url||"");case"mouse":{let t=(e.mouseActions||[]).map(e=>"wait"===e.action?"wait ".concat(e.ms,"ms"):"wheel"===e.action?"wheel ".concat(e.ref||"".concat(e.x,",").concat(e.y)):"".concat(e.action," ").concat(e.ref||"".concat(e.x,",").concat(e.y))).join(" → ");return"mouse ".concat(t)}case"type":return'type "'.concat((e.text||"").slice(0,40),'"');case"press":return"press ".concat(e.key||"");case"tabs":return"tabs ".concat(e.tabAction||"").concat(e.tabId?" "+e.tabId:"");default:return e.action||""}});return o.observe&&e.push(o.observe),e.join(", ")})():o.command||(Object.keys(o).length>0?JSON.stringify(o):"");return(0,a.jsxs)("div",{className:"text-sm",children:[(0,a.jsxs)("button",{onClick:()=>r(!n),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"===s||"input-available"===s?(0,a.jsx)("span",{className:"inline-block w-2 h-2 bg-amber-500 rounded-full animate-pulse shrink-0"}):(0,a.jsx)("span",{className:"text-green-500 shrink-0",children:"✓"}),(0,a.jsx)("span",{className:"text-zinc-400 font-mono truncate",children:u}),(0,a.jsx)("span",{className:"ml-auto transition-transform text-zinc-600 shrink-0 ".concat(n?"rotate-90":""),children:"▶"})]}),n&&(0,a.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:[u&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("span",{className:"text-zinc-300 select-all",children:["$ ",u]}),"\n"]}),null!=l&&(()=>{if("browser"===c&&"string"==typeof l)try{let e=JSON.parse(l);if(void 0!==e.textOutput)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-zinc-500",children:e.textOutput}),e.imageOutput&&(0,a.jsxs)(a.Fragment,{children:["\n",(0,a.jsx)("span",{className:"changed"===e.imageOutput.type?"text-blue-400":"text-zinc-600",children:"changed"===e.imageOutput.type?"[screenshot: changed]":"[screenshot: unchanged]"})]})]})}catch(e){}return(0,a.jsx)("span",{className:"text-zinc-500",children:"string"==typeof l?l:JSON.stringify(l,null,2)})})()]})]})}let D={0:"debug",1:"log",2:"warn",3:"error"};class _{addEvent(e){this.events.push(e)}setMessages(e,t){let n=Date.now(),a=JSON.parse(JSON.stringify(t));for(let t=0;t<a.length;t++){let i=a[t],r="".concat(e,":").concat(t);if(this.seenParts.has(r)||this.seenParts.set(r,n),i._ts=this.seenParts.get(r),i.parts)for(let a=0;a<i.parts.length;a++){let r="".concat(e,":").concat(t,":").concat(a);this.seenParts.has(r)||this.seenParts.set(r,n),i.parts[a]._ts=this.seenParts.get(r)}}this.messages.set(e,a)}addConsoleLog(e,t,n,a,i){this.consoleLogs.has(e)||this.consoleLogs.set(e,[]),this.consoleLogs.get(e).push({ts:Date.now(),level:D[t]||"log",message:n,url:a,line:i})}toJSON(e,t){return{runId:this.runId,startTime:this.startTime,endTime:Date.now(),agents:e,timeline:[...this.events].sort((e,t)=>e.ts-t.ts),messages:Object.fromEntries(this.messages),consoleLogs:Object.fromEntries(this.consoleLogs),clips:t}}constructor(e){this.events=[],this.messages=new Map,this.consoleLogs=new Map,this.seenParts=new Map,this.runId=e,this.startTime=Date.now()}}function O(){let[e,t]=(0,i.useState)([]),[n,r]=(0,i.useState)({}),[o,l]=(0,i.useState)({}),[s,c]=(0,i.useState)(!1),[u,d]=(0,i.useState)({}),p=(0,i.useRef)(new Map),[h,b]=(0,i.useState)(null),[m,w]=(0,i.useState)(!1),[g,f]=(0,i.useState)(!1),v=(0,i.useRef)(null),x=(0,i.useRef)(new Map);(0,i.useEffect)(()=>{(async()=>{var e,n,a,i,o;let s=await (null===(e=window.bangonit)||void 0===e?void 0:e.getAgents())||[];if(0===s.length){let e={id:crypto.randomUUID(),name:"Test 1",createdAt:Date.now()};s.push(e),await (null===(a=window.bangonit)||void 0===a?void 0:a.setAgents(s))}t(s);let u={},d={};for(let e of s){let t=await (null===(i=window.bangonit)||void 0===i?void 0:i.getAgentSession(e.id));t&&(null===(o=t.messages)||void 0===o?void 0:o.length)>0&&(u[e.id]={initialPrompt:t.initialPrompt,initialMessages:t.messages.map(e=>{if("assistant"!==e.role||!e.parts)return e;let t=e.parts.map(e=>"tool-invocation"===e.type&&"result"!==e.state?{...e,state:"result",output:"[Interrupted — app was restarted]"}:e);return{...e,parts:t}}),initialTabs:t.tabs,initialActiveTabId:t.activeTabId,initialTodos:t.todos},d[e.id]="idle")}l(u),r(d),b((null===(n=s[0])||void 0===n?void 0:n.id)||null),c(!0)})()},[]);let y=(0,i.useRef)(e);y.current=e,(0,i.useEffect)(()=>{if(s&&e.length>0){var t;null===(t=window.bangonit)||void 0===t||t.setAgents(e)}},[e,s]);let I=(0,i.useCallback)(async e=>{var t,n;await (null===(n=window.bangonit)||void 0===n?void 0:null===(t=n.clearPartition)||void 0===t?void 0:t.call(n,e));let a=o[e];a&&(r(t=>({...t,[e]:"running"})),d(t=>({...t,[e]:(t[e]||0)+1})),l(t=>({...t,[e]:{initialPrompt:a.initialPrompt}})))},[o]),k=(0,i.useCallback)((e,t)=>{x.current.set(e,t)},[]),T=(0,i.useRef)(n);T.current=n;let N=(0,i.useCallback)(async(e,t)=>{var n,a,i,r,o,l;let s=v.current;if(!s)return;let c=await (null===(a=window.bangonit)||void 0===a?void 0:null===(n=a.getRunDir)||void 0===n?void 0:n.call(a));if(!c)return;let u=[];for(let e of x.current.values())u.push(...e.getClipsMeta());let d={...T.current,[e]:t},p=y.current.map(e=>{let t=d[e.id];return{id:e.id,name:e.name,result:"completed"===t?"pass":"failed"===t?"fail":void 0}}),h=s.toJSON(p,u);await (null===(r=window.bangonit)||void 0===r?void 0:null===(i=r.saveReplayData)||void 0===i?void 0:i.call(r,{runDir:c,data:JSON.stringify(h)})),await (null===(l=window.bangonit)||void 0===l?void 0:null===(o=l.generateReplayHtml)||void 0===o?void 0:o.call(l,{runDir:c}))},[]),C=(0,i.useCallback)((e,t,n)=>{let a;if(a="running"===t?"running":"pass"===n?"completed":"fail"===n?"failed":"idle",r(t=>({...t,[e]:a})),m&&("pass"===n||"fail"===n)&&N(e,a),"fail"===n){let t=p.current.get(e);if(t&&t.attempt<t.maxRetries){var i,o;t.attempt++,null===(o=window.bangonit)||void 0===o||null===(i=o.emitTestRetry)||void 0===i||i.call(o,{agentId:e,attempt:t.attempt,maxRetries:t.maxRetries}),setTimeout(()=>I(e),1e3)}}},[I,m,N]),j=(0,i.useCallback)((e,n,a)=>{a&&t(t=>t.map(t=>t.id===e?{...t,name:a}:t)),l(t=>({...t,[e]:{initialPrompt:n}})),r(t=>({...t,[e]:"running"})),b(e)},[]),E=(0,i.useCallback)(()=>{let n=crypto.randomUUID(),a={id:n,name:"Test ".concat(e.length+1),createdAt:Date.now()};t(e=>[...e,a]),b(n)},[e.length]);if((0,i.useEffect)(()=>{var e,n;let a=null===(n=window.bangonit)||void 0===n?void 0:null===(e=n.onTestPlan)||void 0===e?void 0:e.call(n,e=>{f(!0);let{agentIndex:n,testPlan:a,name:i,retries:o,extraPrompt:s,record:c}=e;if(c&&!v.current){let e=new Date().toISOString().replace(/[:.]/g,"-");v.current=new _(e),w(!0)}t(e=>{let t=n+1,a=[...e];for(;a.length<t;)a.push({id:crypto.randomUUID(),name:i||"Test ".concat(a.length+1),createdAt:Date.now()});return i&&(a=a.map((e,t)=>t===n?{...e,name:i}:e)),a}),setTimeout(()=>{t(e=>{let t=e[n];if(!t)return e;let i=s?"".concat(a,"\n\n## Additional Instructions\n").concat(s):a;return l(e=>({...e,[t.id]:{initialPrompt:i}})),r(e=>({...e,[t.id]:"running"})),o&&o>0&&p.current.set(t.id,{maxRetries:o,attempt:0,testPlan:i}),0===n&&b(t.id),e})},100)});return()=>null==a?void 0:a()},[]),(0,i.useEffect)(()=>{var e,t;let n=null===(t=window.bangonit)||void 0===t?void 0:null===(e=t.onFocusAgent)||void 0===e?void 0:e.call(t,e=>{b(e.agentId)});return()=>null==n?void 0:n()},[]),!s)return(0,a.jsx)("div",{className:"flex h-screen bg-zinc-950"});e.some(e=>o[e.id]);let S=e.find(e=>e.id===h),R=!!h&&!!o[h];return(0,a.jsxs)("div",{className:"flex h-screen bg-zinc-950 overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex flex-col bg-zinc-900 border-r border-zinc-800 shrink-0 w-48 overflow-y-auto",children:[(0,a.jsxs)("div",{className:"flex items-center px-3 py-2 border-b border-zinc-800",children:[(0,a.jsx)("span",{className:"text-xs font-medium text-zinc-500 uppercase tracking-wider",children:"Tests"}),(0,a.jsx)("div",{className:"flex-1"}),(0,a.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 o[e.id],(0,a.jsx)("button",{onClick:()=>b(e.id),className:"px-3 py-2 text-xs text-left border-b border-zinc-800 transition-colors\n ".concat(e.id===h?"bg-zinc-800 text-zinc-200":"text-zinc-500 hover:text-zinc-300"),children:(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block w-2 h-2 rounded-full shrink-0 ".concat("running"===t?"bg-blue-500 animate-pulse":"completed"===t?"bg-green-500":"failed"===t?"bg-red-500":"bg-zinc-600")}),(0,a.jsx)("span",{className:"truncate",children:e.name})]})},e.id)})]}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 h-full relative",children:[e.map(e=>o[e.id]?(0,a.jsx)("div",{className:"absolute inset-0 z-0",style:{display:"flex",zIndex:e.id===h?1:0,pointerEvents:e.id===h?"auto":"none"},children:(0,a.jsx)(z,{agentId:e.id,agentName:e.name,initialPrompt:o[e.id].initialPrompt,initialMessages:o[e.id].initialMessages,initialTabs:o[e.id].initialTabs,initialActiveTabId:o[e.id].initialActiveTabId,initialTodos:o[e.id].initialTodos,onStatusChange:C,onRerun:()=>I(e.id),record:m,sessionRecorder:v.current||void 0,onRegisterRecorder:k})},"".concat(e.id,"-").concat(u[e.id]||0)):null),S&&!R&&!g&&(0,a.jsx)(U,{agentId:S.id,agentName:S.name,onSubmit:j})]})]})}function U(e){let{agentId:t,agentName:n,onSubmit:r}=e,[o,l]=(0,i.useState)(""),s=(0,i.useRef)(null);(0,i.useEffect)(()=>{var e;null===(e=s.current)||void 0===e||e.focus()},[t]);let c=()=>{let e=o.trim();e&&r(t,e)};return(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center z-10 bg-zinc-950",children:(0,a.jsxs)("div",{className:"w-full max-w-xl px-6",children:[(0,a.jsx)("h2",{className:"text-lg font-medium text-zinc-200 mb-4",children:"What would you like to test?"}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("textarea",{ref:s,value:o,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),c())},placeholder:'Describe what to test, e.g. "Go to example.com and verify the homepage loads"',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}),(0,a.jsx)("button",{onClick:c,disabled:!o.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"})]}),(0,a.jsx)("p",{className:"text-xs text-zinc-600 mt-2",children:"Press Enter to run. Shift+Enter for a new line."})]})})}function L(){return(0,a.jsx)(O,{})}}},function(e){e.O(0,[46,631,293,528,744],function(){return e(e.s=7555)}),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[191],{6421:function(e,t,n){Promise.resolve().then(n.bind(n,2953))},2953:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return L}});var a=n(7573),i=n(7653),r=n(774),o=n(1446),l=n(2574),s=n(3334);function c(e){let{agentId:t}=e,[n,r]=(0,i.useState)(null),[o,l]=(0,i.useState)(!1),[s,c]=(0,i.useState)(!1),[u,d]=(0,i.useState)([]),p=(0,i.useRef)(),h=(0,i.useRef)(0),b=(0,i.useCallback)(()=>{l(!0),clearTimeout(p.current),p.current=setTimeout(()=>l(!1),2e3)},[]);return((0,i.useEffect)(()=>{var e,n,a;let i=[];return i.push(null===(e=window.bangonit)||void 0===e?void 0:e.onCursorMove(e=>{e.agentId===t&&(r({x:e.x,y:e.y}),b())})),i.push(null===(n=window.bangonit)||void 0===n?void 0:n.onCursorDown(e=>{if(e.agentId!==t)return;r({x:e.x,y:e.y}),c(!0),b();let n=++h.current;d(t=>[...t,{id:n,x:e.x,y:e.y}]),setTimeout(()=>{d(e=>e.filter(e=>e.id!==n))},400)})),i.push(null===(a=window.bangonit)||void 0===a?void 0:a.onCursorUp(e=>{e.agentId===t&&(c(!1),b())})),()=>{i.forEach(e=>null==e?void 0:e()),clearTimeout(p.current)}},[t,b]),n)?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("svg",{width:"28",height:"28",viewBox:"0 0 24 24",className:"pointer-events-none absolute z-20",style:{left:n.x,top:n.y,transform:"translate(-2px, -1px) ".concat(s?"scale(0.8)":"scale(1)"),transition:"left 30ms linear, top 30ms linear, transform 80ms ease-out, opacity 400ms ease-out",opacity:o?1:0,filter:"drop-shadow(0 1px 2px rgba(0,0,0,0.5))"},children:(0,a.jsx)("path",{d:"M5 3l14 8.5-6.5 1.5-3.5 6z",fill:"white",stroke:"black",strokeWidth:"1.5",strokeLinejoin:"round"})}),u.map(e=>(0,a.jsxs)("span",{children:[(0,a.jsx)("span",{className:"pointer-events-none absolute z-20 rounded-full bg-blue-400/50",style:{left:e.x,top:e.y,width:0,height:0,transform:"translate(-50%, -50%)",animation:"cursor-ripple ".concat(400,"ms ease-out forwards")}}),(0,a.jsx)("span",{className:"pointer-events-none absolute z-20 rounded-full border-2 border-blue-400/60",style:{left:e.x,top:e.y,width:0,height:0,transform:"translate(-50%, -50%)",animation:"cursor-ripple-ring ".concat(400,"ms ease-out forwards")}})]},e.id)),(0,a.jsx)("style",{children:"\n @keyframes cursor-ripple {\n 0% { width: 0; height: 0; opacity: 0.8; }\n 100% { width: 48px; height: 48px; opacity: 0; }\n }\n @keyframes cursor-ripple-ring {\n 0% { width: 0; height: 0; opacity: 0.9; }\n 100% { width: 64px; height: 64px; opacity: 0; }\n }\n "})]}):null}async function u(e,t,n,a){let{result:i}=await window.bangonit.cdpSend(e,"Runtime.evaluate",{expression:"\n(function() {\n var MAX_CHARS = 60000;\n var MAX_ELEMENTS = 5000;\n var MAX_DEPTH = 1500;\n var totalChars = 0;\n var visited = 0;\n var truncated = false;\n var refCounter = 0;\n\n window.__dmjRefs = new Map();\n\n var SKIP_TAGS = {SCRIPT:1,STYLE:1,NOSCRIPT:1,SVG:1,PATH:1,META:1,LINK:1,TEMPLATE:1,IFRAME:1,BR:1,HR:1,WBR:1,CANVAS:1,VIDEO:1,AUDIO:1,MAP:1,AREA:1,PICTURE:1,SOURCE:1,TRACK:1,OBJECT:1,EMBED:1};\n var INTERACTIVE_ROLES = {button:1,link:1,textbox:1,checkbox:1,radio:1,combobox:1,menuitem:1,tab:1,switch:1,option:1};\n var INPUT_ROLE = {checkbox:'checkbox',radio:'radio',submit:'button',button:'button',search:'searchbox',file:'file'};\n var TAG_ROLE = {A:'link',BUTTON:'button',SELECT:'combobox',TEXTAREA:'textbox',IMG:'img',H1:'heading',H2:'heading',H3:'heading',H4:'heading',H5:'heading',H6:'heading',NAV:'navigation',MAIN:'main',FORM:'form',TABLE:'table',UL:'list',OL:'list',LI:'listitem'};\n\n function isVisible(el) {\n if (el.hidden || el.getAttribute('aria-hidden') === 'true') return false;\n if (!el.offsetParent && el.tagName !== 'BODY' && el.tagName !== 'HTML') {\n var pos = getComputedStyle(el).position;\n if (pos !== 'fixed' && pos !== 'sticky') return false;\n }\n var s = el.style;\n if (s.display === 'none' || s.visibility === 'hidden') return false;\n return true;\n }\n\n function isInteractive(el) {\n var tag = el.tagName;\n if (tag === 'A' || tag === 'BUTTON' || tag === 'SELECT' || tag === 'TEXTAREA') return true;\n if (tag === 'INPUT' && el.type !== 'hidden') return true;\n var role = el.getAttribute('role');\n if (role && INTERACTIVE_ROLES[role]) return true;\n var tabindex = el.getAttribute('tabindex');\n if (el.onclick || (tabindex !== null && tabindex >= '0')) return true;\n if (el.contentEditable === 'true') return true;\n return false;\n }\n\n function getRole(el) {\n var r = el.getAttribute('role');\n if (r) return r;\n if (el.tagName === 'INPUT') return INPUT_ROLE[(el.type||'text').toLowerCase()] || 'textbox';\n return TAG_ROLE[el.tagName] || null;\n }\n\n function getLabel(el) {\n return (el.getAttribute('aria-label') || el.getAttribute('placeholder') || el.getAttribute('alt') || el.getAttribute('title') || '').slice(0, 50);\n }\n\n function directText(el) {\n var t = '';\n for (var n = el.firstChild; n; n = n.nextSibling) {\n if (n.nodeType === 3) t += n.data;\n if (t.length > 60) break;\n }\n return t.trim().replace(/\\s+/g, ' ').slice(0, 60);\n }\n\n function walk(el, depth) {\n if (truncated || !el || el.nodeType !== 1) return '';\n if (SKIP_TAGS[el.tagName]) return '';\n if (!isVisible(el)) return '';\n if (depth > MAX_DEPTH) return '';\n if (++visited > MAX_ELEMENTS) { truncated = true; return ''; }\n\n var role = getRole(el);\n var interactive = isInteractive(el);\n var showThis = !!(role || interactive);\n var lines = [];\n\n if (showThis) {\n var label = getLabel(el);\n var dtext = directText(el);\n var line = '[' + (role || el.tagName.toLowerCase());\n var txt = label || dtext;\n if (txt) line += ' \"' + txt.replace(/\"/g, \"'\") + '\"';\n if (interactive) {\n var ref = 'e' + (++refCounter);\n window.__dmjRefs.set(ref, new WeakRef(el));\n line += ' ref=' + ref;\n }\n line += ']';\n if (el === document.activeElement) line += ' [focused]';\n if ((el.tagName === 'INPUT' || el.tagName === 'TEXTAREA') && el.value) line += ' val=\"' + el.value.slice(0,40) + '\"';\n if (el.tagName === 'INPUT' && (el.type === 'checkbox' || el.type === 'radio')) line += el.checked ? ' [x]' : ' [ ]';\n\n totalChars += line.length;\n if (totalChars > MAX_CHARS) { truncated = true; return ''; }\n lines.push(line);\n }\n\n for (var c = el.firstElementChild; c; c = c.nextElementSibling) {\n if (truncated) break;\n var out = walk(c, showThis ? depth + 1 : depth);\n if (out) lines.push(showThis ? out.split('\\n').map(function(l){return ' '+l}).join('\\n') : out);\n }\n\n if (!showThis) {\n var dt = directText(el);\n if (dt.length > 2) {\n totalChars += dt.length;\n if (totalChars > MAX_CHARS) { truncated = true; return ''; }\n lines.push('\"' + dt + '\"');\n }\n }\n\n return lines.join('\\n');\n }\n\n var tree = walk(document.body, 0);\n var h = 'URL: ' + location.href + '\\nTitle: ' + document.title;\n if (truncated) h += '\\n[TRUNCATED - page too large]';\n return h + '\\n\\n' + tree;\n})()\n",returnByValue:!0});return(i.value||"Empty page")+"\n\nMouse position: ".concat(t,",").concat(n)+a}async function d(e,t,n){let a=window.bangonit;if(t.ref){let{result:r}=await a.cdpSend(e,"Runtime.evaluate",{expression:'(function() { var r = window.__dmjRefs && window.__dmjRefs.get("'.concat(t.ref,'"); return r ? r.deref() || null : null; })()'),returnByValue:!1});if(!r.objectId)throw Error('Element ref "'.concat(t.ref,'" not found — take a new snapshot'));try{let{model:i}=await a.cdpSend(e,"DOM.getBoxModel",{objectId:r.objectId}),o=i.content,l=Math.round((o[0]+o[2]+o[4]+o[6])/4),s=Math.round((o[1]+o[3]+o[5]+o[7])/4);if(n){let{result:t}=await a.cdpSend(e,"Runtime.evaluate",{expression:"JSON.stringify({ w: window.innerWidth, h: window.innerHeight })",returnByValue:!0}),n=JSON.parse(t.value);if(l<0||l>n.w||s<0||s>n.h){await a.cdpSend(e,"Runtime.callFunctionOn",{objectId:r.objectId,functionDeclaration:'function() { this.scrollIntoView({ block: "center", inline: "center", behavior: "instant" }); }',returnByValue:!0}),await new Promise(e=>setTimeout(e,100));let{model:t}=await a.cdpSend(e,"DOM.getBoxModel",{objectId:r.objectId}),n=t.content;l=Math.round((n[0]+n[2]+n[4]+n[6])/4),s=Math.round((n[1]+n[3]+n[5]+n[7])/4)}}else if(l<0||s<0){let{result:n}=await a.cdpSend(e,"Runtime.callFunctionOn",{objectId:r.objectId,functionDeclaration:"function() {\n var r = this.getBoundingClientRect();\n return { top: r.top, bottom: r.bottom, left: r.left, right: r.right, vh: window.innerHeight, vw: window.innerWidth };\n }",returnByValue:!0}),i=n.value;if(i){let e=i.top<0?Math.round(i.top-100):i.bottom>i.vh?Math.round(i.bottom-i.vh+100):0,n=0!==e?" Scroll ".concat(e>0?"down":"up"," ~").concat(Math.abs(e),"px (wheel dy=").concat(e," at current mouse position)"):"";throw Error('Element ref "'.concat(t.ref,'" is not in the viewport and cannot auto-scroll because this batch contains x,y coordinates that would be invalidated by scrolling.').concat(n))}}return{x:l,y:s}}catch(o){var i;if(null===(i=o.message)||void 0===i?void 0:i.includes("not in the viewport"))throw o;if(n)try{await a.cdpSend(e,"Runtime.callFunctionOn",{objectId:r.objectId,functionDeclaration:'function() { this.scrollIntoView({ block: "center", inline: "center", behavior: "instant" }); }',returnByValue:!0}),await new Promise(e=>setTimeout(e,100));let{model:t}=await a.cdpSend(e,"DOM.getBoxModel",{objectId:r.objectId}),n=t.content;return{x:Math.round((n[0]+n[2]+n[4]+n[6])/4),y:Math.round((n[1]+n[3]+n[5]+n[7])/4)}}catch(e){throw Error('Element ref "'.concat(t.ref,'" could not be scrolled into view'))}try{let{result:n}=await a.cdpSend(e,"Runtime.callFunctionOn",{objectId:r.objectId,functionDeclaration:"function() {\n var r = this.getBoundingClientRect();\n return { top: r.top, bottom: r.bottom, left: r.left, right: r.right, vh: window.innerHeight, vw: window.innerWidth };\n }",returnByValue:!0}),i=n.value;if(i){let e=i.top<0?Math.round(i.top-100):i.bottom>i.vh?Math.round(i.bottom-i.vh+100):0,n=0!==e?" Scroll ".concat(e>0?"down":"up"," ~").concat(Math.abs(e),"px (wheel dy=").concat(e," at current mouse position)"):"";throw Error('Element ref "'.concat(t.ref,'" is not in the viewport and cannot auto-scroll because this batch contains x,y coordinates that would be invalidated by scrolling.').concat(n))}}catch(e){if(e.message.includes("not in the viewport"))throw e}throw Error('Element ref "'.concat(t.ref,'" is not visible in the viewport — use only refs or scroll manually first'))}finally{a.cdpSend(e,"Runtime.releaseObject",{objectId:r.objectId}).catch(()=>{})}}return{x:t.x,y:t.y}}async function p(e,t,n,a,i,r){let o=window.bangonit,l=Math.hypot(a-t,i-n);if(l<1){null==r||r(a,i);return}let s=Math.min(Math.max(Math.round(l/15),3),40),c=Math.min(Math.max(.8*l,30),300);for(let l=1;l<=s;l++){let u=l/s,d=u<.5?4*u*u*u:1-Math.pow(-2*u+2,3)/2,p=Math.round(t+(a-t)*d),h=Math.round(n+(i-n)*d);await o.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseMoved",x:p,y:h}),null==r||r(p,h),l<s&&await new Promise(e=>setTimeout(e,c/s))}}async function h(e,t,n,a,i){var r,o,l,s,c,u,h,b;let m=window.bangonit;null===(r=i.onMouseLock)||void 0===r||r.call(i);let w=!t.some(e=>"wait"!==e.action&&void 0!==e.x),g=n,f=a;try{let n=[];for(let a of t){if("wait"===a.action){await new Promise(e=>setTimeout(e,Math.min(a.ms||100,2e3))),n.push("wait(".concat(a.ms||100,"ms)"));continue}let t=a.ref?{ref:a.ref}:{x:a.x,y:a.y},r=await d(e,t,w),b="".concat(r.x,",").concat(r.y),{x:v,y:x}=r;switch(a.action){case"down":await p(e,g,f,v,x,i.onCursorMove),g=v,f=x,null===(o=i.onCursorDown)||void 0===o||o.call(i,v,x),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mousePressed",x:v,y:x,button:"left",clickCount:1}),n.push("down(".concat(b,")"));break;case"move":await p(e,g,f,v,x,i.onCursorMove),g=v,f=x,n.push("move(".concat(b,")"));break;case"up":await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseReleased",x:v,y:x,button:"left",clickCount:1}),null===(l=i.onCursorUp)||void 0===l||l.call(i,v,x),n.push("up(".concat(b,")"));break;case"click":await p(e,g,f,v,x,i.onCursorMove),g=v,f=x,null===(s=i.onCursorDown)||void 0===s||s.call(i,v,x),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mousePressed",x:v,y:x,button:"left",clickCount:1}),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseReleased",x:v,y:x,button:"left",clickCount:1}),null===(c=i.onCursorUp)||void 0===c||c.call(i,v,x),n.push("click(".concat(b,")"));break;case"dblclick":await p(e,g,f,v,x,i.onCursorMove),g=v,f=x,null===(u=i.onCursorDown)||void 0===u||u.call(i,v,x),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mousePressed",x:v,y:x,button:"left",clickCount:1}),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseReleased",x:v,y:x,button:"left",clickCount:1}),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mousePressed",x:v,y:x,button:"left",clickCount:2}),await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseReleased",x:v,y:x,button:"left",clickCount:2}),null===(h=i.onCursorUp)||void 0===h||h.call(i,v,x),n.push("dblclick(".concat(b,")"));break;case"wheel":{await p(e,g,f,v,x,i.onCursorMove),g=v,f=x;let t=a.dx||0,r=a.dy||0;await m.cdpSend(e,"Input.dispatchMouseEvent",{type:"mouseWheel",x:v,y:x,deltaX:t,deltaY:r}),n.push("wheel(".concat(b,",").concat(t,",").concat(r,")"))}}}return{result:"Mouse: ".concat(n.join(" → ")),mouseX:g,mouseY:f}}finally{null===(b=i.onMouseUnlock)||void 0===b||b.call(i)}}async function b(e,t){let n=window.bangonit;for(let a of t)await n.sendInputEvent(e,{type:"keyDown",keyCode:a}),await n.sendInputEvent(e,{type:"char",keyCode:a}),await n.sendInputEvent(e,{type:"keyUp",keyCode:a}),await new Promise(e=>setTimeout(e,30+70*Math.random()));return'Typed "'.concat(t.slice(0,50),'"')}async function m(e,t){let n=window.bangonit,a=t.split("+"),i=a.pop(),r=a.map(e=>e.toLowerCase()),o=[];for(let e of r)"control"===e||"ctrl"===e?o.push("control"):"meta"===e||"command"===e||"cmd"===e?o.push("meta"):"alt"===e||"option"===e?o.push("alt"):"shift"===e&&o.push("shift");return await n.sendInputEvent(e,{type:"keyDown",keyCode:i,modifiers:o}),0===o.length&&("Enter"===i?await n.sendInputEvent(e,{type:"char",keyCode:"\r"}):1===i.length&&await n.sendInputEvent(e,{type:"char",keyCode:i})),await n.sendInputEvent(e,{type:"keyUp",keyCode:i,modifiers:o}),"Pressed ".concat(t)}let w=new Map;async function g(e){let t=new TextEncoder().encode(e);return Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",t))).map(e=>e.toString(16).padStart(2,"0")).join("")}async function f(e){let t;let n=window.bangonit;try{t=await n.capturePage(e)}catch(e){throw Error("could not capture page (page may be navigating)")}let{activeTabId:a}=await n.getTabInfo(e),i="".concat(e,":").concat(null!=a?a:0),r=await g(t);return w.get(i)===r?{type:"not_changed"}:(w.set(i,r),{type:"changed",base64:t})}async function v(e,t){let n=window.bangonit;t.startsWith("http://")||t.startsWith("https://")||(t="https://"+t);let{url:a}=await n.loadURL(e,t);return"Navigated to ".concat(a)}async function x(e){let{ok:t,url:n,reason:a}=await window.bangonit.goBack(e);return t?"Navigated back to ".concat(n):"Cannot go back — ".concat(a)}async function y(e){let{ok:t,url:n,reason:a}=await window.bangonit.goForward(e);return t?"Navigated forward to ".concat(n):"Cannot go forward — ".concat(a)}async function I(e,t){let n=window.bangonit,a=t.action;switch(a){case"list":{let{tabs:t,activeTabId:a}=await n.getTabInfo(e);if(!t.length)return"No tabs open";return t.map(e=>{let t=e.tabId===a?" (active)":"",n=e.isPopup?" (popup)":"";return"Tab ".concat(e.tabId,": ").concat(e.title||"(untitled)"," — ").concat(e.url).concat(t).concat(n)}).join("\n")}case"new":{await n.requestNewTab(e,t.url||"about:blank"),await new Promise(e=>setTimeout(e,3e3));let{activeTabId:a}=await n.getTabInfo(e);return"Opened new tab".concat(t.url?": "+t.url:"",". Active tab is now ").concat(a,".")}case"select":{let a=t.tabId;if(void 0===a)return"Error: tabId required for select";let{tabs:i}=await n.getTabInfo(e);if(!i.find(e=>e.tabId===a))return"Error: tab ".concat(a,' not found. Use browser_tabs with action "list" to see available tabs.');await n.setActiveTab(e,a),await n.requestSelectTab(e,a);let r=i.find(e=>e.tabId===a);return"Switched to tab ".concat(a,": ").concat(null==r?void 0:r.url)}case"close":{var i;let{tabs:a,activeTabId:r}=await n.getTabInfo(e),o=null!==(i=t.tabId)&&void 0!==i?i:r;if(null===o)return"Error: no tab to close";if(!a.find(e=>e.tabId===o))return"Error: tab ".concat(o," not found.");if(a.length<=1)return"Cannot close the last tab.";return await n.requestCloseTab(e,o),"Closed tab ".concat(o)}default:return'Error: unknown tab action "'.concat(a,'". Use list, new, select, or close.')}}async function k(e){let{tabs:t,activeTabId:n}=await window.bangonit.getTabInfo(e);return t.length<=1?"":"\n\nOpen tabs:\n"+t.map(e=>{let t=e.tabId===n?" (active)":"",a=e.isPopup?" (popup)":"";return" Tab ".concat(e.tabId,": ").concat(e.title||"(untitled)"," — ").concat(e.url).concat(t).concat(a)}).join("\n")}async function T(e,t){let n=window.bangonit,a=Math.min(Math.max((null==t?void 0:t.timeout)||10,.1),30),i=null==t?void 0:t.text,r="visible"===((null==t?void 0:t.state)||"visible");if(!i)return await new Promise(e=>setTimeout(e,1e3*a)),"Waited ".concat(a," seconds");let o=Date.now()+1e3*a;for(;Date.now()<o;){let{result:t}=await n.cdpSend(e,"Runtime.evaluate",{expression:"document.body.innerText.includes(".concat(JSON.stringify(i),")"),returnByValue:!0}),a=t.value;if(r&&a)return'Text "'.concat(i,'" is now visible on the page.');if(!r&&!a)return'Text "'.concat(i,'" is no longer visible on the page.');await new Promise(e=>setTimeout(e,500))}return'Timeout: text "'.concat(i,'" ').concat(r?"did not appear":"did not disappear"," within ").concat(a,"s.")}class N{start(){!this.cleanup&&window.bangonit&&(this.cleanup=window.bangonit.onCdpEvent(e=>{"Network.requestWillBeSent"===e.method?this.inflightRequests++:("Network.loadingFinished"===e.method||"Network.loadingFailed"===e.method)&&(this.inflightRequests=Math.max(0,this.inflightRequests-1))}))}stop(){var e;null===(e=this.cleanup)||void 0===e||e.call(this),this.cleanup=null,this.inflightRequests=0}async waitForIdle(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:500,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e3,n=Date.now()+t,a=0===this.inflightRequests?Date.now():null;for(;Date.now()<n;){if(0===this.inflightRequests){if(a||(a=Date.now()),Date.now()-a>=e)return}else a=null;await new Promise(e=>setTimeout(e,50))}}constructor(){this.inflightRequests=0,this.cleanup=null}}let C={navigate:"browser_navigate",back:"browser_navigate_back",forward:"browser_go_forward",mouse:"browser_mouse",type:"browser_type",press:"browser_press_key",tabs:"browser_tabs",downloads:"browser_downloads",wait:"browser_wait_for",close:"browser_close"};var j=n(8204);let E=j.VK("type",[j.Ry({type:j.i0("not_changed")}),j.Ry({type:j.i0("changed"),base64:j.Z_()})]);j.Ry({textOutput:j.Z_(),imageOutput:E.nullable()});let S=Promise.resolve();class R{destroy(){this.networkTracker.stop()}enableRecording(e){this.recorder=e}cursorCallbacks(){let e=this.agentId,t=window.bangonit,n=this.recorder;return{onCursorMove:(a,i)=>{t.emitCursorMove(e,a,i),null==n||n.updateCursor(a,i)},onCursorDown:(a,i)=>{t.emitCursorDown(e,a,i),null==n||n.setCursorDown()},onCursorUp:(a,i)=>{t.emitCursorUp(e,a,i),null==n||n.setCursorUp()},onMouseLock:()=>t.emitMouseLock(e),onMouseUnlock:()=>t.emitMouseUnlock(e)}}async callTool(e,t){switch(e){case"browser_navigate":return v(this.agentId,t.url);case"browser_navigate_back":return x(this.agentId);case"browser_go_forward":return y(this.agentId);case"browser_mouse":{let{result:e,mouseX:n,mouseY:a}=await h(this.agentId,t.steps,this.mouseX,this.mouseY,this.cursorCallbacks());return this.mouseX=n,this.mouseY=a,e}case"browser_type":return b(this.agentId,t.text);case"browser_press_key":return m(this.agentId,t.key);case"browser_close":return I(this.agentId,{action:"close"});case"browser_wait_for":return T(this.agentId,t);case"browser_tabs":return I(this.agentId,t);case"browser_downloads":{let e=await window.bangonit.getDownloads(this.agentId);if(!e.length)return"No downloads.";return e.map(e=>{let t=e.totalBytes>0?Math.round(e.bytes/e.totalBytes*100)+"%":"";return"[".concat(e.state,"] ").concat(e.filename," ").concat(t," → ").concat(e.path)}).join("\n")}default:throw Error("Unknown tool: ".concat(e))}}async exec(e){let t=function(){let e;let t=new Promise(t=>{e=t}),n=S;return S=S.then(()=>t),{promise:n,release:e}}();await t.promise;try{return await this._exec(e)}finally{t.release()}}async _exec(e){var t,n,a,i,r,o,l;let{actions:s,observe:c}=e,d=[],p=null;if(this.recorder)try{let e=await (null===(t=window.bangonit)||void 0===t?void 0:t.getTabInfo(this.agentId)),i=null!==(a=null==e?void 0:e.activeTabId)&&void 0!==a?a:0,r=null==e?void 0:null===(n=e.tabs)||void 0===n?void 0:n.find(e=>e.tabId===i);await this.recorder.startClip(i,null==r?void 0:r.url)}catch(e){console.warn("Failed to start recording clip:",e)}for(let e=0;e<s.length;e++){let t=s[e];if(!t||!t.action)continue;let n=C[t.action];if(!n){d.push("".concat(t.action,": Error — unknown action"));continue}try{let e=this.actionToToolArgs(t),a=await this.callTool(n,e);d.push(a||"OK")}catch(e){d.push("".concat(this.actionLabel(t),": Error — ").concat(e.message))}}if(c){s.length>0&&await this.networkTracker.waitForIdle(500,2e3);try{let e=await k(this.agentId),t=await u(this.agentId,this.mouseX,this.mouseY,e);d.push(t),"snapshot_and_screenshot"===c&&(p=await f(this.agentId))}catch(e){d.push("observe: Error — ".concat(e.message))}}if(this.recorder)try{let e=await this.recorder.stopClip();if(e){let t=await (null===(r=window.bangonit)||void 0===r?void 0:null===(i=r.getRunDir)||void 0===i?void 0:i.call(r));if(t){let n=await e.blob.arrayBuffer();await (null===(l=window.bangonit)||void 0===l?void 0:null===(o=l.saveRecordingClip)||void 0===o?void 0:o.call(l,{runDir:t,agentId:e.meta.agentId,clipIndex:e.meta.index,tabId:e.meta.tabId,data:n}))}}}catch(e){console.warn("Failed to save recording clip:",e)}return{textOutput:d.join("\n\n"),imageOutput:p}}actionToToolArgs(e){switch(e.action){case"navigate":return{url:e.url};case"back":case"forward":case"close":case"downloads":default:return{};case"mouse":return{steps:(e.mouseActions||[]).map(e=>{if("wait"===e.action)return{action:"wait",ms:e.ms||100};let t=e.ref?{ref:e.ref}:{x:e.x,y:e.y};return"wheel"===e.action?{action:"wheel",...t,dx:e.dx||0,dy:e.dy||0}:{action:e.action,...t}})};case"type":return{text:e.text};case"press":return{key:e.key};case"tabs":return{action:e.tabAction,tabId:e.tabId,url:e.url};case"wait":return{timeout:e.timeout}}}actionLabel(e){switch(e.action){case"navigate":return"navigate ".concat(e.url);case"mouse":{let t=(e.mouseActions||[]).map(e=>"wait"===e.action?"wait ".concat(e.ms,"ms"):"wheel"===e.action?"wheel ".concat(e.x,",").concat(e.y," ").concat(e.dx,",").concat(e.dy):"".concat(e.action," ").concat(e.x,",").concat(e.y)).join(" → ");return"mouse ".concat(t)}case"type":return'type "'.concat((e.text||"").slice(0,30),'"');case"press":return"press ".concat(e.key);case"tabs":return"tabs ".concat(e.tabAction).concat(e.tabId?" "+e.tabId:"");case"wait":return"wait ".concat(e.timeout||10,"s");default:return e.action}}constructor(e){this.mouseX=0,this.mouseY=0,this.networkTracker=new N,this.recorder=null,this.agentId=e,this.networkTracker.start()}}class M{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:a,sessionId:i}=e.params;this.currentFrames.push({imageData:t,cursor:{...this.cursorPos},clicking:this.clicking,ts:Date.now(),sessionId:i,deviceWidth:(null==a?void 0:a.deviceWidth)||0,deviceHeight:(null==a?void 0:a.deviceHeight)||0,scrollOffsetX:(null==a?void 0:a.scrollOffsetX)||0,scrollOffsetY:(null==a?void 0:a.scrollOffsetY)||0}),n.cdpSend(this.agentId,"Page.screencastFrameAck",{sessionId:i}).catch(()=>{})}),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(()=>{}),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 a={agentId:this.agentId,tabId:this.currentTabId,index:this.clips.length,startTime:this.clipStartTime,endTime:e,path:"clips/".concat(this.agentId,"/clip-").concat(this.clips.length,"-tab-").concat(this.currentTabId,".webm"),url:this.currentUrl||void 0};return this.clips.push(a),{blob:n,meta:a}}async cancelClip(){var e;this.recording=!1,this.currentFrames=[],this.cdpCleanup&&(this.cdpCleanup(),this.cdpCleanup=null),await (null===(e=window.bangonit)||void 0===e?void 0:e.cdpSend(this.agentId,"Page.stopScreencast").catch(()=>{}))}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,a=t.height,i=document.createElement("canvas");i.width=n,i.height=a;let r=i.getContext("2d"),o=i.captureStream(0),l=o.getVideoTracks()[0],s=new MediaRecorder(o,{mimeType:"video/webm;codecs=vp8",videoBitsPerSecond:8e6}),c=[];s.ondataavailable=e=>{e.data.size>0&&c.push(e.data)};let u=new Promise(e=>{s.onstop=()=>{e(new Blob(c,{type:"video/webm"}))}});s.start();let d=[];for(let i=0;i<e.length;i++){let o=e[i],s=0===i?t:await this.decodeFrame(o.imageData);if(!s)continue;let c=o.deviceWidth>0?n/o.deviceWidth:1,u=o.deviceHeight>0?a/o.deviceHeight:1,m=o.cursor.x*c,w=o.cursor.y*u;o.clicking&&(0===i||!e[i-1].clicking)&&d.push({x:m,y:w,startTs:o.ts}),r.clearRect(0,0,n,a),r.drawImage(s,0,0,n,a);for(let e=d.length-1;e>=0;e--){var p,h,b;let t=d[e],n=o.ts-t.startTs;if(n>=400){d.splice(e,1);continue}p=t.x,h=t.y,b=n/400,r.save(),r.beginPath(),r.arc(p,h,24*b,0,2*Math.PI),r.fillStyle="rgba(96, 165, 250, ".concat(.8*(1-b),")"),r.fill(),r.restore(),r.save(),r.beginPath(),r.arc(p,h,32*b,0,2*Math.PI),r.strokeStyle="rgba(96, 165, 250, ".concat(.9*(1-b),")"),r.lineWidth=2,r.stroke(),r.restore()}if(!function(e,t,n,a){e.save(),e.translate(t-2,n-1),e.scale(28/24,28/24);let i=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(i),e.stroke(i),e.restore(),a&&(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())}(r,m,w,o.clicking),l&&"function"==typeof l.requestFrame&&l.requestFrame(),i<e.length-1){let t=Math.max(16,Math.min(e[i+1].ts-o.ts,100));await new Promise(e=>setTimeout(e,t))}}return await new Promise(e=>setTimeout(e,100)),s.stop(),u}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 a=new Blob([n],{type:"image/png"});return createImageBitmap(a)}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]}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}}function z(e){var t;let{agentId:n,agentName:l,initialPrompt:s,onStatusChange:u,onRerun:d,initialMessages:p,initialTabs:h,initialActiveTabId:b,initialTodos:m,record:w,sessionRecorder:g,onRegisterRecorder:f}=e,[v,x]=(0,i.useState)((null==h?void 0:h.map(e=>({...e,initialUrl:e.url})))||[{id:0,url:"about:blank",title:"",initialUrl:"about:blank"}]),[y,I]=(0,i.useState)(null!=b?b:0),k=(0,i.useRef)(y);k.current=y;let[T,N]=(0,i.useState)(()=>{let e=null==h?void 0:h.find(e=>e.id===(null!=b?b:0));return(null==e?void 0:e.url)||""}),[C,j]=(0,i.useState)(null),[E,S]=(0,i.useState)(!1),[z,A]=(0,i.useState)(!1),D=(0,i.useRef)(new Map),[_,O]=(0,i.useState)(m||[]),U=(0,i.useRef)(null),L=(0,i.useRef)(!1),F=(0,i.useRef)(h?Math.max(...h.map(e=>e.id))+1:1),B=(0,i.useRef)(new Set),[H,W]=(0,i.useState)(0),V=(0,i.useRef)(null),X=(0,i.useRef)(null);!X.current&&window.bangonit&&(X.current=new R(n));let J=(0,i.useRef)(null);w&&!J.current&&X.current&&(J.current=new M(n),X.current.enableRecording(J.current),null==f||f(n,J.current));let q=(0,i.useRef)(g);q.current=g;let Y=(0,i.useMemo)(()=>new o.PD({api:"/api/chat",headers:()=>({"X-Client-Platform":navigator.platform})}),[]),G=(0,i.useRef)(!1),K=(0,i.useCallback)((e,t)=>{var a,i;null===(i=window.bangonit)||void 0===i||null===(a=i.emitAgentOutput)||void 0===a||a.call(i,{agentId:n,type:e,text:t,name:l})},[n,l]),{messages:Z,setMessages:Q,sendMessage:$,addToolOutput:ee,stop:et,status:en,error:ea}=(0,r.RJ)({transport:Y,messages:p,sendAutomaticallyWhen:e=>{let{messages:t}=e;return!G.current&&!E&&(0,o.Qk)({messages:t})},async onToolCall(e){var t,a,i,r,o,s,c,u,d,p,h,b,m;let{toolCall:w}=e;if("report_result"===w.toolName){let e=w.input,p=(null==e?void 0:e.result)==="pass"?"pass":"fail",h=(null==e?void 0:e.summary)||"";if(K("status","".concat(p.toUpperCase(),": ").concat(h)),j({result:p,summary:h}),q.current){q.current.addEvent({ts:Date.now(),agentId:n,type:"result",data:{result:p,summary:h}});try{let e=await (null===(r=window.bangonit)||void 0===r?void 0:null===(i=r.getRunDir)||void 0===i?void 0:i.call(r));if(e){let t=(null===(o=J.current)||void 0===o?void 0:o.getClipsMeta())||[],a=[{id:n,name:l,result:p,summary:h}],i=q.current.toJSON(a,t);await (null===(c=window.bangonit)||void 0===c?void 0:null===(s=c.saveReplayData)||void 0===s?void 0:s.call(c,{runDir:e,data:JSON.stringify(i)})),await (null===(d=window.bangonit)||void 0===d?void 0:null===(u=d.generateReplayHtml)||void 0===u?void 0:u.call(d,{runDir:e}))}}catch(e){}}null===(a=window.bangonit)||void 0===a||null===(t=a.reportTestResult)||void 0===t||t.call(a,{agentId:n,status:p,summary:h}),ee({tool:w.toolName,toolCallId:w.toolCallId,output:"Test result recorded: ".concat(p)});return}if("todos"===w.toolName){let e=w.input,t=(null==e?void 0:e.todos)||_;(null==e?void 0:e.todos)&&O(e.todos),ee({tool:w.toolName,toolCallId:w.toolCallId,output:JSON.stringify(t)});return}if("browser"===w.toolName){try{let e=w.input,t=((null==e?void 0:e.actions)||[]).map(e=>"navigate"===e.action?"navigate ".concat(e.url):"type"===e.action?'type "'.concat((e.text||"").slice(0,30),'"'):"press"===e.action?"press ".concat(e.key):"mouse"===e.action?"mouse ".concat((e.mouseActions||[]).map(e=>"".concat(e.action," ").concat(e.ref||"".concat(e.x,",").concat(e.y))).join(" > ")):e.action).join(", ");K("tool","browser: ".concat(t).concat((null==e?void 0:e.observe)?" [".concat(e.observe,"]"):"")),null===(p=q.current)||void 0===p||p.addEvent({ts:Date.now(),agentId:n,type:"tool-start",data:{tool:"browser",label:t}});let a=X.current,i=a?await a.exec({actions:(null==e?void 0:e.actions)||[],observe:null==e?void 0:e.observe,prompts:null==e?void 0:e.prompts}):{error:"Error: browser tools not available"};null===(h=q.current)||void 0===h||h.addEvent({ts:Date.now(),agentId:n,type:"tool-end",data:{tool:"browser"}}),ee({tool:w.toolName,toolCallId:w.toolCallId,output:G.current?{error:"[Stopped by user]"}:JSON.stringify(i)})}catch(e){ee({tool:w.toolName,toolCallId:w.toolCallId,...G.current?{output:"[Stopped by user]"}:{state:"output-error",errorText:e.message}})}return}try{let e=null===(b=w.input)||void 0===b?void 0:b.command;K("tool","bash: ".concat((e||"").slice(0,100)));let t=await (null===(m=window.bangonit)||void 0===m?void 0:m.bashExec(n,e))||"OK";ee({tool:w.toolName,toolCallId:w.toolCallId,output:G.current?"[Stopped by user]":function(e){if(e.length<=65536)return e;let t=e.length-32768-32768;return e.slice(0,32768)+"\n\n[... truncated ".concat(t," characters ...]\n\n")+e.slice(-32768)}(t)})}catch(e){ee({tool:w.toolName,toolCallId:w.toolCallId,...G.current?{output:"[Stopped by user]"}:{state:"output-error",errorText:e.message}})}}});(0,i.useCallback)(()=>{G.current=!0,et()},[et]);let ei="submitted"===en||"streaming"===en;(0,i.useEffect)(()=>{ei&&(G.current=!1)},[ei]);let er=Z.length>0,eo=null!==C;(0,i.useEffect)(()=>{if(er&&!V.current&&(V.current=Date.now()),!er||eo)return;let e=setInterval(()=>{V.current&&W(Math.floor((Date.now()-V.current)/1e3))},1e3);return()=>clearInterval(e)},[er,eo]);let el=(0,i.useRef)(null),es=(0,i.useRef)(0);(0,i.useEffect)(()=>{var e;if(0===Z.length)return;let t=Z[Z.length-1];if("assistant"!==t.role)return;let n=(null===(e=t.parts)||void 0===e?void 0:e.filter(e=>"text"===e.type).map(e=>e.text).join(""))||"";t.id!==el.current&&(el.current=t.id,es.current=0);let a=n.slice(es.current);a&&(K("text",a),es.current=n.length)},[Z,K]);let ec=(0,i.useRef)(ei),eu=(0,i.useRef)(!1);(0,i.useEffect)(()=>{!eu.current&&ec.current!==ei&&(ec.current=ei,ei?null==u||u(n,"running"):(null==u||u(n,"idle",null==C?void 0:C.result),(null==C?void 0:C.result)&&(eu.current=!0)))},[ei,n,u,C]);let ed=(0,i.useRef)(!1),ep=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(ep.current&&(clearTimeout(ep.current),ep.current=null),!ei&&!eo&&!E&&!ed.current&&!(Z.length<2))return ep.current=setTimeout(()=>{ep.current=null,ed.current||eo||(ed.current=!0,$({text:"You must call the report_result tool to finalize this test run. Call it now with the result (pass or fail) and a summary."}))},5e3),()=>{ep.current&&clearTimeout(ep.current)}},[ei,eo,E,Z.length,$]),(0,i.useEffect)(()=>{var e,t;null===(t=window.bangonit)||void 0===t||null===(e=t.clearPartition)||void 0===e||e.call(t,n)},[n]),(0,i.useEffect)(()=>{q.current&&Z.length>0&&q.current.setMessages(n,Z)},[Z,n]),(0,i.useEffect)(()=>{if(Z.length>0){var e,t,a,i;null===(a=window.bangonit)||void 0===a||a.setAgentSession(n,{messages:Z,initialPrompt:s,tabs:v.filter(e=>!e.isPopup).map(e=>{let{id:t,url:n,title:a}=e;return{id:t,url:n,title:a}}),activeTabId:(null===(e=v.find(e=>e.id===y))||void 0===e?void 0:e.isPopup)?null!==(i=null===(t=v.find(e=>!e.isPopup))||void 0===t?void 0:t.id)&&void 0!==i?i:0:y,todos:_})}},[Z,v,y,n,s,_]);let eh=(0,i.useCallback)(e=>{var t;let a=F.current++;x(t=>[...t,{id:a,url:"about:blank",title:"",initialUrl:e}]),I(a),N("about:blank"===e?"":e),null===(t=window.bangonit)||void 0===t||t.setActiveTab(n,a)},[n]),eb=(0,i.useCallback)(e=>{x(t=>{let a=t.findIndex(t=>t.id===e);if(-1===a)return t;let i=t.filter(t=>t.id!==e);return 0===i.length?t:(I(t=>{if(t===e){var r;let e=i[Math.max(0,a-1)].id,t=i.find(t=>t.id===e);return t&&N("about:blank"===t.url?"":t.url),null===(r=window.bangonit)||void 0===r||r.setActiveTab(n,e),e}return t}),i)})},[n]),em=(0,i.useCallback)(e=>{var t;I(e),null===(t=window.bangonit)||void 0===t||t.setActiveTab(n,e),x(t=>{let n=t.find(t=>t.id===e);return n&&N("about:blank"===n.url?"":n.url),t})},[n]),ew=(0,i.useRef)(eh),eg=(0,i.useRef)(eb),ef=(0,i.useRef)(em);ew.current=eh,eg.current=eb,ef.current=em,(0,i.useEffect)(()=>{var e,t,a,i,r;let o=[],l=e=>{e&&o.push(e)};return l(null===(e=window.bangonit)||void 0===e?void 0:e.onTabUpdated(e=>{if(e.agentId!==n)return;let t="about:blank"===e.url,a="about:blank"===e.title;x(n=>n.map(n=>n.id===e.tabId?{...n,...!t&&void 0!==e.url&&{url:e.url},...!a&&void 0!==e.title&&{title:e.title}}:n)),void 0===e.url||t||I(t=>(t===e.tabId&&N(e.url),t))})),l(null===(t=window.bangonit)||void 0===t?void 0:t.onOpenNewTab(e=>{e.agentId===n&&ew.current(e.url)})),l(null===(a=window.bangonit)||void 0===a?void 0:a.onPopupOpened(e=>{e.agentId===n&&x(t=>[...t,{id:e.tabId,url:e.url||"about:blank",title:"",initialUrl:e.url||"about:blank",isPopup:!0}])})),l(null===(i=window.bangonit)||void 0===i?void 0:i.onCloseTab(e=>{e.agentId===n&&eg.current(e.tabId)})),l(null===(r=window.bangonit)||void 0===r?void 0:r.onSelectTab(e=>{e.agentId===n&&ef.current(e.tabId)})),()=>o.forEach(e=>null==e?void 0:e())},[n]),(0,i.useEffect)(()=>{L.current||(null==p?void 0:p.length)||(L.current=!0,$({text:s}))},[s,$,p]),(0,i.useEffect)(()=>{var e;null===(e=U.current)||void 0===e||e.scrollIntoView({behavior:"smooth"})},[Z]);let ev=(0,i.useCallback)((e,t,a)=>{if(!e)return;D.current.set(t,e);let i=()=>{if(!B.current.has(t))try{var i,r,o;let l=null===(i=e.getWebContentsId)||void 0===i?void 0:i.call(e);l&&(B.current.add(t),null===(r=window.bangonit)||void 0===r||r.registerTab(n,t,l,a),t===k.current&&(null===(o=window.bangonit)||void 0===o||o.setActiveTab(n,t)))}catch(e){}};i(),e.addEventListener("did-attach",i),e.addEventListener("close",()=>eg.current(t)),e.addEventListener("console-message",e=>{var t,a,i;null===(a=window.bangonit)||void 0===a||null===(t=a.emitConsoleMessage)||void 0===t||t.call(a,{agentId:n,level:e.level,message:e.message,url:e.sourceId||"",line:e.lineNumber||0}),null===(i=q.current)||void 0===i||i.addConsoleLog(n,e.level,e.message,e.sourceId||"",e.lineNumber||0)})},[n]),ex=e=>"".concat(Math.floor(e/60),":").concat((e%60).toString().padStart(2,"0"));return(0,a.jsxs)("div",{className:"flex h-full w-full bg-zinc-950 overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex-1 flex flex-col border-r border-zinc-800 min-w-0",children:[(0,a.jsx)("div",{className:"flex items-center bg-zinc-900 border-b border-zinc-800 overflow-x-auto",children:v.map(e=>(0,a.jsx)("button",{onClick:()=>em(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\n ".concat(e.id===y?"bg-zinc-800 text-zinc-200":"text-zinc-500 hover:text-zinc-300 hover:bg-zinc-850"),children:(0,a.jsxs)("span",{className:"truncate",children:[e.isPopup?"↗ ":"",e.title||(e.url&&"about:blank"!==e.url?e.url:"New Tab")]})},e.id))}),(0,a.jsx)("div",{className:"flex items-center gap-2 px-3 py-2 bg-zinc-900 border-b border-zinc-800",children:(0,a.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:T||"about:blank"})}),(0,a.jsxs)("div",{className:"flex-1 relative bg-white overflow-hidden",onWheel:e=>e.stopPropagation(),children:[v.map(e=>e.isPopup?e.id===y&&(0,a.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 — ",e.title||e.url]},e.id):(0,a.jsx)("webview",{ref:t=>ev(t,e.id,e.initialUrl),src:"about:blank",partition:"persist:agent-".concat(n),allowpopups:"",style:{width:"100%",height:"100%",position:"absolute",backgroundColor:"white",top:0,left:0,pointerEvents:e.id===y?"auto":"none",zIndex:e.id===y?1:0}},e.id)),!(null===(t=v.find(e=>e.id===y))||void 0===t?void 0:t.isPopup)&&(0,a.jsx)(c,{agentId:n}),!eo&&(0,a.jsx)("div",{className:"absolute inset-0 z-10 cursor-not-allowed"})]})]}),(0,a.jsxs)("div",{className:"w-[420px] flex flex-col h-full shrink-0",children:[(0,a.jsxs)("div",{className:"flex items-center px-4 py-3 border-b border-zinc-800",children:[(0,a.jsx)("h2",{className:"text-sm font-medium text-zinc-300",children:l}),(0,a.jsx)("div",{className:"flex-1"})]}),C&&(0,a.jsxs)("div",{className:"px-4 py-2 text-sm border-b flex items-center gap-3 ".concat("pass"===C.result?"bg-green-950/30 border-green-900/50":"bg-red-950/30 border-red-900/50"),children:[(0,a.jsx)("span",{className:"font-medium ".concat("pass"===C.result?"text-green-400":"text-red-400"),children:"pass"===C.result?"PASSED":"FAILED"}),(0,a.jsx)("span",{className:"text-zinc-500 text-xs",children:ex(H)}),C.summary&&(0,a.jsx)("span",{className:"text-zinc-400 text-xs truncate flex-1",children:C.summary})]}),_.length>0&&(0,a.jsx)("div",{className:"text-xs space-y-1 px-4 py-2 border-b border-zinc-800 bg-zinc-900/80 shrink-0",children:_.map((e,t)=>(0,a.jsxs)("div",{className:"flex items-center gap-2 ".concat("completed"===e.status?"text-zinc-500":"text-zinc-300"),children:[(0,a.jsx)("span",{className:"shrink-0",children:"completed"===e.status?"✓":"in_progress"===e.status?(0,a.jsx)("span",{className:"inline-block w-2 h-2 bg-blue-500 rounded-full animate-pulse"}):"○"}),(0,a.jsx)("span",{className:"completed"===e.status?"line-through":"",children:e.content})]},t))}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-4 space-y-3",children:[Z.map(e=>(0,a.jsx)(P,{message:e,agentName:l},e.id)),ea&&(0,a.jsx)("div",{className:"text-sm px-3 py-2 bg-red-950/30 border border-red-900/50 rounded-lg text-red-400",children:ea.message}),(0,a.jsx)("div",{ref:U})]}),(0,a.jsx)("div",{className:"px-4 py-2 border-t border-zinc-800 flex items-center gap-3 shrink-0",children:eo?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"inline-block w-2 h-2 rounded-full shrink-0 ".concat("pass"===C.result?"bg-green-500":"bg-red-500")}),(0,a.jsxs)("span",{className:"text-xs font-medium ".concat("pass"===C.result?"text-green-400":"text-red-400"),children:["pass"===C.result?"Passed":"Failed"," in ",ex(H)]}),(0,a.jsx)("div",{className:"flex-1"}),(0,a.jsx)("button",{onClick:()=>{let e=D.current.get(y);e&&(z?e.closeDevTools():e.openDevTools(),A(!z))},className:"text-xs px-2 py-1 rounded border transition-colors ".concat(z?"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"}),(0,a.jsx)("button",{onClick:()=>{var e,t;null===(t=window.bangonit)||void 0===t||null===(e=t.emitTestRerun)||void 0===e||e.call(t),null==d||d()},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"})]}):er?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"inline-block w-2 h-2 rounded-full shrink-0 ".concat(E?"bg-amber-500":"bg-blue-500 animate-pulse")}),(0,a.jsxs)("span",{className:"text-xs text-zinc-400",children:[E?"Paused":"Working"," ",ex(H)]}),(0,a.jsx)("div",{className:"flex-1"}),(0,a.jsx)("button",{onClick:()=>{let e=D.current.get(y);e&&(z?e.closeDevTools():e.openDevTools(),A(!z))},className:"text-xs px-2 py-1 rounded border transition-colors ".concat(z?"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"}),(0,a.jsx)("button",{onClick:()=>S(!E),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:E?"Continue":"Pause"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"inline-block w-2 h-2 bg-zinc-600 rounded-full shrink-0"}),(0,a.jsx)("span",{className:"text-xs text-zinc-500",children:"Queued"})]})})]})]})}function P(e){var t,n;let{message:i,agentName:r}=e;if("user"===i.role){let e=null===(n=i.parts)||void 0===n?void 0:n.find(e=>"text"===e.type);return(0,a.jsxs)("div",{className:"text-sm",children:[(0,a.jsx)("span",{className:"text-xs text-zinc-500 block mb-1",children:"Test Plan"}),(0,a.jsx)("div",{className:"text-zinc-200 prose prose-invert prose-sm max-w-none",children:(0,a.jsx)(l.UG,{remarkPlugins:[s.Z],children:(null==e?void 0:e.text)||""})})]})}return(0,a.jsx)("div",{className:"text-sm space-y-2",children:null===(t=i.parts)||void 0===t?void 0:t.map((e,t)=>{var n,i;if("text"===e.type&&e.text)return(null===(i=e.providerMetadata)||void 0===i?void 0:null===(n=i.anthropic)||void 0===n?void 0:n.type)==="compaction"?null:(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-xs text-zinc-500 block mb-1",children:r}),(0,a.jsx)("div",{className:"text-zinc-300 prose prose-invert prose-sm max-w-none",children:(0,a.jsx)(l.UG,{remarkPlugins:[s.Z],children:e.text})})]},t);if("dynamic-tool"===e.type||"string"==typeof e.type&&e.type.startsWith("tool-")){let n=e.toolName||("string"==typeof e.type?e.type.replace(/^tool-/,""):"");return"todos"===n||"report_result"===n?null:(0,a.jsx)(A,{part:e},t)}return null})})}function A(e){let{part:t}=e,[n,r]=(0,i.useState)(!1),o=t.input||{},l=t.output,s=t.state||"input-available",c=t.toolName||("string"==typeof t.type?t.type.replace(/^tool-/,""):""),u="input-streaming"===s?"":"browser"===c?(()=>{let e=(o.actions||[]).map(e=>{switch(e.action){case"navigate":return"navigate ".concat(e.url||"");case"mouse":{let t=(e.mouseActions||[]).map(e=>"wait"===e.action?"wait ".concat(e.ms,"ms"):"wheel"===e.action?"wheel ".concat(e.ref||"".concat(e.x,",").concat(e.y)):"".concat(e.action," ").concat(e.ref||"".concat(e.x,",").concat(e.y))).join(" → ");return"mouse ".concat(t)}case"type":return'type "'.concat((e.text||"").slice(0,40),'"');case"press":return"press ".concat(e.key||"");case"tabs":return"tabs ".concat(e.tabAction||"").concat(e.tabId?" "+e.tabId:"");default:return e.action||""}});return o.observe&&e.push(o.observe),e.join(", ")})():o.command||(Object.keys(o).length>0?JSON.stringify(o):"");return(0,a.jsxs)("div",{className:"text-sm",children:[(0,a.jsxs)("button",{onClick:()=>r(!n),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"===s||"input-available"===s?(0,a.jsx)("span",{className:"inline-block w-2 h-2 bg-amber-500 rounded-full animate-pulse shrink-0"}):(0,a.jsx)("span",{className:"text-green-500 shrink-0",children:"✓"}),(0,a.jsx)("span",{className:"text-zinc-400 font-mono truncate",children:u}),(0,a.jsx)("span",{className:"ml-auto transition-transform text-zinc-600 shrink-0 ".concat(n?"rotate-90":""),children:"▶"})]}),n&&(0,a.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:[u&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("span",{className:"text-zinc-300 select-all",children:["$ ",u]}),"\n"]}),null!=l&&(()=>{if("browser"===c&&"string"==typeof l)try{let e=JSON.parse(l);if(void 0!==e.textOutput)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-zinc-500",children:e.textOutput}),e.imageOutput&&(0,a.jsxs)(a.Fragment,{children:["\n",(0,a.jsx)("span",{className:"changed"===e.imageOutput.type?"text-blue-400":"text-zinc-600",children:"changed"===e.imageOutput.type?"[screenshot: changed]":"[screenshot: unchanged]"})]})]})}catch(e){}return(0,a.jsx)("span",{className:"text-zinc-500",children:"string"==typeof l?l:JSON.stringify(l,null,2)})})()]})]})}let D={0:"debug",1:"log",2:"warn",3:"error"};class _{addEvent(e){this.events.push(e)}setMessages(e,t){let n=Date.now(),a=JSON.parse(JSON.stringify(t));for(let t=0;t<a.length;t++){let i=a[t],r="".concat(e,":").concat(t);if(this.seenParts.has(r)||this.seenParts.set(r,n),i._ts=this.seenParts.get(r),i.parts)for(let a=0;a<i.parts.length;a++){let r="".concat(e,":").concat(t,":").concat(a);this.seenParts.has(r)||this.seenParts.set(r,n),i.parts[a]._ts=this.seenParts.get(r)}}this.messages.set(e,a)}addConsoleLog(e,t,n,a,i){this.consoleLogs.has(e)||this.consoleLogs.set(e,[]),this.consoleLogs.get(e).push({ts:Date.now(),level:D[t]||"log",message:n,url:a,line:i})}toJSON(e,t){return{runId:this.runId,startTime:this.startTime,endTime:Date.now(),agents:e,timeline:[...this.events].sort((e,t)=>e.ts-t.ts),messages:Object.fromEntries(this.messages),consoleLogs:Object.fromEntries(this.consoleLogs),clips:t}}constructor(e){this.events=[],this.messages=new Map,this.consoleLogs=new Map,this.seenParts=new Map,this.runId=e,this.startTime=Date.now()}}function O(){let[e,t]=(0,i.useState)([]),[n,r]=(0,i.useState)({}),[o,l]=(0,i.useState)({}),[s,c]=(0,i.useState)(!1),[u,d]=(0,i.useState)({}),p=(0,i.useRef)(new Map),[h,b]=(0,i.useState)(null),[m,w]=(0,i.useState)(!1),[g,f]=(0,i.useState)(!1),v=(0,i.useRef)(null),x=(0,i.useRef)(new Map);(0,i.useEffect)(()=>{(async()=>{var e,n,a,i,o;let s=await (null===(e=window.bangonit)||void 0===e?void 0:e.getAgents())||[];if(0===s.length){let e={id:crypto.randomUUID(),name:"Test 1",createdAt:Date.now()};s.push(e),await (null===(a=window.bangonit)||void 0===a?void 0:a.setAgents(s))}t(s);let u={},d={};for(let e of s){let t=await (null===(i=window.bangonit)||void 0===i?void 0:i.getAgentSession(e.id));t&&(null===(o=t.messages)||void 0===o?void 0:o.length)>0&&(u[e.id]={initialPrompt:t.initialPrompt,initialMessages:t.messages.map(e=>{if("assistant"!==e.role||!e.parts)return e;let t=e.parts.map(e=>"tool-invocation"===e.type&&"result"!==e.state?{...e,state:"result",output:"[Interrupted — app was restarted]"}:e);return{...e,parts:t}}),initialTabs:t.tabs,initialActiveTabId:t.activeTabId,initialTodos:t.todos},d[e.id]="idle")}l(u),r(d),b((null===(n=s[0])||void 0===n?void 0:n.id)||null),c(!0)})()},[]);let y=(0,i.useRef)(e);y.current=e,(0,i.useEffect)(()=>{if(s&&e.length>0){var t;null===(t=window.bangonit)||void 0===t||t.setAgents(e)}},[e,s]);let I=(0,i.useCallback)(async e=>{var t,n;await (null===(n=window.bangonit)||void 0===n?void 0:null===(t=n.clearPartition)||void 0===t?void 0:t.call(n,e));let a=o[e];a&&(r(t=>({...t,[e]:"running"})),d(t=>({...t,[e]:(t[e]||0)+1})),l(t=>({...t,[e]:{initialPrompt:a.initialPrompt}})))},[o]),k=(0,i.useCallback)((e,t)=>{x.current.set(e,t)},[]),T=(0,i.useRef)(n);T.current=n;let N=(0,i.useCallback)(async(e,t)=>{var n,a,i,r,o,l;let s=v.current;if(!s)return;let c=await (null===(a=window.bangonit)||void 0===a?void 0:null===(n=a.getRunDir)||void 0===n?void 0:n.call(a));if(!c)return;let u=[];for(let e of x.current.values())u.push(...e.getClipsMeta());let d={...T.current,[e]:t},p=y.current.map(e=>{let t=d[e.id];return{id:e.id,name:e.name,result:"completed"===t?"pass":"failed"===t?"fail":void 0}}),h=s.toJSON(p,u);await (null===(r=window.bangonit)||void 0===r?void 0:null===(i=r.saveReplayData)||void 0===i?void 0:i.call(r,{runDir:c,data:JSON.stringify(h)})),await (null===(l=window.bangonit)||void 0===l?void 0:null===(o=l.generateReplayHtml)||void 0===o?void 0:o.call(l,{runDir:c}))},[]),C=(0,i.useCallback)((e,t,n)=>{let a;if(a="running"===t?"running":"pass"===n?"completed":"fail"===n?"failed":"idle",r(t=>({...t,[e]:a})),m&&("pass"===n||"fail"===n)&&N(e,a),"fail"===n){let t=p.current.get(e);if(t&&t.attempt<t.maxRetries){var i,o;t.attempt++,null===(o=window.bangonit)||void 0===o||null===(i=o.emitTestRetry)||void 0===i||i.call(o,{agentId:e,attempt:t.attempt,maxRetries:t.maxRetries}),setTimeout(()=>I(e),1e3)}}},[I,m,N]),j=(0,i.useCallback)((e,n,a)=>{a&&t(t=>t.map(t=>t.id===e?{...t,name:a}:t)),l(t=>({...t,[e]:{initialPrompt:n}})),r(t=>({...t,[e]:"running"})),b(e)},[]),E=(0,i.useCallback)(()=>{let n=crypto.randomUUID(),a={id:n,name:"Test ".concat(e.length+1),createdAt:Date.now()};t(e=>[...e,a]),b(n)},[e.length]);if((0,i.useEffect)(()=>{var e,n;let a=null===(n=window.bangonit)||void 0===n?void 0:null===(e=n.onTestPlan)||void 0===e?void 0:e.call(n,e=>{f(!0);let{agentIndex:n,testPlan:a,name:i,retries:o,extraPrompt:s,record:c}=e;if(c&&!v.current){let e=new Date().toISOString().replace(/[:.]/g,"-");v.current=new _(e),w(!0)}t(e=>{let t=n+1,a=[...e];for(;a.length<t;)a.push({id:crypto.randomUUID(),name:i||"Test ".concat(a.length+1),createdAt:Date.now()});return i&&(a=a.map((e,t)=>t===n?{...e,name:i}:e)),a}),setTimeout(()=>{t(e=>{let t=e[n];if(!t)return e;let i=s?"".concat(a,"\n\n## Additional Instructions\n").concat(s):a;return l(e=>({...e,[t.id]:{initialPrompt:i}})),r(e=>({...e,[t.id]:"running"})),o&&o>0&&p.current.set(t.id,{maxRetries:o,attempt:0,testPlan:i}),0===n&&b(t.id),e})},100)});return()=>null==a?void 0:a()},[]),(0,i.useEffect)(()=>{var e,t;let n=null===(t=window.bangonit)||void 0===t?void 0:null===(e=t.onFocusAgent)||void 0===e?void 0:e.call(t,e=>{b(e.agentId)});return()=>null==n?void 0:n()},[]),!s)return(0,a.jsx)("div",{className:"flex h-screen bg-zinc-950"});e.some(e=>o[e.id]);let S=e.find(e=>e.id===h),R=!!h&&!!o[h];return(0,a.jsxs)("div",{className:"flex h-screen bg-zinc-950 overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex flex-col bg-zinc-900 border-r border-zinc-800 shrink-0 w-48 overflow-y-auto",children:[(0,a.jsxs)("div",{className:"flex items-center px-3 py-2 border-b border-zinc-800",children:[(0,a.jsx)("span",{className:"text-xs font-medium text-zinc-500 uppercase tracking-wider",children:"Tests"}),(0,a.jsx)("div",{className:"flex-1"}),(0,a.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 o[e.id],(0,a.jsx)("button",{onClick:()=>b(e.id),className:"px-3 py-2 text-xs text-left border-b border-zinc-800 transition-colors\n ".concat(e.id===h?"bg-zinc-800 text-zinc-200":"text-zinc-500 hover:text-zinc-300"),children:(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"inline-block w-2 h-2 rounded-full shrink-0 ".concat("running"===t?"bg-blue-500 animate-pulse":"completed"===t?"bg-green-500":"failed"===t?"bg-red-500":"bg-zinc-600")}),(0,a.jsx)("span",{className:"truncate",children:e.name})]})},e.id)})]}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 h-full relative",children:[e.map(e=>o[e.id]?(0,a.jsx)("div",{className:"absolute inset-0 z-0",style:{display:"flex",zIndex:e.id===h?1:0,pointerEvents:e.id===h?"auto":"none"},children:(0,a.jsx)(z,{agentId:e.id,agentName:e.name,initialPrompt:o[e.id].initialPrompt,initialMessages:o[e.id].initialMessages,initialTabs:o[e.id].initialTabs,initialActiveTabId:o[e.id].initialActiveTabId,initialTodos:o[e.id].initialTodos,onStatusChange:C,onRerun:()=>I(e.id),record:m,sessionRecorder:v.current||void 0,onRegisterRecorder:k})},"".concat(e.id,"-").concat(u[e.id]||0)):null),S&&!R&&!g&&(0,a.jsx)(U,{agentId:S.id,agentName:S.name,onSubmit:j})]})]})}function U(e){let{agentId:t,agentName:n,onSubmit:r}=e,[o,l]=(0,i.useState)(""),s=(0,i.useRef)(null);(0,i.useEffect)(()=>{var e;null===(e=s.current)||void 0===e||e.focus()},[t]);let c=()=>{let e=o.trim();e&&r(t,e)};return(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center z-10 bg-zinc-950",children:(0,a.jsxs)("div",{className:"w-full max-w-xl px-6",children:[(0,a.jsx)("h2",{className:"text-lg font-medium text-zinc-200 mb-4",children:"What would you like to test?"}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("textarea",{ref:s,value:o,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),c())},placeholder:'Describe what to test, e.g. "Go to example.com and verify the homepage loads"',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}),(0,a.jsx)("button",{onClick:c,disabled:!o.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"})]}),(0,a.jsx)("p",{className:"text-xs text-zinc-600 mt-2",children:"Press Enter to run. Shift+Enter for a new line."})]})})}function L(){return(0,a.jsx)(O,{})}}},function(e){e.O(0,[46,631,293,528,744],function(){return e(e.s=6421)}),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{4143:function(n,e,u){Promise.resolve().then(u.t.bind(u,2625,23))},2625:function(){}},function(n){n.O(0,[387,293,528,744],function(){return n(n.s=4143)}),_N_E=n.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[744],{4252:function(e,n,t){Promise.resolve().then(t.t.bind(t,1815,23)),Promise.resolve().then(t.t.bind(t,5428,23)),Promise.resolve().then(t.t.bind(t,1584,23)),Promise.resolve().then(t.t.bind(t,5092,23)),Promise.resolve().then(t.t.bind(t,3859,23)),Promise.resolve().then(t.t.bind(t,2023,23))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[293,528],function(){return n(6e3),n(4252)}),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[744],{2200:function(e,n,t){Promise.resolve().then(t.t.bind(t,1815,23)),Promise.resolve().then(t.t.bind(t,5428,23)),Promise.resolve().then(t.t.bind(t,1584,23)),Promise.resolve().then(t.t.bind(t,5092,23)),Promise.resolve().then(t.t.bind(t,3859,23)),Promise.resolve().then(t.t.bind(t,2023,23))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[293,528],function(){return n(6e3),n(2200)}),_N_E=e.O()}]);
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":232,"timestamp":325184496765,"id":4,"parentId":1,"tags":{},"startTime":1773820865395,"traceId":"b440dc895dd153e5"},{"name":"load-custom-routes","duration":219,"timestamp":325184497159,"id":5,"parentId":1,"tags":{},"startTime":1773820865395,"traceId":"b440dc895dd153e5"},{"name":"create-pages-mapping","duration":132,"timestamp":325184587496,"id":6,"parentId":1,"tags":{},"startTime":1773820865486,"traceId":"b440dc895dd153e5"},{"name":"collect-app-paths","duration":1629,"timestamp":325184587653,"id":7,"parentId":1,"tags":{},"startTime":1773820865486,"traceId":"b440dc895dd153e5"},{"name":"create-app-mapping","duration":538,"timestamp":325184589299,"id":8,"parentId":1,"tags":{},"startTime":1773820865487,"traceId":"b440dc895dd153e5"},{"name":"public-dir-conflict-check","duration":464,"timestamp":325184590159,"id":9,"parentId":1,"tags":{},"startTime":1773820865488,"traceId":"b440dc895dd153e5"},{"name":"generate-routes-manifest","duration":1765,"timestamp":325184590752,"id":10,"parentId":1,"tags":{},"startTime":1773820865489,"traceId":"b440dc895dd153e5"},{"name":"create-dist-dir","duration":275,"timestamp":325184592987,"id":11,"parentId":1,"tags":{},"startTime":1773820865491,"traceId":"b440dc895dd153e5"},{"name":"write-routes-manifest","duration":333,"timestamp":325184597068,"id":12,"parentId":1,"tags":{},"startTime":1773820865495,"traceId":"b440dc895dd153e5"},{"name":"generate-required-server-files","duration":248,"timestamp":325184597449,"id":13,"parentId":1,"tags":{},"startTime":1773820865495,"traceId":"b440dc895dd153e5"},{"name":"create-entrypoints","duration":31176,"timestamp":325184990358,"id":17,"parentId":15,"tags":{},"startTime":1773820865888,"traceId":"b440dc895dd153e5"},{"name":"generate-webpack-config","duration":288591,"timestamp":325185021712,"id":18,"parentId":16,"tags":{},"startTime":1773820865920,"traceId":"b440dc895dd153e5"},{"name":"next-trace-entrypoint-plugin","duration":1924,"timestamp":325185381060,"id":20,"parentId":19,"tags":{},"startTime":1773820866279,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":370978,"timestamp":325185388887,"id":23,"parentId":21,"tags":{"request":"next/dist/pages/_app"},"startTime":1773820866287,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":370910,"timestamp":325185388993,"id":29,"parentId":21,"tags":{"request":"next/dist/pages/_document"},"startTime":1773820866287,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":371010,"timestamp":325185388923,"id":24,"parentId":21,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1773820866287,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":415631,"timestamp":325185388419,"id":22,"parentId":21,"tags":{"request":"next-app-loader?page=%2F_not-found%2Fpage&name=app%2F_not-found%2Fpage&pagePath=next%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error&appDir=%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fapp%2Fwebapp%2Fsrc%2Fapp&appPaths=next%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&nextConfigExperimentalUseEarlyImport=false&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1773820866286,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":415142,"timestamp":325185388944,"id":25,"parentId":21,"tags":{"request":"next-app-loader?page=%2Fapp%2Fpage&name=app%2Fapp%2Fpage&pagePath=private-next-app-dir%2Fapp%2Fpage.tsx&appDir=%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fapp%2Fwebapp%2Fsrc%2Fapp&appPaths=%2Fapp%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&nextConfigExperimentalUseEarlyImport=false&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1773820866287,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":420533,"timestamp":325185388960,"id":26,"parentId":21,"tags":{"request":"next-app-loader?page=%2Fpage&name=app%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fapp%2Fwebapp%2Fsrc%2Fapp&appPaths=%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&nextConfigExperimentalUseEarlyImport=false&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1773820866287,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":495753,"timestamp":325185388972,"id":27,"parentId":21,"tags":{"request":"next-app-loader?page=%2Fapi%2Fchat%2Froute&name=app%2Fapi%2Fchat%2Froute&pagePath=private-next-app-dir%2Fapi%2Fchat%2Froute.ts&appDir=%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fapp%2Fwebapp%2Fsrc%2Fapp&appPaths=%2Fapi%2Fchat%2Froute&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&nextConfigExperimentalUseEarlyImport=false&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1773820866287,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":495777,"timestamp":325185388982,"id":28,"parentId":21,"tags":{"request":"next-app-loader?page=%2Fapi%2Fscreenshot%2Froute&name=app%2Fapi%2Fscreenshot%2Froute&pagePath=private-next-app-dir%2Fapi%2Fscreenshot%2Froute.ts&appDir=%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fapp%2Fwebapp%2Fsrc%2Fapp&appPaths=%2Fapi%2Fscreenshot%2Froute&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&nextConfigExperimentalUseEarlyImport=false&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1773820866287,"traceId":"b440dc895dd153e5"},{"name":"make","duration":693359,"timestamp":325185388049,"id":21,"parentId":19,"tags":{},"startTime":1773820866286,"traceId":"b440dc895dd153e5"},{"name":"get-entries","duration":590,"timestamp":325186082545,"id":44,"parentId":43,"tags":{},"startTime":1773820866981,"traceId":"b440dc895dd153e5"},{"name":"node-file-trace-plugin","duration":99393,"timestamp":325186090558,"id":45,"parentId":43,"tags":{"traceEntryCount":"12"},"startTime":1773820866989,"traceId":"b440dc895dd153e5"},{"name":"collect-traced-files","duration":780,"timestamp":325186189963,"id":46,"parentId":43,"tags":{},"startTime":1773820867088,"traceId":"b440dc895dd153e5"},{"name":"finish-modules","duration":108387,"timestamp":325186082361,"id":43,"parentId":20,"tags":{},"startTime":1773820866980,"traceId":"b440dc895dd153e5"},{"name":"chunk-graph","duration":14887,"timestamp":325186283439,"id":48,"parentId":47,"tags":{},"startTime":1773820867181,"traceId":"b440dc895dd153e5"},{"name":"optimize-modules","duration":33,"timestamp":325186298508,"id":50,"parentId":47,"tags":{},"startTime":1773820867197,"traceId":"b440dc895dd153e5"},{"name":"optimize-chunks","duration":9580,"timestamp":325186298613,"id":51,"parentId":47,"tags":{},"startTime":1773820867197,"traceId":"b440dc895dd153e5"},{"name":"optimize-tree","duration":110,"timestamp":325186308276,"id":52,"parentId":47,"tags":{},"startTime":1773820867206,"traceId":"b440dc895dd153e5"},{"name":"optimize-chunk-modules","duration":37049,"timestamp":325186308469,"id":53,"parentId":47,"tags":{},"startTime":1773820867207,"traceId":"b440dc895dd153e5"},{"name":"optimize","duration":47418,"timestamp":325186298397,"id":49,"parentId":47,"tags":{},"startTime":1773820867196,"traceId":"b440dc895dd153e5"},{"name":"module-hash","duration":25629,"timestamp":325186369565,"id":54,"parentId":47,"tags":{},"startTime":1773820867268,"traceId":"b440dc895dd153e5"},{"name":"code-generation","duration":6000,"timestamp":325186395348,"id":55,"parentId":47,"tags":{},"startTime":1773820867293,"traceId":"b440dc895dd153e5"},{"name":"hash","duration":7848,"timestamp":325186406177,"id":56,"parentId":47,"tags":{},"startTime":1773820867304,"traceId":"b440dc895dd153e5"},{"name":"code-generation-jobs","duration":304,"timestamp":325186414022,"id":57,"parentId":47,"tags":{},"startTime":1773820867312,"traceId":"b440dc895dd153e5"},{"name":"module-assets","duration":473,"timestamp":325186414238,"id":58,"parentId":47,"tags":{},"startTime":1773820867312,"traceId":"b440dc895dd153e5"},{"name":"create-chunk-assets","duration":1624,"timestamp":325186414734,"id":59,"parentId":47,"tags":{},"startTime":1773820867313,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":354,"timestamp":325186425301,"id":61,"parentId":60,"tags":{"name":"../app/_not-found/page.js","cache":"HIT"},"startTime":1773820867323,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":189,"timestamp":325186425476,"id":62,"parentId":60,"tags":{"name":"../pages/_app.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":178,"timestamp":325186425488,"id":63,"parentId":60,"tags":{"name":"../pages/_error.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":168,"timestamp":325186425499,"id":64,"parentId":60,"tags":{"name":"../app/app/page.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":162,"timestamp":325186425506,"id":65,"parentId":60,"tags":{"name":"../app/page.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":156,"timestamp":325186425512,"id":66,"parentId":60,"tags":{"name":"../app/api/chat/route.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":152,"timestamp":325186425518,"id":67,"parentId":60,"tags":{"name":"../app/api/screenshot/route.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":147,"timestamp":325186425524,"id":68,"parentId":60,"tags":{"name":"../pages/_document.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":142,"timestamp":325186425531,"id":69,"parentId":60,"tags":{"name":"../webpack-runtime.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":67,"timestamp":325186425606,"id":70,"parentId":60,"tags":{"name":"361.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":50,"timestamp":325186425623,"id":71,"parentId":60,"tags":{"name":"136.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":42,"timestamp":325186425632,"id":72,"parentId":60,"tags":{"name":"522.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":38,"timestamp":325186425637,"id":73,"parentId":60,"tags":{"name":"679.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":34,"timestamp":325186425641,"id":74,"parentId":60,"tags":{"name":"124.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":31,"timestamp":325186425646,"id":75,"parentId":60,"tags":{"name":"135.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":28,"timestamp":325186425649,"id":76,"parentId":60,"tags":{"name":"708.js","cache":"HIT"},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"terser-webpack-plugin-optimize","duration":5821,"timestamp":325186419865,"id":60,"parentId":19,"tags":{"compilationName":"server","swcMinify":true},"startTime":1773820867318,"traceId":"b440dc895dd153e5"},{"name":"css-minimizer-plugin","duration":125,"timestamp":325186425778,"id":77,"parentId":19,"tags":{},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"create-trace-assets","duration":933,"timestamp":325186426138,"id":78,"parentId":20,"tags":{},"startTime":1773820867324,"traceId":"b440dc895dd153e5"},{"name":"seal","duration":200878,"timestamp":325186235334,"id":47,"parentId":19,"tags":{},"startTime":1773820867133,"traceId":"b440dc895dd153e5"},{"name":"webpack-compilation","duration":1060327,"timestamp":325185379255,"id":19,"parentId":16,"tags":{"name":"server"},"startTime":1773820866277,"traceId":"b440dc895dd153e5"},{"name":"emit","duration":10478,"timestamp":325186440175,"id":79,"parentId":16,"tags":{},"startTime":1773820867338,"traceId":"b440dc895dd153e5"},{"name":"webpack-close","duration":775,"timestamp":325186451389,"id":80,"parentId":16,"tags":{"name":"server"},"startTime":1773820867349,"traceId":"b440dc895dd153e5"},{"name":"webpack-generate-error-stats","duration":2495,"timestamp":325186452232,"id":81,"parentId":80,"tags":{},"startTime":1773820867350,"traceId":"b440dc895dd153e5"},{"name":"run-webpack-compiler","duration":1464721,"timestamp":325184990355,"id":16,"parentId":15,"tags":{},"startTime":1773820865888,"traceId":"b440dc895dd153e5"},{"name":"format-webpack-messages","duration":84,"timestamp":325186455086,"id":82,"parentId":15,"tags":{},"startTime":1773820867353,"traceId":"b440dc895dd153e5"},{"name":"worker-main-server","duration":1465250,"timestamp":325184990099,"id":15,"parentId":1,"tags":{},"startTime":1773820865888,"traceId":"b440dc895dd153e5"},{"name":"create-entrypoints","duration":21634,"timestamp":325186883244,"id":85,"parentId":83,"tags":{},"startTime":1773820867781,"traceId":"b440dc895dd153e5"},{"name":"generate-webpack-config","duration":315723,"timestamp":325186905030,"id":86,"parentId":84,"tags":{},"startTime":1773820867803,"traceId":"b440dc895dd153e5"},{"name":"make","duration":751,"timestamp":325187301844,"id":88,"parentId":87,"tags":{},"startTime":1773820868200,"traceId":"b440dc895dd153e5"},{"name":"chunk-graph","duration":550,"timestamp":325187305623,"id":90,"parentId":89,"tags":{},"startTime":1773820868204,"traceId":"b440dc895dd153e5"},{"name":"optimize-modules","duration":31,"timestamp":325187306307,"id":92,"parentId":89,"tags":{},"startTime":1773820868204,"traceId":"b440dc895dd153e5"},{"name":"optimize-chunks","duration":820,"timestamp":325187306426,"id":93,"parentId":89,"tags":{},"startTime":1773820868204,"traceId":"b440dc895dd153e5"},{"name":"optimize-tree","duration":109,"timestamp":325187307329,"id":94,"parentId":89,"tags":{},"startTime":1773820868205,"traceId":"b440dc895dd153e5"},{"name":"optimize-chunk-modules","duration":613,"timestamp":325187307637,"id":95,"parentId":89,"tags":{},"startTime":1773820868206,"traceId":"b440dc895dd153e5"},{"name":"optimize","duration":2096,"timestamp":325187306245,"id":91,"parentId":89,"tags":{},"startTime":1773820868204,"traceId":"b440dc895dd153e5"},{"name":"module-hash","duration":83,"timestamp":325187309468,"id":96,"parentId":89,"tags":{},"startTime":1773820868208,"traceId":"b440dc895dd153e5"},{"name":"code-generation","duration":198,"timestamp":325187309598,"id":97,"parentId":89,"tags":{},"startTime":1773820868208,"traceId":"b440dc895dd153e5"},{"name":"hash","duration":462,"timestamp":325187310026,"id":98,"parentId":89,"tags":{},"startTime":1773820868208,"traceId":"b440dc895dd153e5"},{"name":"code-generation-jobs","duration":132,"timestamp":325187310485,"id":99,"parentId":89,"tags":{},"startTime":1773820868209,"traceId":"b440dc895dd153e5"},{"name":"module-assets","duration":85,"timestamp":325187310583,"id":100,"parentId":89,"tags":{},"startTime":1773820868209,"traceId":"b440dc895dd153e5"},{"name":"create-chunk-assets","duration":177,"timestamp":325187310679,"id":101,"parentId":89,"tags":{},"startTime":1773820868209,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":256,"timestamp":325187371337,"id":103,"parentId":102,"tags":{"name":"interception-route-rewrite-manifest.js","cache":"HIT"},"startTime":1773820868269,"traceId":"b440dc895dd153e5"},{"name":"terser-webpack-plugin-optimize","duration":19760,"timestamp":325187351844,"id":102,"parentId":87,"tags":{"compilationName":"edge-server","swcMinify":true},"startTime":1773820868250,"traceId":"b440dc895dd153e5"},{"name":"css-minimizer-plugin","duration":123,"timestamp":325187371683,"id":104,"parentId":87,"tags":{},"startTime":1773820868270,"traceId":"b440dc895dd153e5"},{"name":"seal","duration":70234,"timestamp":325187304952,"id":89,"parentId":87,"tags":{},"startTime":1773820868203,"traceId":"b440dc895dd153e5"},{"name":"webpack-compilation","duration":81331,"timestamp":325187294301,"id":87,"parentId":84,"tags":{"name":"edge-server"},"startTime":1773820868192,"traceId":"b440dc895dd153e5"},{"name":"emit","duration":2612,"timestamp":325187376066,"id":105,"parentId":84,"tags":{},"startTime":1773820868274,"traceId":"b440dc895dd153e5"},{"name":"webpack-close","duration":618,"timestamp":325187379191,"id":106,"parentId":84,"tags":{"name":"edge-server"},"startTime":1773820868277,"traceId":"b440dc895dd153e5"},{"name":"webpack-generate-error-stats","duration":3419,"timestamp":325187379854,"id":107,"parentId":106,"tags":{},"startTime":1773820868278,"traceId":"b440dc895dd153e5"},{"name":"run-webpack-compiler","duration":500243,"timestamp":325186883241,"id":84,"parentId":83,"tags":{},"startTime":1773820867781,"traceId":"b440dc895dd153e5"},{"name":"format-webpack-messages","duration":95,"timestamp":325187383494,"id":108,"parentId":83,"tags":{},"startTime":1773820868282,"traceId":"b440dc895dd153e5"},{"name":"worker-main-edge-server","duration":500749,"timestamp":325186882967,"id":83,"parentId":1,"tags":{},"startTime":1773820867781,"traceId":"b440dc895dd153e5"},{"name":"create-entrypoints","duration":23754,"timestamp":325187827690,"id":111,"parentId":109,"tags":{},"startTime":1773820868726,"traceId":"b440dc895dd153e5"},{"name":"generate-webpack-config","duration":255148,"timestamp":325187851614,"id":112,"parentId":110,"tags":{},"startTime":1773820868750,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":207464,"timestamp":325188181218,"id":124,"parentId":114,"tags":{"request":"next-flight-client-entry-loader?server=false!"},"startTime":1773820869079,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":285115,"timestamp":325188180991,"id":118,"parentId":114,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error&page=%2F_not-found%2Fpage!"},"startTime":1773820869079,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":297315,"timestamp":325188181069,"id":119,"parentId":114,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1773820869079,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":297313,"timestamp":325188181104,"id":121,"parentId":114,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1773820869079,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":310636,"timestamp":325188180968,"id":117,"parentId":114,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1773820869079,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":310696,"timestamp":325188180931,"id":116,"parentId":114,"tags":{"request":"./../../node_modules/next/dist/client/app-next.js"},"startTime":1773820869079,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":313384,"timestamp":325188181112,"id":122,"parentId":114,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fapp%2Fwebapp%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1773820869079,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":314683,"timestamp":325188180545,"id":115,"parentId":114,"tags":{"request":"./../../node_modules/next/dist/client/next.js"},"startTime":1773820869079,"traceId":"b440dc895dd153e5"}]
2
- [{"name":"add-entry","duration":314158,"timestamp":325188181089,"id":120,"parentId":114,"tags":{"request":"/home/floydophone/repos/domyjob/node_modules/next/dist/client/router.js"},"startTime":1773820869079,"traceId":"b440dc895dd153e5"},{"name":"add-entry","duration":431353,"timestamp":325188181123,"id":123,"parentId":114,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2Ffloydophone%2Frepos%2Fdomyjob%2Fapp%2Fwebapp%2Fsrc%2Fapp%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1773820869079,"traceId":"b440dc895dd153e5"},{"name":"make","duration":432727,"timestamp":325188180114,"id":114,"parentId":113,"tags":{},"startTime":1773820869078,"traceId":"b440dc895dd153e5"},{"name":"chunk-graph","duration":9246,"timestamp":325188671459,"id":126,"parentId":125,"tags":{},"startTime":1773820869570,"traceId":"b440dc895dd153e5"},{"name":"optimize-modules","duration":33,"timestamp":325188680855,"id":128,"parentId":125,"tags":{},"startTime":1773820869579,"traceId":"b440dc895dd153e5"},{"name":"optimize-chunks","duration":12283,"timestamp":325188682371,"id":130,"parentId":125,"tags":{},"startTime":1773820869580,"traceId":"b440dc895dd153e5"},{"name":"optimize-tree","duration":108,"timestamp":325188694740,"id":131,"parentId":125,"tags":{},"startTime":1773820869593,"traceId":"b440dc895dd153e5"},{"name":"optimize-chunk-modules","duration":18737,"timestamp":325188694934,"id":132,"parentId":125,"tags":{},"startTime":1773820869593,"traceId":"b440dc895dd153e5"},{"name":"optimize","duration":32982,"timestamp":325188680798,"id":127,"parentId":125,"tags":{},"startTime":1773820869579,"traceId":"b440dc895dd153e5"},{"name":"module-hash","duration":15910,"timestamp":325188733927,"id":133,"parentId":125,"tags":{},"startTime":1773820869632,"traceId":"b440dc895dd153e5"},{"name":"code-generation","duration":4739,"timestamp":325188749924,"id":134,"parentId":125,"tags":{},"startTime":1773820869648,"traceId":"b440dc895dd153e5"},{"name":"hash","duration":8450,"timestamp":325188760097,"id":135,"parentId":125,"tags":{},"startTime":1773820869658,"traceId":"b440dc895dd153e5"},{"name":"code-generation-jobs","duration":260,"timestamp":325188768544,"id":136,"parentId":125,"tags":{},"startTime":1773820869667,"traceId":"b440dc895dd153e5"},{"name":"module-assets","duration":331,"timestamp":325188768757,"id":137,"parentId":125,"tags":{},"startTime":1773820869667,"traceId":"b440dc895dd153e5"},{"name":"create-chunk-assets","duration":2578,"timestamp":325188769103,"id":138,"parentId":125,"tags":{},"startTime":1773820869667,"traceId":"b440dc895dd153e5"},{"name":"NextJsBuildManifest-generateClientManifest","duration":870,"timestamp":325188773696,"id":140,"parentId":113,"tags":{},"startTime":1773820869672,"traceId":"b440dc895dd153e5"},{"name":"NextJsBuildManifest-createassets","duration":1698,"timestamp":325188772880,"id":139,"parentId":113,"tags":{},"startTime":1773820869671,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1455,"timestamp":325188780827,"id":142,"parentId":141,"tags":{"name":"static/chunks/main-7b05b3530a4fe793.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1232,"timestamp":325188781065,"id":143,"parentId":141,"tags":{"name":"static/chunks/main-app-76384b941f0b51cb.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1215,"timestamp":325188781084,"id":144,"parentId":141,"tags":{"name":"static/chunks/app/_not-found/page-655fd05e2bb4ddca.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1199,"timestamp":325188781102,"id":145,"parentId":141,"tags":{"name":"static/chunks/pages/_app-10a93ab5b7c32eb3.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1188,"timestamp":325188781114,"id":146,"parentId":141,"tags":{"name":"static/chunks/pages/_error-2d792b2a41857be4.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1179,"timestamp":325188781125,"id":147,"parentId":141,"tags":{"name":"static/chunks/app/layout-40f50d9380154ecf.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1167,"timestamp":325188781138,"id":148,"parentId":141,"tags":{"name":"static/chunks/app/app/page-41ee880e93966e12.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1157,"timestamp":325188781149,"id":149,"parentId":141,"tags":{"name":"static/chunks/app/page-1f82fbf792d529fd.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1147,"timestamp":325188781161,"id":150,"parentId":141,"tags":{"name":"static/chunks/webpack-9e4fd47eb2c72de4.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1069,"timestamp":325188781249,"id":151,"parentId":141,"tags":{"name":"static/chunks/framework-3664cab31236a9fa.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1041,"timestamp":325188781279,"id":152,"parentId":141,"tags":{"name":"static/chunks/02d30405-01bdf403629d0188.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1023,"timestamp":325188781298,"id":153,"parentId":141,"tags":{"name":"static/chunks/1dd3208c-2143388ffa327752.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1014,"timestamp":325188781309,"id":154,"parentId":141,"tags":{"name":"static/chunks/631-0edca788fa58159b.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1005,"timestamp":325188781320,"id":155,"parentId":141,"tags":{"name":"static/chunks/528-31e5ce0646826d75.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":995,"timestamp":325188781332,"id":156,"parentId":141,"tags":{"name":"server/middleware-react-loadable-manifest.js","cache":"HIT"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":262,"timestamp":325188782066,"id":158,"parentId":141,"tags":{"name":"server/middleware-build-manifest.js","cache":"HIT"},"startTime":1773820869680,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":61,"timestamp":325188782269,"id":160,"parentId":141,"tags":{"name":"server/next-font-manifest.js","cache":"HIT"},"startTime":1773820869680,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":2428,"timestamp":325188781374,"id":157,"parentId":141,"tags":{"name":"static/BkuEihcexhIRjEt7SHF91/_ssgManifest.js","cache":"MISS"},"startTime":1773820869679,"traceId":"b440dc895dd153e5"},{"name":"minify-js","duration":1750,"timestamp":325188782087,"id":159,"parentId":141,"tags":{"name":"static/BkuEihcexhIRjEt7SHF91/_buildManifest.js","cache":"MISS"},"startTime":1773820869680,"traceId":"b440dc895dd153e5"},{"name":"terser-webpack-plugin-optimize","duration":8172,"timestamp":325188775668,"id":141,"parentId":113,"tags":{"compilationName":"client","swcMinify":true},"startTime":1773820869674,"traceId":"b440dc895dd153e5"},{"name":"minify-css","duration":90,"timestamp":325188784167,"id":162,"parentId":161,"tags":{"file":"static/css/1f9b14650cf68e55.css","cache":"HIT"},"startTime":1773820869682,"traceId":"b440dc895dd153e5"},{"name":"css-minimizer-plugin","duration":331,"timestamp":325188783929,"id":161,"parentId":113,"tags":{},"startTime":1773820869682,"traceId":"b440dc895dd153e5"},{"name":"seal","duration":150162,"timestamp":325188648112,"id":125,"parentId":113,"tags":{},"startTime":1773820869546,"traceId":"b440dc895dd153e5"},{"name":"webpack-compilation","duration":625248,"timestamp":325188173647,"id":113,"parentId":110,"tags":{"name":"client"},"startTime":1773820869072,"traceId":"b440dc895dd153e5"},{"name":"emit","duration":16429,"timestamp":325188799460,"id":163,"parentId":110,"tags":{},"startTime":1773820869698,"traceId":"b440dc895dd153e5"},{"name":"webpack-close","duration":50250,"timestamp":325188816571,"id":164,"parentId":110,"tags":{"name":"client"},"startTime":1773820869715,"traceId":"b440dc895dd153e5"},{"name":"webpack-generate-error-stats","duration":2332,"timestamp":325188866874,"id":165,"parentId":164,"tags":{},"startTime":1773820869765,"traceId":"b440dc895dd153e5"},{"name":"run-webpack-compiler","duration":1041713,"timestamp":325187827686,"id":110,"parentId":109,"tags":{},"startTime":1773820868726,"traceId":"b440dc895dd153e5"},{"name":"format-webpack-messages","duration":63,"timestamp":325188869406,"id":166,"parentId":109,"tags":{},"startTime":1773820869767,"traceId":"b440dc895dd153e5"},{"name":"worker-main-client","duration":1042129,"timestamp":325187827426,"id":109,"parentId":1,"tags":{},"startTime":1773820868725,"traceId":"b440dc895dd153e5"},{"name":"verify-and-lint","duration":50513,"timestamp":325188891582,"id":170,"parentId":1,"tags":{},"startTime":1773820869790,"traceId":"b440dc895dd153e5"},{"name":"verify-typescript-setup","duration":2879637,"timestamp":325188888798,"id":169,"parentId":1,"tags":{},"startTime":1773820869787,"traceId":"b440dc895dd153e5"},{"name":"check-static-error-page","duration":5293,"timestamp":325191903337,"id":173,"parentId":172,"tags":{},"startTime":1773820872801,"traceId":"b440dc895dd153e5"},{"name":"check-page","duration":1606,"timestamp":325191931081,"id":174,"parentId":172,"tags":{"page":"/_app"},"startTime":1773820872829,"traceId":"b440dc895dd153e5"},{"name":"check-page","duration":914,"timestamp":325191931792,"id":176,"parentId":172,"tags":{"page":"/_document"},"startTime":1773820872830,"traceId":"b440dc895dd153e5"},{"name":"check-page","duration":1286,"timestamp":325191931706,"id":175,"parentId":172,"tags":{"page":"/_error"},"startTime":1773820872830,"traceId":"b440dc895dd153e5"},{"name":"is-page-static","duration":155002,"timestamp":325191942353,"id":182,"parentId":181,"tags":{},"startTime":1773820872840,"traceId":"b440dc895dd153e5"},{"name":"check-page","duration":165273,"timestamp":325191932123,"id":181,"parentId":172,"tags":{"page":"/"},"startTime":1773820872830,"traceId":"b440dc895dd153e5"},{"name":"is-page-static","duration":155084,"timestamp":325191942571,"id":183,"parentId":177,"tags":{},"startTime":1773820872841,"traceId":"b440dc895dd153e5"},{"name":"check-page","duration":165870,"timestamp":325191931827,"id":177,"parentId":172,"tags":{"page":"/_not-found"},"startTime":1773820872830,"traceId":"b440dc895dd153e5"},{"name":"is-page-static","duration":167311,"timestamp":325191942756,"id":184,"parentId":180,"tags":{},"startTime":1773820872841,"traceId":"b440dc895dd153e5"},{"name":"check-page","duration":178034,"timestamp":325191932081,"id":180,"parentId":172,"tags":{"page":"/app"},"startTime":1773820872830,"traceId":"b440dc895dd153e5"},{"name":"is-page-static","duration":195515,"timestamp":325191943576,"id":185,"parentId":179,"tags":{},"startTime":1773820872842,"traceId":"b440dc895dd153e5"},{"name":"check-page","duration":207152,"timestamp":325191932001,"id":179,"parentId":172,"tags":{"page":"/api/screenshot"},"startTime":1773820872830,"traceId":"b440dc895dd153e5"},{"name":"is-page-static","duration":196746,"timestamp":325191943893,"id":186,"parentId":178,"tags":{},"startTime":1773820872842,"traceId":"b440dc895dd153e5"},{"name":"check-page","duration":208964,"timestamp":325191931963,"id":178,"parentId":172,"tags":{"page":"/api/chat"},"startTime":1773820872830,"traceId":"b440dc895dd153e5"},{"name":"static-check","duration":238306,"timestamp":325191902663,"id":172,"parentId":1,"tags":{},"startTime":1773820872801,"traceId":"b440dc895dd153e5"},{"name":"load-dotenv","duration":23,"timestamp":325192171760,"id":191,"parentId":190,"tags":{},"startTime":1773820873070,"traceId":"b440dc895dd153e5"},{"name":"run-export-path-map","duration":275,"timestamp":325192244008,"id":192,"parentId":190,"tags":{},"startTime":1773820873142,"traceId":"b440dc895dd153e5"},{"name":"export-page","duration":607884,"timestamp":325192244870,"id":193,"parentId":190,"tags":{"path":"/404"},"startTime":1773820873143,"traceId":"b440dc895dd153e5"},{"name":"export-page","duration":607993,"timestamp":325192245055,"id":194,"parentId":190,"tags":{"path":"/500"},"startTime":1773820873143,"traceId":"b440dc895dd153e5"},{"name":"export-page","duration":624006,"timestamp":325192245133,"id":195,"parentId":190,"tags":{"path":"/"},"startTime":1773820873143,"traceId":"b440dc895dd153e5"},{"name":"export-page","duration":623882,"timestamp":325192245402,"id":199,"parentId":190,"tags":{"path":"/api/chat"},"startTime":1773820873143,"traceId":"b440dc895dd153e5"},{"name":"export-page","duration":624157,"timestamp":325192245198,"id":196,"parentId":190,"tags":{"path":"/_not-found"},"startTime":1773820873143,"traceId":"b440dc895dd153e5"},{"name":"export-page","duration":624076,"timestamp":325192245340,"id":198,"parentId":190,"tags":{"path":"/api/screenshot"},"startTime":1773820873143,"traceId":"b440dc895dd153e5"},{"name":"export-page","duration":624202,"timestamp":325192245275,"id":197,"parentId":190,"tags":{"path":"/app"},"startTime":1773820873143,"traceId":"b440dc895dd153e5"},{"name":"next-export","duration":1021687,"timestamp":325192171158,"id":190,"parentId":1,"tags":{},"startTime":1773820873069,"traceId":"b440dc895dd153e5"},{"name":"move-exported-app-not-found-","duration":9932,"timestamp":325193193541,"id":200,"parentId":189,"tags":{},"startTime":1773820874092,"traceId":"b440dc895dd153e5"},{"name":"move-exported-page","duration":24314,"timestamp":325193203639,"id":201,"parentId":189,"tags":{},"startTime":1773820874102,"traceId":"b440dc895dd153e5"},{"name":"static-generation","duration":1128016,"timestamp":325192166871,"id":189,"parentId":1,"tags":{},"startTime":1773820873065,"traceId":"b440dc895dd153e5"},{"name":"node-file-trace-build","duration":6529031,"timestamp":325192143432,"id":188,"parentId":1,"tags":{"isTurbotrace":"false"},"startTime":1773820873041,"traceId":"b440dc895dd153e5"},{"name":"apply-include-excludes","duration":482,"timestamp":325198672477,"id":202,"parentId":1,"tags":{},"startTime":1773820879571,"traceId":"b440dc895dd153e5"},{"name":"print-tree-view","duration":9809,"timestamp":325198673467,"id":203,"parentId":1,"tags":{},"startTime":1773820879572,"traceId":"b440dc895dd153e5"},{"name":"telemetry-flush","duration":51,"timestamp":325198683293,"id":204,"parentId":1,"tags":{},"startTime":1773820879581,"traceId":"b440dc895dd153e5"},{"name":"next-build","duration":14266971,"timestamp":325184416379,"id":1,"tags":{"buildMode":"default","isTurboBuild":"false","version":"14.2.35","isTurbopack":false,"has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1773820865314,"traceId":"b440dc895dd153e5"}]
1
+ [{"name":"generate-buildid","duration":216,"timestamp":516762038406,"id":4,"parentId":1,"tags":{},"startTime":1773883387448,"traceId":"b2a9ae05c3a21826"},{"name":"load-custom-routes","duration":197,"timestamp":516762038757,"id":5,"parentId":1,"tags":{},"startTime":1773883387449,"traceId":"b2a9ae05c3a21826"},{"name":"create-pages-mapping","duration":131,"timestamp":516762083485,"id":6,"parentId":1,"tags":{},"startTime":1773883387494,"traceId":"b2a9ae05c3a21826"},{"name":"collect-app-paths","duration":1991,"timestamp":516762083641,"id":7,"parentId":1,"tags":{},"startTime":1773883387494,"traceId":"b2a9ae05c3a21826"},{"name":"create-app-mapping","duration":499,"timestamp":516762085650,"id":8,"parentId":1,"tags":{},"startTime":1773883387496,"traceId":"b2a9ae05c3a21826"},{"name":"public-dir-conflict-check","duration":302,"timestamp":516762086375,"id":9,"parentId":1,"tags":{},"startTime":1773883387496,"traceId":"b2a9ae05c3a21826"},{"name":"generate-routes-manifest","duration":1551,"timestamp":516762086773,"id":10,"parentId":1,"tags":{},"startTime":1773883387497,"traceId":"b2a9ae05c3a21826"},{"name":"create-dist-dir","duration":100,"timestamp":516762088758,"id":11,"parentId":1,"tags":{},"startTime":1773883387499,"traceId":"b2a9ae05c3a21826"},{"name":"write-routes-manifest","duration":747,"timestamp":516762096727,"id":12,"parentId":1,"tags":{},"startTime":1773883387507,"traceId":"b2a9ae05c3a21826"},{"name":"generate-required-server-files","duration":267,"timestamp":516762097556,"id":13,"parentId":1,"tags":{},"startTime":1773883387508,"traceId":"b2a9ae05c3a21826"},{"name":"create-entrypoints","duration":19088,"timestamp":516762448579,"id":17,"parentId":15,"tags":{},"startTime":1773883387859,"traceId":"b2a9ae05c3a21826"},{"name":"generate-webpack-config","duration":238481,"timestamp":516762467795,"id":18,"parentId":16,"tags":{},"startTime":1773883387878,"traceId":"b2a9ae05c3a21826"},{"name":"next-trace-entrypoint-plugin","duration":1438,"timestamp":516762763328,"id":20,"parentId":19,"tags":{},"startTime":1773883388173,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":185300,"timestamp":516762769200,"id":24,"parentId":21,"tags":{"request":"next/dist/pages/_app"},"startTime":1773883388179,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":203781,"timestamp":516762769252,"id":29,"parentId":21,"tags":{"request":"next/dist/pages/_document"},"startTime":1773883388179,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":211590,"timestamp":516762769175,"id":23,"parentId":21,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1773883388179,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":226360,"timestamp":516762768880,"id":22,"parentId":21,"tags":{"request":"next-app-loader?page=%2F_not-found%2Fpage&name=app%2F_not-found%2Fpage&pagePath=next%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error&appDir=%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fapp%2Fwebapp%2Fsrc%2Fapp&appPaths=next%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&nextConfigExperimentalUseEarlyImport=false&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1773883388179,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":226031,"timestamp":516762769227,"id":26,"parentId":21,"tags":{"request":"next-app-loader?page=%2Fapp%2Fpage&name=app%2Fapp%2Fpage&pagePath=private-next-app-dir%2Fapp%2Fpage.tsx&appDir=%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fapp%2Fwebapp%2Fsrc%2Fapp&appPaths=%2Fapp%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&nextConfigExperimentalUseEarlyImport=false&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1773883388179,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":247522,"timestamp":516762769215,"id":25,"parentId":21,"tags":{"request":"next-app-loader?page=%2Fpage&name=app%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fapp%2Fwebapp%2Fsrc%2Fapp&appPaths=%2Fpage&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&nextConfigExperimentalUseEarlyImport=false&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1773883388179,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":295155,"timestamp":516762769236,"id":27,"parentId":21,"tags":{"request":"next-app-loader?page=%2Fapi%2Fchat%2Froute&name=app%2Fapi%2Fchat%2Froute&pagePath=private-next-app-dir%2Fapi%2Fchat%2Froute.ts&appDir=%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fapp%2Fwebapp%2Fsrc%2Fapp&appPaths=%2Fapi%2Fchat%2Froute&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&nextConfigExperimentalUseEarlyImport=false&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1773883388179,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":295173,"timestamp":516762769244,"id":28,"parentId":21,"tags":{"request":"next-app-loader?page=%2Fapi%2Fscreenshot%2Froute&name=app%2Fapi%2Fscreenshot%2Froute&pagePath=private-next-app-dir%2Fapi%2Fscreenshot%2Froute.ts&appDir=%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fapp%2Fwebapp%2Fsrc%2Fapp&appPaths=%2Fapi%2Fscreenshot%2Froute&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&basePath=&assetPrefix=&nextConfigOutput=&nextConfigExperimentalUseEarlyImport=false&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1773883388179,"traceId":"b2a9ae05c3a21826"},{"name":"make","duration":443879,"timestamp":516762768643,"id":21,"parentId":19,"tags":{},"startTime":1773883388179,"traceId":"b2a9ae05c3a21826"},{"name":"get-entries","duration":529,"timestamp":516763213640,"id":44,"parentId":43,"tags":{},"startTime":1773883388624,"traceId":"b2a9ae05c3a21826"},{"name":"node-file-trace-plugin","duration":73105,"timestamp":516763220366,"id":45,"parentId":43,"tags":{"traceEntryCount":"12"},"startTime":1773883388630,"traceId":"b2a9ae05c3a21826"},{"name":"collect-traced-files","duration":785,"timestamp":516763293485,"id":46,"parentId":43,"tags":{},"startTime":1773883388704,"traceId":"b2a9ae05c3a21826"},{"name":"finish-modules","duration":80790,"timestamp":516763213484,"id":43,"parentId":20,"tags":{},"startTime":1773883388624,"traceId":"b2a9ae05c3a21826"},{"name":"chunk-graph","duration":12221,"timestamp":516763366702,"id":48,"parentId":47,"tags":{},"startTime":1773883388777,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-modules","duration":17,"timestamp":516763379006,"id":50,"parentId":47,"tags":{},"startTime":1773883388789,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-chunks","duration":8789,"timestamp":516763379076,"id":51,"parentId":47,"tags":{},"startTime":1773883388789,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-tree","duration":93,"timestamp":516763387914,"id":52,"parentId":47,"tags":{},"startTime":1773883388798,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-chunk-modules","duration":25708,"timestamp":516763388066,"id":53,"parentId":47,"tags":{},"startTime":1773883388798,"traceId":"b2a9ae05c3a21826"},{"name":"optimize","duration":34944,"timestamp":516763378970,"id":49,"parentId":47,"tags":{},"startTime":1773883388789,"traceId":"b2a9ae05c3a21826"},{"name":"module-hash","duration":18290,"timestamp":516763435343,"id":54,"parentId":47,"tags":{},"startTime":1773883388845,"traceId":"b2a9ae05c3a21826"},{"name":"code-generation","duration":6969,"timestamp":516763453682,"id":55,"parentId":47,"tags":{},"startTime":1773883388864,"traceId":"b2a9ae05c3a21826"},{"name":"hash","duration":5670,"timestamp":516763464146,"id":56,"parentId":47,"tags":{},"startTime":1773883388874,"traceId":"b2a9ae05c3a21826"},{"name":"code-generation-jobs","duration":221,"timestamp":516763469814,"id":57,"parentId":47,"tags":{},"startTime":1773883388880,"traceId":"b2a9ae05c3a21826"},{"name":"module-assets","duration":331,"timestamp":516763469951,"id":58,"parentId":47,"tags":{},"startTime":1773883388880,"traceId":"b2a9ae05c3a21826"},{"name":"create-chunk-assets","duration":1322,"timestamp":516763470289,"id":59,"parentId":47,"tags":{},"startTime":1773883388880,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":309,"timestamp":516763478404,"id":61,"parentId":60,"tags":{"name":"../app/_not-found/page.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":199,"timestamp":516763478518,"id":62,"parentId":60,"tags":{"name":"../pages/_error.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":190,"timestamp":516763478528,"id":63,"parentId":60,"tags":{"name":"../pages/_app.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":185,"timestamp":516763478535,"id":64,"parentId":60,"tags":{"name":"../app/page.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":180,"timestamp":516763478540,"id":65,"parentId":60,"tags":{"name":"../app/app/page.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":176,"timestamp":516763478545,"id":66,"parentId":60,"tags":{"name":"../app/api/chat/route.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":173,"timestamp":516763478549,"id":67,"parentId":60,"tags":{"name":"../app/api/screenshot/route.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":169,"timestamp":516763478554,"id":68,"parentId":60,"tags":{"name":"../pages/_document.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":166,"timestamp":516763478558,"id":69,"parentId":60,"tags":{"name":"../webpack-runtime.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":50,"timestamp":516763478675,"id":70,"parentId":60,"tags":{"name":"361.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":36,"timestamp":516763478689,"id":71,"parentId":60,"tags":{"name":"136.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":29,"timestamp":516763478696,"id":72,"parentId":60,"tags":{"name":"522.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":26,"timestamp":516763478700,"id":73,"parentId":60,"tags":{"name":"679.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":23,"timestamp":516763478704,"id":74,"parentId":60,"tags":{"name":"124.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":20,"timestamp":516763478707,"id":75,"parentId":60,"tags":{"name":"135.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":18,"timestamp":516763478710,"id":76,"parentId":60,"tags":{"name":"708.js","cache":"HIT"},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"terser-webpack-plugin-optimize","duration":4741,"timestamp":516763473993,"id":60,"parentId":19,"tags":{"compilationName":"server","swcMinify":true},"startTime":1773883388884,"traceId":"b2a9ae05c3a21826"},{"name":"css-minimizer-plugin","duration":102,"timestamp":516763478806,"id":77,"parentId":19,"tags":{},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"create-trace-assets","duration":772,"timestamp":516763479040,"id":78,"parentId":20,"tags":{},"startTime":1773883388889,"traceId":"b2a9ae05c3a21826"},{"name":"seal","duration":155025,"timestamp":516763330485,"id":47,"parentId":19,"tags":{},"startTime":1773883388741,"traceId":"b2a9ae05c3a21826"},{"name":"webpack-compilation","duration":725728,"timestamp":516762761958,"id":19,"parentId":16,"tags":{"name":"server"},"startTime":1773883388172,"traceId":"b2a9ae05c3a21826"},{"name":"emit","duration":4687,"timestamp":516763487952,"id":79,"parentId":16,"tags":{},"startTime":1773883388898,"traceId":"b2a9ae05c3a21826"},{"name":"webpack-close","duration":539,"timestamp":516763493065,"id":80,"parentId":16,"tags":{"name":"server"},"startTime":1773883388903,"traceId":"b2a9ae05c3a21826"},{"name":"webpack-generate-error-stats","duration":1984,"timestamp":516763493638,"id":81,"parentId":80,"tags":{},"startTime":1773883388904,"traceId":"b2a9ae05c3a21826"},{"name":"run-webpack-compiler","duration":1047371,"timestamp":516762448577,"id":16,"parentId":15,"tags":{},"startTime":1773883387859,"traceId":"b2a9ae05c3a21826"},{"name":"format-webpack-messages","duration":55,"timestamp":516763495953,"id":82,"parentId":15,"tags":{},"startTime":1773883388906,"traceId":"b2a9ae05c3a21826"},{"name":"worker-main-server","duration":1047740,"timestamp":516762448336,"id":15,"parentId":1,"tags":{},"startTime":1773883387858,"traceId":"b2a9ae05c3a21826"},{"name":"create-entrypoints","duration":20206,"timestamp":516763858909,"id":85,"parentId":83,"tags":{},"startTime":1773883389269,"traceId":"b2a9ae05c3a21826"},{"name":"generate-webpack-config","duration":242838,"timestamp":516763879255,"id":86,"parentId":84,"tags":{},"startTime":1773883389289,"traceId":"b2a9ae05c3a21826"},{"name":"make","duration":613,"timestamp":516764186951,"id":88,"parentId":87,"tags":{},"startTime":1773883389597,"traceId":"b2a9ae05c3a21826"},{"name":"chunk-graph","duration":518,"timestamp":516764189988,"id":90,"parentId":89,"tags":{},"startTime":1773883389600,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-modules","duration":16,"timestamp":516764190585,"id":92,"parentId":89,"tags":{},"startTime":1773883389601,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-chunks","duration":718,"timestamp":516764190662,"id":93,"parentId":89,"tags":{},"startTime":1773883389601,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-tree","duration":88,"timestamp":516764191424,"id":94,"parentId":89,"tags":{},"startTime":1773883389602,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-chunk-modules","duration":483,"timestamp":516764191658,"id":95,"parentId":89,"tags":{},"startTime":1773883389602,"traceId":"b2a9ae05c3a21826"},{"name":"optimize","duration":1659,"timestamp":516764190543,"id":91,"parentId":89,"tags":{},"startTime":1773883389601,"traceId":"b2a9ae05c3a21826"},{"name":"module-hash","duration":72,"timestamp":516764192988,"id":96,"parentId":89,"tags":{},"startTime":1773883389603,"traceId":"b2a9ae05c3a21826"},{"name":"code-generation","duration":173,"timestamp":516764193088,"id":97,"parentId":89,"tags":{},"startTime":1773883389603,"traceId":"b2a9ae05c3a21826"},{"name":"hash","duration":291,"timestamp":516764193437,"id":98,"parentId":89,"tags":{},"startTime":1773883389604,"traceId":"b2a9ae05c3a21826"},{"name":"code-generation-jobs","duration":85,"timestamp":516764193726,"id":99,"parentId":89,"tags":{},"startTime":1773883389604,"traceId":"b2a9ae05c3a21826"},{"name":"module-assets","duration":56,"timestamp":516764193791,"id":100,"parentId":89,"tags":{},"startTime":1773883389604,"traceId":"b2a9ae05c3a21826"},{"name":"create-chunk-assets","duration":152,"timestamp":516764193854,"id":101,"parentId":89,"tags":{},"startTime":1773883389604,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":202,"timestamp":516764218077,"id":103,"parentId":102,"tags":{"name":"interception-route-rewrite-manifest.js","cache":"HIT"},"startTime":1773883389628,"traceId":"b2a9ae05c3a21826"},{"name":"terser-webpack-plugin-optimize","duration":10610,"timestamp":516764207676,"id":102,"parentId":87,"tags":{"compilationName":"edge-server","swcMinify":true},"startTime":1773883389618,"traceId":"b2a9ae05c3a21826"},{"name":"css-minimizer-plugin","duration":95,"timestamp":516764218356,"id":104,"parentId":87,"tags":{},"startTime":1773883389628,"traceId":"b2a9ae05c3a21826"},{"name":"seal","duration":30886,"timestamp":516764189548,"id":89,"parentId":87,"tags":{},"startTime":1773883389600,"traceId":"b2a9ae05c3a21826"},{"name":"webpack-compilation","duration":39543,"timestamp":516764181144,"id":87,"parentId":84,"tags":{"name":"edge-server"},"startTime":1773883389591,"traceId":"b2a9ae05c3a21826"},{"name":"emit","duration":1538,"timestamp":516764220965,"id":105,"parentId":84,"tags":{},"startTime":1773883389631,"traceId":"b2a9ae05c3a21826"},{"name":"webpack-close","duration":537,"timestamp":516764222922,"id":106,"parentId":84,"tags":{"name":"edge-server"},"startTime":1773883389633,"traceId":"b2a9ae05c3a21826"},{"name":"webpack-generate-error-stats","duration":2157,"timestamp":516764223494,"id":107,"parentId":106,"tags":{},"startTime":1773883389634,"traceId":"b2a9ae05c3a21826"},{"name":"run-webpack-compiler","duration":366895,"timestamp":516763858907,"id":84,"parentId":83,"tags":{},"startTime":1773883389269,"traceId":"b2a9ae05c3a21826"},{"name":"format-webpack-messages","duration":56,"timestamp":516764225807,"id":108,"parentId":83,"tags":{},"startTime":1773883389636,"traceId":"b2a9ae05c3a21826"},{"name":"worker-main-edge-server","duration":367266,"timestamp":516763858659,"id":83,"parentId":1,"tags":{},"startTime":1773883389269,"traceId":"b2a9ae05c3a21826"},{"name":"create-entrypoints","duration":19951,"timestamp":516764572206,"id":111,"parentId":109,"tags":{},"startTime":1773883389982,"traceId":"b2a9ae05c3a21826"},{"name":"generate-webpack-config","duration":238547,"timestamp":516764592279,"id":112,"parentId":110,"tags":{},"startTime":1773883390002,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":141874,"timestamp":516764898591,"id":123,"parentId":114,"tags":{"request":"next-flight-client-entry-loader?server=false!"},"startTime":1773883390309,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":196848,"timestamp":516764898429,"id":118,"parentId":114,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error&page=%2F_not-found%2Fpage!"},"startTime":1773883390309,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":206038,"timestamp":516764898549,"id":119,"parentId":114,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1773883390309,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":206029,"timestamp":516764898577,"id":121,"parentId":114,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1773883390309,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":214210,"timestamp":516764898409,"id":117,"parentId":114,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1773883390309,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":214256,"timestamp":516764898375,"id":116,"parentId":114,"tags":{"request":"./../../node_modules/next/dist/client/app-next.js"},"startTime":1773883390309,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":215021,"timestamp":516764898584,"id":122,"parentId":114,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fapp%2Fwebapp%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1773883390309,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":217943,"timestamp":516764898060,"id":115,"parentId":114,"tags":{"request":"./../../node_modules/next/dist/client/next.js"},"startTime":1773883390308,"traceId":"b2a9ae05c3a21826"}]
2
+ [{"name":"add-entry","duration":217454,"timestamp":516764898567,"id":120,"parentId":114,"tags":{"request":"/Users/pete/repos/growthgirl/node_modules/next/dist/client/router.js"},"startTime":1773883390309,"traceId":"b2a9ae05c3a21826"},{"name":"add-entry","duration":293663,"timestamp":516764898776,"id":124,"parentId":114,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fpete%2Frepos%2Fgrowthgirl%2Fapp%2Fwebapp%2Fsrc%2Fapp%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1773883390309,"traceId":"b2a9ae05c3a21826"},{"name":"make","duration":295132,"timestamp":516764897741,"id":114,"parentId":113,"tags":{},"startTime":1773883390308,"traceId":"b2a9ae05c3a21826"},{"name":"chunk-graph","duration":9464,"timestamp":516765241673,"id":126,"parentId":125,"tags":{},"startTime":1773883390652,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-modules","duration":17,"timestamp":516765251225,"id":128,"parentId":125,"tags":{},"startTime":1773883390661,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-chunks","duration":7210,"timestamp":516765252812,"id":130,"parentId":125,"tags":{},"startTime":1773883390663,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-tree","duration":98,"timestamp":516765260083,"id":131,"parentId":125,"tags":{},"startTime":1773883390670,"traceId":"b2a9ae05c3a21826"},{"name":"optimize-chunk-modules","duration":16099,"timestamp":516765260241,"id":132,"parentId":125,"tags":{},"startTime":1773883390670,"traceId":"b2a9ae05c3a21826"},{"name":"optimize","duration":25224,"timestamp":516765251185,"id":127,"parentId":125,"tags":{},"startTime":1773883390661,"traceId":"b2a9ae05c3a21826"},{"name":"module-hash","duration":12525,"timestamp":516765294568,"id":133,"parentId":125,"tags":{},"startTime":1773883390705,"traceId":"b2a9ae05c3a21826"},{"name":"code-generation","duration":5928,"timestamp":516765307132,"id":134,"parentId":125,"tags":{},"startTime":1773883390717,"traceId":"b2a9ae05c3a21826"},{"name":"hash","duration":6777,"timestamp":516765316926,"id":135,"parentId":125,"tags":{},"startTime":1773883390727,"traceId":"b2a9ae05c3a21826"},{"name":"code-generation-jobs","duration":184,"timestamp":516765323701,"id":136,"parentId":125,"tags":{},"startTime":1773883390734,"traceId":"b2a9ae05c3a21826"},{"name":"module-assets","duration":262,"timestamp":516765323857,"id":137,"parentId":125,"tags":{},"startTime":1773883390734,"traceId":"b2a9ae05c3a21826"},{"name":"create-chunk-assets","duration":2233,"timestamp":516765324125,"id":138,"parentId":125,"tags":{},"startTime":1773883390734,"traceId":"b2a9ae05c3a21826"},{"name":"NextJsBuildManifest-generateClientManifest","duration":747,"timestamp":516765327900,"id":140,"parentId":113,"tags":{},"startTime":1773883390738,"traceId":"b2a9ae05c3a21826"},{"name":"NextJsBuildManifest-createassets","duration":1444,"timestamp":516765327208,"id":139,"parentId":113,"tags":{},"startTime":1773883390737,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":689,"timestamp":516765333873,"id":142,"parentId":141,"tags":{"name":"static/chunks/main-7b05b3530a4fe793.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":560,"timestamp":516765334006,"id":143,"parentId":141,"tags":{"name":"static/chunks/main-app-106dd83f859b9dfa.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":552,"timestamp":516765334016,"id":144,"parentId":141,"tags":{"name":"static/chunks/app/_not-found/page-655fd05e2bb4ddca.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":545,"timestamp":516765334023,"id":145,"parentId":141,"tags":{"name":"static/chunks/pages/_app-10a93ab5b7c32eb3.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":540,"timestamp":516765334029,"id":146,"parentId":141,"tags":{"name":"static/chunks/pages/_error-2d792b2a41857be4.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":536,"timestamp":516765334034,"id":147,"parentId":141,"tags":{"name":"static/chunks/app/layout-57acb80d8da0067a.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":527,"timestamp":516765334044,"id":148,"parentId":141,"tags":{"name":"static/chunks/app/page-1f82fbf792d529fd.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":522,"timestamp":516765334049,"id":149,"parentId":141,"tags":{"name":"static/chunks/app/app/page-d38c1e48d37def82.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":518,"timestamp":516765334054,"id":150,"parentId":141,"tags":{"name":"static/chunks/webpack-9e4fd47eb2c72de4.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":427,"timestamp":516765334146,"id":151,"parentId":141,"tags":{"name":"static/chunks/framework-3664cab31236a9fa.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":413,"timestamp":516765334161,"id":152,"parentId":141,"tags":{"name":"static/chunks/02d30405-01bdf403629d0188.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":406,"timestamp":516765334169,"id":153,"parentId":141,"tags":{"name":"static/chunks/1dd3208c-2143388ffa327752.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":400,"timestamp":516765334175,"id":154,"parentId":141,"tags":{"name":"static/chunks/528-31e5ce0646826d75.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":397,"timestamp":516765334180,"id":155,"parentId":141,"tags":{"name":"static/chunks/631-0edca788fa58159b.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":393,"timestamp":516765334184,"id":156,"parentId":141,"tags":{"name":"server/middleware-react-loadable-manifest.js","cache":"HIT"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":90,"timestamp":516765334488,"id":158,"parentId":141,"tags":{"name":"server/middleware-build-manifest.js","cache":"HIT"},"startTime":1773883390745,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":20,"timestamp":516765334559,"id":160,"parentId":141,"tags":{"name":"server/next-font-manifest.js","cache":"HIT"},"startTime":1773883390745,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":2732,"timestamp":516765334196,"id":157,"parentId":141,"tags":{"name":"static/VAxJ7wm0K-fSKpsIoB9lY/_ssgManifest.js","cache":"MISS"},"startTime":1773883390744,"traceId":"b2a9ae05c3a21826"},{"name":"minify-js","duration":2457,"timestamp":516765334494,"id":159,"parentId":141,"tags":{"name":"static/VAxJ7wm0K-fSKpsIoB9lY/_buildManifest.js","cache":"MISS"},"startTime":1773883390745,"traceId":"b2a9ae05c3a21826"},{"name":"terser-webpack-plugin-optimize","duration":7328,"timestamp":516765329626,"id":141,"parentId":113,"tags":{"compilationName":"client","swcMinify":true},"startTime":1773883390740,"traceId":"b2a9ae05c3a21826"},{"name":"minify-css","duration":68,"timestamp":516765337177,"id":162,"parentId":161,"tags":{"file":"static/css/1f9b14650cf68e55.css","cache":"HIT"},"startTime":1773883390747,"traceId":"b2a9ae05c3a21826"},{"name":"css-minimizer-plugin","duration":203,"timestamp":516765337044,"id":161,"parentId":113,"tags":{},"startTime":1773883390747,"traceId":"b2a9ae05c3a21826"},{"name":"seal","duration":120469,"timestamp":516765222665,"id":125,"parentId":113,"tags":{},"startTime":1773883390633,"traceId":"b2a9ae05c3a21826"},{"name":"webpack-compilation","duration":451273,"timestamp":516764892070,"id":113,"parentId":110,"tags":{"name":"client"},"startTime":1773883390302,"traceId":"b2a9ae05c3a21826"},{"name":"emit","duration":4534,"timestamp":516765343589,"id":163,"parentId":110,"tags":{},"startTime":1773883390754,"traceId":"b2a9ae05c3a21826"},{"name":"webpack-close","duration":35015,"timestamp":516765348555,"id":164,"parentId":110,"tags":{"name":"client"},"startTime":1773883390759,"traceId":"b2a9ae05c3a21826"},{"name":"webpack-generate-error-stats","duration":2097,"timestamp":516765383617,"id":165,"parentId":164,"tags":{},"startTime":1773883390794,"traceId":"b2a9ae05c3a21826"},{"name":"run-webpack-compiler","duration":813740,"timestamp":516764572203,"id":110,"parentId":109,"tags":{},"startTime":1773883389982,"traceId":"b2a9ae05c3a21826"},{"name":"format-webpack-messages","duration":54,"timestamp":516765385948,"id":166,"parentId":109,"tags":{},"startTime":1773883390796,"traceId":"b2a9ae05c3a21826"},{"name":"worker-main-client","duration":814121,"timestamp":516764571950,"id":109,"parentId":1,"tags":{},"startTime":1773883389982,"traceId":"b2a9ae05c3a21826"},{"name":"verify-and-lint","duration":67701,"timestamp":516765402527,"id":170,"parentId":1,"tags":{},"startTime":1773883390813,"traceId":"b2a9ae05c3a21826"},{"name":"verify-typescript-setup","duration":2136370,"timestamp":516765401215,"id":169,"parentId":1,"tags":{},"startTime":1773883390811,"traceId":"b2a9ae05c3a21826"},{"name":"check-static-error-page","duration":3075,"timestamp":516767559222,"id":173,"parentId":172,"tags":{},"startTime":1773883392969,"traceId":"b2a9ae05c3a21826"},{"name":"check-page","duration":1859,"timestamp":516767579467,"id":174,"parentId":172,"tags":{"page":"/_app"},"startTime":1773883392990,"traceId":"b2a9ae05c3a21826"},{"name":"check-page","duration":972,"timestamp":516767580371,"id":176,"parentId":172,"tags":{"page":"/_document"},"startTime":1773883392991,"traceId":"b2a9ae05c3a21826"},{"name":"check-page","duration":1262,"timestamp":516767580271,"id":175,"parentId":172,"tags":{"page":"/_error"},"startTime":1773883392990,"traceId":"b2a9ae05c3a21826"},{"name":"is-page-static","duration":477471,"timestamp":516767590520,"id":182,"parentId":177,"tags":{},"startTime":1773883393001,"traceId":"b2a9ae05c3a21826"},{"name":"check-page","duration":487707,"timestamp":516767580402,"id":177,"parentId":172,"tags":{"page":"/_not-found"},"startTime":1773883392991,"traceId":"b2a9ae05c3a21826"},{"name":"is-page-static","duration":496582,"timestamp":516767590947,"id":184,"parentId":180,"tags":{},"startTime":1773883393001,"traceId":"b2a9ae05c3a21826"},{"name":"check-page","duration":506892,"timestamp":516767580697,"id":180,"parentId":172,"tags":{"page":"/app"},"startTime":1773883392991,"traceId":"b2a9ae05c3a21826"},{"name":"is-page-static","duration":500063,"timestamp":516767590727,"id":183,"parentId":181,"tags":{},"startTime":1773883393001,"traceId":"b2a9ae05c3a21826"},{"name":"check-page","duration":510130,"timestamp":516767580726,"id":181,"parentId":172,"tags":{"page":"/"},"startTime":1773883392991,"traceId":"b2a9ae05c3a21826"},{"name":"is-page-static","duration":526719,"timestamp":516767592238,"id":186,"parentId":178,"tags":{},"startTime":1773883393002,"traceId":"b2a9ae05c3a21826"},{"name":"check-page","duration":538500,"timestamp":516767580503,"id":178,"parentId":172,"tags":{"page":"/api/chat"},"startTime":1773883392991,"traceId":"b2a9ae05c3a21826"},{"name":"is-page-static","duration":542506,"timestamp":516767591792,"id":185,"parentId":179,"tags":{},"startTime":1773883393002,"traceId":"b2a9ae05c3a21826"},{"name":"check-page","duration":554249,"timestamp":516767580534,"id":179,"parentId":172,"tags":{"page":"/api/screenshot"},"startTime":1773883392991,"traceId":"b2a9ae05c3a21826"},{"name":"static-check","duration":576017,"timestamp":516767558794,"id":172,"parentId":1,"tags":{},"startTime":1773883392969,"traceId":"b2a9ae05c3a21826"},{"name":"load-dotenv","duration":14,"timestamp":516768156405,"id":191,"parentId":190,"tags":{},"startTime":1773883393567,"traceId":"b2a9ae05c3a21826"},{"name":"run-export-path-map","duration":209,"timestamp":516768209530,"id":192,"parentId":190,"tags":{},"startTime":1773883393620,"traceId":"b2a9ae05c3a21826"},{"name":"export-page","duration":568590,"timestamp":516768210603,"id":199,"parentId":190,"tags":{"path":"/api/screenshot"},"startTime":1773883393621,"traceId":"b2a9ae05c3a21826"},{"name":"export-page","duration":584282,"timestamp":516768210235,"id":193,"parentId":190,"tags":{"path":"/404"},"startTime":1773883393620,"traceId":"b2a9ae05c3a21826"},{"name":"export-page","duration":584226,"timestamp":516768210385,"id":194,"parentId":190,"tags":{"path":"/500"},"startTime":1773883393621,"traceId":"b2a9ae05c3a21826"},{"name":"export-page","duration":584149,"timestamp":516768210516,"id":198,"parentId":190,"tags":{"path":"/api/chat"},"startTime":1773883393621,"traceId":"b2a9ae05c3a21826"},{"name":"export-page","duration":584217,"timestamp":516768210490,"id":197,"parentId":190,"tags":{"path":"/"},"startTime":1773883393621,"traceId":"b2a9ae05c3a21826"},{"name":"export-page","duration":584308,"timestamp":516768210431,"id":195,"parentId":190,"tags":{"path":"/_not-found"},"startTime":1773883393621,"traceId":"b2a9ae05c3a21826"},{"name":"export-page","duration":584305,"timestamp":516768210463,"id":196,"parentId":190,"tags":{"path":"/app"},"startTime":1773883393621,"traceId":"b2a9ae05c3a21826"},{"name":"next-export","duration":885680,"timestamp":516768155809,"id":190,"parentId":1,"tags":{},"startTime":1773883393566,"traceId":"b2a9ae05c3a21826"},{"name":"move-exported-app-not-found-","duration":1812,"timestamp":516769042049,"id":200,"parentId":189,"tags":{},"startTime":1773883394452,"traceId":"b2a9ae05c3a21826"},{"name":"move-exported-page","duration":7972,"timestamp":516769043976,"id":201,"parentId":189,"tags":{},"startTime":1773883394454,"traceId":"b2a9ae05c3a21826"},{"name":"static-generation","duration":917851,"timestamp":516768152542,"id":189,"parentId":1,"tags":{},"startTime":1773883393563,"traceId":"b2a9ae05c3a21826"},{"name":"node-file-trace-build","duration":4099122,"timestamp":516768137179,"id":188,"parentId":1,"tags":{"isTurbotrace":"false"},"startTime":1773883393547,"traceId":"b2a9ae05c3a21826"},{"name":"apply-include-excludes","duration":416,"timestamp":516772236317,"id":202,"parentId":1,"tags":{},"startTime":1773883397647,"traceId":"b2a9ae05c3a21826"},{"name":"print-tree-view","duration":13755,"timestamp":516772237084,"id":203,"parentId":1,"tags":{},"startTime":1773883397647,"traceId":"b2a9ae05c3a21826"},{"name":"telemetry-flush","duration":57,"timestamp":516772250868,"id":204,"parentId":1,"tags":{},"startTime":1773883397661,"traceId":"b2a9ae05c3a21826"},{"name":"next-build","duration":10285000,"timestamp":516761965930,"id":1,"tags":{"buildMode":"default","isTurboBuild":"false","version":"14.2.35","isTurbopack":false,"has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1773883387376,"traceId":"b2a9ae05c3a21826"}]
@@ -1,4 +1,4 @@
1
- // File: /home/floydophone/repos/domyjob/app/webapp/src/app/api/chat/route.ts
1
+ // File: /Users/pete/repos/growthgirl/app/webapp/src/app/api/chat/route.ts
2
2
  import * as entry from '../../../../../src/app/api/chat/route.js'
3
3
  import type { NextRequest } from 'next/server.js'
4
4