antigravity-mobile-proxy 0.1.13 → 0.1.16

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.
@@ -1,3 +1,3 @@
1
- module.exports=[53506,e=>{"use strict";var t=e.i(29476),r=e.i(13231),n=e.i(40911),s=e.i(93846);let o=!1,i=null;async function a(){o&&s.default.workbenchPage||(i||(i=(async()=>{try{await (0,t.connectToWorkbench)(s.default),o=!0,c();return}catch(e){n.logger.warn("[CDP Init] Initial connection failed:",e.message)}n.logger.info("[CDP Init] Attempting auto-recovery...");for(let e=1;e<=3;e++){n.logger.info(`[CDP Init] Recovery attempt ${e}/3`);let i=await (0,r.isCdpServerActive)();if(i.active&&i.windowCount>0){n.logger.info(`[CDP Init] CDP active with ${i.windowCount} window(s). Retrying connection without restart...`),l();try{await (0,t.connectToWorkbench)(s.default),o=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(t){n.logger.warn(`[CDP Init] Retry ${e} failed: ${t.message}`),await new Promise(e=>setTimeout(e,2e3));continue}}if(i.active&&0===i.windowCount)if(n.logger.warn("[CDP Init] CDP server active but 0 workbench pages. Waiting for pages to load..."),await (0,r.waitForWorkbenchPages)(1e4)){n.logger.info("[CDP Init] Workbench pages appeared! Connecting..."),l();try{await (0,t.connectToWorkbench)(s.default),o=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(e){n.logger.warn(`[CDP Init] Connection after page wait failed: ${e.message}`)}}else n.logger.warn("[CDP Init] No workbench pages appeared after 10s. Will kill and restart...");else i.active||n.logger.warn("[CDP Init] CDP server not reachable. Starting Antigravity with CDP...");let a=await (0,r.startCdpServer)(".",!0);if(!a.success){n.logger.error(`[CDP Init] Auto-recovery failed: ${a.message}`),await new Promise(e=>setTimeout(e,3e3));continue}n.logger.info(`[CDP Init] Antigravity restarted: ${a.message}`),await new Promise(e=>setTimeout(e,3e3)),l();try{await (0,t.connectToWorkbench)(s.default),o=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(t){n.logger.error(`[CDP Init] Recovery attempt ${e} connection failed: ${t.message}`),await new Promise(e=>setTimeout(e,2e3))}}n.logger.error("[CDP Init] All 3 recovery attempts failed. Please start Antigravity manually with --remote-debugging-port=9223"),i=null})()),await i)}function l(){if(s.default.browser){try{s.default.browser.disconnect()}catch{}s.default.browser=null,s.default.workbenchPage=null,s.default.allWorkbenches=[]}}function c(){s.default.browser?.on("disconnected",()=>{n.logger.error("[CDP] Browser disconnected. Will reconnect on next request."),o=!1,i=null,s.default.workbenchPage=null,s.default.browser=null,s.default.allWorkbenches=[]}),s.default.workbenchPage?.on("close",()=>{n.logger.warn("[CDP] Workbench page closed. Will reconnect on next request."),o=!1,i=null,s.default.workbenchPage=null})}process.platform,e.s(["ensureCdpConnection",()=>a])},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},93846,e=>{"use strict";let t=globalThis.__PROXY_CTX||{workbenchPage:null,browser:null,allWorkbenches:[],activeWindowIdx:0,activeConversationId:null,activeTitle:null,lastActionTimestamp:0};e.s(["default",0,t])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},40911,e=>{"use strict";let t=new class{level="info";constructor(){this.level=process.env.LOG_LEVEL||"info"}shouldLog(e){let t=["debug","info","warn","error"];return t.indexOf(e)>=t.indexOf(this.level)}debug(e,t){this.shouldLog("debug")&&console.debug(`[DEBUG] ${e}`,t||"")}info(e,t){this.shouldLog("info")&&console.info(`[INFO] ${e}`,t||"")}warn(e,t){this.shouldLog("warn")&&console.warn(`[WARN] ${e}`,t||"")}error(e,t){this.shouldLog("error")&&console.error(`[ERROR] ${e}`,t||"")}};e.s(["logger",0,t])},13231,e=>{"use strict";var t=e.i(33405),r=e.i(24361),n=e.i(22734),s=e.i(14747),o=e.i(46786),i=e.i(40911);let a=(0,r.promisify)(t.exec),l=parseInt(process.env.CDP_PORT||"9223",10),c=o.platform()||globalThis.process&&globalThis.process.platform||"unknown",u="win32"===c,g=!u&&"linux"===c&&(()=>{try{return/microsoft|wsl/i.test((0,n.readFileSync)("/proc/version","utf8"))}catch{return!1}})();function d(){if(process.env.ANTIGRAVITY_BINARY){let e=process.env.ANTIGRAVITY_BINARY;return(0,n.existsSync)(e)||i.logger.warn(`[ProcessManager] ANTIGRAVITY_BINARY set to "${e}" but file does not exist.`),e}if(g){let e="/mnt/c/Users",t=[];try{let r=new Set(["Public","Default","Default User","All Users","desktop.ini"]);for(let o of(0,n.readdirSync)(e).filter(e=>!r.has(e)))t.push((0,s.resolve)(e,o,"AppData/Local/Programs/Antigravity/Antigravity.exe"),(0,s.resolve)(e,o,"AppData/Local/Programs/antigravity/Antigravity.exe"),(0,s.resolve)(e,o,"AppData/Local/Antigravity/Antigravity.exe"))}catch(t){i.logger.warn(`[ProcessManager] Could not scan ${e}: ${t.message}`)}for(let e of(t.push("/mnt/c/Program Files/Google/Antigravity/Antigravity.exe","/mnt/c/Program Files/Antigravity/Antigravity.exe","/mnt/c/Program Files (x86)/Antigravity/Antigravity.exe"),t))if((0,n.existsSync)(e))return i.logger.info(`[ProcessManager] Found Antigravity binary via WSL at: ${e}`),e;i.logger.warn("[ProcessManager] WSL detected but Antigravity.exe not found in /mnt/c/. Falling back to Linux path.")}return"/usr/share/antigravity/antigravity"}async function w(){try{g?await a("taskkill.exe /F /IM Antigravity.exe /T 2>/dev/null || true"):await a("killall antigravity 2>/dev/null || true"),i.logger.info("[ProcessManager] Killed existing Antigravity processes."),await new Promise(e=>setTimeout(e,u||g?2500:1500))}catch{}}i.logger.info(`[ProcessManager] Platform detection: runtimePlatform="${c}", os.type()="${o.type()}", IS_WIN=${u}, IS_MAC=${"darwin"===c}, IS_WSL=${g}`),g&&i.logger.info("[ProcessManager] WSL environment detected — will resolve Windows binary paths via /mnt/c/");let f=null;async function p(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{active:!1,windowCount:0,error:`HTTP ${e.status}`};let t=(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski"));return{active:!0,windowCount:t.length}}catch(e){return{active:!1,windowCount:0,error:e.message}}}async function v(e=".",r=!1){let o=await p();if(o.active&&o.windowCount>0&&!r)return{success:!0,message:`CDP server already active on port ${l} with ${o.windowCount} window(s).`};r&&await w();let a=d(),c=(0,s.resolve)(e||".");if((a.includes("/")||a.includes("\\"))&&!(0,n.existsSync)(a))return{success:!1,message:`Antigravity binary not found at "${a}". Set the ANTIGRAVITY_BINARY environment variable to the correct path.`};try{if(!(0,n.statSync)(c).isDirectory())return{success:!1,message:`"${c}" is not a directory.`}}catch{return{success:!1,message:`Directory not found: "${c}"`}}try{i.logger.info(`[ProcessManager] Starting Antigravity: ${a} --remote-debugging-port=${l} --new-window "${c}"`),i.logger.info(`[ProcessManager] Platform: ${process.platform}, Binary: ${a}`),(f=(0,t.spawn)(a,[`--remote-debugging-port=${l}`,"--new-window",c],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0})).unref();let e=f.pid;if(f.on("error",e=>{i.logger.error(`[ProcessManager] Antigravity process error: ${e.message}`),f=null}),f.on("exit",e=>{i.logger.info(`[ProcessManager] Antigravity process exited with code ${e}`),f=null}),await P(15e3))return{success:!0,message:`Antigravity started with CDP on port ${l}.`,pid:e||void 0};return{success:!1,message:`Antigravity process started but CDP server did not become available on port ${l} within 15s.`,pid:e||void 0}}catch(e){return i.logger.error(`[ProcessManager] Failed to start Antigravity: ${e.message}`),{success:!1,message:`Failed to start Antigravity: ${e.message}`}}}async function h(e){let r=(0,s.resolve)(e);try{if(!(0,n.statSync)(r).isDirectory())return{success:!1,message:`"${r}" is not a directory. Please provide a folder path.`}}catch{return{success:!1,message:`Directory not found: "${r}". Make sure the path exists.`}}let o=await p(),a=d();if(o.active)try{return i.logger.info(`[ProcessManager] Opening new window for: ${r}`),(0,t.spawn)(a,["--new-window",r],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0}).unref(),await new Promise(e=>setTimeout(e,3e3)),{success:!0,message:`Opened new window for "${r}".`}}catch(e){return{success:!1,message:`Failed to open window: ${e.message}`}}{let t=await v(e,!1);return{success:t.success,message:t.message}}}async function y(e){try{let t=await fetch(`http://localhost:${l}/json/close/${e}`);if(t.ok)return{success:!0,message:"Window closed successfully."};return{success:!1,message:`Failed to close window: HTTP ${t.status}`}}catch(e){return{success:!1,message:`Failed to close window: ${e.message}`}}}async function m(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{targets:[],error:`HTTP ${e.status}`};return{targets:(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski")).map(e=>({id:e.id,title:e.title||"Untitled",url:e.url}))}}catch(e){return{targets:[],error:e.message}}}async function P(e){let t=Date.now();for(;Date.now()-t<e;){let e=await p();if(e.active&&e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}async function x(e){let t=Date.now();for(;Date.now()-t<e;){let e=await p();if(!e.active)break;if(e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}e.s(["closeWindow",()=>y,"getWindowTargets",()=>m,"isCdpServerActive",()=>p,"openNewWindow",()=>h,"startCdpServer",()=>v,"waitForWorkbenchPages",()=>x])},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},524,e=>{"use strict";class t{static create(e){return new Promise((r,n)=>{let s=new WebSocket(e);s.addEventListener("open",()=>r(new t(s))),s.addEventListener("error",n)})}#e;onmessage;onclose;constructor(e){this.#e=e,this.#e.addEventListener("message",e=>{this.onmessage&&this.onmessage.call(null,e.data)}),this.#e.addEventListener("close",()=>{this.onclose&&this.onclose.call(null)}),this.#e.addEventListener("error",()=>{})}send(e){this.#e.send(e)}close(){this.#e.close()}}e.s(["BrowserWebSocketTransport",()=>t])}];
1
+ module.exports=[53506,e=>{"use strict";var t=e.i(29476),r=e.i(13231),n=e.i(40911),s=e.i(93846);let i=!1,o=null;async function a(){i&&s.default.workbenchPage||(o||(o=(async()=>{try{await (0,t.connectToWorkbench)(s.default),i=!0,c();return}catch(e){n.logger.warn("[CDP Init] Initial connection failed:",e.message)}n.logger.info("[CDP Init] Attempting auto-recovery...");for(let e=1;e<=3;e++){n.logger.info(`[CDP Init] Recovery attempt ${e}/3`);let o=await (0,r.isCdpServerActive)();if(o.active&&o.windowCount>0){n.logger.info(`[CDP Init] CDP active with ${o.windowCount} window(s). Retrying connection without restart...`),l();try{await (0,t.connectToWorkbench)(s.default),i=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(t){n.logger.warn(`[CDP Init] Retry ${e} failed: ${t.message}`),await new Promise(e=>setTimeout(e,2e3));continue}}if(o.active&&0===o.windowCount)if(n.logger.warn("[CDP Init] CDP server active but 0 workbench pages. Waiting for pages to load..."),await (0,r.waitForWorkbenchPages)(1e4)){n.logger.info("[CDP Init] Workbench pages appeared! Connecting..."),l();try{await (0,t.connectToWorkbench)(s.default),i=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(e){n.logger.warn(`[CDP Init] Connection after page wait failed: ${e.message}`)}}else n.logger.warn("[CDP Init] No workbench pages appeared after 10s. Will kill and restart...");else o.active||n.logger.warn("[CDP Init] CDP server not reachable. Starting Antigravity with CDP...");let a=await (0,r.startCdpServer)(".",!0);if(!a.success){n.logger.error(`[CDP Init] Auto-recovery failed: ${a.message}`),await new Promise(e=>setTimeout(e,3e3));continue}n.logger.info(`[CDP Init] Antigravity restarted: ${a.message}`),await new Promise(e=>setTimeout(e,3e3)),l();try{await (0,t.connectToWorkbench)(s.default),i=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(t){n.logger.error(`[CDP Init] Recovery attempt ${e} connection failed: ${t.message}`),await new Promise(e=>setTimeout(e,2e3))}}n.logger.error("[CDP Init] All 3 recovery attempts failed. Please start Antigravity manually with --remote-debugging-port=9223"),o=null})()),await o)}function l(){if(s.default.browser){try{s.default.browser.disconnect()}catch{}s.default.browser=null,s.default.workbenchPage=null,s.default.allWorkbenches=[]}}function c(){s.default.browser?.on("disconnected",()=>{n.logger.error("[CDP] Browser disconnected. Will reconnect on next request."),i=!1,o=null,s.default.workbenchPage=null,s.default.browser=null,s.default.allWorkbenches=[]}),s.default.workbenchPage?.on("close",()=>{n.logger.warn("[CDP] Workbench page closed. Will reconnect on next request."),i=!1,o=null,s.default.workbenchPage=null})}process.platform,e.s(["ensureCdpConnection",()=>a])},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},93846,e=>{"use strict";let t=globalThis.__PROXY_CTX||{workbenchPage:null,browser:null,allWorkbenches:[],activeWindowIdx:0,activeConversationId:null,activeTitle:null,lastActionTimestamp:0};e.s(["default",0,t])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},40911,e=>{"use strict";let t=new class{level="info";constructor(){this.level=process.env.LOG_LEVEL||"info"}shouldLog(e){let t=["debug","info","warn","error"];return t.indexOf(e)>=t.indexOf(this.level)}debug(e,t){this.shouldLog("debug")&&console.debug(`[DEBUG] ${e}`,t||"")}info(e,t){this.shouldLog("info")&&console.info(`[INFO] ${e}`,t||"")}warn(e,t){this.shouldLog("warn")&&console.warn(`[WARN] ${e}`,t||"")}error(e,t){this.shouldLog("error")&&console.error(`[ERROR] ${e}`,t||"")}};e.s(["logger",0,t])},13231,e=>{"use strict";var t=e.i(33405),r=e.i(24361),n=e.i(22734),s=e.i(14747),i=e.i(46786),o=e.i(40911);let a=(0,r.promisify)(t.exec),l=parseInt(process.env.CDP_PORT||"9223",10),c=()=>"u"<typeof process?"unknown":process.platform||"unknown",g=()=>{if("win32"===c()||"linux"!==c())return!1;try{return/microsoft|wsl/i.test((0,n.readFileSync)("/proc/version","utf8"))}catch{return!1}};function u(){if(process.env.ANTIGRAVITY_BINARY){let e=process.env.ANTIGRAVITY_BINARY;return(0,n.existsSync)(e)||o.logger.warn(`[ProcessManager] ANTIGRAVITY_BINARY set to "${e}" but file does not exist.`),e}if("win32"===c()){for(let e of[(0,s.resolve)(process.env.LOCALAPPDATA||"","Programs","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env.PROGRAMFILES||"C:\\Program Files","Google","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env.PROGRAMFILES||"C:\\Program Files","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env["PROGRAMFILES(X86)"]||"C:\\Program Files (x86)","Antigravity","Antigravity.exe")])if(e&&(0,n.existsSync)(e))return e;return o.logger.warn("[ProcessManager] Antigravity.exe not found in known locations. Falling back to PATH lookup."),"Antigravity.exe"}if(g()){let e="/mnt/c/Users",t=[];try{let r=new Set(["Public","Default","Default User","All Users","desktop.ini"]);for(let i of(0,n.readdirSync)(e).filter(e=>!r.has(e)))t.push((0,s.resolve)(e,i,"AppData/Local/Programs/Antigravity/Antigravity.exe"),(0,s.resolve)(e,i,"AppData/Local/Programs/antigravity/Antigravity.exe"),(0,s.resolve)(e,i,"AppData/Local/Antigravity/Antigravity.exe"))}catch(t){o.logger.warn(`[ProcessManager] Could not scan ${e}: ${t.message}`)}for(let e of(t.push("/mnt/c/Program Files/Google/Antigravity/Antigravity.exe","/mnt/c/Program Files/Antigravity/Antigravity.exe","/mnt/c/Program Files (x86)/Antigravity/Antigravity.exe"),t))if((0,n.existsSync)(e))return o.logger.info(`[ProcessManager] Found Antigravity binary via WSL at: ${e}`),e;o.logger.warn("[ProcessManager] WSL detected but Antigravity.exe not found in /mnt/c/. Falling back to Linux path.")}if("darwin"===c()){let e="/Applications/Antigravity.app/Contents/MacOS/Antigravity";if((0,n.existsSync)(e))return e;let t=(0,s.resolve)(process.env.HOME||"","Applications","Antigravity.app","Contents","MacOS","Antigravity");return(0,n.existsSync)(t)?t:e}return"/usr/share/antigravity/antigravity"}async function d(){try{"win32"===c()?await a("taskkill /F /IM Antigravity.exe /T 2>nul || exit 0"):g()?await a("taskkill.exe /F /IM Antigravity.exe /T 2>/dev/null || true"):await a("killall antigravity 2>/dev/null || true"),o.logger.info("[ProcessManager] Killed existing Antigravity processes."),await new Promise(e=>setTimeout(e,"win32"===c()||g()?2500:1500))}catch{}}o.logger.info(`[ProcessManager] Platform detection: runtimePlatform="${c()}", os.type()="${i.type()}", IS_WIN=${"win32"===c()}, IS_MAC=${"darwin"===c()}, IS_WSL=${g()}`),g()&&o.logger.info("[ProcessManager] WSL environment detected — will resolve Windows binary paths via /mnt/c/");let w=null;async function p(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{active:!1,windowCount:0,error:`HTTP ${e.status}`};let t=(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski"));return{active:!0,windowCount:t.length}}catch(e){return{active:!1,windowCount:0,error:e.message}}}async function f(e=".",r=!1){let i=await p();if(i.active&&i.windowCount>0&&!r)return{success:!0,message:`CDP server already active on port ${l} with ${i.windowCount} window(s).`};r&&await d();let a=u(),c=(0,s.resolve)(e||".");if((a.includes("/")||a.includes("\\"))&&!(0,n.existsSync)(a))return{success:!1,message:`Antigravity binary not found at "${a}". Set the ANTIGRAVITY_BINARY environment variable to the correct path.`};try{if(!(0,n.statSync)(c).isDirectory())return{success:!1,message:`"${c}" is not a directory.`}}catch{return{success:!1,message:`Directory not found: "${c}"`}}try{o.logger.info(`[ProcessManager] Starting Antigravity: ${a} --remote-debugging-port=${l} --new-window "${c}"`),o.logger.info(`[ProcessManager] Platform: ${process.platform}, Binary: ${a}`),(w=(0,t.spawn)(a,[`--remote-debugging-port=${l}`,"--new-window",c],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0})).unref();let e=w.pid;if(w.on("error",e=>{o.logger.error(`[ProcessManager] Antigravity process error: ${e.message}`),w=null}),w.on("exit",e=>{o.logger.info(`[ProcessManager] Antigravity process exited with code ${e}`),w=null}),await m(15e3))return{success:!0,message:`Antigravity started with CDP on port ${l}.`,pid:e||void 0};return{success:!1,message:`Antigravity process started but CDP server did not become available on port ${l} within 15s.`,pid:e||void 0}}catch(e){return o.logger.error(`[ProcessManager] Failed to start Antigravity: ${e.message}`),{success:!1,message:`Failed to start Antigravity: ${e.message}`}}}async function v(e){let r=(0,s.resolve)(e);try{if(!(0,n.statSync)(r).isDirectory())return{success:!1,message:`"${r}" is not a directory. Please provide a folder path.`}}catch{return{success:!1,message:`Directory not found: "${r}". Make sure the path exists.`}}let i=await p(),a=u();if(i.active)try{return o.logger.info(`[ProcessManager] Opening new window for: ${r}`),(0,t.spawn)(a,["--new-window",r],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0}).unref(),await new Promise(e=>setTimeout(e,3e3)),{success:!0,message:`Opened new window for "${r}".`}}catch(e){return{success:!1,message:`Failed to open window: ${e.message}`}}{let t=await f(e,!1);return{success:t.success,message:t.message}}}async function y(e){try{let t=await fetch(`http://localhost:${l}/json/close/${e}`);if(t.ok)return{success:!0,message:"Window closed successfully."};return{success:!1,message:`Failed to close window: HTTP ${t.status}`}}catch(e){return{success:!1,message:`Failed to close window: ${e.message}`}}}async function h(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{targets:[],error:`HTTP ${e.status}`};return{targets:(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski")).map(e=>({id:e.id,title:e.title||"Untitled",url:e.url}))}}catch(e){return{targets:[],error:e.message}}}async function m(e){let t=Date.now();for(;Date.now()-t<e;){let e=await p();if(e.active&&e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}async function P(e){let t=Date.now();for(;Date.now()-t<e;){let e=await p();if(!e.active)break;if(e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}e.s(["closeWindow",()=>y,"getWindowTargets",()=>h,"isCdpServerActive",()=>p,"openNewWindow",()=>v,"startCdpServer",()=>f,"waitForWorkbenchPages",()=>P])},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},524,e=>{"use strict";class t{static create(e){return new Promise((r,n)=>{let s=new WebSocket(e);s.addEventListener("open",()=>r(new t(s))),s.addEventListener("error",n)})}#e;onmessage;onclose;constructor(e){this.#e=e,this.#e.addEventListener("message",e=>{this.onmessage&&this.onmessage.call(null,e.data)}),this.#e.addEventListener("close",()=>{this.onclose&&this.onclose.call(null)}),this.#e.addEventListener("error",()=>{})}send(e){this.#e.send(e)}close(){this.#e.close()}}e.s(["BrowserWebSocketTransport",()=>t])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0a001103._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},40911,e=>{"use strict";let t=new class{level="info";constructor(){this.level=process.env.LOG_LEVEL||"info"}shouldLog(e){let t=["debug","info","warn","error"];return t.indexOf(e)>=t.indexOf(this.level)}debug(e,t){this.shouldLog("debug")&&console.debug(`[DEBUG] ${e}`,t||"")}info(e,t){this.shouldLog("info")&&console.info(`[INFO] ${e}`,t||"")}warn(e,t){this.shouldLog("warn")&&console.warn(`[WARN] ${e}`,t||"")}error(e,t){this.shouldLog("error")&&console.error(`[ERROR] ${e}`,t||"")}};e.s(["logger",0,t])},13231,e=>{"use strict";var t=e.i(33405),r=e.i(24361),s=e.i(22734),n=e.i(14747),a=e.i(46786),i=e.i(40911);let o=(0,r.promisify)(t.exec),l=parseInt(process.env.CDP_PORT||"9223",10),c=a.platform()||globalThis.process&&globalThis.process.platform||"unknown",u="win32"===c,d=!u&&"linux"===c&&(()=>{try{return/microsoft|wsl/i.test((0,s.readFileSync)("/proc/version","utf8"))}catch{return!1}})();function p(){if(process.env.ANTIGRAVITY_BINARY){let e=process.env.ANTIGRAVITY_BINARY;return(0,s.existsSync)(e)||i.logger.warn(`[ProcessManager] ANTIGRAVITY_BINARY set to "${e}" but file does not exist.`),e}if(d){let e="/mnt/c/Users",t=[];try{let r=new Set(["Public","Default","Default User","All Users","desktop.ini"]);for(let a of(0,s.readdirSync)(e).filter(e=>!r.has(e)))t.push((0,n.resolve)(e,a,"AppData/Local/Programs/Antigravity/Antigravity.exe"),(0,n.resolve)(e,a,"AppData/Local/Programs/antigravity/Antigravity.exe"),(0,n.resolve)(e,a,"AppData/Local/Antigravity/Antigravity.exe"))}catch(t){i.logger.warn(`[ProcessManager] Could not scan ${e}: ${t.message}`)}for(let e of(t.push("/mnt/c/Program Files/Google/Antigravity/Antigravity.exe","/mnt/c/Program Files/Antigravity/Antigravity.exe","/mnt/c/Program Files (x86)/Antigravity/Antigravity.exe"),t))if((0,s.existsSync)(e))return i.logger.info(`[ProcessManager] Found Antigravity binary via WSL at: ${e}`),e;i.logger.warn("[ProcessManager] WSL detected but Antigravity.exe not found in /mnt/c/. Falling back to Linux path.")}return"/usr/share/antigravity/antigravity"}async function g(){try{d?await o("taskkill.exe /F /IM Antigravity.exe /T 2>/dev/null || true"):await o("killall antigravity 2>/dev/null || true"),i.logger.info("[ProcessManager] Killed existing Antigravity processes."),await new Promise(e=>setTimeout(e,u||d?2500:1500))}catch{}}i.logger.info(`[ProcessManager] Platform detection: runtimePlatform="${c}", os.type()="${a.type()}", IS_WIN=${u}, IS_MAC=${"darwin"===c}, IS_WSL=${d}`),d&&i.logger.info("[ProcessManager] WSL environment detected — will resolve Windows binary paths via /mnt/c/");let w=null;async function h(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{active:!1,windowCount:0,error:`HTTP ${e.status}`};let t=(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski"));return{active:!0,windowCount:t.length}}catch(e){return{active:!1,windowCount:0,error:e.message}}}async function v(e=".",r=!1){let a=await h();if(a.active&&a.windowCount>0&&!r)return{success:!0,message:`CDP server already active on port ${l} with ${a.windowCount} window(s).`};r&&await g();let o=p(),c=(0,n.resolve)(e||".");if((o.includes("/")||o.includes("\\"))&&!(0,s.existsSync)(o))return{success:!1,message:`Antigravity binary not found at "${o}". Set the ANTIGRAVITY_BINARY environment variable to the correct path.`};try{if(!(0,s.statSync)(c).isDirectory())return{success:!1,message:`"${c}" is not a directory.`}}catch{return{success:!1,message:`Directory not found: "${c}"`}}try{i.logger.info(`[ProcessManager] Starting Antigravity: ${o} --remote-debugging-port=${l} --new-window "${c}"`),i.logger.info(`[ProcessManager] Platform: ${process.platform}, Binary: ${o}`),(w=(0,t.spawn)(o,[`--remote-debugging-port=${l}`,"--new-window",c],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0})).unref();let e=w.pid;if(w.on("error",e=>{i.logger.error(`[ProcessManager] Antigravity process error: ${e.message}`),w=null}),w.on("exit",e=>{i.logger.info(`[ProcessManager] Antigravity process exited with code ${e}`),w=null}),await x(15e3))return{success:!0,message:`Antigravity started with CDP on port ${l}.`,pid:e||void 0};return{success:!1,message:`Antigravity process started but CDP server did not become available on port ${l} within 15s.`,pid:e||void 0}}catch(e){return i.logger.error(`[ProcessManager] Failed to start Antigravity: ${e.message}`),{success:!1,message:`Failed to start Antigravity: ${e.message}`}}}async function f(e){let r=(0,n.resolve)(e);try{if(!(0,s.statSync)(r).isDirectory())return{success:!1,message:`"${r}" is not a directory. Please provide a folder path.`}}catch{return{success:!1,message:`Directory not found: "${r}". Make sure the path exists.`}}let a=await h(),o=p();if(a.active)try{return i.logger.info(`[ProcessManager] Opening new window for: ${r}`),(0,t.spawn)(o,["--new-window",r],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0}).unref(),await new Promise(e=>setTimeout(e,3e3)),{success:!0,message:`Opened new window for "${r}".`}}catch(e){return{success:!1,message:`Failed to open window: ${e.message}`}}{let t=await v(e,!1);return{success:t.success,message:t.message}}}async function m(e){try{let t=await fetch(`http://localhost:${l}/json/close/${e}`);if(t.ok)return{success:!0,message:"Window closed successfully."};return{success:!1,message:`Failed to close window: HTTP ${t.status}`}}catch(e){return{success:!1,message:`Failed to close window: ${e.message}`}}}async function y(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{targets:[],error:`HTTP ${e.status}`};return{targets:(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski")).map(e=>({id:e.id,title:e.title||"Untitled",url:e.url}))}}catch(e){return{targets:[],error:e.message}}}async function x(e){let t=Date.now();for(;Date.now()-t<e;){let e=await h();if(e.active&&e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}async function R(e){let t=Date.now();for(;Date.now()-t<e;){let e=await h();if(!e.active)break;if(e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}e.s(["closeWindow",()=>m,"getWindowTargets",()=>y,"isCdpServerActive",()=>h,"openNewWindow",()=>f,"startCdpServer",()=>v,"waitForWorkbenchPages",()=>R])},98349,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),g=e.i(70101),w=e.i(26937),h=e.i(10372),v=e.i(93695);e.i(52474);var f=e.i(220),m=e.i(89171),y=e.i(13231);async function x(e){try{let t=await e.json().catch(()=>({})),r=t.projectDir||".",s=!0===t.killExisting,n=await (0,y.startCdpServer)(r,s);return m.NextResponse.json(n,{status:n.success?200:500})}catch(e){return m.NextResponse.json({success:!1,message:e.message},{status:500})}}e.s(["POST",()=>x,"dynamic",0,"force-dynamic"],53312);var R=e.i(53312);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/v1/windows/cdp-start/route",pathname:"/api/v1/windows/cdp-start",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/v1/windows/cdp-start/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:P,workUnitAsyncStorage:$,serverHooks:C}=A;function b(){return(0,s.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:$})}async function T(e,t,s){A.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/v1/windows/cdp-start/route";m=m.replace(/\/index$/,"")||"/";let y=await A.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:x,params:R,nextConfig:P,parsedUrl:$,isDraftMode:C,prerenderManifest:b,routerServerContext:T,isOnDemandRevalidate:E,revalidateOnlyGenerated:S,resolvedPathname:k,clientReferenceManifest:N,serverActionsManifest:I}=y,D=(0,o.normalizeAppPath)(m),_=!!(b.dynamicRoutes[D]||b.routes[k]),O=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,$,!1):t.end("This page could not be found"),null);if(_&&!C){let e=!!b.routes[k],t=b.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(P.experimental.adapterPath)return await O();throw new v.NoFallbackError}}let j=null;!_||A.isDev||C||(j="/index"===(j=k)?"/":j);let M=!0===A.isDev||!_,q=_&&!M;I&&N&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:N,serverActionsManifest:I});let F=e.method||"GET",H=(0,a.getTracer)(),L=H.getActiveScopeSpan(),U={params:R,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!P.experimental.authInterrupts},cacheComponents:!!P.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:P.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>A.onRequestError(e,t,s,n,T)},sharedContext:{buildId:x}},W=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(W,(0,c.signalFromNodeResponse)(t));try{let i=async e=>A.handle(G,U).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${F} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${m}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&E&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=U.renderOpts.fetchMetrics;let l=U.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let c=U.renderOpts.collectedTags;if(!_)return await (0,p.sendResponse)(W,B,a,U.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[h.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,s=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:E})},!1,T),t}},u=await A.handleResponse({req:e,nextConfig:P,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:S,responseGenerator:c,waitUntil:s.waitUntil,isMinimalMode:o});if(!_)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",E?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&_||v.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,w.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(W,B,new Response(u.value.body,{headers:v,status:u.value.status||200})),null};L?await l(L):await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${m}`,kind:a.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:E})},!1,T),_)throw t;return await (0,p.sendResponse)(W,B,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>b,"routeModule",()=>A,"serverHooks",()=>C,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>$],98349)}];
1
+ module.exports=[14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},40911,e=>{"use strict";let t=new class{level="info";constructor(){this.level=process.env.LOG_LEVEL||"info"}shouldLog(e){let t=["debug","info","warn","error"];return t.indexOf(e)>=t.indexOf(this.level)}debug(e,t){this.shouldLog("debug")&&console.debug(`[DEBUG] ${e}`,t||"")}info(e,t){this.shouldLog("info")&&console.info(`[INFO] ${e}`,t||"")}warn(e,t){this.shouldLog("warn")&&console.warn(`[WARN] ${e}`,t||"")}error(e,t){this.shouldLog("error")&&console.error(`[ERROR] ${e}`,t||"")}};e.s(["logger",0,t])},13231,e=>{"use strict";var t=e.i(33405),r=e.i(24361),n=e.i(22734),s=e.i(14747),a=e.i(46786),i=e.i(40911);let o=(0,r.promisify)(t.exec),l=parseInt(process.env.CDP_PORT||"9223",10),c=()=>"u"<typeof process?"unknown":process.platform||"unknown",u=()=>{if("win32"===c()||"linux"!==c())return!1;try{return/microsoft|wsl/i.test((0,n.readFileSync)("/proc/version","utf8"))}catch{return!1}};function d(){if(process.env.ANTIGRAVITY_BINARY){let e=process.env.ANTIGRAVITY_BINARY;return(0,n.existsSync)(e)||i.logger.warn(`[ProcessManager] ANTIGRAVITY_BINARY set to "${e}" but file does not exist.`),e}if("win32"===c()){for(let e of[(0,s.resolve)(process.env.LOCALAPPDATA||"","Programs","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env.PROGRAMFILES||"C:\\Program Files","Google","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env.PROGRAMFILES||"C:\\Program Files","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env["PROGRAMFILES(X86)"]||"C:\\Program Files (x86)","Antigravity","Antigravity.exe")])if(e&&(0,n.existsSync)(e))return e;return i.logger.warn("[ProcessManager] Antigravity.exe not found in known locations. Falling back to PATH lookup."),"Antigravity.exe"}if(u()){let e="/mnt/c/Users",t=[];try{let r=new Set(["Public","Default","Default User","All Users","desktop.ini"]);for(let a of(0,n.readdirSync)(e).filter(e=>!r.has(e)))t.push((0,s.resolve)(e,a,"AppData/Local/Programs/Antigravity/Antigravity.exe"),(0,s.resolve)(e,a,"AppData/Local/Programs/antigravity/Antigravity.exe"),(0,s.resolve)(e,a,"AppData/Local/Antigravity/Antigravity.exe"))}catch(t){i.logger.warn(`[ProcessManager] Could not scan ${e}: ${t.message}`)}for(let e of(t.push("/mnt/c/Program Files/Google/Antigravity/Antigravity.exe","/mnt/c/Program Files/Antigravity/Antigravity.exe","/mnt/c/Program Files (x86)/Antigravity/Antigravity.exe"),t))if((0,n.existsSync)(e))return i.logger.info(`[ProcessManager] Found Antigravity binary via WSL at: ${e}`),e;i.logger.warn("[ProcessManager] WSL detected but Antigravity.exe not found in /mnt/c/. Falling back to Linux path.")}if("darwin"===c()){let e="/Applications/Antigravity.app/Contents/MacOS/Antigravity";if((0,n.existsSync)(e))return e;let t=(0,s.resolve)(process.env.HOME||"","Applications","Antigravity.app","Contents","MacOS","Antigravity");return(0,n.existsSync)(t)?t:e}return"/usr/share/antigravity/antigravity"}async function p(){try{"win32"===c()?await o("taskkill /F /IM Antigravity.exe /T 2>nul || exit 0"):u()?await o("taskkill.exe /F /IM Antigravity.exe /T 2>/dev/null || true"):await o("killall antigravity 2>/dev/null || true"),i.logger.info("[ProcessManager] Killed existing Antigravity processes."),await new Promise(e=>setTimeout(e,"win32"===c()||u()?2500:1500))}catch{}}i.logger.info(`[ProcessManager] Platform detection: runtimePlatform="${c()}", os.type()="${a.type()}", IS_WIN=${"win32"===c()}, IS_MAC=${"darwin"===c()}, IS_WSL=${u()}`),u()&&i.logger.info("[ProcessManager] WSL environment detected — will resolve Windows binary paths via /mnt/c/");let g=null;async function w(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{active:!1,windowCount:0,error:`HTTP ${e.status}`};let t=(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski"));return{active:!0,windowCount:t.length}}catch(e){return{active:!1,windowCount:0,error:e.message}}}async function v(e=".",r=!1){let a=await w();if(a.active&&a.windowCount>0&&!r)return{success:!0,message:`CDP server already active on port ${l} with ${a.windowCount} window(s).`};r&&await p();let o=d(),c=(0,s.resolve)(e||".");if((o.includes("/")||o.includes("\\"))&&!(0,n.existsSync)(o))return{success:!1,message:`Antigravity binary not found at "${o}". Set the ANTIGRAVITY_BINARY environment variable to the correct path.`};try{if(!(0,n.statSync)(c).isDirectory())return{success:!1,message:`"${c}" is not a directory.`}}catch{return{success:!1,message:`Directory not found: "${c}"`}}try{i.logger.info(`[ProcessManager] Starting Antigravity: ${o} --remote-debugging-port=${l} --new-window "${c}"`),i.logger.info(`[ProcessManager] Platform: ${process.platform}, Binary: ${o}`),(g=(0,t.spawn)(o,[`--remote-debugging-port=${l}`,"--new-window",c],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0})).unref();let e=g.pid;if(g.on("error",e=>{i.logger.error(`[ProcessManager] Antigravity process error: ${e.message}`),g=null}),g.on("exit",e=>{i.logger.info(`[ProcessManager] Antigravity process exited with code ${e}`),g=null}),await x(15e3))return{success:!0,message:`Antigravity started with CDP on port ${l}.`,pid:e||void 0};return{success:!1,message:`Antigravity process started but CDP server did not become available on port ${l} within 15s.`,pid:e||void 0}}catch(e){return i.logger.error(`[ProcessManager] Failed to start Antigravity: ${e.message}`),{success:!1,message:`Failed to start Antigravity: ${e.message}`}}}async function f(e){let r=(0,s.resolve)(e);try{if(!(0,n.statSync)(r).isDirectory())return{success:!1,message:`"${r}" is not a directory. Please provide a folder path.`}}catch{return{success:!1,message:`Directory not found: "${r}". Make sure the path exists.`}}let a=await w(),o=d();if(a.active)try{return i.logger.info(`[ProcessManager] Opening new window for: ${r}`),(0,t.spawn)(o,["--new-window",r],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0}).unref(),await new Promise(e=>setTimeout(e,3e3)),{success:!0,message:`Opened new window for "${r}".`}}catch(e){return{success:!1,message:`Failed to open window: ${e.message}`}}{let t=await v(e,!1);return{success:t.success,message:t.message}}}async function h(e){try{let t=await fetch(`http://localhost:${l}/json/close/${e}`);if(t.ok)return{success:!0,message:"Window closed successfully."};return{success:!1,message:`Failed to close window: HTTP ${t.status}`}}catch(e){return{success:!1,message:`Failed to close window: ${e.message}`}}}async function y(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{targets:[],error:`HTTP ${e.status}`};return{targets:(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski")).map(e=>({id:e.id,title:e.title||"Untitled",url:e.url}))}}catch(e){return{targets:[],error:e.message}}}async function x(e){let t=Date.now();for(;Date.now()-t<e;){let e=await w();if(e.active&&e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}async function m(e){let t=Date.now();for(;Date.now()-t<e;){let e=await w();if(!e.active)break;if(e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}e.s(["closeWindow",()=>h,"getWindowTargets",()=>y,"isCdpServerActive",()=>w,"openNewWindow",()=>f,"startCdpServer",()=>v,"waitForWorkbenchPages",()=>m])},98349,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),s=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),g=e.i(70101),w=e.i(26937),v=e.i(10372),f=e.i(93695);e.i(52474);var h=e.i(220),y=e.i(89171),x=e.i(13231);async function m(e){try{let t=await e.json().catch(()=>({})),r=t.projectDir||".",n=!0===t.killExisting,s=await (0,x.startCdpServer)(r,n);return y.NextResponse.json(s,{status:s.success?200:500})}catch(e){return y.NextResponse.json({success:!1,message:e.message},{status:500})}}e.s(["POST",()=>m,"dynamic",0,"force-dynamic"],53312);var A=e.i(53312);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/v1/windows/cdp-start/route",pathname:"/api/v1/windows/cdp-start",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/v1/windows/cdp-start/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:P,workUnitAsyncStorage:C,serverHooks:$}=R;function E(){return(0,n.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:C})}async function b(e,t,n){R.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/v1/windows/cdp-start/route";y=y.replace(/\/index$/,"")||"/";let x=await R.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:m,params:A,nextConfig:P,parsedUrl:C,isDraftMode:$,prerenderManifest:E,routerServerContext:b,isOnDemandRevalidate:T,revalidateOnlyGenerated:S,resolvedPathname:k,clientReferenceManifest:I,serverActionsManifest:N}=x,O=(0,o.normalizeAppPath)(y),M=!!(E.dynamicRoutes[O]||E.routes[k]),D=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,C,!1):t.end("This page could not be found"),null);if(M&&!$){let e=!!E.routes[k],t=E.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(P.experimental.adapterPath)return await D();throw new f.NoFallbackError}}let _=null;!M||R.isDev||$||(_="/index"===(_=k)?"/":_);let F=!0===R.isDev||!M,j=M&&!F;N&&I&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:I,serverActionsManifest:N});let L=e.method||"GET",q=(0,a.getTracer)(),H=q.getActiveScopeSpan(),U={params:A,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!P.experimental.authInterrupts},cacheComponents:!!P.cacheComponents,supportsDynamicResponse:F,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:P.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>R.onRequestError(e,t,n,s,b)},sharedContext:{buildId:m}},G=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(G,(0,c.signalFromNodeResponse)(t));try{let i=async e=>R.handle(B,U).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${L} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${L} ${y}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&T&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(s);e.fetchMetrics=U.renderOpts.fetchMetrics;let l=U.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let c=U.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(G,W,a,U.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[v.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,n=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:h.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:T})},!1,b),t}},u=await R.handleResponse({req:e,nextConfig:P,cacheKey:_,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:S,responseGenerator:c,waitUntil:n.waitUntil,isMinimalMode:o});if(!M)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==h.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),$&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&M||f.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,w.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(G,W,new Response(u.value.body,{headers:f,status:u.value.status||200})),null};H?await l(H):await q.withPropagatedContext(e.headers,()=>q.trace(u.BaseServerSpan.handleRequest,{spanName:`${L} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},l))}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:T})},!1,b),M)throw t;return await (0,p.sendResponse)(G,W,new Response(null,{status:500})),null}}e.s(["handler",()=>b,"patchFetch",()=>E,"routeModule",()=>R,"serverHooks",()=>$,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>C],98349)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__62b3f977._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},40911,e=>{"use strict";let t=new class{level="info";constructor(){this.level=process.env.LOG_LEVEL||"info"}shouldLog(e){let t=["debug","info","warn","error"];return t.indexOf(e)>=t.indexOf(this.level)}debug(e,t){this.shouldLog("debug")&&console.debug(`[DEBUG] ${e}`,t||"")}info(e,t){this.shouldLog("info")&&console.info(`[INFO] ${e}`,t||"")}warn(e,t){this.shouldLog("warn")&&console.warn(`[WARN] ${e}`,t||"")}error(e,t){this.shouldLog("error")&&console.error(`[ERROR] ${e}`,t||"")}};e.s(["logger",0,t])},13231,e=>{"use strict";var t=e.i(33405),r=e.i(24361),n=e.i(22734),s=e.i(14747),a=e.i(46786),i=e.i(40911);let o=(0,r.promisify)(t.exec),l=parseInt(process.env.CDP_PORT||"9223",10),c=a.platform()||globalThis.process&&globalThis.process.platform||"unknown",u="win32"===c,d=!u&&"linux"===c&&(()=>{try{return/microsoft|wsl/i.test((0,n.readFileSync)("/proc/version","utf8"))}catch{return!1}})();function p(){if(process.env.ANTIGRAVITY_BINARY){let e=process.env.ANTIGRAVITY_BINARY;return(0,n.existsSync)(e)||i.logger.warn(`[ProcessManager] ANTIGRAVITY_BINARY set to "${e}" but file does not exist.`),e}if(d){let e="/mnt/c/Users",t=[];try{let r=new Set(["Public","Default","Default User","All Users","desktop.ini"]);for(let a of(0,n.readdirSync)(e).filter(e=>!r.has(e)))t.push((0,s.resolve)(e,a,"AppData/Local/Programs/Antigravity/Antigravity.exe"),(0,s.resolve)(e,a,"AppData/Local/Programs/antigravity/Antigravity.exe"),(0,s.resolve)(e,a,"AppData/Local/Antigravity/Antigravity.exe"))}catch(t){i.logger.warn(`[ProcessManager] Could not scan ${e}: ${t.message}`)}for(let e of(t.push("/mnt/c/Program Files/Google/Antigravity/Antigravity.exe","/mnt/c/Program Files/Antigravity/Antigravity.exe","/mnt/c/Program Files (x86)/Antigravity/Antigravity.exe"),t))if((0,n.existsSync)(e))return i.logger.info(`[ProcessManager] Found Antigravity binary via WSL at: ${e}`),e;i.logger.warn("[ProcessManager] WSL detected but Antigravity.exe not found in /mnt/c/. Falling back to Linux path.")}return"/usr/share/antigravity/antigravity"}async function g(){try{d?await o("taskkill.exe /F /IM Antigravity.exe /T 2>/dev/null || true"):await o("killall antigravity 2>/dev/null || true"),i.logger.info("[ProcessManager] Killed existing Antigravity processes."),await new Promise(e=>setTimeout(e,u||d?2500:1500))}catch{}}i.logger.info(`[ProcessManager] Platform detection: runtimePlatform="${c}", os.type()="${a.type()}", IS_WIN=${u}, IS_MAC=${"darwin"===c}, IS_WSL=${d}`),d&&i.logger.info("[ProcessManager] WSL environment detected — will resolve Windows binary paths via /mnt/c/");let w=null;async function v(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{active:!1,windowCount:0,error:`HTTP ${e.status}`};let t=(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski"));return{active:!0,windowCount:t.length}}catch(e){return{active:!1,windowCount:0,error:e.message}}}async function h(e=".",r=!1){let a=await v();if(a.active&&a.windowCount>0&&!r)return{success:!0,message:`CDP server already active on port ${l} with ${a.windowCount} window(s).`};r&&await g();let o=p(),c=(0,s.resolve)(e||".");if((o.includes("/")||o.includes("\\"))&&!(0,n.existsSync)(o))return{success:!1,message:`Antigravity binary not found at "${o}". Set the ANTIGRAVITY_BINARY environment variable to the correct path.`};try{if(!(0,n.statSync)(c).isDirectory())return{success:!1,message:`"${c}" is not a directory.`}}catch{return{success:!1,message:`Directory not found: "${c}"`}}try{i.logger.info(`[ProcessManager] Starting Antigravity: ${o} --remote-debugging-port=${l} --new-window "${c}"`),i.logger.info(`[ProcessManager] Platform: ${process.platform}, Binary: ${o}`),(w=(0,t.spawn)(o,[`--remote-debugging-port=${l}`,"--new-window",c],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0})).unref();let e=w.pid;if(w.on("error",e=>{i.logger.error(`[ProcessManager] Antigravity process error: ${e.message}`),w=null}),w.on("exit",e=>{i.logger.info(`[ProcessManager] Antigravity process exited with code ${e}`),w=null}),await x(15e3))return{success:!0,message:`Antigravity started with CDP on port ${l}.`,pid:e||void 0};return{success:!1,message:`Antigravity process started but CDP server did not become available on port ${l} within 15s.`,pid:e||void 0}}catch(e){return i.logger.error(`[ProcessManager] Failed to start Antigravity: ${e.message}`),{success:!1,message:`Failed to start Antigravity: ${e.message}`}}}async function f(e){let r=(0,s.resolve)(e);try{if(!(0,n.statSync)(r).isDirectory())return{success:!1,message:`"${r}" is not a directory. Please provide a folder path.`}}catch{return{success:!1,message:`Directory not found: "${r}". Make sure the path exists.`}}let a=await v(),o=p();if(a.active)try{return i.logger.info(`[ProcessManager] Opening new window for: ${r}`),(0,t.spawn)(o,["--new-window",r],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0}).unref(),await new Promise(e=>setTimeout(e,3e3)),{success:!0,message:`Opened new window for "${r}".`}}catch(e){return{success:!1,message:`Failed to open window: ${e.message}`}}{let t=await h(e,!1);return{success:t.success,message:t.message}}}async function m(e){try{let t=await fetch(`http://localhost:${l}/json/close/${e}`);if(t.ok)return{success:!0,message:"Window closed successfully."};return{success:!1,message:`Failed to close window: HTTP ${t.status}`}}catch(e){return{success:!1,message:`Failed to close window: ${e.message}`}}}async function y(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{targets:[],error:`HTTP ${e.status}`};return{targets:(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski")).map(e=>({id:e.id,title:e.title||"Untitled",url:e.url}))}}catch(e){return{targets:[],error:e.message}}}async function x(e){let t=Date.now();for(;Date.now()-t<e;){let e=await v();if(e.active&&e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}async function A(e){let t=Date.now();for(;Date.now()-t<e;){let e=await v();if(!e.active)break;if(e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}e.s(["closeWindow",()=>m,"getWindowTargets",()=>y,"isCdpServerActive",()=>v,"openNewWindow",()=>f,"startCdpServer",()=>h,"waitForWorkbenchPages",()=>A])},77118,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),s=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),g=e.i(70101),w=e.i(26937),v=e.i(10372),h=e.i(93695);e.i(52474);var f=e.i(220),m=e.i(89171),y=e.i(13231);async function x(){try{let e=await (0,y.isCdpServerActive)(),t=[];return e.active&&(t=(await (0,y.getWindowTargets)()).targets),m.NextResponse.json({active:e.active,windowCount:e.windowCount,targets:t,error:e.error||null})}catch(e){return m.NextResponse.json({active:!1,windowCount:0,targets:[],error:e.message},{status:500})}}e.s(["GET",()=>x,"dynamic",0,"force-dynamic"],73517);var A=e.i(73517);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/v1/windows/cdp-status/route",pathname:"/api/v1/windows/cdp-status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/v1/windows/cdp-status/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:P,workUnitAsyncStorage:C,serverHooks:$}=R;function b(){return(0,n.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:C})}async function T(e,t,n){R.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/v1/windows/cdp-status/route";m=m.replace(/\/index$/,"")||"/";let y=await R.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:x,params:A,nextConfig:P,parsedUrl:C,isDraftMode:$,prerenderManifest:b,routerServerContext:T,isOnDemandRevalidate:E,revalidateOnlyGenerated:S,resolvedPathname:k,clientReferenceManifest:N,serverActionsManifest:I}=y,D=(0,o.normalizeAppPath)(m),_=!!(b.dynamicRoutes[D]||b.routes[k]),O=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,C,!1):t.end("This page could not be found"),null);if(_&&!$){let e=!!b.routes[k],t=b.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(P.experimental.adapterPath)return await O();throw new h.NoFallbackError}}let M=null;!_||R.isDev||$||(M="/index"===(M=k)?"/":M);let j=!0===R.isDev||!_,q=_&&!j;I&&N&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:N,serverActionsManifest:I});let F=e.method||"GET",H=(0,a.getTracer)(),L=H.getActiveScopeSpan(),U={params:A,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!P.experimental.authInterrupts},cacheComponents:!!P.cacheComponents,supportsDynamicResponse:j,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:P.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>R.onRequestError(e,t,n,s,T)},sharedContext:{buildId:x}},W=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(W,(0,c.signalFromNodeResponse)(t));try{let i=async e=>R.handle(G,U).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${F} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${m}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&E&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(s);e.fetchMetrics=U.renderOpts.fetchMetrics;let l=U.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let c=U.renderOpts.collectedTags;if(!_)return await (0,p.sendResponse)(W,B,a,U.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[v.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,n=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:E})},!1,T),t}},u=await R.handleResponse({req:e,nextConfig:P,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:S,responseGenerator:c,waitUntil:n.waitUntil,isMinimalMode:o});if(!_)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",E?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),$&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&_||h.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,w.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(W,B,new Response(u.value.body,{headers:h,status:u.value.status||200})),null};L?await l(L):await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${m}`,kind:a.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof h.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:E})},!1,T),_)throw t;return await (0,p.sendResponse)(W,B,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>b,"routeModule",()=>R,"serverHooks",()=>$,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>C],77118)}];
1
+ module.exports=[14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},40911,e=>{"use strict";let t=new class{level="info";constructor(){this.level=process.env.LOG_LEVEL||"info"}shouldLog(e){let t=["debug","info","warn","error"];return t.indexOf(e)>=t.indexOf(this.level)}debug(e,t){this.shouldLog("debug")&&console.debug(`[DEBUG] ${e}`,t||"")}info(e,t){this.shouldLog("info")&&console.info(`[INFO] ${e}`,t||"")}warn(e,t){this.shouldLog("warn")&&console.warn(`[WARN] ${e}`,t||"")}error(e,t){this.shouldLog("error")&&console.error(`[ERROR] ${e}`,t||"")}};e.s(["logger",0,t])},13231,e=>{"use strict";var t=e.i(33405),r=e.i(24361),n=e.i(22734),s=e.i(14747),a=e.i(46786),i=e.i(40911);let o=(0,r.promisify)(t.exec),l=parseInt(process.env.CDP_PORT||"9223",10),c=()=>"u"<typeof process?"unknown":process.platform||"unknown",u=()=>{if("win32"===c()||"linux"!==c())return!1;try{return/microsoft|wsl/i.test((0,n.readFileSync)("/proc/version","utf8"))}catch{return!1}};function d(){if(process.env.ANTIGRAVITY_BINARY){let e=process.env.ANTIGRAVITY_BINARY;return(0,n.existsSync)(e)||i.logger.warn(`[ProcessManager] ANTIGRAVITY_BINARY set to "${e}" but file does not exist.`),e}if("win32"===c()){for(let e of[(0,s.resolve)(process.env.LOCALAPPDATA||"","Programs","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env.PROGRAMFILES||"C:\\Program Files","Google","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env.PROGRAMFILES||"C:\\Program Files","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env["PROGRAMFILES(X86)"]||"C:\\Program Files (x86)","Antigravity","Antigravity.exe")])if(e&&(0,n.existsSync)(e))return e;return i.logger.warn("[ProcessManager] Antigravity.exe not found in known locations. Falling back to PATH lookup."),"Antigravity.exe"}if(u()){let e="/mnt/c/Users",t=[];try{let r=new Set(["Public","Default","Default User","All Users","desktop.ini"]);for(let a of(0,n.readdirSync)(e).filter(e=>!r.has(e)))t.push((0,s.resolve)(e,a,"AppData/Local/Programs/Antigravity/Antigravity.exe"),(0,s.resolve)(e,a,"AppData/Local/Programs/antigravity/Antigravity.exe"),(0,s.resolve)(e,a,"AppData/Local/Antigravity/Antigravity.exe"))}catch(t){i.logger.warn(`[ProcessManager] Could not scan ${e}: ${t.message}`)}for(let e of(t.push("/mnt/c/Program Files/Google/Antigravity/Antigravity.exe","/mnt/c/Program Files/Antigravity/Antigravity.exe","/mnt/c/Program Files (x86)/Antigravity/Antigravity.exe"),t))if((0,n.existsSync)(e))return i.logger.info(`[ProcessManager] Found Antigravity binary via WSL at: ${e}`),e;i.logger.warn("[ProcessManager] WSL detected but Antigravity.exe not found in /mnt/c/. Falling back to Linux path.")}if("darwin"===c()){let e="/Applications/Antigravity.app/Contents/MacOS/Antigravity";if((0,n.existsSync)(e))return e;let t=(0,s.resolve)(process.env.HOME||"","Applications","Antigravity.app","Contents","MacOS","Antigravity");return(0,n.existsSync)(t)?t:e}return"/usr/share/antigravity/antigravity"}async function p(){try{"win32"===c()?await o("taskkill /F /IM Antigravity.exe /T 2>nul || exit 0"):u()?await o("taskkill.exe /F /IM Antigravity.exe /T 2>/dev/null || true"):await o("killall antigravity 2>/dev/null || true"),i.logger.info("[ProcessManager] Killed existing Antigravity processes."),await new Promise(e=>setTimeout(e,"win32"===c()||u()?2500:1500))}catch{}}i.logger.info(`[ProcessManager] Platform detection: runtimePlatform="${c()}", os.type()="${a.type()}", IS_WIN=${"win32"===c()}, IS_MAC=${"darwin"===c()}, IS_WSL=${u()}`),u()&&i.logger.info("[ProcessManager] WSL environment detected — will resolve Windows binary paths via /mnt/c/");let g=null;async function w(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{active:!1,windowCount:0,error:`HTTP ${e.status}`};let t=(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski"));return{active:!0,windowCount:t.length}}catch(e){return{active:!1,windowCount:0,error:e.message}}}async function v(e=".",r=!1){let a=await w();if(a.active&&a.windowCount>0&&!r)return{success:!0,message:`CDP server already active on port ${l} with ${a.windowCount} window(s).`};r&&await p();let o=d(),c=(0,s.resolve)(e||".");if((o.includes("/")||o.includes("\\"))&&!(0,n.existsSync)(o))return{success:!1,message:`Antigravity binary not found at "${o}". Set the ANTIGRAVITY_BINARY environment variable to the correct path.`};try{if(!(0,n.statSync)(c).isDirectory())return{success:!1,message:`"${c}" is not a directory.`}}catch{return{success:!1,message:`Directory not found: "${c}"`}}try{i.logger.info(`[ProcessManager] Starting Antigravity: ${o} --remote-debugging-port=${l} --new-window "${c}"`),i.logger.info(`[ProcessManager] Platform: ${process.platform}, Binary: ${o}`),(g=(0,t.spawn)(o,[`--remote-debugging-port=${l}`,"--new-window",c],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0})).unref();let e=g.pid;if(g.on("error",e=>{i.logger.error(`[ProcessManager] Antigravity process error: ${e.message}`),g=null}),g.on("exit",e=>{i.logger.info(`[ProcessManager] Antigravity process exited with code ${e}`),g=null}),await x(15e3))return{success:!0,message:`Antigravity started with CDP on port ${l}.`,pid:e||void 0};return{success:!1,message:`Antigravity process started but CDP server did not become available on port ${l} within 15s.`,pid:e||void 0}}catch(e){return i.logger.error(`[ProcessManager] Failed to start Antigravity: ${e.message}`),{success:!1,message:`Failed to start Antigravity: ${e.message}`}}}async function f(e){let r=(0,s.resolve)(e);try{if(!(0,n.statSync)(r).isDirectory())return{success:!1,message:`"${r}" is not a directory. Please provide a folder path.`}}catch{return{success:!1,message:`Directory not found: "${r}". Make sure the path exists.`}}let a=await w(),o=d();if(a.active)try{return i.logger.info(`[ProcessManager] Opening new window for: ${r}`),(0,t.spawn)(o,["--new-window",r],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0}).unref(),await new Promise(e=>setTimeout(e,3e3)),{success:!0,message:`Opened new window for "${r}".`}}catch(e){return{success:!1,message:`Failed to open window: ${e.message}`}}{let t=await v(e,!1);return{success:t.success,message:t.message}}}async function h(e){try{let t=await fetch(`http://localhost:${l}/json/close/${e}`);if(t.ok)return{success:!0,message:"Window closed successfully."};return{success:!1,message:`Failed to close window: HTTP ${t.status}`}}catch(e){return{success:!1,message:`Failed to close window: ${e.message}`}}}async function y(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{targets:[],error:`HTTP ${e.status}`};return{targets:(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski")).map(e=>({id:e.id,title:e.title||"Untitled",url:e.url}))}}catch(e){return{targets:[],error:e.message}}}async function x(e){let t=Date.now();for(;Date.now()-t<e;){let e=await w();if(e.active&&e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}async function m(e){let t=Date.now();for(;Date.now()-t<e;){let e=await w();if(!e.active)break;if(e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}e.s(["closeWindow",()=>h,"getWindowTargets",()=>y,"isCdpServerActive",()=>w,"openNewWindow",()=>f,"startCdpServer",()=>v,"waitForWorkbenchPages",()=>m])},77118,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),s=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),g=e.i(70101),w=e.i(26937),v=e.i(10372),f=e.i(93695);e.i(52474);var h=e.i(220),y=e.i(89171),x=e.i(13231);async function m(){try{let e=await (0,x.isCdpServerActive)(),t=[];return e.active&&(t=(await (0,x.getWindowTargets)()).targets),y.NextResponse.json({active:e.active,windowCount:e.windowCount,targets:t,error:e.error||null})}catch(e){return y.NextResponse.json({active:!1,windowCount:0,targets:[],error:e.message},{status:500})}}e.s(["GET",()=>m,"dynamic",0,"force-dynamic"],73517);var A=e.i(73517);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/v1/windows/cdp-status/route",pathname:"/api/v1/windows/cdp-status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/v1/windows/cdp-status/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:P,workUnitAsyncStorage:C,serverHooks:$}=R;function E(){return(0,n.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:C})}async function T(e,t,n){R.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/v1/windows/cdp-status/route";y=y.replace(/\/index$/,"")||"/";let x=await R.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:m,params:A,nextConfig:P,parsedUrl:C,isDraftMode:$,prerenderManifest:E,routerServerContext:T,isOnDemandRevalidate:b,revalidateOnlyGenerated:S,resolvedPathname:k,clientReferenceManifest:I,serverActionsManifest:N}=x,M=(0,o.normalizeAppPath)(y),O=!!(E.dynamicRoutes[M]||E.routes[k]),D=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,C,!1):t.end("This page could not be found"),null);if(O&&!$){let e=!!E.routes[k],t=E.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(P.experimental.adapterPath)return await D();throw new f.NoFallbackError}}let _=null;!O||R.isDev||$||(_="/index"===(_=k)?"/":_);let F=!0===R.isDev||!O,j=O&&!F;N&&I&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:I,serverActionsManifest:N});let L=e.method||"GET",q=(0,a.getTracer)(),H=q.getActiveScopeSpan(),U={params:A,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!P.experimental.authInterrupts},cacheComponents:!!P.cacheComponents,supportsDynamicResponse:F,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:P.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>R.onRequestError(e,t,n,s,T)},sharedContext:{buildId:m}},G=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(G,(0,c.signalFromNodeResponse)(t));try{let i=async e=>R.handle(B,U).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${L} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${L} ${y}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&b&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(s);e.fetchMetrics=U.renderOpts.fetchMetrics;let l=U.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let c=U.renderOpts.collectedTags;if(!O)return await (0,p.sendResponse)(G,W,a,U.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[v.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,n=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:h.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,T),t}},u=await R.handleResponse({req:e,nextConfig:P,cacheKey:_,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:S,responseGenerator:c,waitUntil:n.waitUntil,isMinimalMode:o});if(!O)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==h.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",b?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),$&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&O||f.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,w.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(G,W,new Response(u.value.body,{headers:f,status:u.value.status||200})),null};H?await l(H):await q.withPropagatedContext(e.headers,()=>q.trace(u.BaseServerSpan.handleRequest,{spanName:`${L} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},l))}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:b})},!1,T),O)throw t;return await (0,p.sendResponse)(G,W,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>E,"routeModule",()=>R,"serverHooks",()=>$,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>C],77118)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__d6f75bb0._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},93846,e=>{"use strict";let t=globalThis.__PROXY_CTX||{workbenchPage:null,browser:null,allWorkbenches:[],activeWindowIdx:0,activeConversationId:null,activeTitle:null,lastActionTimestamp:0};e.s(["default",0,t])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},40911,e=>{"use strict";let t=new class{level="info";constructor(){this.level=process.env.LOG_LEVEL||"info"}shouldLog(e){let t=["debug","info","warn","error"];return t.indexOf(e)>=t.indexOf(this.level)}debug(e,t){this.shouldLog("debug")&&console.debug(`[DEBUG] ${e}`,t||"")}info(e,t){this.shouldLog("info")&&console.info(`[INFO] ${e}`,t||"")}warn(e,t){this.shouldLog("warn")&&console.warn(`[WARN] ${e}`,t||"")}error(e,t){this.shouldLog("error")&&console.error(`[ERROR] ${e}`,t||"")}};e.s(["logger",0,t])},13231,e=>{"use strict";var t=e.i(33405),r=e.i(24361),s=e.i(22734),n=e.i(14747),a=e.i(46786),o=e.i(40911);let i=(0,r.promisify)(t.exec),l=parseInt(process.env.CDP_PORT||"9223",10),c=a.platform()||globalThis.process&&globalThis.process.platform||"unknown",u="win32"===c,d=!u&&"linux"===c&&(()=>{try{return/microsoft|wsl/i.test((0,s.readFileSync)("/proc/version","utf8"))}catch{return!1}})();function p(){if(process.env.ANTIGRAVITY_BINARY){let e=process.env.ANTIGRAVITY_BINARY;return(0,s.existsSync)(e)||o.logger.warn(`[ProcessManager] ANTIGRAVITY_BINARY set to "${e}" but file does not exist.`),e}if(d){let e="/mnt/c/Users",t=[];try{let r=new Set(["Public","Default","Default User","All Users","desktop.ini"]);for(let a of(0,s.readdirSync)(e).filter(e=>!r.has(e)))t.push((0,n.resolve)(e,a,"AppData/Local/Programs/Antigravity/Antigravity.exe"),(0,n.resolve)(e,a,"AppData/Local/Programs/antigravity/Antigravity.exe"),(0,n.resolve)(e,a,"AppData/Local/Antigravity/Antigravity.exe"))}catch(t){o.logger.warn(`[ProcessManager] Could not scan ${e}: ${t.message}`)}for(let e of(t.push("/mnt/c/Program Files/Google/Antigravity/Antigravity.exe","/mnt/c/Program Files/Antigravity/Antigravity.exe","/mnt/c/Program Files (x86)/Antigravity/Antigravity.exe"),t))if((0,s.existsSync)(e))return o.logger.info(`[ProcessManager] Found Antigravity binary via WSL at: ${e}`),e;o.logger.warn("[ProcessManager] WSL detected but Antigravity.exe not found in /mnt/c/. Falling back to Linux path.")}return"/usr/share/antigravity/antigravity"}async function g(){try{d?await i("taskkill.exe /F /IM Antigravity.exe /T 2>/dev/null || true"):await i("killall antigravity 2>/dev/null || true"),o.logger.info("[ProcessManager] Killed existing Antigravity processes."),await new Promise(e=>setTimeout(e,u||d?2500:1500))}catch{}}o.logger.info(`[ProcessManager] Platform detection: runtimePlatform="${c}", os.type()="${a.type()}", IS_WIN=${u}, IS_MAC=${"darwin"===c}, IS_WSL=${d}`),d&&o.logger.info("[ProcessManager] WSL environment detected — will resolve Windows binary paths via /mnt/c/");let h=null;async function w(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{active:!1,windowCount:0,error:`HTTP ${e.status}`};let t=(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski"));return{active:!0,windowCount:t.length}}catch(e){return{active:!1,windowCount:0,error:e.message}}}async function v(e=".",r=!1){let a=await w();if(a.active&&a.windowCount>0&&!r)return{success:!0,message:`CDP server already active on port ${l} with ${a.windowCount} window(s).`};r&&await g();let i=p(),c=(0,n.resolve)(e||".");if((i.includes("/")||i.includes("\\"))&&!(0,s.existsSync)(i))return{success:!1,message:`Antigravity binary not found at "${i}". Set the ANTIGRAVITY_BINARY environment variable to the correct path.`};try{if(!(0,s.statSync)(c).isDirectory())return{success:!1,message:`"${c}" is not a directory.`}}catch{return{success:!1,message:`Directory not found: "${c}"`}}try{o.logger.info(`[ProcessManager] Starting Antigravity: ${i} --remote-debugging-port=${l} --new-window "${c}"`),o.logger.info(`[ProcessManager] Platform: ${process.platform}, Binary: ${i}`),(h=(0,t.spawn)(i,[`--remote-debugging-port=${l}`,"--new-window",c],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0})).unref();let e=h.pid;if(h.on("error",e=>{o.logger.error(`[ProcessManager] Antigravity process error: ${e.message}`),h=null}),h.on("exit",e=>{o.logger.info(`[ProcessManager] Antigravity process exited with code ${e}`),h=null}),await y(15e3))return{success:!0,message:`Antigravity started with CDP on port ${l}.`,pid:e||void 0};return{success:!1,message:`Antigravity process started but CDP server did not become available on port ${l} within 15s.`,pid:e||void 0}}catch(e){return o.logger.error(`[ProcessManager] Failed to start Antigravity: ${e.message}`),{success:!1,message:`Failed to start Antigravity: ${e.message}`}}}async function m(e){let r=(0,n.resolve)(e);try{if(!(0,s.statSync)(r).isDirectory())return{success:!1,message:`"${r}" is not a directory. Please provide a folder path.`}}catch{return{success:!1,message:`Directory not found: "${r}". Make sure the path exists.`}}let a=await w(),i=p();if(a.active)try{return o.logger.info(`[ProcessManager] Opening new window for: ${r}`),(0,t.spawn)(i,["--new-window",r],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0}).unref(),await new Promise(e=>setTimeout(e,3e3)),{success:!0,message:`Opened new window for "${r}".`}}catch(e){return{success:!1,message:`Failed to open window: ${e.message}`}}{let t=await v(e,!1);return{success:t.success,message:t.message}}}async function f(e){try{let t=await fetch(`http://localhost:${l}/json/close/${e}`);if(t.ok)return{success:!0,message:"Window closed successfully."};return{success:!1,message:`Failed to close window: HTTP ${t.status}`}}catch(e){return{success:!1,message:`Failed to close window: ${e.message}`}}}async function x(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{targets:[],error:`HTTP ${e.status}`};return{targets:(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski")).map(e=>({id:e.id,title:e.title||"Untitled",url:e.url}))}}catch(e){return{targets:[],error:e.message}}}async function y(e){let t=Date.now();for(;Date.now()-t<e;){let e=await w();if(e.active&&e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}async function P(e){let t=Date.now();for(;Date.now()-t<e;){let e=await w();if(!e.active)break;if(e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}e.s(["closeWindow",()=>f,"getWindowTargets",()=>x,"isCdpServerActive",()=>w,"openNewWindow",()=>m,"startCdpServer",()=>v,"waitForWorkbenchPages",()=>P])},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},524,e=>{"use strict";class t{static create(e){return new Promise((r,s)=>{let n=new WebSocket(e);n.addEventListener("open",()=>r(new t(n))),n.addEventListener("error",s)})}#e;onmessage;onclose;constructor(e){this.#e=e,this.#e.addEventListener("message",e=>{this.onmessage&&this.onmessage.call(null,e.data)}),this.#e.addEventListener("close",()=>{this.onclose&&this.onclose.call(null)}),this.#e.addEventListener("error",()=>{})}send(e){this.#e.send(e)}close(){this.#e.close()}}e.s(["BrowserWebSocketTransport",()=>t])},36580,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),g=e.i(70101),h=e.i(26937),w=e.i(10372),v=e.i(93695);e.i(52474);var m=e.i(220),f=e.i(89171),x=e.i(13231),y=e.i(93846),P=e.i(29476);async function R(e){let{targetId:t,index:r}=await e.json().catch(()=>({}));if(!t&&null!=r){let{targets:e}=await (0,x.getWindowTargets)();if(r<0||r>=e.length)return f.NextResponse.json({success:!1,message:`Invalid window index ${r}. Available: 0-${e.length-1}`},{status:400});t=e[r].id}if(!t)return f.NextResponse.json({success:!1,message:"Either targetId or index is required."},{status:400});try{let e=await (0,x.closeWindow)(t);if(e.success){await new Promise(e=>setTimeout(e,1e3));try{await (0,P.discoverWorkbenches)(y.default),y.default.allWorkbenches.length>0&&y.default.activeWindowIdx>=y.default.allWorkbenches.length&&(y.default.activeWindowIdx=0,y.default.workbenchPage=y.default.allWorkbenches[0].page)}catch{}}return f.NextResponse.json(e,{status:e.success?200:500})}catch(e){return f.NextResponse.json({success:!1,message:e.message},{status:500})}}e.s(["POST",()=>R,"dynamic",0,"force-dynamic"],12460);var A=e.i(12460);let _=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/v1/windows/close/route",pathname:"/api/v1/windows/close",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/v1/windows/close/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:b,workUnitAsyncStorage:k,serverHooks:T}=_;function $(){return(0,s.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:k})}async function C(e,t,s){_.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/v1/windows/close/route";f=f.replace(/\/index$/,"")||"/";let x=await _.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:y,params:P,nextConfig:R,parsedUrl:A,isDraftMode:b,prerenderManifest:k,routerServerContext:T,isOnDemandRevalidate:$,revalidateOnlyGenerated:C,resolvedPathname:E,clientReferenceManifest:S,serverActionsManifest:j}=x,I=(0,i.normalizeAppPath)(f),N=!!(k.dynamicRoutes[I]||k.routes[E]),D=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,A,!1):t.end("This page could not be found"),null);if(N&&!b){let e=!!k.routes[E],t=k.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await D();throw new v.NoFallbackError}}let O=null;!N||_.isDev||b||(O="/index"===(O=E)?"/":O);let M=!0===_.isDev||!N,q=N&&!M;j&&S&&(0,o.setManifestsSingleton)({page:f,clientReferenceManifest:S,serverActionsManifest:j});let L=e.method||"GET",W=(0,a.getTracer)(),F=W.getActiveScopeSpan(),H={params:P,prerenderManifest:k,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>_.onRequestError(e,t,s,n,T)},sharedContext:{buildId:y}},U=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(U,(0,c.signalFromNodeResponse)(t));try{let o=async e=>_.handle(G,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=W.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${L} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${L} ${f}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!i&&$&&C&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(n);e.fetchMetrics=H.renderOpts.fetchMetrics;let l=H.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let c=H.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(U,B,a,H.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[w.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,s=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:$})},!1,T),t}},u=await _.handleResponse({req:e,nextConfig:R,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:$,revalidateOnlyGenerated:C,responseGenerator:c,waitUntil:s.waitUntil,isMinimalMode:i});if(!N)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",$?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&N||v.delete(w.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(U,B,new Response(u.value.body,{headers:v,status:u.value.status||200})),null};F?await l(F):await W.withPropagatedContext(e.headers,()=>W.trace(u.BaseServerSpan.handleRequest,{spanName:`${L} ${f}`,kind:a.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:$})},!1,T),N)throw t;return await (0,p.sendResponse)(U,B,new Response(null,{status:500})),null}}e.s(["handler",()=>C,"patchFetch",()=>$,"routeModule",()=>_,"serverHooks",()=>T,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>k],36580)},82359,e=>{e.v(e=>Promise.resolve().then(()=>e(17293)))},6384,e=>{e.v(e=>Promise.resolve().then(()=>e(524)))},34561,e=>{e.v(e=>Promise.resolve().then(()=>e(73335)))},17952,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_@puppeteer_browsers_lib_esm_main_83020de3.js"].map(t=>e.l(t))).then(()=>t(78893)))},56955,e=>{e.v(e=>Promise.resolve().then(()=>e(68213)))},11105,e=>{e.v(e=>Promise.resolve().then(()=>e(50227)))},97365,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_1f8a2929._.js","server/chunks/node_modules_f81d3958._.js"].map(t=>e.l(t))).then(()=>t(66560)))},42394,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_1f8a2929._.js","server/chunks/node_modules_151ca6ae._.js"].map(t=>e.l(t))).then(()=>t(78947)))},34844,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_3b486fee._.js","server/chunks/node_modules_yargs_index_mjs_c4f6f97b._.js"].map(t=>e.l(t))).then(()=>t(91919)))},80113,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_yargs_helpers_helpers_mjs_abe15519._.js","server/chunks/node_modules_64199bef._.js"].map(t=>e.l(t))).then(()=>t(25057)))}];
1
+ module.exports=[14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},93846,e=>{"use strict";let t=globalThis.__PROXY_CTX||{workbenchPage:null,browser:null,allWorkbenches:[],activeWindowIdx:0,activeConversationId:null,activeTitle:null,lastActionTimestamp:0};e.s(["default",0,t])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},40911,e=>{"use strict";let t=new class{level="info";constructor(){this.level=process.env.LOG_LEVEL||"info"}shouldLog(e){let t=["debug","info","warn","error"];return t.indexOf(e)>=t.indexOf(this.level)}debug(e,t){this.shouldLog("debug")&&console.debug(`[DEBUG] ${e}`,t||"")}info(e,t){this.shouldLog("info")&&console.info(`[INFO] ${e}`,t||"")}warn(e,t){this.shouldLog("warn")&&console.warn(`[WARN] ${e}`,t||"")}error(e,t){this.shouldLog("error")&&console.error(`[ERROR] ${e}`,t||"")}};e.s(["logger",0,t])},13231,e=>{"use strict";var t=e.i(33405),r=e.i(24361),s=e.i(22734),n=e.i(14747),a=e.i(46786),i=e.i(40911);let o=(0,r.promisify)(t.exec),l=parseInt(process.env.CDP_PORT||"9223",10),c=()=>"u"<typeof process?"unknown":process.platform||"unknown",u=()=>{if("win32"===c()||"linux"!==c())return!1;try{return/microsoft|wsl/i.test((0,s.readFileSync)("/proc/version","utf8"))}catch{return!1}};function d(){if(process.env.ANTIGRAVITY_BINARY){let e=process.env.ANTIGRAVITY_BINARY;return(0,s.existsSync)(e)||i.logger.warn(`[ProcessManager] ANTIGRAVITY_BINARY set to "${e}" but file does not exist.`),e}if("win32"===c()){for(let e of[(0,n.resolve)(process.env.LOCALAPPDATA||"","Programs","Antigravity","Antigravity.exe"),(0,n.resolve)(process.env.PROGRAMFILES||"C:\\Program Files","Google","Antigravity","Antigravity.exe"),(0,n.resolve)(process.env.PROGRAMFILES||"C:\\Program Files","Antigravity","Antigravity.exe"),(0,n.resolve)(process.env["PROGRAMFILES(X86)"]||"C:\\Program Files (x86)","Antigravity","Antigravity.exe")])if(e&&(0,s.existsSync)(e))return e;return i.logger.warn("[ProcessManager] Antigravity.exe not found in known locations. Falling back to PATH lookup."),"Antigravity.exe"}if(u()){let e="/mnt/c/Users",t=[];try{let r=new Set(["Public","Default","Default User","All Users","desktop.ini"]);for(let a of(0,s.readdirSync)(e).filter(e=>!r.has(e)))t.push((0,n.resolve)(e,a,"AppData/Local/Programs/Antigravity/Antigravity.exe"),(0,n.resolve)(e,a,"AppData/Local/Programs/antigravity/Antigravity.exe"),(0,n.resolve)(e,a,"AppData/Local/Antigravity/Antigravity.exe"))}catch(t){i.logger.warn(`[ProcessManager] Could not scan ${e}: ${t.message}`)}for(let e of(t.push("/mnt/c/Program Files/Google/Antigravity/Antigravity.exe","/mnt/c/Program Files/Antigravity/Antigravity.exe","/mnt/c/Program Files (x86)/Antigravity/Antigravity.exe"),t))if((0,s.existsSync)(e))return i.logger.info(`[ProcessManager] Found Antigravity binary via WSL at: ${e}`),e;i.logger.warn("[ProcessManager] WSL detected but Antigravity.exe not found in /mnt/c/. Falling back to Linux path.")}if("darwin"===c()){let e="/Applications/Antigravity.app/Contents/MacOS/Antigravity";if((0,s.existsSync)(e))return e;let t=(0,n.resolve)(process.env.HOME||"","Applications","Antigravity.app","Contents","MacOS","Antigravity");return(0,s.existsSync)(t)?t:e}return"/usr/share/antigravity/antigravity"}async function p(){try{"win32"===c()?await o("taskkill /F /IM Antigravity.exe /T 2>nul || exit 0"):u()?await o("taskkill.exe /F /IM Antigravity.exe /T 2>/dev/null || true"):await o("killall antigravity 2>/dev/null || true"),i.logger.info("[ProcessManager] Killed existing Antigravity processes."),await new Promise(e=>setTimeout(e,"win32"===c()||u()?2500:1500))}catch{}}i.logger.info(`[ProcessManager] Platform detection: runtimePlatform="${c()}", os.type()="${a.type()}", IS_WIN=${"win32"===c()}, IS_MAC=${"darwin"===c()}, IS_WSL=${u()}`),u()&&i.logger.info("[ProcessManager] WSL environment detected — will resolve Windows binary paths via /mnt/c/");let g=null;async function v(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{active:!1,windowCount:0,error:`HTTP ${e.status}`};let t=(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski"));return{active:!0,windowCount:t.length}}catch(e){return{active:!1,windowCount:0,error:e.message}}}async function w(e=".",r=!1){let a=await v();if(a.active&&a.windowCount>0&&!r)return{success:!0,message:`CDP server already active on port ${l} with ${a.windowCount} window(s).`};r&&await p();let o=d(),c=(0,n.resolve)(e||".");if((o.includes("/")||o.includes("\\"))&&!(0,s.existsSync)(o))return{success:!1,message:`Antigravity binary not found at "${o}". Set the ANTIGRAVITY_BINARY environment variable to the correct path.`};try{if(!(0,s.statSync)(c).isDirectory())return{success:!1,message:`"${c}" is not a directory.`}}catch{return{success:!1,message:`Directory not found: "${c}"`}}try{i.logger.info(`[ProcessManager] Starting Antigravity: ${o} --remote-debugging-port=${l} --new-window "${c}"`),i.logger.info(`[ProcessManager] Platform: ${process.platform}, Binary: ${o}`),(g=(0,t.spawn)(o,[`--remote-debugging-port=${l}`,"--new-window",c],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0})).unref();let e=g.pid;if(g.on("error",e=>{i.logger.error(`[ProcessManager] Antigravity process error: ${e.message}`),g=null}),g.on("exit",e=>{i.logger.info(`[ProcessManager] Antigravity process exited with code ${e}`),g=null}),await y(15e3))return{success:!0,message:`Antigravity started with CDP on port ${l}.`,pid:e||void 0};return{success:!1,message:`Antigravity process started but CDP server did not become available on port ${l} within 15s.`,pid:e||void 0}}catch(e){return i.logger.error(`[ProcessManager] Failed to start Antigravity: ${e.message}`),{success:!1,message:`Failed to start Antigravity: ${e.message}`}}}async function h(e){let r=(0,n.resolve)(e);try{if(!(0,s.statSync)(r).isDirectory())return{success:!1,message:`"${r}" is not a directory. Please provide a folder path.`}}catch{return{success:!1,message:`Directory not found: "${r}". Make sure the path exists.`}}let a=await v(),o=d();if(a.active)try{return i.logger.info(`[ProcessManager] Opening new window for: ${r}`),(0,t.spawn)(o,["--new-window",r],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0}).unref(),await new Promise(e=>setTimeout(e,3e3)),{success:!0,message:`Opened new window for "${r}".`}}catch(e){return{success:!1,message:`Failed to open window: ${e.message}`}}{let t=await w(e,!1);return{success:t.success,message:t.message}}}async function f(e){try{let t=await fetch(`http://localhost:${l}/json/close/${e}`);if(t.ok)return{success:!0,message:"Window closed successfully."};return{success:!1,message:`Failed to close window: HTTP ${t.status}`}}catch(e){return{success:!1,message:`Failed to close window: ${e.message}`}}}async function m(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{targets:[],error:`HTTP ${e.status}`};return{targets:(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski")).map(e=>({id:e.id,title:e.title||"Untitled",url:e.url}))}}catch(e){return{targets:[],error:e.message}}}async function y(e){let t=Date.now();for(;Date.now()-t<e;){let e=await v();if(e.active&&e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}async function x(e){let t=Date.now();for(;Date.now()-t<e;){let e=await v();if(!e.active)break;if(e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}e.s(["closeWindow",()=>f,"getWindowTargets",()=>m,"isCdpServerActive",()=>v,"openNewWindow",()=>h,"startCdpServer",()=>w,"waitForWorkbenchPages",()=>x])},6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},524,e=>{"use strict";class t{static create(e){return new Promise((r,s)=>{let n=new WebSocket(e);n.addEventListener("open",()=>r(new t(n))),n.addEventListener("error",s)})}#e;onmessage;onclose;constructor(e){this.#e=e,this.#e.addEventListener("message",e=>{this.onmessage&&this.onmessage.call(null,e.data)}),this.#e.addEventListener("close",()=>{this.onclose&&this.onclose.call(null)}),this.#e.addEventListener("error",()=>{})}send(e){this.#e.send(e)}close(){this.#e.close()}}e.s(["BrowserWebSocketTransport",()=>t])},36580,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),g=e.i(70101),v=e.i(26937),w=e.i(10372),h=e.i(93695);e.i(52474);var f=e.i(220),m=e.i(89171),y=e.i(13231),x=e.i(93846),A=e.i(29476);async function P(e){let{targetId:t,index:r}=await e.json().catch(()=>({}));if(!t&&null!=r){let{targets:e}=await (0,y.getWindowTargets)();if(r<0||r>=e.length)return m.NextResponse.json({success:!1,message:`Invalid window index ${r}. Available: 0-${e.length-1}`},{status:400});t=e[r].id}if(!t)return m.NextResponse.json({success:!1,message:"Either targetId or index is required."},{status:400});try{let e=await (0,y.closeWindow)(t);if(e.success){await new Promise(e=>setTimeout(e,1e3));try{await (0,A.discoverWorkbenches)(x.default),x.default.allWorkbenches.length>0&&x.default.activeWindowIdx>=x.default.allWorkbenches.length&&(x.default.activeWindowIdx=0,x.default.workbenchPage=x.default.allWorkbenches[0].page)}catch{}}return m.NextResponse.json(e,{status:e.success?200:500})}catch(e){return m.NextResponse.json({success:!1,message:e.message},{status:500})}}e.s(["POST",()=>P,"dynamic",0,"force-dynamic"],12460);var R=e.i(12460);let _=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/v1/windows/close/route",pathname:"/api/v1/windows/close",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/v1/windows/close/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:b,workUnitAsyncStorage:k,serverHooks:C}=_;function T(){return(0,s.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:k})}async function E(e,t,s){_.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/v1/windows/close/route";m=m.replace(/\/index$/,"")||"/";let y=await _.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:x,params:A,nextConfig:P,parsedUrl:R,isDraftMode:b,prerenderManifest:k,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:E,resolvedPathname:$,clientReferenceManifest:S,serverActionsManifest:I}=y,j=(0,o.normalizeAppPath)(m),N=!!(k.dynamicRoutes[j]||k.routes[$]),O=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,R,!1):t.end("This page could not be found"),null);if(N&&!b){let e=!!k.routes[$],t=k.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(P.experimental.adapterPath)return await O();throw new h.NoFallbackError}}let M=null;!N||_.isDev||b||(M="/index"===(M=$)?"/":M);let D=!0===_.isDev||!N,L=N&&!D;I&&S&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:S,serverActionsManifest:I});let F=e.method||"GET",q=(0,a.getTracer)(),W=q.getActiveScopeSpan(),H={params:A,prerenderManifest:k,renderOpts:{experimental:{authInterrupts:!!P.experimental.authInterrupts},cacheComponents:!!P.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:P.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>_.onRequestError(e,t,s,n,C)},sharedContext:{buildId:x}},U=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(U,(0,c.signalFromNodeResponse)(t));try{let i=async e=>_.handle(B,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${F} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${m}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&T&&E&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=H.renderOpts.fetchMetrics;let l=H.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let c=H.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(U,G,a,H.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[w.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=w.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,s=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=w.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:T})},!1,C),t}},u=await _.handleResponse({req:e,nextConfig:P,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:E,responseGenerator:c,waitUntil:s.waitUntil,isMinimalMode:o});if(!N)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&N||h.delete(w.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(U,G,new Response(u.value.body,{headers:h,status:u.value.status||200})),null};W?await l(W):await q.withPropagatedContext(e.headers,()=>q.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${m}`,kind:a.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof h.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:T})},!1,C),N)throw t;return await (0,p.sendResponse)(U,G,new Response(null,{status:500})),null}}e.s(["handler",()=>E,"patchFetch",()=>T,"routeModule",()=>_,"serverHooks",()=>C,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>k],36580)},82359,e=>{e.v(e=>Promise.resolve().then(()=>e(17293)))},6384,e=>{e.v(e=>Promise.resolve().then(()=>e(524)))},34561,e=>{e.v(e=>Promise.resolve().then(()=>e(73335)))},17952,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_@puppeteer_browsers_lib_esm_main_83020de3.js"].map(t=>e.l(t))).then(()=>t(78893)))},56955,e=>{e.v(e=>Promise.resolve().then(()=>e(68213)))},11105,e=>{e.v(e=>Promise.resolve().then(()=>e(50227)))},97365,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_1f8a2929._.js","server/chunks/node_modules_f81d3958._.js"].map(t=>e.l(t))).then(()=>t(66560)))},42394,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_1f8a2929._.js","server/chunks/node_modules_151ca6ae._.js"].map(t=>e.l(t))).then(()=>t(78947)))},34844,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_3b486fee._.js","server/chunks/node_modules_yargs_index_mjs_c4f6f97b._.js"].map(t=>e.l(t))).then(()=>t(91919)))},80113,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_yargs_helpers_helpers_mjs_abe15519._.js","server/chunks/node_modules_64199bef._.js"].map(t=>e.l(t))).then(()=>t(25057)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__e30be4af._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},524,e=>{"use strict";class t{static create(e){return new Promise((r,n)=>{let s=new WebSocket(e);s.addEventListener("open",()=>r(new t(s))),s.addEventListener("error",n)})}#e;onmessage;onclose;constructor(e){this.#e=e,this.#e.addEventListener("message",e=>{this.onmessage&&this.onmessage.call(null,e.data)}),this.#e.addEventListener("close",()=>{this.onclose&&this.onclose.call(null)}),this.#e.addEventListener("error",()=>{})}send(e){this.#e.send(e)}close(){this.#e.close()}}e.s(["BrowserWebSocketTransport",()=>t])},93846,e=>{"use strict";let t=globalThis.__PROXY_CTX||{workbenchPage:null,browser:null,allWorkbenches:[],activeWindowIdx:0,activeConversationId:null,activeTitle:null,lastActionTimestamp:0};e.s(["default",0,t])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},40911,e=>{"use strict";let t=new class{level="info";constructor(){this.level=process.env.LOG_LEVEL||"info"}shouldLog(e){let t=["debug","info","warn","error"];return t.indexOf(e)>=t.indexOf(this.level)}debug(e,t){this.shouldLog("debug")&&console.debug(`[DEBUG] ${e}`,t||"")}info(e,t){this.shouldLog("info")&&console.info(`[INFO] ${e}`,t||"")}warn(e,t){this.shouldLog("warn")&&console.warn(`[WARN] ${e}`,t||"")}error(e,t){this.shouldLog("error")&&console.error(`[ERROR] ${e}`,t||"")}};e.s(["logger",0,t])},13231,e=>{"use strict";var t=e.i(33405),r=e.i(24361),n=e.i(22734),s=e.i(14747),o=e.i(46786),i=e.i(40911);let a=(0,r.promisify)(t.exec),l=parseInt(process.env.CDP_PORT||"9223",10),c=o.platform()||globalThis.process&&globalThis.process.platform||"unknown",u="win32"===c,g=!u&&"linux"===c&&(()=>{try{return/microsoft|wsl/i.test((0,n.readFileSync)("/proc/version","utf8"))}catch{return!1}})();function d(){if(process.env.ANTIGRAVITY_BINARY){let e=process.env.ANTIGRAVITY_BINARY;return(0,n.existsSync)(e)||i.logger.warn(`[ProcessManager] ANTIGRAVITY_BINARY set to "${e}" but file does not exist.`),e}if(g){let e="/mnt/c/Users",t=[];try{let r=new Set(["Public","Default","Default User","All Users","desktop.ini"]);for(let o of(0,n.readdirSync)(e).filter(e=>!r.has(e)))t.push((0,s.resolve)(e,o,"AppData/Local/Programs/Antigravity/Antigravity.exe"),(0,s.resolve)(e,o,"AppData/Local/Programs/antigravity/Antigravity.exe"),(0,s.resolve)(e,o,"AppData/Local/Antigravity/Antigravity.exe"))}catch(t){i.logger.warn(`[ProcessManager] Could not scan ${e}: ${t.message}`)}for(let e of(t.push("/mnt/c/Program Files/Google/Antigravity/Antigravity.exe","/mnt/c/Program Files/Antigravity/Antigravity.exe","/mnt/c/Program Files (x86)/Antigravity/Antigravity.exe"),t))if((0,n.existsSync)(e))return i.logger.info(`[ProcessManager] Found Antigravity binary via WSL at: ${e}`),e;i.logger.warn("[ProcessManager] WSL detected but Antigravity.exe not found in /mnt/c/. Falling back to Linux path.")}return"/usr/share/antigravity/antigravity"}async function w(){try{g?await a("taskkill.exe /F /IM Antigravity.exe /T 2>/dev/null || true"):await a("killall antigravity 2>/dev/null || true"),i.logger.info("[ProcessManager] Killed existing Antigravity processes."),await new Promise(e=>setTimeout(e,u||g?2500:1500))}catch{}}i.logger.info(`[ProcessManager] Platform detection: runtimePlatform="${c}", os.type()="${o.type()}", IS_WIN=${u}, IS_MAC=${"darwin"===c}, IS_WSL=${g}`),g&&i.logger.info("[ProcessManager] WSL environment detected — will resolve Windows binary paths via /mnt/c/");let f=null;async function p(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{active:!1,windowCount:0,error:`HTTP ${e.status}`};let t=(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski"));return{active:!0,windowCount:t.length}}catch(e){return{active:!1,windowCount:0,error:e.message}}}async function v(e=".",r=!1){let o=await p();if(o.active&&o.windowCount>0&&!r)return{success:!0,message:`CDP server already active on port ${l} with ${o.windowCount} window(s).`};r&&await w();let a=d(),c=(0,s.resolve)(e||".");if((a.includes("/")||a.includes("\\"))&&!(0,n.existsSync)(a))return{success:!1,message:`Antigravity binary not found at "${a}". Set the ANTIGRAVITY_BINARY environment variable to the correct path.`};try{if(!(0,n.statSync)(c).isDirectory())return{success:!1,message:`"${c}" is not a directory.`}}catch{return{success:!1,message:`Directory not found: "${c}"`}}try{i.logger.info(`[ProcessManager] Starting Antigravity: ${a} --remote-debugging-port=${l} --new-window "${c}"`),i.logger.info(`[ProcessManager] Platform: ${process.platform}, Binary: ${a}`),(f=(0,t.spawn)(a,[`--remote-debugging-port=${l}`,"--new-window",c],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0})).unref();let e=f.pid;if(f.on("error",e=>{i.logger.error(`[ProcessManager] Antigravity process error: ${e.message}`),f=null}),f.on("exit",e=>{i.logger.info(`[ProcessManager] Antigravity process exited with code ${e}`),f=null}),await P(15e3))return{success:!0,message:`Antigravity started with CDP on port ${l}.`,pid:e||void 0};return{success:!1,message:`Antigravity process started but CDP server did not become available on port ${l} within 15s.`,pid:e||void 0}}catch(e){return i.logger.error(`[ProcessManager] Failed to start Antigravity: ${e.message}`),{success:!1,message:`Failed to start Antigravity: ${e.message}`}}}async function h(e){let r=(0,s.resolve)(e);try{if(!(0,n.statSync)(r).isDirectory())return{success:!1,message:`"${r}" is not a directory. Please provide a folder path.`}}catch{return{success:!1,message:`Directory not found: "${r}". Make sure the path exists.`}}let o=await p(),a=d();if(o.active)try{return i.logger.info(`[ProcessManager] Opening new window for: ${r}`),(0,t.spawn)(a,["--new-window",r],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0}).unref(),await new Promise(e=>setTimeout(e,3e3)),{success:!0,message:`Opened new window for "${r}".`}}catch(e){return{success:!1,message:`Failed to open window: ${e.message}`}}{let t=await v(e,!1);return{success:t.success,message:t.message}}}async function m(e){try{let t=await fetch(`http://localhost:${l}/json/close/${e}`);if(t.ok)return{success:!0,message:"Window closed successfully."};return{success:!1,message:`Failed to close window: HTTP ${t.status}`}}catch(e){return{success:!1,message:`Failed to close window: ${e.message}`}}}async function y(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{targets:[],error:`HTTP ${e.status}`};return{targets:(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski")).map(e=>({id:e.id,title:e.title||"Untitled",url:e.url}))}}catch(e){return{targets:[],error:e.message}}}async function P(e){let t=Date.now();for(;Date.now()-t<e;){let e=await p();if(e.active&&e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}async function x(e){let t=Date.now();for(;Date.now()-t<e;){let e=await p();if(!e.active)break;if(e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}e.s(["closeWindow",()=>m,"getWindowTargets",()=>y,"isCdpServerActive",()=>p,"openNewWindow",()=>h,"startCdpServer",()=>v,"waitForWorkbenchPages",()=>x])},53506,e=>{"use strict";var t=e.i(29476),r=e.i(13231),n=e.i(40911),s=e.i(93846);let o=!1,i=null;async function a(){o&&s.default.workbenchPage||(i||(i=(async()=>{try{await (0,t.connectToWorkbench)(s.default),o=!0,c();return}catch(e){n.logger.warn("[CDP Init] Initial connection failed:",e.message)}n.logger.info("[CDP Init] Attempting auto-recovery...");for(let e=1;e<=3;e++){n.logger.info(`[CDP Init] Recovery attempt ${e}/3`);let i=await (0,r.isCdpServerActive)();if(i.active&&i.windowCount>0){n.logger.info(`[CDP Init] CDP active with ${i.windowCount} window(s). Retrying connection without restart...`),l();try{await (0,t.connectToWorkbench)(s.default),o=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(t){n.logger.warn(`[CDP Init] Retry ${e} failed: ${t.message}`),await new Promise(e=>setTimeout(e,2e3));continue}}if(i.active&&0===i.windowCount)if(n.logger.warn("[CDP Init] CDP server active but 0 workbench pages. Waiting for pages to load..."),await (0,r.waitForWorkbenchPages)(1e4)){n.logger.info("[CDP Init] Workbench pages appeared! Connecting..."),l();try{await (0,t.connectToWorkbench)(s.default),o=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(e){n.logger.warn(`[CDP Init] Connection after page wait failed: ${e.message}`)}}else n.logger.warn("[CDP Init] No workbench pages appeared after 10s. Will kill and restart...");else i.active||n.logger.warn("[CDP Init] CDP server not reachable. Starting Antigravity with CDP...");let a=await (0,r.startCdpServer)(".",!0);if(!a.success){n.logger.error(`[CDP Init] Auto-recovery failed: ${a.message}`),await new Promise(e=>setTimeout(e,3e3));continue}n.logger.info(`[CDP Init] Antigravity restarted: ${a.message}`),await new Promise(e=>setTimeout(e,3e3)),l();try{await (0,t.connectToWorkbench)(s.default),o=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(t){n.logger.error(`[CDP Init] Recovery attempt ${e} connection failed: ${t.message}`),await new Promise(e=>setTimeout(e,2e3))}}n.logger.error("[CDP Init] All 3 recovery attempts failed. Please start Antigravity manually with --remote-debugging-port=9223"),i=null})()),await i)}function l(){if(s.default.browser){try{s.default.browser.disconnect()}catch{}s.default.browser=null,s.default.workbenchPage=null,s.default.allWorkbenches=[]}}function c(){s.default.browser?.on("disconnected",()=>{n.logger.error("[CDP] Browser disconnected. Will reconnect on next request."),o=!1,i=null,s.default.workbenchPage=null,s.default.browser=null,s.default.allWorkbenches=[]}),s.default.workbenchPage?.on("close",()=>{n.logger.warn("[CDP] Workbench page closed. Will reconnect on next request."),o=!1,i=null,s.default.workbenchPage=null})}process.platform,e.s(["ensureCdpConnection",()=>a])}];
1
+ module.exports=[6461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},524,e=>{"use strict";class t{static create(e){return new Promise((r,n)=>{let s=new WebSocket(e);s.addEventListener("open",()=>r(new t(s))),s.addEventListener("error",n)})}#e;onmessage;onclose;constructor(e){this.#e=e,this.#e.addEventListener("message",e=>{this.onmessage&&this.onmessage.call(null,e.data)}),this.#e.addEventListener("close",()=>{this.onclose&&this.onclose.call(null)}),this.#e.addEventListener("error",()=>{})}send(e){this.#e.send(e)}close(){this.#e.close()}}e.s(["BrowserWebSocketTransport",()=>t])},93846,e=>{"use strict";let t=globalThis.__PROXY_CTX||{workbenchPage:null,browser:null,allWorkbenches:[],activeWindowIdx:0,activeConversationId:null,activeTitle:null,lastActionTimestamp:0};e.s(["default",0,t])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},40911,e=>{"use strict";let t=new class{level="info";constructor(){this.level=process.env.LOG_LEVEL||"info"}shouldLog(e){let t=["debug","info","warn","error"];return t.indexOf(e)>=t.indexOf(this.level)}debug(e,t){this.shouldLog("debug")&&console.debug(`[DEBUG] ${e}`,t||"")}info(e,t){this.shouldLog("info")&&console.info(`[INFO] ${e}`,t||"")}warn(e,t){this.shouldLog("warn")&&console.warn(`[WARN] ${e}`,t||"")}error(e,t){this.shouldLog("error")&&console.error(`[ERROR] ${e}`,t||"")}};e.s(["logger",0,t])},13231,e=>{"use strict";var t=e.i(33405),r=e.i(24361),n=e.i(22734),s=e.i(14747),i=e.i(46786),o=e.i(40911);let a=(0,r.promisify)(t.exec),l=parseInt(process.env.CDP_PORT||"9223",10),c=()=>"u"<typeof process?"unknown":process.platform||"unknown",g=()=>{if("win32"===c()||"linux"!==c())return!1;try{return/microsoft|wsl/i.test((0,n.readFileSync)("/proc/version","utf8"))}catch{return!1}};function u(){if(process.env.ANTIGRAVITY_BINARY){let e=process.env.ANTIGRAVITY_BINARY;return(0,n.existsSync)(e)||o.logger.warn(`[ProcessManager] ANTIGRAVITY_BINARY set to "${e}" but file does not exist.`),e}if("win32"===c()){for(let e of[(0,s.resolve)(process.env.LOCALAPPDATA||"","Programs","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env.PROGRAMFILES||"C:\\Program Files","Google","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env.PROGRAMFILES||"C:\\Program Files","Antigravity","Antigravity.exe"),(0,s.resolve)(process.env["PROGRAMFILES(X86)"]||"C:\\Program Files (x86)","Antigravity","Antigravity.exe")])if(e&&(0,n.existsSync)(e))return e;return o.logger.warn("[ProcessManager] Antigravity.exe not found in known locations. Falling back to PATH lookup."),"Antigravity.exe"}if(g()){let e="/mnt/c/Users",t=[];try{let r=new Set(["Public","Default","Default User","All Users","desktop.ini"]);for(let i of(0,n.readdirSync)(e).filter(e=>!r.has(e)))t.push((0,s.resolve)(e,i,"AppData/Local/Programs/Antigravity/Antigravity.exe"),(0,s.resolve)(e,i,"AppData/Local/Programs/antigravity/Antigravity.exe"),(0,s.resolve)(e,i,"AppData/Local/Antigravity/Antigravity.exe"))}catch(t){o.logger.warn(`[ProcessManager] Could not scan ${e}: ${t.message}`)}for(let e of(t.push("/mnt/c/Program Files/Google/Antigravity/Antigravity.exe","/mnt/c/Program Files/Antigravity/Antigravity.exe","/mnt/c/Program Files (x86)/Antigravity/Antigravity.exe"),t))if((0,n.existsSync)(e))return o.logger.info(`[ProcessManager] Found Antigravity binary via WSL at: ${e}`),e;o.logger.warn("[ProcessManager] WSL detected but Antigravity.exe not found in /mnt/c/. Falling back to Linux path.")}if("darwin"===c()){let e="/Applications/Antigravity.app/Contents/MacOS/Antigravity";if((0,n.existsSync)(e))return e;let t=(0,s.resolve)(process.env.HOME||"","Applications","Antigravity.app","Contents","MacOS","Antigravity");return(0,n.existsSync)(t)?t:e}return"/usr/share/antigravity/antigravity"}async function d(){try{"win32"===c()?await a("taskkill /F /IM Antigravity.exe /T 2>nul || exit 0"):g()?await a("taskkill.exe /F /IM Antigravity.exe /T 2>/dev/null || true"):await a("killall antigravity 2>/dev/null || true"),o.logger.info("[ProcessManager] Killed existing Antigravity processes."),await new Promise(e=>setTimeout(e,"win32"===c()||g()?2500:1500))}catch{}}o.logger.info(`[ProcessManager] Platform detection: runtimePlatform="${c()}", os.type()="${i.type()}", IS_WIN=${"win32"===c()}, IS_MAC=${"darwin"===c()}, IS_WSL=${g()}`),g()&&o.logger.info("[ProcessManager] WSL environment detected — will resolve Windows binary paths via /mnt/c/");let w=null;async function f(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{active:!1,windowCount:0,error:`HTTP ${e.status}`};let t=(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski"));return{active:!0,windowCount:t.length}}catch(e){return{active:!1,windowCount:0,error:e.message}}}async function p(e=".",r=!1){let i=await f();if(i.active&&i.windowCount>0&&!r)return{success:!0,message:`CDP server already active on port ${l} with ${i.windowCount} window(s).`};r&&await d();let a=u(),c=(0,s.resolve)(e||".");if((a.includes("/")||a.includes("\\"))&&!(0,n.existsSync)(a))return{success:!1,message:`Antigravity binary not found at "${a}". Set the ANTIGRAVITY_BINARY environment variable to the correct path.`};try{if(!(0,n.statSync)(c).isDirectory())return{success:!1,message:`"${c}" is not a directory.`}}catch{return{success:!1,message:`Directory not found: "${c}"`}}try{o.logger.info(`[ProcessManager] Starting Antigravity: ${a} --remote-debugging-port=${l} --new-window "${c}"`),o.logger.info(`[ProcessManager] Platform: ${process.platform}, Binary: ${a}`),(w=(0,t.spawn)(a,[`--remote-debugging-port=${l}`,"--new-window",c],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0})).unref();let e=w.pid;if(w.on("error",e=>{o.logger.error(`[ProcessManager] Antigravity process error: ${e.message}`),w=null}),w.on("exit",e=>{o.logger.info(`[ProcessManager] Antigravity process exited with code ${e}`),w=null}),await m(15e3))return{success:!0,message:`Antigravity started with CDP on port ${l}.`,pid:e||void 0};return{success:!1,message:`Antigravity process started but CDP server did not become available on port ${l} within 15s.`,pid:e||void 0}}catch(e){return o.logger.error(`[ProcessManager] Failed to start Antigravity: ${e.message}`),{success:!1,message:`Failed to start Antigravity: ${e.message}`}}}async function v(e){let r=(0,s.resolve)(e);try{if(!(0,n.statSync)(r).isDirectory())return{success:!1,message:`"${r}" is not a directory. Please provide a folder path.`}}catch{return{success:!1,message:`Directory not found: "${r}". Make sure the path exists.`}}let i=await f(),a=u();if(i.active)try{return o.logger.info(`[ProcessManager] Opening new window for: ${r}`),(0,t.spawn)(a,["--new-window",r],{detached:!0,stdio:"ignore",env:{...process.env},shell:!1,windowsHide:!0}).unref(),await new Promise(e=>setTimeout(e,3e3)),{success:!0,message:`Opened new window for "${r}".`}}catch(e){return{success:!1,message:`Failed to open window: ${e.message}`}}{let t=await p(e,!1);return{success:t.success,message:t.message}}}async function y(e){try{let t=await fetch(`http://localhost:${l}/json/close/${e}`);if(t.ok)return{success:!0,message:"Window closed successfully."};return{success:!1,message:`Failed to close window: HTTP ${t.status}`}}catch(e){return{success:!1,message:`Failed to close window: ${e.message}`}}}async function h(){try{let e=await fetch(`http://localhost:${l}/json`);if(!e.ok)return{targets:[],error:`HTTP ${e.status}`};return{targets:(await e.json()).filter(e=>e.url?.includes("workbench.html")&&!e.url?.includes("jetski")).map(e=>({id:e.id,title:e.title||"Untitled",url:e.url}))}}catch(e){return{targets:[],error:e.message}}}async function m(e){let t=Date.now();for(;Date.now()-t<e;){let e=await f();if(e.active&&e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}async function P(e){let t=Date.now();for(;Date.now()-t<e;){let e=await f();if(!e.active)break;if(e.windowCount>0)return!0;await new Promise(e=>setTimeout(e,500))}return!1}e.s(["closeWindow",()=>y,"getWindowTargets",()=>h,"isCdpServerActive",()=>f,"openNewWindow",()=>v,"startCdpServer",()=>p,"waitForWorkbenchPages",()=>P])},53506,e=>{"use strict";var t=e.i(29476),r=e.i(13231),n=e.i(40911),s=e.i(93846);let i=!1,o=null;async function a(){i&&s.default.workbenchPage||(o||(o=(async()=>{try{await (0,t.connectToWorkbench)(s.default),i=!0,c();return}catch(e){n.logger.warn("[CDP Init] Initial connection failed:",e.message)}n.logger.info("[CDP Init] Attempting auto-recovery...");for(let e=1;e<=3;e++){n.logger.info(`[CDP Init] Recovery attempt ${e}/3`);let o=await (0,r.isCdpServerActive)();if(o.active&&o.windowCount>0){n.logger.info(`[CDP Init] CDP active with ${o.windowCount} window(s). Retrying connection without restart...`),l();try{await (0,t.connectToWorkbench)(s.default),i=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(t){n.logger.warn(`[CDP Init] Retry ${e} failed: ${t.message}`),await new Promise(e=>setTimeout(e,2e3));continue}}if(o.active&&0===o.windowCount)if(n.logger.warn("[CDP Init] CDP server active but 0 workbench pages. Waiting for pages to load..."),await (0,r.waitForWorkbenchPages)(1e4)){n.logger.info("[CDP Init] Workbench pages appeared! Connecting..."),l();try{await (0,t.connectToWorkbench)(s.default),i=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(e){n.logger.warn(`[CDP Init] Connection after page wait failed: ${e.message}`)}}else n.logger.warn("[CDP Init] No workbench pages appeared after 10s. Will kill and restart...");else o.active||n.logger.warn("[CDP Init] CDP server not reachable. Starting Antigravity with CDP...");let a=await (0,r.startCdpServer)(".",!0);if(!a.success){n.logger.error(`[CDP Init] Auto-recovery failed: ${a.message}`),await new Promise(e=>setTimeout(e,3e3));continue}n.logger.info(`[CDP Init] Antigravity restarted: ${a.message}`),await new Promise(e=>setTimeout(e,3e3)),l();try{await (0,t.connectToWorkbench)(s.default),i=!0,c(),n.logger.info("[CDP Init] Auto-recovery successful! Connected to workbench.");return}catch(t){n.logger.error(`[CDP Init] Recovery attempt ${e} connection failed: ${t.message}`),await new Promise(e=>setTimeout(e,2e3))}}n.logger.error("[CDP Init] All 3 recovery attempts failed. Please start Antigravity manually with --remote-debugging-port=9223"),o=null})()),await o)}function l(){if(s.default.browser){try{s.default.browser.disconnect()}catch{}s.default.browser=null,s.default.workbenchPage=null,s.default.allWorkbenches=[]}}function c(){s.default.browser?.on("disconnected",()=>{n.logger.error("[CDP] Browser disconnected. Will reconnect on next request."),i=!1,o=null,s.default.workbenchPage=null,s.default.browser=null,s.default.allWorkbenches=[]}),s.default.workbenchPage?.on("close",()=>{n.logger.warn("[CDP] Workbench page closed. Will reconnect on next request."),i=!1,o=null,s.default.workbenchPage=null})}process.platform,e.s(["ensureCdpConnection",()=>a])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__e9f50df1._.js.map
@@ -22,22 +22,28 @@ const execAsync = promisify(exec);
22
22
  const CDP_PORT_RAW = process.env.CDP_PORT || '9223';
23
23
  const CDP_PORT = parseInt(CDP_PORT_RAW, 10);
24
24
 
25
- // Use os.platform() or globalThis.process.platform to prevent Webpack from statically
26
- // replacing `process.platform` with the build machine's OS (e.g., 'linux') during npm publish.
27
- const runtimePlatform = os.platform() || (globalThis.process && globalThis.process.platform) || 'unknown';
28
-
29
- const IS_WIN = runtimePlatform === 'win32';
30
- const IS_MAC = runtimePlatform === 'darwin';
31
- const IS_WSL = !IS_WIN && runtimePlatform === 'linux' && (() => {
25
+ // Use string concatenation to defeat incredibly aggressive Turbopack/Next.js static Dead Code Elimination
26
+ // which was previously executing os.platform() at build time and optimizing away the entire Windows block.
27
+ const getPlatform = () => {
28
+ if (typeof process === 'undefined') return 'unknown';
29
+ const p = 'plat';
30
+ const f = 'form';
31
+ const prop = p + f;
32
+ return (process as any)[prop] || 'unknown';
33
+ };
34
+ const isWin = () => getPlatform() === 'win32';
35
+ const isMac = () => getPlatform() === 'darwin';
36
+ const isWsl = () => {
37
+ if (isWin() || getPlatform() !== 'linux') return false;
32
38
  try {
33
39
  return /microsoft|wsl/i.test(readFileSync('/proc/version', 'utf8'));
34
40
  } catch { return false; }
35
- })();
41
+ };
36
42
 
37
43
  // Log platform detection at startup for cross-platform debugging
38
- logger.info(`[ProcessManager] Platform detection: runtimePlatform="${runtimePlatform}", os.type()="${os.type()}", IS_WIN=${IS_WIN}, IS_MAC=${IS_MAC}, IS_WSL=${IS_WSL}`);
44
+ logger.info(`[ProcessManager] Platform detection: runtimePlatform="${getPlatform()}", os.type()="${os.type()}", IS_WIN=${isWin()}, IS_MAC=${isMac()}, IS_WSL=${isWsl()}`);
39
45
 
40
- if (IS_WSL) {
46
+ if (isWsl()) {
41
47
  logger.info('[ProcessManager] WSL environment detected — will resolve Windows binary paths via /mnt/c/');
42
48
  }
43
49
 
@@ -55,7 +61,7 @@ function getAntigravityBinary(): string {
55
61
  return customBin;
56
62
  }
57
63
 
58
- if (IS_WIN) {
64
+ if (isWin()) {
59
65
  // Windows: check common install locations
60
66
  const candidates = [
61
67
  resolve(process.env.LOCALAPPDATA || '', 'Programs', 'Antigravity', 'Antigravity.exe'),
@@ -72,7 +78,7 @@ function getAntigravityBinary(): string {
72
78
  return 'Antigravity.exe';
73
79
  }
74
80
 
75
- if (IS_WSL) {
81
+ if (isWsl()) {
76
82
  // WSL: Linux kernel but Windows filesystem is mounted at /mnt/c/
77
83
  // Scan real user directories under /mnt/c/Users/ for the Antigravity binary
78
84
  const windowsUsersDir = '/mnt/c/Users';
@@ -110,7 +116,7 @@ function getAntigravityBinary(): string {
110
116
  // Fall through to Linux path as last resort
111
117
  }
112
118
 
113
- if (IS_MAC) {
119
+ if (isMac()) {
114
120
  // macOS: standard .app bundle location
115
121
  const macBinary = '/Applications/Antigravity.app/Contents/MacOS/Antigravity';
116
122
  if (existsSync(macBinary)) return macBinary;
@@ -129,10 +135,10 @@ function getAntigravityBinary(): string {
129
135
  */
130
136
  async function killAllAntigravity(): Promise<void> {
131
137
  try {
132
- if (IS_WIN) {
138
+ if (isWin()) {
133
139
  // taskkill is case-insensitive; /T kills the entire process tree
134
140
  await execAsync('taskkill /F /IM Antigravity.exe /T 2>nul || exit 0');
135
- } else if (IS_WSL) {
141
+ } else if (isWsl()) {
136
142
  // In WSL, use taskkill.exe to kill the Windows process
137
143
  await execAsync('taskkill.exe /F /IM Antigravity.exe /T 2>/dev/null || true');
138
144
  } else {
@@ -140,7 +146,7 @@ async function killAllAntigravity(): Promise<void> {
140
146
  }
141
147
  logger.info('[ProcessManager] Killed existing Antigravity processes.');
142
148
  // Wait for process cleanup — Windows process trees can take longer to tear down
143
- await new Promise(resolve => setTimeout(resolve, (IS_WIN || IS_WSL) ? 2500 : 1500));
149
+ await new Promise(resolve => setTimeout(resolve, (isWin() || isWsl()) ? 2500 : 1500));
144
150
  } catch {
145
151
  // Ignore errors - process might not exist
146
152
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "antigravity-mobile-proxy",
3
- "version": "0.1.12",
3
+ "version": "0.1.16",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "antigravity-mobile-proxy",
9
- "version": "0.1.12",
9
+ "version": "0.1.16",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT",
12
12
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antigravity-mobile-proxy",
3
- "version": "0.1.13",
3
+ "version": "0.1.16",
4
4
  "description": "A web chat proxy for Antigravity IDE with ngrok OAuth tunnel support",
5
5
  "keywords": [
6
6
  "antigravity",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antigravity-mobile-proxy",
3
- "version": "0.1.13",
3
+ "version": "0.1.16",
4
4
  "description": "A web chat proxy for Antigravity IDE with ngrok OAuth tunnel support",
5
5
  "keywords": [
6
6
  "antigravity",