@crewx/sdk 0.9.0-rc.123 → 0.9.0-rc.124

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
- 'use strict';var p=require('path'),crypto=require('crypto'),fs=require('fs'),os=require('os'),child_process=require('child_process'),string_decoder=require('string_decoder'),module$1=require('module');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var p__namespace=/*#__PURE__*/_interopNamespace(p);var B=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var m=class extends Error{code;constructor(t,n){super(`${t}: ${n}`),this.code=t,this.name="ShortcutError";}};var q={existsSync:e=>fs.existsSync(e),readFileSync:e=>fs.readFileSync(e,"utf8"),readBinaryFileSync:e=>new Uint8Array(fs.readFileSync(e)),writeFileSync:(e,t)=>fs.writeFileSync(e,t,"utf8"),mkdirSync:e=>{fs.mkdirSync(e,{recursive:true});},unlinkSync:e=>{fs.unlinkSync(e);}},Y=os.homedir;function N(e){return typeof e!="string"?void 0:e.trim()||void 0}function O(e){return N(e)?.toLowerCase()??""}function b(e){try{return fs.statSync(e).isFile()}catch{return false}}function Ke(e,t){if(e===t)return true;let n=p__namespace.default.relative(e,t);return n!==""&&!n.startsWith("..")&&!p__namespace.default.isAbsolute(n)}function je(e,t){if(p__namespace.default.basename(e)!==".bin")return false;let n=p__namespace.default.dirname(e);if(p__namespace.default.basename(n)!=="node_modules")return false;let r=p__namespace.default.dirname(n);return Ke(r,t)}function Q(e,t={}){if(e.includes("/")||e.includes("\\")||p__namespace.default.isAbsolute(e))return e;let n=t.platform??process.platform,r=t.env??process.env,o=p__namespace.default.resolve(t.cwd??process.cwd()),c=(t.resolution??"global_first")==="global_first",s=r.PATH??r.Path??process.env.PATH??process.env.Path??"",i=n==="win32"?";":":",a=s.split(i).map(u=>u.trim()).filter(Boolean),l=p__namespace.default.extname(e).length>0,d=r.PATHEXT??r.Pathext??process.env.PATHEXT??process.env.Pathext??".EXE;.CMD;.BAT;.COM",f=n==="win32"?l?[""]:d.split(";").map(u=>u.trim()).filter(Boolean).map(u=>u.startsWith(".")?u:`.${u}`):[""];for(let u of a){let P=p__namespace.default.resolve(o,u);if(!(c&&je(P,o)))for(let h of f){let C=O(h),g=h.toUpperCase();for(let w of [h,C,g]){let y=p__namespace.default.join(P,`${e}${w}`);if(b(y))return y}}}return e}function ze(e){if(!b(e))return null;try{let t=fs.readFileSync(e,"utf8"),n=p__namespace.default.dirname(e),r=[];for(let i of t.matchAll(/"([^"\r\n]*)"/g)){let d=(i[1]??"").match(/%~?dp0%?\s*[\\/]*(.*)$/i)?.[1]?.trim();if(!d)continue;let f=d.replace(/[\\/]+/g,p__namespace.default.sep).replace(/^[\\/]+/,""),u=p__namespace.default.resolve(n,f);b(u)&&r.push(u);}let o=[],c=new Map;for(let i of t.matchAll(/SET\s+"(\w+)=%~?dp0%?[\\/]?([^"]+)"/gi)){let a=i[1].toUpperCase(),l=i[2].trim().replace(/[\\/]+/g,p__namespace.default.sep).replace(/^[\\/]+/,"");c.set(a,p__namespace.default.resolve(n,l));}for(let i of t.split(/\r?\n/))if(i.includes("%*"))for(let a of i.matchAll(/"%(\w+)%"/g)){let l=c.get(a[1].toUpperCase());l&&b(l)&&o.push(l);}let s=i=>i.find(a=>{let l=O(p__namespace.default.basename(a));return l!=="node.exe"&&l!=="node"})??null;return s(o)??s(r)}catch{return null}}function qe(e,t){if(typeof t=="string")return N(t)||null;if(!t||typeof t!="object")return null;if(e){let n=t[e],r=typeof n=="string"?N(n):void 0;if(r)return r}for(let n of Object.values(t)){let r=typeof n=="string"?N(n):void 0;if(r)return r}return null}function Ye(e,t){if(!t)return null;let n=p__namespace.default.dirname(e),r=[p__namespace.default.resolve(n,"..",t),p__namespace.default.resolve(n,"node_modules",t)];for(let o of r){let c=p__namespace.default.join(o,"package.json");if(b(c))try{let s=JSON.parse(fs.readFileSync(c,"utf8")),i=qe(t,s.bin);if(!i)continue;let a=p__namespace.default.resolve(o,i);if(b(a))return a}catch{}}return null}function Qe(e){let t=e.platform??process.platform,n=e.env??process.env,r=e.execPath??process.execPath,o=e.cwd,c=e.resolution;if(t!=="win32")return {command:Q(e.command,{cwd:o,env:n,platform:t,resolution:c}),leadingArgv:[],resolution:"direct"};let s=Q(e.command,{cwd:o,env:n,platform:t,resolution:c}),i=O(p__namespace.default.extname(s));if(i===".js"||i===".cjs"||i===".mjs")return {command:r,leadingArgv:[s],resolution:"node-entrypoint",windowsHide:true};if(i===".cmd"||i===".bat"){let a=ze(s)??Ye(s,e.packageName);return a?O(p__namespace.default.extname(a))===".exe"?{command:a,leadingArgv:[],resolution:"exe-entrypoint",windowsHide:true}:{command:r,leadingArgv:[a],resolution:"node-entrypoint",windowsHide:true}:{command:s,leadingArgv:[],resolution:"unresolved-wrapper"}}return {command:s,leadingArgv:[],resolution:"direct"}}function Ze(e){if(e.candidate.resolution!=="unresolved-wrapper")return {command:e.candidate.command,leadingArgv:e.candidate.leadingArgv,resolution:e.candidate.resolution,windowsHide:e.candidate.windowsHide};throw new Error(`${p__namespace.default.basename(e.candidate.command)} wrapper resolved, but no executable/Node entrypoint could be resolved without shell execution.`)}function ee(e){let t=Qe(e);return Ze({candidate:t})}function te(e,t){return {command:e.command,argv:[...e.leadingArgv,...t],resolution:e.resolution,shell:e.shell,windowsHide:e.windowsHide}}var D="\uFFFD",$=8,re=1e3,tt=new Map([[437,"ibm437"],[720,"ibm720"],[737,"ibm737"],[775,"ibm775"],[850,"ibm850"],[852,"ibm852"],[855,"ibm855"],[857,"ibm857"],[858,"ibm858"],[862,"ibm862"],[864,"ibm864"],[932,"shift_jis"],[936,"gb18030"],[949,"euc-kr"],[950,"big5"],[866,"ibm866"],[869,"ibm869"],[1250,"windows-1250"],[1251,"windows-1251"],[1252,"windows-1252"],[1253,"windows-1253"],[1254,"windows-1254"],[1255,"windows-1255"],[1256,"windows-1256"],[1257,"windows-1257"],[1258,"windows-1258"]]),T;function U(e){let t=0;for(let n of e)n===D&&(t+=1);return t}function H(e,t){return U(t)<U(e)?t:e}function nt(e){let t=e.match(/(?:^|[^0-9])([0-9]{1,5})(?![0-9])/);if(!t)return null;let n=Number(t[1]);return Number.isInteger(n)&&n>0&&n<=65535?n:null}function rt(e){if(e!==65001)return tt.get(e)}function ot(e){let t=rt(e);if(!t)return null;try{return new TextDecoder(t)}catch{return null}}function st(){return new Promise(e=>{let t=false,n,r=o=>{t||(t=true,n&&clearTimeout(n),e(o));};n=setTimeout(()=>r(null),re),n.unref();try{child_process.execFile("chcp.com",[],{encoding:"ascii",timeout:re,windowsHide:!0},(c,s)=>{if(c){r(null);return}r(nt(String(s)));}).once("error",()=>r(null));}catch{r(null);}})}function ie(){return process.platform!=="win32"?Promise.resolve(null):(T||(T=st(),T.then(e=>{},()=>{})),T)}function it(){process.platform==="win32"&&ie();}function se(e,t){if(t.length>=$)return t.subarray(t.length-$);let n=$-t.length,r=e.length>n?e.subarray(e.length-n):e;return Buffer.concat([r,t])}var k=class{platform;detectCodePage;utf8Decoder=new string_decoder.StringDecoder("utf8");codePage;fallbackDecoder;replayTail=Buffer.alloc(0);pendingUtf8="";pendingFallback="";pendingBytes=Buffer.alloc(0);queue=Promise.resolve();ended=false;constructor(t={}){this.platform=t.platform??process.platform,this.detectCodePage=t.detectCodePage??ie,this.codePage=t.codePage;}write(t){let n=Buffer.from(t);return this.enqueue(()=>this.decodeChunk(n))}end(){return this.enqueue(()=>this.finish())}enqueue(t){let n=this.queue.then(t);return this.queue=n.then(()=>{},()=>{}),n}clearPendingCandidate(){this.pendingUtf8="",this.pendingFallback="",this.pendingBytes=Buffer.alloc(0);}async resolveCodePage(){if(this.codePage!==void 0)return this.codePage;try{this.codePage=await this.detectCodePage();}catch{this.codePage=null;}return this.codePage}async getFallbackDecoder(){if(this.fallbackDecoder!==void 0)return this.fallbackDecoder;let t=await this.resolveCodePage();return this.fallbackDecoder=t===null?null:ot(t),this.fallbackDecoder}async decodeChunk(t){if(this.ended)return "";let n=this.utf8Decoder.write(t),r=n.includes(D);if(r&&(this.utf8Decoder=new string_decoder.StringDecoder("utf8")),this.platform!=="win32")return n;if(this.fallbackDecoder){let a=this.fallbackDecoder.decode(t,{stream:true}),l=se(this.pendingBytes,t);if(r){let d=this.pendingUtf8+n,f=this.pendingFallback+a;return this.clearPendingCandidate(),H(d,f)}if(U(a)>0){let d=this.pendingUtf8+n;return this.clearPendingCandidate(),this.fallbackDecoder=void 0,this.replayTail=l,d}if(this.pendingUtf8||this.pendingFallback){if(this.pendingUtf8+=n,this.pendingFallback+=a,this.pendingBytes=l,n.length===0||a.length===0)return "";let d=this.pendingUtf8;return this.clearPendingCandidate(),d}return n.length===0&&a.length>0?(this.pendingUtf8=n,this.pendingFallback=a,this.pendingBytes=l,""):n}let o=this.replayTail;if(this.fallbackDecoder===void 0&&(this.replayTail=se(this.replayTail,t)),!r)return n;let c=this.fallbackDecoder===void 0,s=await this.getFallbackDecoder();if(!s)return this.replayTail=Buffer.alloc(0),n;c&&o.length>0&&s.decode(o,{stream:true}),this.replayTail=Buffer.alloc(0);let i=s.decode(t,{stream:true});return H(n,i)}async finish(){if(this.ended)return "";this.ended=true;let t=this.utf8Decoder.end();if(this.platform!=="win32")return t;if(this.fallbackDecoder===void 0&&t.includes(D)){let c=await this.getFallbackDecoder();c&&this.replayTail.length>0&&(c.decode(this.replayTail,{stream:true}),this.replayTail=Buffer.alloc(0));}let n=this.pendingUtf8+t,r=this.fallbackDecoder?.decode()??"",o=this.pendingFallback+r;return this.clearPendingCandidate(),n.includes(D)?H(n,o):n}};it();var ae=3e3;var ct=2e3,lt=25,ut=100;function ue(e){return e instanceof Error?e:e===void 0?void 0:new Error(String(e))}function ce(e){return typeof e=="object"&&e!==null&&"code"in e?String(e.code):void 0}function dt(e){return Number.isSafeInteger(e)&&e>0}function ft(e,t){return new Promise(n=>{let r;try{r=child_process.spawn(e,t,{windowsHide:!0});}catch(l){n({status:null,stdout:"",stderr:"",error:ue(l)});return}let o="",c="",s=false,i,a=setTimeout(()=>{try{r.kill();}catch{}i({status:null,stdout:o,stderr:c,error:new Error(`Command timed out after ${ae}ms`)});},ae);i=l=>{s||(s=true,clearTimeout(a),n(l));},r.stdout?.setEncoding("utf8"),r.stderr?.setEncoding("utf8"),r.stdout?.on("data",l=>{o+=String(l);}),r.stderr?.on("data",l=>{c+=String(l);}),r.once("error",l=>{i({status:null,stdout:o,stderr:c,error:l});}),r.once("close",l=>{i({status:l,stdout:o,stderr:c});});})}async function pt(e,t,n){return n.runCommandAsync?n.runCommandAsync(e,t):n.runCommand?n.runCommand(e,t):ft(e,t)}function mt(e){return new Promise(t=>{setTimeout(t,Math.max(0,e));})}function ht(){return new Promise(e=>{setImmediate(e);})}function A(e,t=process.kill){try{return t(e,0),"alive"}catch(n){return ce(n)==="ESRCH"?"not_found":ce(n)==="EPERM"?"alive":"unknown"}}function gt(e,t){let n=A(-e,t),r=A(e,t);return n==="alive"||r==="alive"?"alive":n==="unknown"||r==="unknown"?"unknown":"not_found"}async function de(e,t,n,r){let o=Math.max(0,n),c=Math.max(1,r.pollIntervalMs??lt),s=Date.now()+o,i,a=o===0,l=r.sleep?Promise.resolve().then(()=>r.sleep(o)).then(()=>{},()=>{}):new Promise(d=>{i=setTimeout(d,o);});l.then(()=>{a=true;});try{for(await ht();;){let d=gt(e,t);if(d==="not_found")return d;let f=s-Date.now();if(a||f<=0)return d;await Promise.race([l,mt(Math.min(c,f))]);}}finally{i!==void 0&&clearTimeout(i);}}async function le(e,t,n,r,o){let c=await de(e,t,o.hardConfirmMs??ut,{...o,sleep:void 0});return c==="not_found"?n?{status:"not_found",pid:e,method:r}:{status:"terminated",pid:e,method:r}:c==="alive"?{status:"failed",pid:e,method:r,error:"Process is still running after termination attempt"}:{status:"failed",pid:e,method:r,error:"Unable to verify process termination"}}async function fe(e,t={}){let n=t.platform??process.platform,r=n==="win32"?"taskkill":"process-group",o=u=>({status:"failed",pid:e,method:r,error:u});if(!dt(e))return o("Invalid process ID");let c=t.kill??process.kill,s=A(e,c);if(s==="not_found")return {status:"not_found",pid:e,method:r};if(s!=="alive")return o("Unable to determine whether the process is alive");if(n==="win32"){let u;try{u=await pt("taskkill",["/PID",String(e),"/T","/F"],t);}catch(h){u={status:null,stdout:"",stderr:"",error:ue(h)};}let P=A(e,c);return P==="not_found"?u.status===0&&!u.error?{status:"terminated",pid:e,method:r}:{status:"not_found",pid:e,method:r}:o(P==="alive"?"Process is still running after termination attempt":"Unable to verify process termination")}let i,a=t.signal??"SIGKILL";try{c(-e,a);}catch(u){i=u;}if(a==="SIGKILL")return le(e,c,i,r,t);if(await de(e,c,t.graceMs??ct,t)==="not_found")return i?{status:"not_found",pid:e,method:r}:{status:"terminated",pid:e,method:r};let d;try{c(-e,"SIGKILL");}catch(u){d=u;}let f=await le(e,c,d,r,t);return f.status==="terminated"?f:f.status==="not_found"?i?f:{status:"terminated",pid:e,method:r}:o(f.error??"Process termination failed")}var wt=["CREWX_ASSIGNED_TASK_ID","CREWX_DETACHED_RUNNER"];function Pt(e,t){let n={};for(let[r,o]of Object.entries(e))o!==void 0&&(t.includes(r)||(n[r]=o));return n}function pe(e){return Pt(e,wt)}var me=3e4;function he(e){if(typeof e.pid!="number"){try{e.kill();}catch{}return}fe(e.pid,{signal:"SIGKILL"}).then(t=>{if(t.status==="failed")try{e.kill("SIGKILL");}catch{}},()=>{try{e.kill("SIGKILL");}catch{}});}var ge=(e,t,n={})=>new Promise((r,o)=>{let c=pe(n.env??process.env),s=process.platform,i;try{let w=ee({command:e,platform:s,env:c,cwd:n.cwd,allowShellFallback:!1});i=te(w,t);}catch(w){o(w instanceof Error?w:new Error(String(w)));return}let a=child_process.spawn(i.command,i.argv,{cwd:n.cwd,env:c,shell:i.shell,windowsHide:i.windowsHide??true,detached:s!=="win32"}),l="",d="",f=false,u=new k({platform:s}),P=new k({platform:s}),h=Promise.resolve(),C=Promise.resolve(),g=setTimeout(()=>{f||(f=true,he(a),o(new Error(`Command timed out after ${n.timeoutMs??me}ms: ${e} ${t.join(" ")}`)));},n.timeoutMs??me);a.stdout?.on("data",w=>{h=h.then(async()=>{l+=await u.write(w);});}),a.stderr?.on("data",w=>{C=C.then(async()=>{d+=await P.write(w);});}),a.on("error",w=>{f||(f=true,clearTimeout(g),o(w));}),a.on("close",w=>{f||(async()=>{await Promise.all([h,C]);let[y,$e]=await Promise.all([u.end(),P.end()]);f||(l+=y,d+=$e,f=true,clearTimeout(g),r({code:w??0,stdout:l,stderr:d}));})().catch(y=>{f||(f=true,clearTimeout(g),o(y instanceof Error?y:new Error(String(y))));});});});function yt(){try{return (typeof B=="function"?B:module$1.createRequire(__filename)).resolve("@crewx/sdk/package.json")}catch{return null}}function vt(){let e=[yt(),p.join(__dirname,"../../package.json"),p.join(__dirname,"../../../package.json")].filter(t=>!!t);for(let t of e)try{let n=JSON.parse(fs.readFileSync(t,"utf8"));if(n.name==="@crewx/sdk"&&n.version)return n.version}catch{}return "0.0.0"}var Pe=vt();var E=p__namespace.win32;function V(e){return E.join(e,".crewx")}function Ee(e){return E.join(V(e),"shortcut.json")}function Ce(e){return E.join(V(e),"launcher.json")}function ye(e){return E.join(V(e),"bin","crewx-launcher.cmd")}function ve(e){return E.join(e,"CrewX.lnk")}function X(e,t){return E.normalize(e).toLowerCase()===E.normalize(t).toLowerCase()}var Rt="[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; [Environment]::GetFolderPath('DesktopDirectory')";async function Re(e){try{let n=await e.run("powershell",["-NoProfile","-NonInteractive","-Command",Rt],{env:e.env}),r=n.stdout.trim();if(n.code===0&&r)return {dir:r,source:"known-folder"}}catch{}let t=e.env.USERPROFILE||e.env.Userprofile||e.homedir();return t?{dir:E.join(t,"Desktop"),source:"fallback"}:null}function G(e,t){let n=E.resolve(t,"node_modules",".bin").toLowerCase();return e.split(";").filter(r=>r?E.resolve(r).toLowerCase()!==n:true).join(";")}function be(e){return e?/\\Program Files( \(x86\))?\\/i.test(e)&&/crewx/i.test(e):false}function bt(e,t){let n=a=>{let[l,...d]=a.split("-"),f=d.join("-")||void 0;return {parts:(l??"").split(".").map(P=>Number.parseInt(P,10)||0),pre:f}},r=n(e),o=n(t),c=Math.max(r.parts.length,o.parts.length);for(let a=0;a<c;a++){let l=r.parts[a]??0,d=o.parts[a]??0;if(l!==d)return l<d?-1:1}if(r.pre===o.pre)return 0;if(!r.pre&&o.pre)return 1;if(r.pre&&!o.pre)return -1;let s=Number.parseInt(r.pre.match(/(\d+)$/)?.[1]??"",10),i=Number.parseInt(o.pre.match(/(\d+)$/)?.[1]??"",10);return !Number.isNaN(s)&&!Number.isNaN(i)&&s!==i?s<i?-1:1:r.pre<o.pre?-1:r.pre>o.pre?1:0}function _(e,t){return bt(e,t)<0}var _e=p__namespace.win32,xe=1;function Ie(e,t){if(!e.existsSync(t))return null;try{let n=JSON.parse(e.readFileSync(t));return {schema:n.schema??xe,shortcutPath:n.shortcutPath,version:n.version,iconHash:typeof n.iconHash=="string"?n.iconHash:void 0,owned:!!n.owned,declined:!!n.declined,desktopSource:n.desktopSource,updatedAt:n.updatedAt}}catch{return null}}function W(e,t,n){let r={schema:xe,...n,updatedAt:new Date().toISOString()};e.mkdirSync(_e.dirname(t)),e.writeFileSync(t,JSON.stringify(r,null,2));}function M(e,t){if(!e.existsSync(t))return null;try{let n=JSON.parse(e.readFileSync(t));return {schema:n.schema??0,binPath:n.binPath,updatedAt:n.updatedAt}}catch{return null}}function Le(e,t,n){e.mkdirSync(_e.dirname(t)),e.writeFileSync(t,JSON.stringify(n,null,2));}var kt=p__namespace.win32,x=1;function _t(e){return e.replace(/%/g,"%%")}function xt(e){return ["@echo off","setlocal DisableDelayedExpansion","chcp 65001 >nul","",'set "CREWX_WORKDIR=%USERPROFILE%\\crewx"','if not exist "%CREWX_WORKDIR%" mkdir "%CREWX_WORKDIR%" >nul 2>nul','cd /d "%CREWX_WORKDIR%"',"",'set "CREWX_PORT_EFFECTIVE=%CREWX_PORT%"','if "%CREWX_PORT_EFFECTIVE%"=="" set "CREWX_PORT_EFFECTIVE=8150"','set "CREWX_HEALTH_URL=http://127.0.0.1:%CREWX_PORT_EFFECTIVE%/api/v1/health"','set "CREWX_ORIGIN_URL=http://127.0.0.1:%CREWX_PORT_EFFECTIVE%/"',"",e.bakedBinPath?`set "CREWX_FALLBACK_BIN=${_t(e.bakedBinPath)}"`:'set "CREWX_FALLBACK_BIN="','set "CREWX_RESOLVED_BIN=%CREWX_BIN%"','if "%CREWX_RESOLVED_BIN%"=="" set "CREWX_RESOLVED_BIN=%CREWX_FALLBACK_BIN%"','if "%CREWX_RESOLVED_BIN%"=="" (',` for /f "delims=" %%I in ('where crewx 2^>nul') do (`,' if not defined CREWX_RESOLVED_BIN set "CREWX_RESOLVED_BIN=%%I"'," )",")","",'powershell -NoProfile -NonInteractive -Command "try { $r = Invoke-WebRequest -Uri $env:CREWX_HEALTH_URL -TimeoutSec 1 -UseBasicParsing; if ($r.StatusCode -eq 200) { exit 0 } else { exit 1 } } catch { exit 1 }"',"if %ERRORLEVEL% EQU 0 (",' start "" "%CREWX_ORIGIN_URL%"'," exit /b 0",")","",'if "%CREWX_RESOLVED_BIN%"=="" ('," echo CrewX executable not found. Please reinstall the desktop shortcut."," pause"," exit /b 1",")","",'start "CrewX" /min "%CREWX_RESOLVED_BIN%"',""].join(`\r
1
+ 'use strict';var p=require('path'),crypto=require('crypto'),fs=require('fs'),os=require('os'),child_process=require('child_process'),string_decoder=require('string_decoder'),module$1=require('module');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var p__namespace=/*#__PURE__*/_interopNamespace(p);var B=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var m=class extends Error{code;constructor(t,n){super(`${t}: ${n}`),this.code=t,this.name="ShortcutError";}};var q={existsSync:e=>fs.existsSync(e),readFileSync:e=>fs.readFileSync(e,"utf8"),readBinaryFileSync:e=>new Uint8Array(fs.readFileSync(e)),writeFileSync:(e,t)=>fs.writeFileSync(e,t,"utf8"),mkdirSync:e=>{fs.mkdirSync(e,{recursive:true});},unlinkSync:e=>{fs.unlinkSync(e);}},Y=os.homedir;function N(e){return typeof e!="string"?void 0:e.trim()||void 0}function O(e){return N(e)?.toLowerCase()??""}function b(e){try{return fs.statSync(e).isFile()}catch{return false}}function Ke(e,t){if(e===t)return true;let n=p__namespace.default.relative(e,t);return n!==""&&!n.startsWith("..")&&!p__namespace.default.isAbsolute(n)}function je(e,t){if(p__namespace.default.basename(e)!==".bin")return false;let n=p__namespace.default.dirname(e);if(p__namespace.default.basename(n)!=="node_modules")return false;let r=p__namespace.default.dirname(n);return Ke(r,t)}function Q(e,t={}){if(e.includes("/")||e.includes("\\")||p__namespace.default.isAbsolute(e))return e;let n=t.platform??process.platform,r=t.env??process.env,o=p__namespace.default.resolve(t.cwd??process.cwd()),c=(t.resolution??"global_first")==="global_first",s=r.PATH??r.Path??process.env.PATH??process.env.Path??"",i=n==="win32"?";":":",a=s.split(i).map(u=>u.trim()).filter(Boolean),l=p__namespace.default.extname(e).length>0,d=r.PATHEXT??r.Pathext??process.env.PATHEXT??process.env.Pathext??".EXE;.CMD;.BAT;.COM",f=n==="win32"?l?[""]:d.split(";").map(u=>u.trim()).filter(Boolean).map(u=>u.startsWith(".")?u:`.${u}`):[""];for(let u of a){let P=p__namespace.default.resolve(o,u);if(!(c&&je(P,o)))for(let h of f){let C=O(h),g=h.toUpperCase();for(let w of [h,C,g]){let y=p__namespace.default.join(P,`${e}${w}`);if(b(y))return y}}}return e}function ze(e){if(!b(e))return null;try{let t=fs.readFileSync(e,"utf8"),n=p__namespace.default.dirname(e),r=[];for(let i of t.matchAll(/"([^"\r\n]*)"/g)){let d=(i[1]??"").match(/%~?dp0%?\s*[\\/]*(.*)$/i)?.[1]?.trim();if(!d)continue;let f=d.replace(/[\\/]+/g,p__namespace.default.sep).replace(/^[\\/]+/,""),u=p__namespace.default.resolve(n,f);b(u)&&r.push(u);}let o=[],c=new Map;for(let i of t.matchAll(/SET\s+"(\w+)=%~?dp0%?[\\/]?([^"]+)"/gi)){let a=i[1].toUpperCase(),l=i[2].trim().replace(/[\\/]+/g,p__namespace.default.sep).replace(/^[\\/]+/,"");c.set(a,p__namespace.default.resolve(n,l));}for(let i of t.split(/\r?\n/))if(i.includes("%*"))for(let a of i.matchAll(/"%(\w+)%"/g)){let l=c.get(a[1].toUpperCase());l&&b(l)&&o.push(l);}let s=i=>i.find(a=>{let l=O(p__namespace.default.basename(a));return l!=="node.exe"&&l!=="node"})??null;return s(o)??s(r)}catch{return null}}function qe(e,t){if(typeof t=="string")return N(t)||null;if(!t||typeof t!="object")return null;if(e){let n=t[e],r=typeof n=="string"?N(n):void 0;if(r)return r}for(let n of Object.values(t)){let r=typeof n=="string"?N(n):void 0;if(r)return r}return null}function Ye(e,t){if(!t)return null;let n=p__namespace.default.dirname(e),r=[p__namespace.default.resolve(n,"..",t),p__namespace.default.resolve(n,"node_modules",t)];for(let o of r){let c=p__namespace.default.join(o,"package.json");if(b(c))try{let s=JSON.parse(fs.readFileSync(c,"utf8")),i=qe(t,s.bin);if(!i)continue;let a=p__namespace.default.resolve(o,i);if(b(a))return a}catch{}}return null}function Qe(e){let t=e.platform??process.platform,n=e.env??process.env,r=e.execPath??process.execPath,o=e.cwd,c=e.resolution;if(t!=="win32")return {command:Q(e.command,{cwd:o,env:n,platform:t,resolution:c}),leadingArgv:[],resolution:"direct"};let s=Q(e.command,{cwd:o,env:n,platform:t,resolution:c}),i=O(p__namespace.default.extname(s));if(i===".js"||i===".cjs"||i===".mjs")return {command:r,leadingArgv:[s],resolution:"node-entrypoint",windowsHide:true};if(i===".cmd"||i===".bat"){let a=ze(s)??Ye(s,e.packageName);return a?O(p__namespace.default.extname(a))===".exe"?{command:a,leadingArgv:[],resolution:"exe-entrypoint",windowsHide:true}:{command:r,leadingArgv:[a],resolution:"node-entrypoint",windowsHide:true}:{command:s,leadingArgv:[],resolution:"unresolved-wrapper"}}return {command:s,leadingArgv:[],resolution:"direct",windowsHide:true}}function Ze(e){if(e.candidate.resolution!=="unresolved-wrapper")return {command:e.candidate.command,leadingArgv:e.candidate.leadingArgv,resolution:e.candidate.resolution,windowsHide:e.candidate.windowsHide};throw new Error(`${p__namespace.default.basename(e.candidate.command)} wrapper resolved, but no executable/Node entrypoint could be resolved without shell execution.`)}function ee(e){let t=Qe(e);return Ze({candidate:t})}function te(e,t){return {command:e.command,argv:[...e.leadingArgv,...t],resolution:e.resolution,shell:e.shell,windowsHide:e.windowsHide}}var D="\uFFFD",$=8,re=1e3,tt=new Map([[437,"ibm437"],[720,"ibm720"],[737,"ibm737"],[775,"ibm775"],[850,"ibm850"],[852,"ibm852"],[855,"ibm855"],[857,"ibm857"],[858,"ibm858"],[862,"ibm862"],[864,"ibm864"],[932,"shift_jis"],[936,"gb18030"],[949,"euc-kr"],[950,"big5"],[866,"ibm866"],[869,"ibm869"],[1250,"windows-1250"],[1251,"windows-1251"],[1252,"windows-1252"],[1253,"windows-1253"],[1254,"windows-1254"],[1255,"windows-1255"],[1256,"windows-1256"],[1257,"windows-1257"],[1258,"windows-1258"]]),T;function U(e){let t=0;for(let n of e)n===D&&(t+=1);return t}function H(e,t){return U(t)<U(e)?t:e}function nt(e){let t=e.match(/(?:^|[^0-9])([0-9]{1,5})(?![0-9])/);if(!t)return null;let n=Number(t[1]);return Number.isInteger(n)&&n>0&&n<=65535?n:null}function rt(e){if(e!==65001)return tt.get(e)}function ot(e){let t=rt(e);if(!t)return null;try{return new TextDecoder(t)}catch{return null}}function st(){return new Promise(e=>{let t=false,n,r=o=>{t||(t=true,n&&clearTimeout(n),e(o));};n=setTimeout(()=>r(null),re),n.unref();try{child_process.execFile("chcp.com",[],{encoding:"ascii",timeout:re,windowsHide:!0},(c,s)=>{if(c){r(null);return}r(nt(String(s)));}).once("error",()=>r(null));}catch{r(null);}})}function ie(){return process.platform!=="win32"?Promise.resolve(null):(T||(T=st(),T.then(e=>{},()=>{})),T)}function it(){process.platform==="win32"&&ie();}function se(e,t){if(t.length>=$)return t.subarray(t.length-$);let n=$-t.length,r=e.length>n?e.subarray(e.length-n):e;return Buffer.concat([r,t])}var k=class{platform;detectCodePage;utf8Decoder=new string_decoder.StringDecoder("utf8");codePage;fallbackDecoder;replayTail=Buffer.alloc(0);pendingUtf8="";pendingFallback="";pendingBytes=Buffer.alloc(0);queue=Promise.resolve();ended=false;constructor(t={}){this.platform=t.platform??process.platform,this.detectCodePage=t.detectCodePage??ie,this.codePage=t.codePage;}write(t){let n=Buffer.from(t);return this.enqueue(()=>this.decodeChunk(n))}end(){return this.enqueue(()=>this.finish())}enqueue(t){let n=this.queue.then(t);return this.queue=n.then(()=>{},()=>{}),n}clearPendingCandidate(){this.pendingUtf8="",this.pendingFallback="",this.pendingBytes=Buffer.alloc(0);}async resolveCodePage(){if(this.codePage!==void 0)return this.codePage;try{this.codePage=await this.detectCodePage();}catch{this.codePage=null;}return this.codePage}async getFallbackDecoder(){if(this.fallbackDecoder!==void 0)return this.fallbackDecoder;let t=await this.resolveCodePage();return this.fallbackDecoder=t===null?null:ot(t),this.fallbackDecoder}async decodeChunk(t){if(this.ended)return "";let n=this.utf8Decoder.write(t),r=n.includes(D);if(r&&(this.utf8Decoder=new string_decoder.StringDecoder("utf8")),this.platform!=="win32")return n;if(this.fallbackDecoder){let a=this.fallbackDecoder.decode(t,{stream:true}),l=se(this.pendingBytes,t);if(r){let d=this.pendingUtf8+n,f=this.pendingFallback+a;return this.clearPendingCandidate(),H(d,f)}if(U(a)>0){let d=this.pendingUtf8+n;return this.clearPendingCandidate(),this.fallbackDecoder=void 0,this.replayTail=l,d}if(this.pendingUtf8||this.pendingFallback){if(this.pendingUtf8+=n,this.pendingFallback+=a,this.pendingBytes=l,n.length===0||a.length===0)return "";let d=this.pendingUtf8;return this.clearPendingCandidate(),d}return n.length===0&&a.length>0?(this.pendingUtf8=n,this.pendingFallback=a,this.pendingBytes=l,""):n}let o=this.replayTail;if(this.fallbackDecoder===void 0&&(this.replayTail=se(this.replayTail,t)),!r)return n;let c=this.fallbackDecoder===void 0,s=await this.getFallbackDecoder();if(!s)return this.replayTail=Buffer.alloc(0),n;c&&o.length>0&&s.decode(o,{stream:true}),this.replayTail=Buffer.alloc(0);let i=s.decode(t,{stream:true});return H(n,i)}async finish(){if(this.ended)return "";this.ended=true;let t=this.utf8Decoder.end();if(this.platform!=="win32")return t;if(this.fallbackDecoder===void 0&&t.includes(D)){let c=await this.getFallbackDecoder();c&&this.replayTail.length>0&&(c.decode(this.replayTail,{stream:true}),this.replayTail=Buffer.alloc(0));}let n=this.pendingUtf8+t,r=this.fallbackDecoder?.decode()??"",o=this.pendingFallback+r;return this.clearPendingCandidate(),n.includes(D)?H(n,o):n}};it();var ae=3e3;var ct=2e3,lt=25,ut=100;function ue(e){return e instanceof Error?e:e===void 0?void 0:new Error(String(e))}function ce(e){return typeof e=="object"&&e!==null&&"code"in e?String(e.code):void 0}function dt(e){return Number.isSafeInteger(e)&&e>0}function ft(e,t){return new Promise(n=>{let r;try{r=child_process.spawn(e,t,{windowsHide:!0});}catch(l){n({status:null,stdout:"",stderr:"",error:ue(l)});return}let o="",c="",s=false,i,a=setTimeout(()=>{try{r.kill();}catch{}i({status:null,stdout:o,stderr:c,error:new Error(`Command timed out after ${ae}ms`)});},ae);i=l=>{s||(s=true,clearTimeout(a),n(l));},r.stdout?.setEncoding("utf8"),r.stderr?.setEncoding("utf8"),r.stdout?.on("data",l=>{o+=String(l);}),r.stderr?.on("data",l=>{c+=String(l);}),r.once("error",l=>{i({status:null,stdout:o,stderr:c,error:l});}),r.once("close",l=>{i({status:l,stdout:o,stderr:c});});})}async function pt(e,t,n){return n.runCommandAsync?n.runCommandAsync(e,t):n.runCommand?n.runCommand(e,t):ft(e,t)}function mt(e){return new Promise(t=>{setTimeout(t,Math.max(0,e));})}function ht(){return new Promise(e=>{setImmediate(e);})}function A(e,t=process.kill){try{return t(e,0),"alive"}catch(n){return ce(n)==="ESRCH"?"not_found":ce(n)==="EPERM"?"alive":"unknown"}}function gt(e,t){let n=A(-e,t),r=A(e,t);return n==="alive"||r==="alive"?"alive":n==="unknown"||r==="unknown"?"unknown":"not_found"}async function de(e,t,n,r){let o=Math.max(0,n),c=Math.max(1,r.pollIntervalMs??lt),s=Date.now()+o,i,a=o===0,l=r.sleep?Promise.resolve().then(()=>r.sleep(o)).then(()=>{},()=>{}):new Promise(d=>{i=setTimeout(d,o);});l.then(()=>{a=true;});try{for(await ht();;){let d=gt(e,t);if(d==="not_found")return d;let f=s-Date.now();if(a||f<=0)return d;await Promise.race([l,mt(Math.min(c,f))]);}}finally{i!==void 0&&clearTimeout(i);}}async function le(e,t,n,r,o){let c=await de(e,t,o.hardConfirmMs??ut,{...o,sleep:void 0});return c==="not_found"?n?{status:"not_found",pid:e,method:r}:{status:"terminated",pid:e,method:r}:c==="alive"?{status:"failed",pid:e,method:r,error:"Process is still running after termination attempt"}:{status:"failed",pid:e,method:r,error:"Unable to verify process termination"}}async function fe(e,t={}){let n=t.platform??process.platform,r=n==="win32"?"taskkill":"process-group",o=u=>({status:"failed",pid:e,method:r,error:u});if(!dt(e))return o("Invalid process ID");let c=t.kill??process.kill,s=A(e,c);if(s==="not_found")return {status:"not_found",pid:e,method:r};if(s!=="alive")return o("Unable to determine whether the process is alive");if(n==="win32"){let u;try{u=await pt("taskkill",["/PID",String(e),"/T","/F"],t);}catch(h){u={status:null,stdout:"",stderr:"",error:ue(h)};}let P=A(e,c);return P==="not_found"?u.status===0&&!u.error?{status:"terminated",pid:e,method:r}:{status:"not_found",pid:e,method:r}:o(P==="alive"?"Process is still running after termination attempt":"Unable to verify process termination")}let i,a=t.signal??"SIGKILL";try{c(-e,a);}catch(u){i=u;}if(a==="SIGKILL")return le(e,c,i,r,t);if(await de(e,c,t.graceMs??ct,t)==="not_found")return i?{status:"not_found",pid:e,method:r}:{status:"terminated",pid:e,method:r};let d;try{c(-e,"SIGKILL");}catch(u){d=u;}let f=await le(e,c,d,r,t);return f.status==="terminated"?f:f.status==="not_found"?i?f:{status:"terminated",pid:e,method:r}:o(f.error??"Process termination failed")}var wt=["CREWX_ASSIGNED_TASK_ID","CREWX_DETACHED_RUNNER"];function Pt(e,t){let n={};for(let[r,o]of Object.entries(e))o!==void 0&&(t.includes(r)||(n[r]=o));return n}function pe(e){return Pt(e,wt)}var me=3e4;function he(e){if(typeof e.pid!="number"){try{e.kill();}catch{}return}fe(e.pid,{signal:"SIGKILL"}).then(t=>{if(t.status==="failed")try{e.kill("SIGKILL");}catch{}},()=>{try{e.kill("SIGKILL");}catch{}});}var ge=(e,t,n={})=>new Promise((r,o)=>{let c=pe(n.env??process.env),s=process.platform,i;try{let w=ee({command:e,platform:s,env:c,cwd:n.cwd,allowShellFallback:!1});i=te(w,t);}catch(w){o(w instanceof Error?w:new Error(String(w)));return}let a=child_process.spawn(i.command,i.argv,{cwd:n.cwd,env:c,shell:i.shell,windowsHide:i.windowsHide??true,detached:s!=="win32"}),l="",d="",f=false,u=new k({platform:s}),P=new k({platform:s}),h=Promise.resolve(),C=Promise.resolve(),g=setTimeout(()=>{f||(f=true,he(a),o(new Error(`Command timed out after ${n.timeoutMs??me}ms: ${e} ${t.join(" ")}`)));},n.timeoutMs??me);a.stdout?.on("data",w=>{h=h.then(async()=>{l+=await u.write(w);});}),a.stderr?.on("data",w=>{C=C.then(async()=>{d+=await P.write(w);});}),a.on("error",w=>{f||(f=true,clearTimeout(g),o(w));}),a.on("close",w=>{f||(async()=>{await Promise.all([h,C]);let[y,$e]=await Promise.all([u.end(),P.end()]);f||(l+=y,d+=$e,f=true,clearTimeout(g),r({code:w??0,stdout:l,stderr:d}));})().catch(y=>{f||(f=true,clearTimeout(g),o(y instanceof Error?y:new Error(String(y))));});});});function yt(){try{return (typeof B=="function"?B:module$1.createRequire(__filename)).resolve("@crewx/sdk/package.json")}catch{return null}}function vt(){let e=[yt(),p.join(__dirname,"../../package.json"),p.join(__dirname,"../../../package.json")].filter(t=>!!t);for(let t of e)try{let n=JSON.parse(fs.readFileSync(t,"utf8"));if(n.name==="@crewx/sdk"&&n.version)return n.version}catch{}return "0.0.0"}var Pe=vt();var E=p__namespace.win32;function V(e){return E.join(e,".crewx")}function Ee(e){return E.join(V(e),"shortcut.json")}function Ce(e){return E.join(V(e),"launcher.json")}function ye(e){return E.join(V(e),"bin","crewx-launcher.cmd")}function ve(e){return E.join(e,"CrewX.lnk")}function X(e,t){return E.normalize(e).toLowerCase()===E.normalize(t).toLowerCase()}var Rt="[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; [Environment]::GetFolderPath('DesktopDirectory')";async function Re(e){try{let n=await e.run("powershell",["-NoProfile","-NonInteractive","-Command",Rt],{env:e.env}),r=n.stdout.trim();if(n.code===0&&r)return {dir:r,source:"known-folder"}}catch{}let t=e.env.USERPROFILE||e.env.Userprofile||e.homedir();return t?{dir:E.join(t,"Desktop"),source:"fallback"}:null}function G(e,t){let n=E.resolve(t,"node_modules",".bin").toLowerCase();return e.split(";").filter(r=>r?E.resolve(r).toLowerCase()!==n:true).join(";")}function be(e){return e?/\\Program Files( \(x86\))?\\/i.test(e)&&/crewx/i.test(e):false}function bt(e,t){let n=a=>{let[l,...d]=a.split("-"),f=d.join("-")||void 0;return {parts:(l??"").split(".").map(P=>Number.parseInt(P,10)||0),pre:f}},r=n(e),o=n(t),c=Math.max(r.parts.length,o.parts.length);for(let a=0;a<c;a++){let l=r.parts[a]??0,d=o.parts[a]??0;if(l!==d)return l<d?-1:1}if(r.pre===o.pre)return 0;if(!r.pre&&o.pre)return 1;if(r.pre&&!o.pre)return -1;let s=Number.parseInt(r.pre.match(/(\d+)$/)?.[1]??"",10),i=Number.parseInt(o.pre.match(/(\d+)$/)?.[1]??"",10);return !Number.isNaN(s)&&!Number.isNaN(i)&&s!==i?s<i?-1:1:r.pre<o.pre?-1:r.pre>o.pre?1:0}function _(e,t){return bt(e,t)<0}var _e=p__namespace.win32,xe=1;function Ie(e,t){if(!e.existsSync(t))return null;try{let n=JSON.parse(e.readFileSync(t));return {schema:n.schema??xe,shortcutPath:n.shortcutPath,version:n.version,iconHash:typeof n.iconHash=="string"?n.iconHash:void 0,owned:!!n.owned,declined:!!n.declined,desktopSource:n.desktopSource,updatedAt:n.updatedAt}}catch{return null}}function W(e,t,n){let r={schema:xe,...n,updatedAt:new Date().toISOString()};e.mkdirSync(_e.dirname(t)),e.writeFileSync(t,JSON.stringify(r,null,2));}function M(e,t){if(!e.existsSync(t))return null;try{let n=JSON.parse(e.readFileSync(t));return {schema:n.schema??0,binPath:n.binPath,updatedAt:n.updatedAt}}catch{return null}}function Le(e,t,n){e.mkdirSync(_e.dirname(t)),e.writeFileSync(t,JSON.stringify(n,null,2));}var kt=p__namespace.win32,x=1;function _t(e){return e.replace(/%/g,"%%")}function xt(e){return ["@echo off","setlocal DisableDelayedExpansion","chcp 65001 >nul","",'set "CREWX_WORKDIR=%USERPROFILE%\\crewx"','if not exist "%CREWX_WORKDIR%" mkdir "%CREWX_WORKDIR%" >nul 2>nul','cd /d "%CREWX_WORKDIR%"',"",'set "CREWX_PORT_EFFECTIVE=%CREWX_PORT%"','if "%CREWX_PORT_EFFECTIVE%"=="" set "CREWX_PORT_EFFECTIVE=8150"','set "CREWX_HEALTH_URL=http://127.0.0.1:%CREWX_PORT_EFFECTIVE%/api/v1/health"','set "CREWX_ORIGIN_URL=http://127.0.0.1:%CREWX_PORT_EFFECTIVE%/"',"",e.bakedBinPath?`set "CREWX_FALLBACK_BIN=${_t(e.bakedBinPath)}"`:'set "CREWX_FALLBACK_BIN="','set "CREWX_RESOLVED_BIN=%CREWX_BIN%"','if "%CREWX_RESOLVED_BIN%"=="" set "CREWX_RESOLVED_BIN=%CREWX_FALLBACK_BIN%"','if "%CREWX_RESOLVED_BIN%"=="" (',` for /f "delims=" %%I in ('where crewx 2^>nul') do (`,' if not defined CREWX_RESOLVED_BIN set "CREWX_RESOLVED_BIN=%%I"'," )",")","",'powershell -NoProfile -NonInteractive -Command "try { $r = Invoke-WebRequest -Uri $env:CREWX_HEALTH_URL -TimeoutSec 1 -UseBasicParsing; if ($r.StatusCode -eq 200) { exit 0 } else { exit 1 } } catch { exit 1 }"',"if %ERRORLEVEL% EQU 0 (",' start "" "%CREWX_ORIGIN_URL%"'," exit /b 0",")","",'if "%CREWX_RESOLVED_BIN%"=="" ('," echo CrewX executable not found. Please reinstall the desktop shortcut."," pause"," exit /b 1",")","",'start "CrewX" /min "%CREWX_RESOLVED_BIN%"',""].join(`\r
2
2
  `)}function Oe(e){let t=M(e.fs,e.launcherManifestPath),n=!!t&&t.schema>=x&&e.fs.existsSync(e.wrapperPath),r=n&&!t.binPath&&!!e.bakedBinPath;if(n&&!r)return {wrapperPath:e.wrapperPath,wrote:false,schema:t.schema};let c=xt({bakedBinPath:e.bakedBinPath});try{e.fs.mkdirSync(kt.dirname(e.wrapperPath)),e.fs.writeFileSync(e.wrapperPath,c),Le(e.fs,e.launcherManifestPath,{schema:x,binPath:e.bakedBinPath,updatedAt:new Date().toISOString()});}catch(s){throw s instanceof m?s:new m("WRITE_DENIED",`Could not write launcher wrapper: ${s instanceof Error?s.message:String(s)}`)}return {wrapperPath:e.wrapperPath,wrote:true,schema:x}}var It=["$ws = New-Object -ComObject WScript.Shell","$sc = $ws.CreateShortcut($env:CREWX_LNK_PATH)","$sc.TargetPath = $env:CREWX_LNK_TARGET","if ($env:CREWX_LNK_WORKDIR) { $sc.WorkingDirectory = $env:CREWX_LNK_WORKDIR }","$sc.WindowStyle = 7","if ($env:CREWX_LNK_ICON) { $sc.IconLocation = $env:CREWX_LNK_ICON }","$sc.Save()"].join("; "),Lt=["[Console]::OutputEncoding = [System.Text.Encoding]::UTF8","$ws = New-Object -ComObject WScript.Shell","$sc = $ws.CreateShortcut($env:CREWX_LNK_PATH)","[PSCustomObject]@{ TargetPath = $sc.TargetPath; WorkingDirectory = $sc.WorkingDirectory; IconLocation = $sc.IconLocation } | ConvertTo-Json -Compress"].join("; ");async function Te(e){let t={...e.env,CREWX_LNK_PATH:e.shortcutPath,CREWX_LNK_TARGET:e.targetPath,CREWX_LNK_WORKDIR:e.workingDirectory??"",CREWX_LNK_ICON:e.iconPath??""},n;try{n=await e.run("powershell",["-NoProfile","-NonInteractive","-Command",It],{env:t});}catch(r){throw new m("POWERSHELL_UNAVAILABLE",`Could not run PowerShell: ${r instanceof Error?r.message:String(r)}`)}if(n.code!==0)throw new m("POWERSHELL_UNAVAILABLE",`Failed to create desktop shortcut: ${n.stderr||n.stdout}`)}function De(e){let t=e.trim(),n=t.lastIndexOf(",");return n!==-1&&/^-?\d+$/.test(t.slice(n+1).trim())&&(t=t.slice(0,n).trim()),t.length>=2&&t.startsWith('"')&&t.endsWith('"')&&(t=t.slice(1,-1).trim()),t}async function Ae(e){try{let t={...e.env,CREWX_LNK_PATH:e.shortcutPath},n=await e.run("powershell",["-NoProfile","-NonInteractive","-Command",Lt],{env:t});if(n.code!==0||!n.stdout.trim())return null;let r=JSON.parse(n.stdout.trim());return {targetPath:r.TargetPath??"",workingDirectory:r.WorkingDirectory??"",iconLocation:r.IconLocation??""}}catch{return null}}var K=p__namespace.win32;async function I(e){let t=G(e.env.PATH??e.env.Path??"",e.cwd),n={...e.env,PATH:t,Path:t},r;try{r=await e.run("npm",["list","-g","crewx","--depth=0","--json"],{env:n});}catch{return {installed:false}}let o;try{o=JSON.parse(r.stdout||"{}");}catch{return {installed:false}}let c=o.dependencies?.crewx;if(!c?.version)return {installed:false};let s;try{let a=await e.run("npm",["prefix","-g"],{env:n});a.code===0&&(s=a.stdout.trim()||void 0);}catch{}let i=s?K.join(s,"crewx.cmd"):void 0;return {installed:true,version:c.version,binPath:i,prefix:s}}var Nt=/EACCES|EPERM|EROFS/,Ot=/ENOTFOUND|ETIMEDOUT|ECONNREFUSED|network|registry/i,Tt=/^\d+\.\d+\.\d+/;function Dt(e){return !!e&&e!=="0.0.0"&&Tt.test(e)}var J=10*6e4;async function Me(e){if(!Dt(e.targetVersion))throw new m("GLOBAL_INSTALL_FAILED",`RUNNING_VERSION_UNKNOWN: cannot reliably determine the running crewx version to install (got ${JSON.stringify(e.targetVersion)}); refusing to fall back to crewx@latest`);if(e.currentInfo?.installed&&e.currentInfo.version&&!_(e.currentInfo.version,e.targetVersion))return {info:e.currentInfo};let t=G(e.env.PATH??e.env.Path??"",e.cwd),n={...e.env,PATH:t,Path:t},r=`crewx@${e.targetVersion}`;e.onProgress?.({phase:"global-install",message:`Installing crewx globally (npm install -g ${r})`});let o;try{o=await e.run("npm",["install","-g",r,"--no-audit","--no-fund"],{env:n,timeoutMs:J});}catch(s){throw new m("NPM_UNAVAILABLE",`Could not run npm: ${s instanceof Error?s.message:String(s)}`)}if(o.code===0)return {info:await I({env:n,cwd:e.cwd,run:e.run})};let c=`${o.stdout}
3
3
  ${o.stderr}`;if(Nt.test(c)){e.onProgress?.({phase:"global-install",message:"Permission denied \u2014 retrying with a user-scoped npm prefix"});let s=e.env.LOCALAPPDATA||K.join(e.env.USERPROFILE??"","AppData","Local"),i={...n,npm_config_prefix:K.join(s,"crewx","npm")},a;try{a=await e.run("npm",["install","-g",r,"--no-audit","--no-fund"],{env:i,timeoutMs:J});}catch(l){throw new m("NPM_PERMISSION_DENIED",`Retry with user-scoped prefix failed: ${l instanceof Error?l.message:String(l)}`)}if(a.code===0)return {info:await I({env:i,cwd:e.cwd,run:e.run})};throw new m("NPM_PERMISSION_DENIED",`npm install -g failed after user-scoped prefix retry: ${a.stderr||a.stdout}`)}if(Ot.test(c)){if(!e.installRoot)throw new m("OFFLINE_NO_SOURCE","The npm registry is unreachable and no local installRoot was provided for an offline install");e.onProgress?.({phase:"global-install",message:`Registry unreachable \u2014 installing offline from ${e.installRoot}`});let s;try{s=await e.run("npm",["install","-g",e.installRoot,"--offline","--no-audit","--no-fund"],{env:n,timeoutMs:J});}catch(i){throw new m("GLOBAL_INSTALL_FAILED",`Offline install failed: ${i instanceof Error?i.message:String(i)}`)}if(s.code===0)return {info:await I({env:n,cwd:e.cwd,run:e.run})};throw new m("GLOBAL_INSTALL_FAILED",`Offline install failed: ${s.stderr||s.stdout}`)}throw new m("GLOBAL_INSTALL_FAILED",c.trim()||`npm install -g ${r} failed`)}function Wt(e){return e.run??ge}function Mt(e){return e.fs??q}async function F(e){let t=e.platform??process.platform,n=e.env??process.env,r=e.homedir??Y,o=Wt(e),c=Mt(e),s=e.runningVersion??Pe,i=e.cwd??process.cwd(),a=r(),l=Ee(a),d=Ce(a),f=ye(a),u=null;t==="win32"&&(u=await Re({env:n,homedir:r,run:o}));let P=u?ve(u.dir):null;return {platform:t,env:n,homedir:r,run:o,fs:c,runningVersion:s,cwd:i,installRoot:e.installRoot,shortcutManifestPath:l,launcherManifestPath:d,wrapperPath:f,desktop:u,shortcutPath:P}}function Fe(e){return e?p__namespace.win32.normalize(e).toLowerCase().endsWith(`${p__namespace.win32.sep}bin${p__namespace.win32.sep}crewx.ico`):false}function j(e,t){let n=e.readBinaryFileSync;if(n)try{return crypto.createHash("sha256").update(n(t)).digest("hex")}catch{return}}async function Ft(e){try{await e.run("ie4uinit.exe",["-show"],{env:e.env});}catch{}}async function v(e){if(e.platform!=="win32")return {supported:false,state:"unsupported",globalCrewx:null,runningVersion:e.runningVersion,errors:[],manifest:null,iconStale:false};let t=[];e.desktop||t.push("NO_DESKTOP_DIR: could not resolve the Windows Desktop directory");let n=Ie(e.fs,e.shortcutManifestPath),r=M(e.fs,e.launcherManifestPath),o=await I({env:e.env,cwd:e.cwd,run:e.run}),c=e.shortcutPath?e.fs.existsSync(e.shortcutPath):false,s,i=false,a,l;if(!c)s=n?.declined?"declined":"not-installed";else {let d=!!n?.owned&&!!e.shortcutPath&&n.shortcutPath===e.shortcutPath,f=false,u=e.shortcutPath?await Ae({run:e.run,env:e.env,shortcutPath:e.shortcutPath}):null;if(d||(u&&X(u.targetPath,e.wrapperPath)?d=true:u&&be(u.targetPath)&&(f=true)),f)s="foreign",t.push("NSIS_PRESENT: an NSIS-installed CrewX shortcut was detected");else if(!d)s="foreign";else if(n?.version&&_(e.runningVersion,n.version))s="superseded",t.push(`SUPERSEDED: running version ${e.runningVersion} is older than the installed shortcut's version ${n.version}; refusing to modify it`);else {let P=!r||r.schema<x||!e.fs.existsSync(e.wrapperPath);if(u){let h=De(u.iconLocation);if(!(!!h&&e.fs.existsSync(h)))i=true;else {a=h;let g=Be(o,e.fs);g?X(h,g)?(l=j(e.fs,h),i=!l||n?.iconHash!==l):i=true:Fe(h)?(l=j(e.fs,h),i=!l||n?.iconHash!==l):i=true;}}s=P||i?"stale":"installed";}}return {supported:true,state:s,shortcutPath:e.shortcutPath??void 0,desktopDir:e.desktop?.dir,desktopSource:e.desktop?.source,wrapperPath:e.wrapperPath,wrapperSchema:r?.schema,globalCrewx:o.installed?o:{installed:false},runningVersion:e.runningVersion,errors:t,manifest:n,iconStale:i,iconPath:a,iconHash:l}}function Be(e,t){if(!e?.installed||!e.prefix)return;let n=p__namespace.win32.join(e.prefix,"node_modules","crewx","bin","crewx.ico");return t.existsSync(n)?n:void 0}function R(e){let{manifest:t,iconStale:n,iconPath:r,iconHash:o,...c}=e;return c}async function Bt(e={}){let t=await F(e),n=await v(t);return R(n)}async function $t(e={}){let t=await F(e);e.onProgress?.({phase:"detect",message:"Checking current shortcut status"});let n=await v(t),r=R(n);if(!r.supported)return {...r,changed:false,installedGlobal:false};if(r.state==="superseded")return {...r,changed:false,installedGlobal:false};if(r.state==="foreign"){if(n.errors.some(g=>g.startsWith("NSIS_PRESENT")))throw new m("NSIS_PRESENT",`An NSIS-installed CrewX shortcut was detected at ${r.shortcutPath}`);if(!e.force)throw new m("FOREIGN_SHORTCUT",`An existing shortcut at ${r.shortcutPath} is not managed by CrewX`)}if(!t.desktop||!t.shortcutPath)throw new m("NO_DESKTOP_DIR","Could not resolve the Windows Desktop directory");let o=false,c=false,s=r.globalCrewx,i=[],a=n.manifest?.iconHash,l=false;if(!!s?.installed&&!!s.version&&_(s.version,t.runningVersion)||!s?.installed&&r.state!=="installed"){let g=await Me({env:t.env,cwd:t.cwd,run:t.run,targetVersion:t.runningVersion,currentInfo:s??void 0,installRoot:t.installRoot,onProgress:e.onProgress});s=g.info,c=g.info.installed,o=true,c||i.push(`GLOBAL_INSTALL_UNCONFIRMED: npm install -g crewx@${t.runningVersion} exited successfully but a follow-up check could not confirm the global install`);}if(e.onProgress?.({phase:"wrapper",message:"Ensuring launcher wrapper"}),Oe({fs:t.fs,wrapperPath:t.wrapperPath,launcherManifestPath:t.launcherManifestPath,bakedBinPath:s?.binPath}).wrote&&(o=true),!((r.state==="installed"||r.state==="stale")&&!n.iconStale)){let g=Be(s,t.fs)??(n.iconPath&&Fe(n.iconPath)&&t.fs.existsSync(n.iconPath)?n.iconPath:void 0);if(n.iconStale&&!g)throw new m("ICON_UNAVAILABLE",`Could not locate the global CrewX icon (bin\\crewx.ico) to repair the desktop shortcut at ${t.shortcutPath}; the existing shortcut was left untouched`);e.onProgress?.({phase:"lnk",message:"Creating desktop shortcut"}),await Te({run:t.run,env:t.env,shortcutPath:t.shortcutPath,targetPath:t.wrapperPath,iconPath:g}),o=true,l=n.iconStale;let w=g?j(t.fs,g):void 0;w&&(a=w);}o&&W(t.fs,t.shortcutManifestPath,{shortcutPath:t.shortcutPath,version:t.runningVersion,owned:true,declined:false,desktopSource:t.desktop.source,iconHash:a}),l&&await Ft(t);let h=await v(t),C=R(h);return {...C,errors:[...C.errors,...i],changed:o,installedGlobal:c}}async function Ht(e={}){let t=await F(e),n=await v(t),r=R(n);if(!r.supported)return r;if((r.state==="installed"||r.state==="stale")&&t.shortcutPath)try{t.fs.unlinkSync(t.shortcutPath);}catch{}W(t.fs,t.shortcutManifestPath,{shortcutPath:void 0,version:n.manifest?.version,owned:false,declined:true,desktopSource:void 0,iconHash:void 0});let o=await v(t);return R(o)}async function Ut(e={}){let t=await F(e),n=await v(t),r=R(n);if(!r.supported)return r;W(t.fs,t.shortcutManifestPath,{shortcutPath:n.manifest?.shortcutPath,version:n.manifest?.version,owned:n.manifest?.owned??false,declined:true,desktopSource:n.manifest?.desktopSource,iconHash:n.manifest?.iconHash});let o=await v(t);return R(o)}exports.ShortcutError=m;exports.dismissShortcutNotice=Ut;exports.getShortcutStatus=Bt;exports.installShortcut=$t;exports.killProcessTree=he;exports.uninstallShortcut=Ht;
@@ -1,3 +1,3 @@
1
- import*as m from'path';import m__default,{join}from'path';import {fileURLToPath}from'url';import {createHash}from'crypto';import {readFileSync,unlinkSync,mkdirSync,writeFileSync,existsSync,statSync}from'fs';import {homedir}from'os';import {execFile,spawn}from'child_process';import {StringDecoder}from'string_decoder';import {createRequire}from'module';var $=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var q=()=>fileURLToPath(import.meta.url),Ge=()=>m__default.dirname(q()),P=Ge(),S=q();var p=class extends Error{code;constructor(t,n){super(`${t}: ${n}`),this.code=t,this.name="ShortcutError";}};var Q={existsSync:e=>existsSync(e),readFileSync:e=>readFileSync(e,"utf8"),readBinaryFileSync:e=>new Uint8Array(readFileSync(e)),writeFileSync:(e,t)=>writeFileSync(e,t,"utf8"),mkdirSync:e=>{mkdirSync(e,{recursive:true});},unlinkSync:e=>{unlinkSync(e);}},Z=homedir;function O(e){return typeof e!="string"?void 0:e.trim()||void 0}function T(e){return O(e)?.toLowerCase()??""}function k(e){try{return statSync(e).isFile()}catch{return false}}function Qe(e,t){if(e===t)return true;let n=m__default.relative(e,t);return n!==""&&!n.startsWith("..")&&!m__default.isAbsolute(n)}function Ze(e,t){if(m__default.basename(e)!==".bin")return false;let n=m__default.dirname(e);if(m__default.basename(n)!=="node_modules")return false;let r=m__default.dirname(n);return Qe(r,t)}function ee(e,t={}){if(e.includes("/")||e.includes("\\")||m__default.isAbsolute(e))return e;let n=t.platform??process.platform,r=t.env??process.env,o=m__default.resolve(t.cwd??process.cwd()),c=(t.resolution??"global_first")==="global_first",s=r.PATH??r.Path??process.env.PATH??process.env.Path??"",i=n==="win32"?";":":",a=s.split(i).map(u=>u.trim()).filter(Boolean),l=m__default.extname(e).length>0,d=r.PATHEXT??r.Pathext??process.env.PATHEXT??process.env.Pathext??".EXE;.CMD;.BAT;.COM",f=n==="win32"?l?[""]:d.split(";").map(u=>u.trim()).filter(Boolean).map(u=>u.startsWith(".")?u:`.${u}`):[""];for(let u of a){let E=m__default.resolve(o,u);if(!(c&&Ze(E,o)))for(let h of f){let y=T(h),g=h.toUpperCase();for(let w of [h,y,g]){let v=m__default.join(E,`${e}${w}`);if(k(v))return v}}}return e}function et(e){if(!k(e))return null;try{let t=readFileSync(e,"utf8"),n=m__default.dirname(e),r=[];for(let i of t.matchAll(/"([^"\r\n]*)"/g)){let d=(i[1]??"").match(/%~?dp0%?\s*[\\/]*(.*)$/i)?.[1]?.trim();if(!d)continue;let f=d.replace(/[\\/]+/g,m__default.sep).replace(/^[\\/]+/,""),u=m__default.resolve(n,f);k(u)&&r.push(u);}let o=[],c=new Map;for(let i of t.matchAll(/SET\s+"(\w+)=%~?dp0%?[\\/]?([^"]+)"/gi)){let a=i[1].toUpperCase(),l=i[2].trim().replace(/[\\/]+/g,m__default.sep).replace(/^[\\/]+/,"");c.set(a,m__default.resolve(n,l));}for(let i of t.split(/\r?\n/))if(i.includes("%*"))for(let a of i.matchAll(/"%(\w+)%"/g)){let l=c.get(a[1].toUpperCase());l&&k(l)&&o.push(l);}let s=i=>i.find(a=>{let l=T(m__default.basename(a));return l!=="node.exe"&&l!=="node"})??null;return s(o)??s(r)}catch{return null}}function tt(e,t){if(typeof t=="string")return O(t)||null;if(!t||typeof t!="object")return null;if(e){let n=t[e],r=typeof n=="string"?O(n):void 0;if(r)return r}for(let n of Object.values(t)){let r=typeof n=="string"?O(n):void 0;if(r)return r}return null}function nt(e,t){if(!t)return null;let n=m__default.dirname(e),r=[m__default.resolve(n,"..",t),m__default.resolve(n,"node_modules",t)];for(let o of r){let c=m__default.join(o,"package.json");if(k(c))try{let s=JSON.parse(readFileSync(c,"utf8")),i=tt(t,s.bin);if(!i)continue;let a=m__default.resolve(o,i);if(k(a))return a}catch{}}return null}function rt(e){let t=e.platform??process.platform,n=e.env??process.env,r=e.execPath??process.execPath,o=e.cwd,c=e.resolution;if(t!=="win32")return {command:ee(e.command,{cwd:o,env:n,platform:t,resolution:c}),leadingArgv:[],resolution:"direct"};let s=ee(e.command,{cwd:o,env:n,platform:t,resolution:c}),i=T(m__default.extname(s));if(i===".js"||i===".cjs"||i===".mjs")return {command:r,leadingArgv:[s],resolution:"node-entrypoint",windowsHide:true};if(i===".cmd"||i===".bat"){let a=et(s)??nt(s,e.packageName);return a?T(m__default.extname(a))===".exe"?{command:a,leadingArgv:[],resolution:"exe-entrypoint",windowsHide:true}:{command:r,leadingArgv:[a],resolution:"node-entrypoint",windowsHide:true}:{command:s,leadingArgv:[],resolution:"unresolved-wrapper"}}return {command:s,leadingArgv:[],resolution:"direct"}}function ot(e){if(e.candidate.resolution!=="unresolved-wrapper")return {command:e.candidate.command,leadingArgv:e.candidate.leadingArgv,resolution:e.candidate.resolution,windowsHide:e.candidate.windowsHide};throw new Error(`${m__default.basename(e.candidate.command)} wrapper resolved, but no executable/Node entrypoint could be resolved without shell execution.`)}function ne(e){let t=rt(e);return ot({candidate:t})}function re(e,t){return {command:e.command,argv:[...e.leadingArgv,...t],resolution:e.resolution,shell:e.shell,windowsHide:e.windowsHide}}var A="\uFFFD",H=8,se=1e3,it=new Map([[437,"ibm437"],[720,"ibm720"],[737,"ibm737"],[775,"ibm775"],[850,"ibm850"],[852,"ibm852"],[855,"ibm855"],[857,"ibm857"],[858,"ibm858"],[862,"ibm862"],[864,"ibm864"],[932,"shift_jis"],[936,"gb18030"],[949,"euc-kr"],[950,"big5"],[866,"ibm866"],[869,"ibm869"],[1250,"windows-1250"],[1251,"windows-1251"],[1252,"windows-1252"],[1253,"windows-1253"],[1254,"windows-1254"],[1255,"windows-1255"],[1256,"windows-1256"],[1257,"windows-1257"],[1258,"windows-1258"]]),D;function V(e){let t=0;for(let n of e)n===A&&(t+=1);return t}function U(e,t){return V(t)<V(e)?t:e}function at(e){let t=e.match(/(?:^|[^0-9])([0-9]{1,5})(?![0-9])/);if(!t)return null;let n=Number(t[1]);return Number.isInteger(n)&&n>0&&n<=65535?n:null}function ct(e){if(e!==65001)return it.get(e)}function lt(e){let t=ct(e);if(!t)return null;try{return new TextDecoder(t)}catch{return null}}function ut(){return new Promise(e=>{let t=false,n,r=o=>{t||(t=true,n&&clearTimeout(n),e(o));};n=setTimeout(()=>r(null),se),n.unref();try{execFile("chcp.com",[],{encoding:"ascii",timeout:se,windowsHide:!0},(c,s)=>{if(c){r(null);return}r(at(String(s)));}).once("error",()=>r(null));}catch{r(null);}})}function ce(){return process.platform!=="win32"?Promise.resolve(null):(D||(D=ut(),D.then(e=>{},()=>{})),D)}function dt(){process.platform==="win32"&&ce();}function ae(e,t){if(t.length>=H)return t.subarray(t.length-H);let n=H-t.length,r=e.length>n?e.subarray(e.length-n):e;return Buffer.concat([r,t])}var _=class{platform;detectCodePage;utf8Decoder=new StringDecoder("utf8");codePage;fallbackDecoder;replayTail=Buffer.alloc(0);pendingUtf8="";pendingFallback="";pendingBytes=Buffer.alloc(0);queue=Promise.resolve();ended=false;constructor(t={}){this.platform=t.platform??process.platform,this.detectCodePage=t.detectCodePage??ce,this.codePage=t.codePage;}write(t){let n=Buffer.from(t);return this.enqueue(()=>this.decodeChunk(n))}end(){return this.enqueue(()=>this.finish())}enqueue(t){let n=this.queue.then(t);return this.queue=n.then(()=>{},()=>{}),n}clearPendingCandidate(){this.pendingUtf8="",this.pendingFallback="",this.pendingBytes=Buffer.alloc(0);}async resolveCodePage(){if(this.codePage!==void 0)return this.codePage;try{this.codePage=await this.detectCodePage();}catch{this.codePage=null;}return this.codePage}async getFallbackDecoder(){if(this.fallbackDecoder!==void 0)return this.fallbackDecoder;let t=await this.resolveCodePage();return this.fallbackDecoder=t===null?null:lt(t),this.fallbackDecoder}async decodeChunk(t){if(this.ended)return "";let n=this.utf8Decoder.write(t),r=n.includes(A);if(r&&(this.utf8Decoder=new StringDecoder("utf8")),this.platform!=="win32")return n;if(this.fallbackDecoder){let a=this.fallbackDecoder.decode(t,{stream:true}),l=ae(this.pendingBytes,t);if(r){let d=this.pendingUtf8+n,f=this.pendingFallback+a;return this.clearPendingCandidate(),U(d,f)}if(V(a)>0){let d=this.pendingUtf8+n;return this.clearPendingCandidate(),this.fallbackDecoder=void 0,this.replayTail=l,d}if(this.pendingUtf8||this.pendingFallback){if(this.pendingUtf8+=n,this.pendingFallback+=a,this.pendingBytes=l,n.length===0||a.length===0)return "";let d=this.pendingUtf8;return this.clearPendingCandidate(),d}return n.length===0&&a.length>0?(this.pendingUtf8=n,this.pendingFallback=a,this.pendingBytes=l,""):n}let o=this.replayTail;if(this.fallbackDecoder===void 0&&(this.replayTail=ae(this.replayTail,t)),!r)return n;let c=this.fallbackDecoder===void 0,s=await this.getFallbackDecoder();if(!s)return this.replayTail=Buffer.alloc(0),n;c&&o.length>0&&s.decode(o,{stream:true}),this.replayTail=Buffer.alloc(0);let i=s.decode(t,{stream:true});return U(n,i)}async finish(){if(this.ended)return "";this.ended=true;let t=this.utf8Decoder.end();if(this.platform!=="win32")return t;if(this.fallbackDecoder===void 0&&t.includes(A)){let c=await this.getFallbackDecoder();c&&this.replayTail.length>0&&(c.decode(this.replayTail,{stream:true}),this.replayTail=Buffer.alloc(0));}let n=this.pendingUtf8+t,r=this.fallbackDecoder?.decode()??"",o=this.pendingFallback+r;return this.clearPendingCandidate(),n.includes(A)?U(n,o):n}};dt();var le=3e3;var mt=2e3,pt=25,ht=100;function fe(e){return e instanceof Error?e:e===void 0?void 0:new Error(String(e))}function ue(e){return typeof e=="object"&&e!==null&&"code"in e?String(e.code):void 0}function gt(e){return Number.isSafeInteger(e)&&e>0}function wt(e,t){return new Promise(n=>{let r;try{r=spawn(e,t,{windowsHide:!0});}catch(l){n({status:null,stdout:"",stderr:"",error:fe(l)});return}let o="",c="",s=false,i,a=setTimeout(()=>{try{r.kill();}catch{}i({status:null,stdout:o,stderr:c,error:new Error(`Command timed out after ${le}ms`)});},le);i=l=>{s||(s=true,clearTimeout(a),n(l));},r.stdout?.setEncoding("utf8"),r.stderr?.setEncoding("utf8"),r.stdout?.on("data",l=>{o+=String(l);}),r.stderr?.on("data",l=>{c+=String(l);}),r.once("error",l=>{i({status:null,stdout:o,stderr:c,error:l});}),r.once("close",l=>{i({status:l,stdout:o,stderr:c});});})}async function Pt(e,t,n){return n.runCommandAsync?n.runCommandAsync(e,t):n.runCommand?n.runCommand(e,t):wt(e,t)}function St(e){return new Promise(t=>{setTimeout(t,Math.max(0,e));})}function Et(){return new Promise(e=>{setImmediate(e);})}function W(e,t=process.kill){try{return t(e,0),"alive"}catch(n){return ue(n)==="ESRCH"?"not_found":ue(n)==="EPERM"?"alive":"unknown"}}function Ct(e,t){let n=W(-e,t),r=W(e,t);return n==="alive"||r==="alive"?"alive":n==="unknown"||r==="unknown"?"unknown":"not_found"}async function me(e,t,n,r){let o=Math.max(0,n),c=Math.max(1,r.pollIntervalMs??pt),s=Date.now()+o,i,a=o===0,l=r.sleep?Promise.resolve().then(()=>r.sleep(o)).then(()=>{},()=>{}):new Promise(d=>{i=setTimeout(d,o);});l.then(()=>{a=true;});try{for(await Et();;){let d=Ct(e,t);if(d==="not_found")return d;let f=s-Date.now();if(a||f<=0)return d;await Promise.race([l,St(Math.min(c,f))]);}}finally{i!==void 0&&clearTimeout(i);}}async function de(e,t,n,r,o){let c=await me(e,t,o.hardConfirmMs??ht,{...o,sleep:void 0});return c==="not_found"?n?{status:"not_found",pid:e,method:r}:{status:"terminated",pid:e,method:r}:c==="alive"?{status:"failed",pid:e,method:r,error:"Process is still running after termination attempt"}:{status:"failed",pid:e,method:r,error:"Unable to verify process termination"}}async function pe(e,t={}){let n=t.platform??process.platform,r=n==="win32"?"taskkill":"process-group",o=u=>({status:"failed",pid:e,method:r,error:u});if(!gt(e))return o("Invalid process ID");let c=t.kill??process.kill,s=W(e,c);if(s==="not_found")return {status:"not_found",pid:e,method:r};if(s!=="alive")return o("Unable to determine whether the process is alive");if(n==="win32"){let u;try{u=await Pt("taskkill",["/PID",String(e),"/T","/F"],t);}catch(h){u={status:null,stdout:"",stderr:"",error:fe(h)};}let E=W(e,c);return E==="not_found"?u.status===0&&!u.error?{status:"terminated",pid:e,method:r}:{status:"not_found",pid:e,method:r}:o(E==="alive"?"Process is still running after termination attempt":"Unable to verify process termination")}let i,a=t.signal??"SIGKILL";try{c(-e,a);}catch(u){i=u;}if(a==="SIGKILL")return de(e,c,i,r,t);if(await me(e,c,t.graceMs??mt,t)==="not_found")return i?{status:"not_found",pid:e,method:r}:{status:"terminated",pid:e,method:r};let d;try{c(-e,"SIGKILL");}catch(u){d=u;}let f=await de(e,c,d,r,t);return f.status==="terminated"?f:f.status==="not_found"?i?f:{status:"terminated",pid:e,method:r}:o(f.error??"Process termination failed")}var yt=["CREWX_ASSIGNED_TASK_ID","CREWX_DETACHED_RUNNER"];function vt(e,t){let n={};for(let[r,o]of Object.entries(e))o!==void 0&&(t.includes(r)||(n[r]=o));return n}function he(e){return vt(e,yt)}var ge=3e4;function we(e){if(typeof e.pid!="number"){try{e.kill();}catch{}return}pe(e.pid,{signal:"SIGKILL"}).then(t=>{if(t.status==="failed")try{e.kill("SIGKILL");}catch{}},()=>{try{e.kill("SIGKILL");}catch{}});}var Pe=(e,t,n={})=>new Promise((r,o)=>{let c=he(n.env??process.env),s=process.platform,i;try{let w=ne({command:e,platform:s,env:c,cwd:n.cwd,allowShellFallback:!1});i=re(w,t);}catch(w){o(w instanceof Error?w:new Error(String(w)));return}let a=spawn(i.command,i.argv,{cwd:n.cwd,env:c,shell:i.shell,windowsHide:i.windowsHide??true,detached:s!=="win32"}),l="",d="",f=false,u=new _({platform:s}),E=new _({platform:s}),h=Promise.resolve(),y=Promise.resolve(),g=setTimeout(()=>{f||(f=true,we(a),o(new Error(`Command timed out after ${n.timeoutMs??ge}ms: ${e} ${t.join(" ")}`)));},n.timeoutMs??ge);a.stdout?.on("data",w=>{h=h.then(async()=>{l+=await u.write(w);});}),a.stderr?.on("data",w=>{y=y.then(async()=>{d+=await E.write(w);});}),a.on("error",w=>{f||(f=true,clearTimeout(g),o(w));}),a.on("close",w=>{f||(async()=>{await Promise.all([h,y]);let[v,Ue]=await Promise.all([u.end(),E.end()]);f||(l+=v,d+=Ue,f=true,clearTimeout(g),r({code:w??0,stdout:l,stderr:d}));})().catch(v=>{f||(f=true,clearTimeout(g),o(v instanceof Error?v:new Error(String(v))));});});});function _t(){try{return (typeof $=="function"?$:createRequire(S)).resolve("@crewx/sdk/package.json")}catch{return null}}function xt(){let e=[_t(),join(P,"../../package.json"),join(P,"../../../package.json")].filter(t=>!!t);for(let t of e)try{let n=JSON.parse(readFileSync(t,"utf8"));if(n.name==="@crewx/sdk"&&n.version)return n.version}catch{}return "0.0.0"}var Ee=xt();var C=m.win32;function X(e){return C.join(e,".crewx")}function ye(e){return C.join(X(e),"shortcut.json")}function ve(e){return C.join(X(e),"launcher.json")}function Re(e){return C.join(X(e),"bin","crewx-launcher.cmd")}function be(e){return C.join(e,"CrewX.lnk")}function G(e,t){return C.normalize(e).toLowerCase()===C.normalize(t).toLowerCase()}var It="[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; [Environment]::GetFolderPath('DesktopDirectory')";async function ke(e){try{let n=await e.run("powershell",["-NoProfile","-NonInteractive","-Command",It],{env:e.env}),r=n.stdout.trim();if(n.code===0&&r)return {dir:r,source:"known-folder"}}catch{}let t=e.env.USERPROFILE||e.env.Userprofile||e.homedir();return t?{dir:C.join(t,"Desktop"),source:"fallback"}:null}function J(e,t){let n=C.resolve(t,"node_modules",".bin").toLowerCase();return e.split(";").filter(r=>r?C.resolve(r).toLowerCase()!==n:true).join(";")}function _e(e){return e?/\\Program Files( \(x86\))?\\/i.test(e)&&/crewx/i.test(e):false}function Lt(e,t){let n=a=>{let[l,...d]=a.split("-"),f=d.join("-")||void 0;return {parts:(l??"").split(".").map(E=>Number.parseInt(E,10)||0),pre:f}},r=n(e),o=n(t),c=Math.max(r.parts.length,o.parts.length);for(let a=0;a<c;a++){let l=r.parts[a]??0,d=o.parts[a]??0;if(l!==d)return l<d?-1:1}if(r.pre===o.pre)return 0;if(!r.pre&&o.pre)return 1;if(r.pre&&!o.pre)return -1;let s=Number.parseInt(r.pre.match(/(\d+)$/)?.[1]??"",10),i=Number.parseInt(o.pre.match(/(\d+)$/)?.[1]??"",10);return !Number.isNaN(s)&&!Number.isNaN(i)&&s!==i?s<i?-1:1:r.pre<o.pre?-1:r.pre>o.pre?1:0}function x(e,t){return Lt(e,t)<0}var Ie=m.win32,Le=1;function Ne(e,t){if(!e.existsSync(t))return null;try{let n=JSON.parse(e.readFileSync(t));return {schema:n.schema??Le,shortcutPath:n.shortcutPath,version:n.version,iconHash:typeof n.iconHash=="string"?n.iconHash:void 0,owned:!!n.owned,declined:!!n.declined,desktopSource:n.desktopSource,updatedAt:n.updatedAt}}catch{return null}}function M(e,t,n){let r={schema:Le,...n,updatedAt:new Date().toISOString()};e.mkdirSync(Ie.dirname(t)),e.writeFileSync(t,JSON.stringify(r,null,2));}function F(e,t){if(!e.existsSync(t))return null;try{let n=JSON.parse(e.readFileSync(t));return {schema:n.schema??0,binPath:n.binPath,updatedAt:n.updatedAt}}catch{return null}}function Oe(e,t,n){e.mkdirSync(Ie.dirname(t)),e.writeFileSync(t,JSON.stringify(n,null,2));}var Nt=m.win32,I=1;function Ot(e){return e.replace(/%/g,"%%")}function Tt(e){return ["@echo off","setlocal DisableDelayedExpansion","chcp 65001 >nul","",'set "CREWX_WORKDIR=%USERPROFILE%\\crewx"','if not exist "%CREWX_WORKDIR%" mkdir "%CREWX_WORKDIR%" >nul 2>nul','cd /d "%CREWX_WORKDIR%"',"",'set "CREWX_PORT_EFFECTIVE=%CREWX_PORT%"','if "%CREWX_PORT_EFFECTIVE%"=="" set "CREWX_PORT_EFFECTIVE=8150"','set "CREWX_HEALTH_URL=http://127.0.0.1:%CREWX_PORT_EFFECTIVE%/api/v1/health"','set "CREWX_ORIGIN_URL=http://127.0.0.1:%CREWX_PORT_EFFECTIVE%/"',"",e.bakedBinPath?`set "CREWX_FALLBACK_BIN=${Ot(e.bakedBinPath)}"`:'set "CREWX_FALLBACK_BIN="','set "CREWX_RESOLVED_BIN=%CREWX_BIN%"','if "%CREWX_RESOLVED_BIN%"=="" set "CREWX_RESOLVED_BIN=%CREWX_FALLBACK_BIN%"','if "%CREWX_RESOLVED_BIN%"=="" (',` for /f "delims=" %%I in ('where crewx 2^>nul') do (`,' if not defined CREWX_RESOLVED_BIN set "CREWX_RESOLVED_BIN=%%I"'," )",")","",'powershell -NoProfile -NonInteractive -Command "try { $r = Invoke-WebRequest -Uri $env:CREWX_HEALTH_URL -TimeoutSec 1 -UseBasicParsing; if ($r.StatusCode -eq 200) { exit 0 } else { exit 1 } } catch { exit 1 }"',"if %ERRORLEVEL% EQU 0 (",' start "" "%CREWX_ORIGIN_URL%"'," exit /b 0",")","",'if "%CREWX_RESOLVED_BIN%"=="" ('," echo CrewX executable not found. Please reinstall the desktop shortcut."," pause"," exit /b 1",")","",'start "CrewX" /min "%CREWX_RESOLVED_BIN%"',""].join(`\r
1
+ import*as m from'path';import m__default,{join}from'path';import {fileURLToPath}from'url';import {createHash}from'crypto';import {readFileSync,unlinkSync,mkdirSync,writeFileSync,existsSync,statSync}from'fs';import {homedir}from'os';import {execFile,spawn}from'child_process';import {StringDecoder}from'string_decoder';import {createRequire}from'module';var $=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var q=()=>fileURLToPath(import.meta.url),Ge=()=>m__default.dirname(q()),P=Ge(),S=q();var p=class extends Error{code;constructor(t,n){super(`${t}: ${n}`),this.code=t,this.name="ShortcutError";}};var Q={existsSync:e=>existsSync(e),readFileSync:e=>readFileSync(e,"utf8"),readBinaryFileSync:e=>new Uint8Array(readFileSync(e)),writeFileSync:(e,t)=>writeFileSync(e,t,"utf8"),mkdirSync:e=>{mkdirSync(e,{recursive:true});},unlinkSync:e=>{unlinkSync(e);}},Z=homedir;function O(e){return typeof e!="string"?void 0:e.trim()||void 0}function T(e){return O(e)?.toLowerCase()??""}function k(e){try{return statSync(e).isFile()}catch{return false}}function Qe(e,t){if(e===t)return true;let n=m__default.relative(e,t);return n!==""&&!n.startsWith("..")&&!m__default.isAbsolute(n)}function Ze(e,t){if(m__default.basename(e)!==".bin")return false;let n=m__default.dirname(e);if(m__default.basename(n)!=="node_modules")return false;let r=m__default.dirname(n);return Qe(r,t)}function ee(e,t={}){if(e.includes("/")||e.includes("\\")||m__default.isAbsolute(e))return e;let n=t.platform??process.platform,r=t.env??process.env,o=m__default.resolve(t.cwd??process.cwd()),c=(t.resolution??"global_first")==="global_first",s=r.PATH??r.Path??process.env.PATH??process.env.Path??"",i=n==="win32"?";":":",a=s.split(i).map(u=>u.trim()).filter(Boolean),l=m__default.extname(e).length>0,d=r.PATHEXT??r.Pathext??process.env.PATHEXT??process.env.Pathext??".EXE;.CMD;.BAT;.COM",f=n==="win32"?l?[""]:d.split(";").map(u=>u.trim()).filter(Boolean).map(u=>u.startsWith(".")?u:`.${u}`):[""];for(let u of a){let E=m__default.resolve(o,u);if(!(c&&Ze(E,o)))for(let h of f){let y=T(h),g=h.toUpperCase();for(let w of [h,y,g]){let v=m__default.join(E,`${e}${w}`);if(k(v))return v}}}return e}function et(e){if(!k(e))return null;try{let t=readFileSync(e,"utf8"),n=m__default.dirname(e),r=[];for(let i of t.matchAll(/"([^"\r\n]*)"/g)){let d=(i[1]??"").match(/%~?dp0%?\s*[\\/]*(.*)$/i)?.[1]?.trim();if(!d)continue;let f=d.replace(/[\\/]+/g,m__default.sep).replace(/^[\\/]+/,""),u=m__default.resolve(n,f);k(u)&&r.push(u);}let o=[],c=new Map;for(let i of t.matchAll(/SET\s+"(\w+)=%~?dp0%?[\\/]?([^"]+)"/gi)){let a=i[1].toUpperCase(),l=i[2].trim().replace(/[\\/]+/g,m__default.sep).replace(/^[\\/]+/,"");c.set(a,m__default.resolve(n,l));}for(let i of t.split(/\r?\n/))if(i.includes("%*"))for(let a of i.matchAll(/"%(\w+)%"/g)){let l=c.get(a[1].toUpperCase());l&&k(l)&&o.push(l);}let s=i=>i.find(a=>{let l=T(m__default.basename(a));return l!=="node.exe"&&l!=="node"})??null;return s(o)??s(r)}catch{return null}}function tt(e,t){if(typeof t=="string")return O(t)||null;if(!t||typeof t!="object")return null;if(e){let n=t[e],r=typeof n=="string"?O(n):void 0;if(r)return r}for(let n of Object.values(t)){let r=typeof n=="string"?O(n):void 0;if(r)return r}return null}function nt(e,t){if(!t)return null;let n=m__default.dirname(e),r=[m__default.resolve(n,"..",t),m__default.resolve(n,"node_modules",t)];for(let o of r){let c=m__default.join(o,"package.json");if(k(c))try{let s=JSON.parse(readFileSync(c,"utf8")),i=tt(t,s.bin);if(!i)continue;let a=m__default.resolve(o,i);if(k(a))return a}catch{}}return null}function rt(e){let t=e.platform??process.platform,n=e.env??process.env,r=e.execPath??process.execPath,o=e.cwd,c=e.resolution;if(t!=="win32")return {command:ee(e.command,{cwd:o,env:n,platform:t,resolution:c}),leadingArgv:[],resolution:"direct"};let s=ee(e.command,{cwd:o,env:n,platform:t,resolution:c}),i=T(m__default.extname(s));if(i===".js"||i===".cjs"||i===".mjs")return {command:r,leadingArgv:[s],resolution:"node-entrypoint",windowsHide:true};if(i===".cmd"||i===".bat"){let a=et(s)??nt(s,e.packageName);return a?T(m__default.extname(a))===".exe"?{command:a,leadingArgv:[],resolution:"exe-entrypoint",windowsHide:true}:{command:r,leadingArgv:[a],resolution:"node-entrypoint",windowsHide:true}:{command:s,leadingArgv:[],resolution:"unresolved-wrapper"}}return {command:s,leadingArgv:[],resolution:"direct",windowsHide:true}}function ot(e){if(e.candidate.resolution!=="unresolved-wrapper")return {command:e.candidate.command,leadingArgv:e.candidate.leadingArgv,resolution:e.candidate.resolution,windowsHide:e.candidate.windowsHide};throw new Error(`${m__default.basename(e.candidate.command)} wrapper resolved, but no executable/Node entrypoint could be resolved without shell execution.`)}function ne(e){let t=rt(e);return ot({candidate:t})}function re(e,t){return {command:e.command,argv:[...e.leadingArgv,...t],resolution:e.resolution,shell:e.shell,windowsHide:e.windowsHide}}var A="\uFFFD",H=8,se=1e3,it=new Map([[437,"ibm437"],[720,"ibm720"],[737,"ibm737"],[775,"ibm775"],[850,"ibm850"],[852,"ibm852"],[855,"ibm855"],[857,"ibm857"],[858,"ibm858"],[862,"ibm862"],[864,"ibm864"],[932,"shift_jis"],[936,"gb18030"],[949,"euc-kr"],[950,"big5"],[866,"ibm866"],[869,"ibm869"],[1250,"windows-1250"],[1251,"windows-1251"],[1252,"windows-1252"],[1253,"windows-1253"],[1254,"windows-1254"],[1255,"windows-1255"],[1256,"windows-1256"],[1257,"windows-1257"],[1258,"windows-1258"]]),D;function V(e){let t=0;for(let n of e)n===A&&(t+=1);return t}function U(e,t){return V(t)<V(e)?t:e}function at(e){let t=e.match(/(?:^|[^0-9])([0-9]{1,5})(?![0-9])/);if(!t)return null;let n=Number(t[1]);return Number.isInteger(n)&&n>0&&n<=65535?n:null}function ct(e){if(e!==65001)return it.get(e)}function lt(e){let t=ct(e);if(!t)return null;try{return new TextDecoder(t)}catch{return null}}function ut(){return new Promise(e=>{let t=false,n,r=o=>{t||(t=true,n&&clearTimeout(n),e(o));};n=setTimeout(()=>r(null),se),n.unref();try{execFile("chcp.com",[],{encoding:"ascii",timeout:se,windowsHide:!0},(c,s)=>{if(c){r(null);return}r(at(String(s)));}).once("error",()=>r(null));}catch{r(null);}})}function ce(){return process.platform!=="win32"?Promise.resolve(null):(D||(D=ut(),D.then(e=>{},()=>{})),D)}function dt(){process.platform==="win32"&&ce();}function ae(e,t){if(t.length>=H)return t.subarray(t.length-H);let n=H-t.length,r=e.length>n?e.subarray(e.length-n):e;return Buffer.concat([r,t])}var _=class{platform;detectCodePage;utf8Decoder=new StringDecoder("utf8");codePage;fallbackDecoder;replayTail=Buffer.alloc(0);pendingUtf8="";pendingFallback="";pendingBytes=Buffer.alloc(0);queue=Promise.resolve();ended=false;constructor(t={}){this.platform=t.platform??process.platform,this.detectCodePage=t.detectCodePage??ce,this.codePage=t.codePage;}write(t){let n=Buffer.from(t);return this.enqueue(()=>this.decodeChunk(n))}end(){return this.enqueue(()=>this.finish())}enqueue(t){let n=this.queue.then(t);return this.queue=n.then(()=>{},()=>{}),n}clearPendingCandidate(){this.pendingUtf8="",this.pendingFallback="",this.pendingBytes=Buffer.alloc(0);}async resolveCodePage(){if(this.codePage!==void 0)return this.codePage;try{this.codePage=await this.detectCodePage();}catch{this.codePage=null;}return this.codePage}async getFallbackDecoder(){if(this.fallbackDecoder!==void 0)return this.fallbackDecoder;let t=await this.resolveCodePage();return this.fallbackDecoder=t===null?null:lt(t),this.fallbackDecoder}async decodeChunk(t){if(this.ended)return "";let n=this.utf8Decoder.write(t),r=n.includes(A);if(r&&(this.utf8Decoder=new StringDecoder("utf8")),this.platform!=="win32")return n;if(this.fallbackDecoder){let a=this.fallbackDecoder.decode(t,{stream:true}),l=ae(this.pendingBytes,t);if(r){let d=this.pendingUtf8+n,f=this.pendingFallback+a;return this.clearPendingCandidate(),U(d,f)}if(V(a)>0){let d=this.pendingUtf8+n;return this.clearPendingCandidate(),this.fallbackDecoder=void 0,this.replayTail=l,d}if(this.pendingUtf8||this.pendingFallback){if(this.pendingUtf8+=n,this.pendingFallback+=a,this.pendingBytes=l,n.length===0||a.length===0)return "";let d=this.pendingUtf8;return this.clearPendingCandidate(),d}return n.length===0&&a.length>0?(this.pendingUtf8=n,this.pendingFallback=a,this.pendingBytes=l,""):n}let o=this.replayTail;if(this.fallbackDecoder===void 0&&(this.replayTail=ae(this.replayTail,t)),!r)return n;let c=this.fallbackDecoder===void 0,s=await this.getFallbackDecoder();if(!s)return this.replayTail=Buffer.alloc(0),n;c&&o.length>0&&s.decode(o,{stream:true}),this.replayTail=Buffer.alloc(0);let i=s.decode(t,{stream:true});return U(n,i)}async finish(){if(this.ended)return "";this.ended=true;let t=this.utf8Decoder.end();if(this.platform!=="win32")return t;if(this.fallbackDecoder===void 0&&t.includes(A)){let c=await this.getFallbackDecoder();c&&this.replayTail.length>0&&(c.decode(this.replayTail,{stream:true}),this.replayTail=Buffer.alloc(0));}let n=this.pendingUtf8+t,r=this.fallbackDecoder?.decode()??"",o=this.pendingFallback+r;return this.clearPendingCandidate(),n.includes(A)?U(n,o):n}};dt();var le=3e3;var mt=2e3,pt=25,ht=100;function fe(e){return e instanceof Error?e:e===void 0?void 0:new Error(String(e))}function ue(e){return typeof e=="object"&&e!==null&&"code"in e?String(e.code):void 0}function gt(e){return Number.isSafeInteger(e)&&e>0}function wt(e,t){return new Promise(n=>{let r;try{r=spawn(e,t,{windowsHide:!0});}catch(l){n({status:null,stdout:"",stderr:"",error:fe(l)});return}let o="",c="",s=false,i,a=setTimeout(()=>{try{r.kill();}catch{}i({status:null,stdout:o,stderr:c,error:new Error(`Command timed out after ${le}ms`)});},le);i=l=>{s||(s=true,clearTimeout(a),n(l));},r.stdout?.setEncoding("utf8"),r.stderr?.setEncoding("utf8"),r.stdout?.on("data",l=>{o+=String(l);}),r.stderr?.on("data",l=>{c+=String(l);}),r.once("error",l=>{i({status:null,stdout:o,stderr:c,error:l});}),r.once("close",l=>{i({status:l,stdout:o,stderr:c});});})}async function Pt(e,t,n){return n.runCommandAsync?n.runCommandAsync(e,t):n.runCommand?n.runCommand(e,t):wt(e,t)}function St(e){return new Promise(t=>{setTimeout(t,Math.max(0,e));})}function Et(){return new Promise(e=>{setImmediate(e);})}function W(e,t=process.kill){try{return t(e,0),"alive"}catch(n){return ue(n)==="ESRCH"?"not_found":ue(n)==="EPERM"?"alive":"unknown"}}function Ct(e,t){let n=W(-e,t),r=W(e,t);return n==="alive"||r==="alive"?"alive":n==="unknown"||r==="unknown"?"unknown":"not_found"}async function me(e,t,n,r){let o=Math.max(0,n),c=Math.max(1,r.pollIntervalMs??pt),s=Date.now()+o,i,a=o===0,l=r.sleep?Promise.resolve().then(()=>r.sleep(o)).then(()=>{},()=>{}):new Promise(d=>{i=setTimeout(d,o);});l.then(()=>{a=true;});try{for(await Et();;){let d=Ct(e,t);if(d==="not_found")return d;let f=s-Date.now();if(a||f<=0)return d;await Promise.race([l,St(Math.min(c,f))]);}}finally{i!==void 0&&clearTimeout(i);}}async function de(e,t,n,r,o){let c=await me(e,t,o.hardConfirmMs??ht,{...o,sleep:void 0});return c==="not_found"?n?{status:"not_found",pid:e,method:r}:{status:"terminated",pid:e,method:r}:c==="alive"?{status:"failed",pid:e,method:r,error:"Process is still running after termination attempt"}:{status:"failed",pid:e,method:r,error:"Unable to verify process termination"}}async function pe(e,t={}){let n=t.platform??process.platform,r=n==="win32"?"taskkill":"process-group",o=u=>({status:"failed",pid:e,method:r,error:u});if(!gt(e))return o("Invalid process ID");let c=t.kill??process.kill,s=W(e,c);if(s==="not_found")return {status:"not_found",pid:e,method:r};if(s!=="alive")return o("Unable to determine whether the process is alive");if(n==="win32"){let u;try{u=await Pt("taskkill",["/PID",String(e),"/T","/F"],t);}catch(h){u={status:null,stdout:"",stderr:"",error:fe(h)};}let E=W(e,c);return E==="not_found"?u.status===0&&!u.error?{status:"terminated",pid:e,method:r}:{status:"not_found",pid:e,method:r}:o(E==="alive"?"Process is still running after termination attempt":"Unable to verify process termination")}let i,a=t.signal??"SIGKILL";try{c(-e,a);}catch(u){i=u;}if(a==="SIGKILL")return de(e,c,i,r,t);if(await me(e,c,t.graceMs??mt,t)==="not_found")return i?{status:"not_found",pid:e,method:r}:{status:"terminated",pid:e,method:r};let d;try{c(-e,"SIGKILL");}catch(u){d=u;}let f=await de(e,c,d,r,t);return f.status==="terminated"?f:f.status==="not_found"?i?f:{status:"terminated",pid:e,method:r}:o(f.error??"Process termination failed")}var yt=["CREWX_ASSIGNED_TASK_ID","CREWX_DETACHED_RUNNER"];function vt(e,t){let n={};for(let[r,o]of Object.entries(e))o!==void 0&&(t.includes(r)||(n[r]=o));return n}function he(e){return vt(e,yt)}var ge=3e4;function we(e){if(typeof e.pid!="number"){try{e.kill();}catch{}return}pe(e.pid,{signal:"SIGKILL"}).then(t=>{if(t.status==="failed")try{e.kill("SIGKILL");}catch{}},()=>{try{e.kill("SIGKILL");}catch{}});}var Pe=(e,t,n={})=>new Promise((r,o)=>{let c=he(n.env??process.env),s=process.platform,i;try{let w=ne({command:e,platform:s,env:c,cwd:n.cwd,allowShellFallback:!1});i=re(w,t);}catch(w){o(w instanceof Error?w:new Error(String(w)));return}let a=spawn(i.command,i.argv,{cwd:n.cwd,env:c,shell:i.shell,windowsHide:i.windowsHide??true,detached:s!=="win32"}),l="",d="",f=false,u=new _({platform:s}),E=new _({platform:s}),h=Promise.resolve(),y=Promise.resolve(),g=setTimeout(()=>{f||(f=true,we(a),o(new Error(`Command timed out after ${n.timeoutMs??ge}ms: ${e} ${t.join(" ")}`)));},n.timeoutMs??ge);a.stdout?.on("data",w=>{h=h.then(async()=>{l+=await u.write(w);});}),a.stderr?.on("data",w=>{y=y.then(async()=>{d+=await E.write(w);});}),a.on("error",w=>{f||(f=true,clearTimeout(g),o(w));}),a.on("close",w=>{f||(async()=>{await Promise.all([h,y]);let[v,Ue]=await Promise.all([u.end(),E.end()]);f||(l+=v,d+=Ue,f=true,clearTimeout(g),r({code:w??0,stdout:l,stderr:d}));})().catch(v=>{f||(f=true,clearTimeout(g),o(v instanceof Error?v:new Error(String(v))));});});});function _t(){try{return (typeof $=="function"?$:createRequire(S)).resolve("@crewx/sdk/package.json")}catch{return null}}function xt(){let e=[_t(),join(P,"../../package.json"),join(P,"../../../package.json")].filter(t=>!!t);for(let t of e)try{let n=JSON.parse(readFileSync(t,"utf8"));if(n.name==="@crewx/sdk"&&n.version)return n.version}catch{}return "0.0.0"}var Ee=xt();var C=m.win32;function X(e){return C.join(e,".crewx")}function ye(e){return C.join(X(e),"shortcut.json")}function ve(e){return C.join(X(e),"launcher.json")}function Re(e){return C.join(X(e),"bin","crewx-launcher.cmd")}function be(e){return C.join(e,"CrewX.lnk")}function G(e,t){return C.normalize(e).toLowerCase()===C.normalize(t).toLowerCase()}var It="[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; [Environment]::GetFolderPath('DesktopDirectory')";async function ke(e){try{let n=await e.run("powershell",["-NoProfile","-NonInteractive","-Command",It],{env:e.env}),r=n.stdout.trim();if(n.code===0&&r)return {dir:r,source:"known-folder"}}catch{}let t=e.env.USERPROFILE||e.env.Userprofile||e.homedir();return t?{dir:C.join(t,"Desktop"),source:"fallback"}:null}function J(e,t){let n=C.resolve(t,"node_modules",".bin").toLowerCase();return e.split(";").filter(r=>r?C.resolve(r).toLowerCase()!==n:true).join(";")}function _e(e){return e?/\\Program Files( \(x86\))?\\/i.test(e)&&/crewx/i.test(e):false}function Lt(e,t){let n=a=>{let[l,...d]=a.split("-"),f=d.join("-")||void 0;return {parts:(l??"").split(".").map(E=>Number.parseInt(E,10)||0),pre:f}},r=n(e),o=n(t),c=Math.max(r.parts.length,o.parts.length);for(let a=0;a<c;a++){let l=r.parts[a]??0,d=o.parts[a]??0;if(l!==d)return l<d?-1:1}if(r.pre===o.pre)return 0;if(!r.pre&&o.pre)return 1;if(r.pre&&!o.pre)return -1;let s=Number.parseInt(r.pre.match(/(\d+)$/)?.[1]??"",10),i=Number.parseInt(o.pre.match(/(\d+)$/)?.[1]??"",10);return !Number.isNaN(s)&&!Number.isNaN(i)&&s!==i?s<i?-1:1:r.pre<o.pre?-1:r.pre>o.pre?1:0}function x(e,t){return Lt(e,t)<0}var Ie=m.win32,Le=1;function Ne(e,t){if(!e.existsSync(t))return null;try{let n=JSON.parse(e.readFileSync(t));return {schema:n.schema??Le,shortcutPath:n.shortcutPath,version:n.version,iconHash:typeof n.iconHash=="string"?n.iconHash:void 0,owned:!!n.owned,declined:!!n.declined,desktopSource:n.desktopSource,updatedAt:n.updatedAt}}catch{return null}}function M(e,t,n){let r={schema:Le,...n,updatedAt:new Date().toISOString()};e.mkdirSync(Ie.dirname(t)),e.writeFileSync(t,JSON.stringify(r,null,2));}function F(e,t){if(!e.existsSync(t))return null;try{let n=JSON.parse(e.readFileSync(t));return {schema:n.schema??0,binPath:n.binPath,updatedAt:n.updatedAt}}catch{return null}}function Oe(e,t,n){e.mkdirSync(Ie.dirname(t)),e.writeFileSync(t,JSON.stringify(n,null,2));}var Nt=m.win32,I=1;function Ot(e){return e.replace(/%/g,"%%")}function Tt(e){return ["@echo off","setlocal DisableDelayedExpansion","chcp 65001 >nul","",'set "CREWX_WORKDIR=%USERPROFILE%\\crewx"','if not exist "%CREWX_WORKDIR%" mkdir "%CREWX_WORKDIR%" >nul 2>nul','cd /d "%CREWX_WORKDIR%"',"",'set "CREWX_PORT_EFFECTIVE=%CREWX_PORT%"','if "%CREWX_PORT_EFFECTIVE%"=="" set "CREWX_PORT_EFFECTIVE=8150"','set "CREWX_HEALTH_URL=http://127.0.0.1:%CREWX_PORT_EFFECTIVE%/api/v1/health"','set "CREWX_ORIGIN_URL=http://127.0.0.1:%CREWX_PORT_EFFECTIVE%/"',"",e.bakedBinPath?`set "CREWX_FALLBACK_BIN=${Ot(e.bakedBinPath)}"`:'set "CREWX_FALLBACK_BIN="','set "CREWX_RESOLVED_BIN=%CREWX_BIN%"','if "%CREWX_RESOLVED_BIN%"=="" set "CREWX_RESOLVED_BIN=%CREWX_FALLBACK_BIN%"','if "%CREWX_RESOLVED_BIN%"=="" (',` for /f "delims=" %%I in ('where crewx 2^>nul') do (`,' if not defined CREWX_RESOLVED_BIN set "CREWX_RESOLVED_BIN=%%I"'," )",")","",'powershell -NoProfile -NonInteractive -Command "try { $r = Invoke-WebRequest -Uri $env:CREWX_HEALTH_URL -TimeoutSec 1 -UseBasicParsing; if ($r.StatusCode -eq 200) { exit 0 } else { exit 1 } } catch { exit 1 }"',"if %ERRORLEVEL% EQU 0 (",' start "" "%CREWX_ORIGIN_URL%"'," exit /b 0",")","",'if "%CREWX_RESOLVED_BIN%"=="" ('," echo CrewX executable not found. Please reinstall the desktop shortcut."," pause"," exit /b 1",")","",'start "CrewX" /min "%CREWX_RESOLVED_BIN%"',""].join(`\r
2
2
  `)}function De(e){let t=F(e.fs,e.launcherManifestPath),n=!!t&&t.schema>=I&&e.fs.existsSync(e.wrapperPath),r=n&&!t.binPath&&!!e.bakedBinPath;if(n&&!r)return {wrapperPath:e.wrapperPath,wrote:false,schema:t.schema};let c=Tt({bakedBinPath:e.bakedBinPath});try{e.fs.mkdirSync(Nt.dirname(e.wrapperPath)),e.fs.writeFileSync(e.wrapperPath,c),Oe(e.fs,e.launcherManifestPath,{schema:I,binPath:e.bakedBinPath,updatedAt:new Date().toISOString()});}catch(s){throw s instanceof p?s:new p("WRITE_DENIED",`Could not write launcher wrapper: ${s instanceof Error?s.message:String(s)}`)}return {wrapperPath:e.wrapperPath,wrote:true,schema:I}}var Dt=["$ws = New-Object -ComObject WScript.Shell","$sc = $ws.CreateShortcut($env:CREWX_LNK_PATH)","$sc.TargetPath = $env:CREWX_LNK_TARGET","if ($env:CREWX_LNK_WORKDIR) { $sc.WorkingDirectory = $env:CREWX_LNK_WORKDIR }","$sc.WindowStyle = 7","if ($env:CREWX_LNK_ICON) { $sc.IconLocation = $env:CREWX_LNK_ICON }","$sc.Save()"].join("; "),At=["[Console]::OutputEncoding = [System.Text.Encoding]::UTF8","$ws = New-Object -ComObject WScript.Shell","$sc = $ws.CreateShortcut($env:CREWX_LNK_PATH)","[PSCustomObject]@{ TargetPath = $sc.TargetPath; WorkingDirectory = $sc.WorkingDirectory; IconLocation = $sc.IconLocation } | ConvertTo-Json -Compress"].join("; ");async function Ae(e){let t={...e.env,CREWX_LNK_PATH:e.shortcutPath,CREWX_LNK_TARGET:e.targetPath,CREWX_LNK_WORKDIR:e.workingDirectory??"",CREWX_LNK_ICON:e.iconPath??""},n;try{n=await e.run("powershell",["-NoProfile","-NonInteractive","-Command",Dt],{env:t});}catch(r){throw new p("POWERSHELL_UNAVAILABLE",`Could not run PowerShell: ${r instanceof Error?r.message:String(r)}`)}if(n.code!==0)throw new p("POWERSHELL_UNAVAILABLE",`Failed to create desktop shortcut: ${n.stderr||n.stdout}`)}function We(e){let t=e.trim(),n=t.lastIndexOf(",");return n!==-1&&/^-?\d+$/.test(t.slice(n+1).trim())&&(t=t.slice(0,n).trim()),t.length>=2&&t.startsWith('"')&&t.endsWith('"')&&(t=t.slice(1,-1).trim()),t}async function Me(e){try{let t={...e.env,CREWX_LNK_PATH:e.shortcutPath},n=await e.run("powershell",["-NoProfile","-NonInteractive","-Command",At],{env:t});if(n.code!==0||!n.stdout.trim())return null;let r=JSON.parse(n.stdout.trim());return {targetPath:r.TargetPath??"",workingDirectory:r.WorkingDirectory??"",iconLocation:r.IconLocation??""}}catch{return null}}var j=m.win32;async function L(e){let t=J(e.env.PATH??e.env.Path??"",e.cwd),n={...e.env,PATH:t,Path:t},r;try{r=await e.run("npm",["list","-g","crewx","--depth=0","--json"],{env:n});}catch{return {installed:false}}let o;try{o=JSON.parse(r.stdout||"{}");}catch{return {installed:false}}let c=o.dependencies?.crewx;if(!c?.version)return {installed:false};let s;try{let a=await e.run("npm",["prefix","-g"],{env:n});a.code===0&&(s=a.stdout.trim()||void 0);}catch{}let i=s?j.join(s,"crewx.cmd"):void 0;return {installed:true,version:c.version,binPath:i,prefix:s}}var Wt=/EACCES|EPERM|EROFS/,Mt=/ENOTFOUND|ETIMEDOUT|ECONNREFUSED|network|registry/i,Ft=/^\d+\.\d+\.\d+/;function Bt(e){return !!e&&e!=="0.0.0"&&Ft.test(e)}var K=10*6e4;async function Be(e){if(!Bt(e.targetVersion))throw new p("GLOBAL_INSTALL_FAILED",`RUNNING_VERSION_UNKNOWN: cannot reliably determine the running crewx version to install (got ${JSON.stringify(e.targetVersion)}); refusing to fall back to crewx@latest`);if(e.currentInfo?.installed&&e.currentInfo.version&&!x(e.currentInfo.version,e.targetVersion))return {info:e.currentInfo};let t=J(e.env.PATH??e.env.Path??"",e.cwd),n={...e.env,PATH:t,Path:t},r=`crewx@${e.targetVersion}`;e.onProgress?.({phase:"global-install",message:`Installing crewx globally (npm install -g ${r})`});let o;try{o=await e.run("npm",["install","-g",r,"--no-audit","--no-fund"],{env:n,timeoutMs:K});}catch(s){throw new p("NPM_UNAVAILABLE",`Could not run npm: ${s instanceof Error?s.message:String(s)}`)}if(o.code===0)return {info:await L({env:n,cwd:e.cwd,run:e.run})};let c=`${o.stdout}
3
3
  ${o.stderr}`;if(Wt.test(c)){e.onProgress?.({phase:"global-install",message:"Permission denied \u2014 retrying with a user-scoped npm prefix"});let s=e.env.LOCALAPPDATA||j.join(e.env.USERPROFILE??"","AppData","Local"),i={...n,npm_config_prefix:j.join(s,"crewx","npm")},a;try{a=await e.run("npm",["install","-g",r,"--no-audit","--no-fund"],{env:i,timeoutMs:K});}catch(l){throw new p("NPM_PERMISSION_DENIED",`Retry with user-scoped prefix failed: ${l instanceof Error?l.message:String(l)}`)}if(a.code===0)return {info:await L({env:i,cwd:e.cwd,run:e.run})};throw new p("NPM_PERMISSION_DENIED",`npm install -g failed after user-scoped prefix retry: ${a.stderr||a.stdout}`)}if(Mt.test(c)){if(!e.installRoot)throw new p("OFFLINE_NO_SOURCE","The npm registry is unreachable and no local installRoot was provided for an offline install");e.onProgress?.({phase:"global-install",message:`Registry unreachable \u2014 installing offline from ${e.installRoot}`});let s;try{s=await e.run("npm",["install","-g",e.installRoot,"--offline","--no-audit","--no-fund"],{env:n,timeoutMs:K});}catch(i){throw new p("GLOBAL_INSTALL_FAILED",`Offline install failed: ${i instanceof Error?i.message:String(i)}`)}if(s.code===0)return {info:await L({env:n,cwd:e.cwd,run:e.run})};throw new p("GLOBAL_INSTALL_FAILED",`Offline install failed: ${s.stderr||s.stdout}`)}throw new p("GLOBAL_INSTALL_FAILED",c.trim()||`npm install -g ${r} failed`)}function Ht(e){return e.run??Pe}function Ut(e){return e.fs??Q}async function B(e){let t=e.platform??process.platform,n=e.env??process.env,r=e.homedir??Z,o=Ht(e),c=Ut(e),s=e.runningVersion??Ee,i=e.cwd??process.cwd(),a=r(),l=ye(a),d=ve(a),f=Re(a),u=null;t==="win32"&&(u=await ke({env:n,homedir:r,run:o}));let E=u?be(u.dir):null;return {platform:t,env:n,homedir:r,run:o,fs:c,runningVersion:s,cwd:i,installRoot:e.installRoot,shortcutManifestPath:l,launcherManifestPath:d,wrapperPath:f,desktop:u,shortcutPath:E}}function $e(e){return e?m.win32.normalize(e).toLowerCase().endsWith(`${m.win32.sep}bin${m.win32.sep}crewx.ico`):false}function z(e,t){let n=e.readBinaryFileSync;if(n)try{return createHash("sha256").update(n(t)).digest("hex")}catch{return}}async function Vt(e){try{await e.run("ie4uinit.exe",["-show"],{env:e.env});}catch{}}async function R(e){if(e.platform!=="win32")return {supported:false,state:"unsupported",globalCrewx:null,runningVersion:e.runningVersion,errors:[],manifest:null,iconStale:false};let t=[];e.desktop||t.push("NO_DESKTOP_DIR: could not resolve the Windows Desktop directory");let n=Ne(e.fs,e.shortcutManifestPath),r=F(e.fs,e.launcherManifestPath),o=await L({env:e.env,cwd:e.cwd,run:e.run}),c=e.shortcutPath?e.fs.existsSync(e.shortcutPath):false,s,i=false,a,l;if(!c)s=n?.declined?"declined":"not-installed";else {let d=!!n?.owned&&!!e.shortcutPath&&n.shortcutPath===e.shortcutPath,f=false,u=e.shortcutPath?await Me({run:e.run,env:e.env,shortcutPath:e.shortcutPath}):null;if(d||(u&&G(u.targetPath,e.wrapperPath)?d=true:u&&_e(u.targetPath)&&(f=true)),f)s="foreign",t.push("NSIS_PRESENT: an NSIS-installed CrewX shortcut was detected");else if(!d)s="foreign";else if(n?.version&&x(e.runningVersion,n.version))s="superseded",t.push(`SUPERSEDED: running version ${e.runningVersion} is older than the installed shortcut's version ${n.version}; refusing to modify it`);else {let E=!r||r.schema<I||!e.fs.existsSync(e.wrapperPath);if(u){let h=We(u.iconLocation);if(!(!!h&&e.fs.existsSync(h)))i=true;else {a=h;let g=He(o,e.fs);g?G(h,g)?(l=z(e.fs,h),i=!l||n?.iconHash!==l):i=true:$e(h)?(l=z(e.fs,h),i=!l||n?.iconHash!==l):i=true;}}s=E||i?"stale":"installed";}}return {supported:true,state:s,shortcutPath:e.shortcutPath??void 0,desktopDir:e.desktop?.dir,desktopSource:e.desktop?.source,wrapperPath:e.wrapperPath,wrapperSchema:r?.schema,globalCrewx:o.installed?o:{installed:false},runningVersion:e.runningVersion,errors:t,manifest:n,iconStale:i,iconPath:a,iconHash:l}}function He(e,t){if(!e?.installed||!e.prefix)return;let n=m.win32.join(e.prefix,"node_modules","crewx","bin","crewx.ico");return t.existsSync(n)?n:void 0}function b(e){let{manifest:t,iconStale:n,iconPath:r,iconHash:o,...c}=e;return c}async function Xt(e={}){let t=await B(e),n=await R(t);return b(n)}async function Gt(e={}){let t=await B(e);e.onProgress?.({phase:"detect",message:"Checking current shortcut status"});let n=await R(t),r=b(n);if(!r.supported)return {...r,changed:false,installedGlobal:false};if(r.state==="superseded")return {...r,changed:false,installedGlobal:false};if(r.state==="foreign"){if(n.errors.some(g=>g.startsWith("NSIS_PRESENT")))throw new p("NSIS_PRESENT",`An NSIS-installed CrewX shortcut was detected at ${r.shortcutPath}`);if(!e.force)throw new p("FOREIGN_SHORTCUT",`An existing shortcut at ${r.shortcutPath} is not managed by CrewX`)}if(!t.desktop||!t.shortcutPath)throw new p("NO_DESKTOP_DIR","Could not resolve the Windows Desktop directory");let o=false,c=false,s=r.globalCrewx,i=[],a=n.manifest?.iconHash,l=false;if(!!s?.installed&&!!s.version&&x(s.version,t.runningVersion)||!s?.installed&&r.state!=="installed"){let g=await Be({env:t.env,cwd:t.cwd,run:t.run,targetVersion:t.runningVersion,currentInfo:s??void 0,installRoot:t.installRoot,onProgress:e.onProgress});s=g.info,c=g.info.installed,o=true,c||i.push(`GLOBAL_INSTALL_UNCONFIRMED: npm install -g crewx@${t.runningVersion} exited successfully but a follow-up check could not confirm the global install`);}if(e.onProgress?.({phase:"wrapper",message:"Ensuring launcher wrapper"}),De({fs:t.fs,wrapperPath:t.wrapperPath,launcherManifestPath:t.launcherManifestPath,bakedBinPath:s?.binPath}).wrote&&(o=true),!((r.state==="installed"||r.state==="stale")&&!n.iconStale)){let g=He(s,t.fs)??(n.iconPath&&$e(n.iconPath)&&t.fs.existsSync(n.iconPath)?n.iconPath:void 0);if(n.iconStale&&!g)throw new p("ICON_UNAVAILABLE",`Could not locate the global CrewX icon (bin\\crewx.ico) to repair the desktop shortcut at ${t.shortcutPath}; the existing shortcut was left untouched`);e.onProgress?.({phase:"lnk",message:"Creating desktop shortcut"}),await Ae({run:t.run,env:t.env,shortcutPath:t.shortcutPath,targetPath:t.wrapperPath,iconPath:g}),o=true,l=n.iconStale;let w=g?z(t.fs,g):void 0;w&&(a=w);}o&&M(t.fs,t.shortcutManifestPath,{shortcutPath:t.shortcutPath,version:t.runningVersion,owned:true,declined:false,desktopSource:t.desktop.source,iconHash:a}),l&&await Vt(t);let h=await R(t),y=b(h);return {...y,errors:[...y.errors,...i],changed:o,installedGlobal:c}}async function Jt(e={}){let t=await B(e),n=await R(t),r=b(n);if(!r.supported)return r;if((r.state==="installed"||r.state==="stale")&&t.shortcutPath)try{t.fs.unlinkSync(t.shortcutPath);}catch{}M(t.fs,t.shortcutManifestPath,{shortcutPath:void 0,version:n.manifest?.version,owned:false,declined:true,desktopSource:void 0,iconHash:void 0});let o=await R(t);return b(o)}async function Kt(e={}){let t=await B(e),n=await R(t),r=b(n);if(!r.supported)return r;M(t.fs,t.shortcutManifestPath,{shortcutPath:n.manifest?.shortcutPath,version:n.manifest?.version,owned:n.manifest?.owned??false,declined:true,desktopSource:n.manifest?.desktopSource,iconHash:n.manifest?.iconHash});let o=await R(t);return b(o)}export{p as ShortcutError,Kt as dismissShortcutNotice,Xt as getShortcutStatus,Gt as installShortcut,we as killProcessTree,Jt as uninstallShortcut};
package/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import*as Ne from'path';import Ne__default,{join,dirname,resolve,isAbsolute,relative,sep,basename,normalize,win32}from'path';import {fileURLToPath}from'url';import*as wt from'fs';import {constants,existsSync,mkdirSync,readFileSync,writeFileSync,statSync,renameSync,readdirSync,lstatSync,realpathSync,chmodSync,rmSync,unlinkSync,linkSync,openSync,fsyncSync,closeSync,appendFileSync,promises}from'fs';import {spawn,execFile,execFileSync,spawnSync}from'child_process';import {StringDecoder}from'string_decoder';import*as cy from'crypto';import {createHash,randomUUID,randomBytes}from'crypto';import*as sI from'os';import sI__default,{tmpdir,hostname,homedir}from'os';import {sqliteTable,text,integer,index,check,primaryKey,uniqueIndex,real,unique}from'drizzle-orm/sqlite-core';import {sql,or as or$1,eq,isNull,and,ne,desc,inArray,lt as lt$1,notLike,asc,like,gte,isNotNull}from'drizzle-orm';import {ndJsonStream,ClientSideConnection}from'@agentclientprotocol/sdk';import*as VR from'js-yaml';import {load,dump}from'js-yaml';import {getEncoding}from'js-tiktoken';import {Tiktoken}from'js-tiktoken/lite';import Ef from'js-tiktoken/ranks/o200k_base';import {z}from'zod';import {createRequire}from'module';import*as lr from'handlebars';import lr__default from'handlebars';import {readFile,access,readdir,realpath,stat,open,lstat}from'fs/promises';import {EventEmitter}from'events';import {AsyncLocalStorage}from'async_hooks';import {McpServer}from'@modelcontextprotocol/sdk/server/mcp.js';import {WebStandardStreamableHTTPServerTransport}from'@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js';import*as eS from'tar';import {gunzipSync,gzipSync}from'zlib';import {performance as performance$1}from'perf_hooks';import {parse}from'dotenv';var uf=Object.defineProperty;var Eb=Object.getOwnPropertyDescriptor;var wb=Object.getOwnPropertyNames;var Rb=Object.prototype.hasOwnProperty;var lt=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,n)=>(typeof require<"u"?require:e)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var U=(t,e)=>()=>(t&&(e=t(t=0)),e);var pa=(t,e)=>{for(var n in e)uf(t,n,{get:e[n],enumerable:true});},Sb=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of wb(e))!Rb.call(t,o)&&o!==n&&uf(t,o,{get:()=>e[o],enumerable:!(r=Eb(e,o))||r.enumerable});return t};var k_=t=>Sb(uf({},"__esModule",{value:true}),t);var E_,Cb,k,E,m=U(()=>{E_=()=>fileURLToPath(import.meta.url),Cb=()=>Ne__default.dirname(E_()),k=Cb(),E=E_();});var w_,gf,fa,ga,Sc,Uo=U(()=>{m();w_=["flagship","balanced","speed"],gf=["none","minimal","low","medium","high","xhigh","max","ultra"],fa={claude:["low","medium","high","xhigh","max"],codex:["none","minimal","low","medium","high","xhigh","max","ultra"],opencode:[],copilot:["none","low","medium","high","xhigh","max"],antigravity:["low","medium","high"],grok:["low","medium","high","xhigh"]},ga={claude:{models:[{id:"claude-fable-5-1",name:"Claude Fable 5.1",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-fable-5",name:"Claude Fable 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-5-5",name:"Claude Opus 5.5",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-opus-5",name:"Claude Opus 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"claude-opus-4-8[1m]",name:"Claude Opus 4.8",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-7[1m]",name:"Claude Opus 4.7",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-6[1m]",name:"Claude Opus 4.6",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-4-6[1m]",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindowTokens:2e5,tier:"speed"}],modes:[{id:"default",name:"Default",description:"Uses Claude's default permission handling with normal approval prompts."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without approval; other permission checks remain in place."},{id:"plan",name:"Plan",description:"Keeps Claude in plan mode so it can inspect and propose changes without applying them."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permissions; only pre-approved tool actions can proceed."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Claude permission checks so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"claude-fable-5-1":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-fable-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-opus-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-8[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-7[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-sonnet-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-haiku-4-5":{effort:[]}},providerOptions:[]},codex:{models:[{id:"gpt-6-astra",name:"GPT-6 Astra",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-6-sol",name:"GPT-6 Sol",contextWindowTokens:105e4,tier:"balanced",recommended:true},{id:"gpt-6-luna",name:"GPT-6 Luna",contextWindowTokens:105e4,tier:"speed",recommended:true},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindowTokens:105e4,tier:"speed"},{id:"gpt-5.5",name:"GPT-5.5",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4",name:"GPT-5.4",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",contextWindowTokens:4e5,tier:"speed"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",contextWindowTokens:4e5,tier:"flagship"},{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",contextWindowTokens:128e3,tier:"speed"}],modes:[{id:"agent",name:"Agent",description:"Uses the workspace-write sandbox; can read and modify workspace files without full machine access."},{id:"read-only",name:"Read Only",description:"Uses the read-only sandbox; can inspect files but cannot write to the workspace."},{id:"plan",name:"Plan",description:"Uses the read-only sandbox for planning and inspection; cannot write to the workspace."},{id:"agent-full-access",name:"Agent Full Access",description:"Bypasses approvals and the sandbox; can access and modify files beyond the workspace."},{id:"yolo",name:"YOLO",description:"Bypasses approvals and the sandbox for unrestricted execution and full filesystem access."}],effort:["minimal","low","medium","high"],modelOverrides:{"gpt-6-astra":{effort:["low","medium","high","xhigh","max"],defaultEffort:"xhigh"},"gpt-6-sol":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-6-luna":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-5.6-sol":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"xhigh"},"gpt-5.6-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"high"},"gpt-5.6-luna":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-5.5":{effort:["low","medium","high","xhigh"],defaultEffort:"high"}},providerOptions:[]},opencode:{models:[],modes:[{id:"plan",name:"Plan",description:"Uses the plan agent without --auto; planning follows standard approval behavior."},{id:"plan-auto",name:"Plan \xB7 Auto",description:"Uses the plan agent with --auto; planning uses automatic approvals."},{id:"build",name:"Build",description:"Uses the build agent without --auto; work follows standard approval behavior."},{id:"build-auto",name:"Build \xB7 Auto",description:"Uses the build agent with --auto; work uses automatic approvals."}],effort:[],modelOverrides:{},providerOptions:[]},copilot:{models:[{id:"auto",name:"Auto"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"gpt-5.5",name:"GPT-5.5",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4",name:"GPT-5.4",contextWindowTokens:105e4,tier:"flagship"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"}],modes:[{id:"interactive",name:"Interactive",description:"Passes --mode interactive; tool access follows Copilot's interactive mode behavior."},{id:"plan",name:"Plan",description:"Passes --mode plan; planning and permission behavior follow Copilot's plan mode."},{id:"autopilot",name:"Autopilot",description:"Passes --mode autopilot; execution behavior follows Copilot's autonomous mode."}],effort:["none","low","medium","high","xhigh","max"],modelOverrides:{},providerOptions:[]},antigravity:{models:[{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking",contextWindowTokens:1e6,tier:"flagship"},{id:"gpt-oss-120b",name:"GPT-OSS 120B",contextWindowTokens:128e3,tier:"balanced"}],modes:[{id:"default",name:"Default",description:"Uses Antigravity's default permission handling. No extra permission flags are passed."},{id:"plan",name:"Plan",description:"Passes --mode plan. This turns on /plan; it is not a Claude-style permission mode."},{id:"acceptEdits",name:"Accept Edits",description:"Passes --mode accept-edits."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Passes --dangerously-skip-permissions so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"gemini-3.7-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.6-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.5-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.1-pro":{effort:["low","high"],defaultEffort:"high"},"claude-sonnet-4-6":{effort:[]},"claude-opus-4-6-thinking":{effort:[]},"gpt-oss-120b":{effort:["medium"],defaultEffort:"medium"}},providerOptions:[]},grok:{models:[{id:"grok-4.7",name:"Grok 4.7",contextWindowTokens:5e5,tier:"flagship",recommended:true},{id:"grok-4.6",name:"Grok 4.6",contextWindowTokens:5e5,tier:"flagship"},{id:"grok-4.5",name:"Grok 4.5",contextWindowTokens:5e5,tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Grok's default permission handling."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without changing the selected sandbox profile."},{id:"auto",name:"Auto",description:"Uses Grok automatic permission handling."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permission before tool execution."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Grok permission checks for tool execution."},{id:"plan",name:"Plan",description:"Keeps Grok in planning mode without applying changes."}],effort:["low","medium","high"],modelOverrides:{"grok-4.7":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.6":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.5":{effort:["low","medium","high"],defaultEffort:"high"}},providerOptions:[{key:"alwaysApprove",type:"boolean"},{key:"sandbox",type:"enum",values:["workspace","read-only","off"]}]}},Sc={version:1,providers:{"cli/codex":{model:"gpt-6-sol",query:{mode:"agent",effort:"high"},execute:{mode:"agent-full-access",effort:"xhigh"}},"cli/claude":{model:"claude-opus-5-5",query:{mode:"default",effort:"high"},execute:{mode:"bypassPermissions",effort:"xhigh"}},"cli/grok":{model:"grok-4.7",query:{mode:"default",effort:"high",providerOptions:{alwaysApprove:true,sandbox:"off"}},execute:{mode:"bypassPermissions",effort:"xhigh",providerOptions:{alwaysApprove:true,sandbox:"off"}}}}},Object.fromEntries(Object.entries(ga).map(([t,e])=>[t,e.models]));});var Ho,mf,R_,hf=U(()=>{m();Ho={"claude-fable-5-1":{input:10,cachedInput:.25,output:50},"claude-fable-5":{input:10,cachedInput:1,output:50},"claude-opus-5-5":{input:4,cachedInput:.2,output:20},"claude-opus-5":{input:5,cachedInput:.5,output:25},"claude-opus-4-8":{input:5,cachedInput:.5,output:25},"claude-opus-4-7":{input:5,cachedInput:.5,output:25},"claude-opus-4-6":{input:5,cachedInput:.5,output:25},"claude-sonnet-5":{input:2,cachedInput:.2,output:10},"claude-sonnet-4-6":{input:3,cachedInput:.3,output:15},"claude-haiku-4-5":{input:1,cachedInput:.1,output:5},"gpt-6-astra":{input:10,cachedInput:1,output:50},"gpt-6-sol":{input:2,cachedInput:.2,output:10},"gpt-6-luna":{input:.1,cachedInput:.01,output:.5},"gpt-5.6-sol":{input:4,cachedInput:.4,output:20},"gpt-5.6-terra":{input:2,cachedInput:.2,output:12},"gpt-5.6-luna":{input:.2,cachedInput:.02,output:1.2},"gpt-5.5":{input:5,cachedInput:.5,output:30},"gpt-5.4":{input:2.5,cachedInput:.25,output:15},"gpt-5.4-mini":{input:.75,cachedInput:.075,output:4.5},"gpt-5.3-codex":{input:1.75,cachedInput:.175,output:14},"gpt-5-mini":{input:.4,cachedInput:.1,output:1.6},"gpt-4.1":{input:2,cachedInput:.5,output:8},"gpt-4o":{input:2.5,cachedInput:1.25,output:10},"glm-5.2":{input:1.4,cachedInput:.26,output:4.4},"glm-5.1":{input:1.4,cachedInput:.26,output:4.4},"gemini-3.7-flash":{input:1.5,cachedInput:.15,output:7.5},"gemini-3.6-flash":{input:1.5,cachedInput:.15,output:7.5},"grok-4.7":{input:2,cachedInput:.5,output:6},"grok-4.6":{input:2,cachedInput:.5,output:6},"grok-4.5":{input:2,cachedInput:.3,output:6}},mf=new Set(["gpt-5.3-codex-spark"]),R_=new Set(["auto","claude-fable-5","claude-fable-5-1","claude-haiku-4-5","claude-opus-4-6-thinking","claude-opus-4-6[1m]","claude-opus-4-7[1m]","claude-opus-4-8[1m]","claude-opus-5","claude-opus-5-5","claude-sonnet-4-6","claude-sonnet-4-6[1m]","claude-sonnet-5","gemini-3.1-pro","gemini-3.5-flash","gemini-3.6-flash","gemini-3.7-flash","gpt-5.3-codex","gpt-5.3-codex-spark","gpt-5.4","gpt-5.4-mini","gpt-5.5","gpt-5.6-luna","gpt-5.6-sol","gpt-5.6-terra","gpt-6-astra","gpt-6-luna","gpt-6-sol","gpt-oss-120b","grok-4.5","grok-4.6","grok-4.7"]);});function v_(t){ha=t;}function b_(t){S_=Object.fromEntries(Object.entries(t).map(([e,n])=>[e,{...n}]));}function yf(t){let e=t.toLowerCase().trim();e=e.replace(/\[[^\]]*\]$/g,"");let n=e.lastIndexOf("/");return n>=0&&(e=e.slice(n+1)),e=e.replace(/-\d{8}$/,""),e}function Nb(t){if(!t)return;let e="inputPerMillionTokensUsd"in t?t.inputPerMillionTokensUsd:t.input,n="outputPerMillionTokensUsd"in t?t.outputPerMillionTokensUsd:t.output;if(!(!Number.isFinite(e)||e<=0||!Number.isFinite(n)||n<=0))return {inputPerMillionTokensUsd:e,outputPerMillionTokensUsd:n}}function C_(t){if(!t)return;let e=t.replace(/\[[^\]]*\]$/g,"");return Nb(S_[e]??Ho[e])}function Db(t){if(!t)return console.warn("[pricing] missing model id; cost is being recorded as 0"),ma;let e=yf(t),n=Ob[e];if(n)return ha[n]??Ho[n]??ma;if(ha[e])return ha[e];if(Ho[e])return Ho[e];if(mf.has(e))return console.warn(`[pricing] unpublished model pricing: ${t}, cost_usd=0`),ma;if(R_.has(e))return console.warn(`[pricing] missing catalog pricing: ${t}, cost_usd=0`),ma;let r={...Ho,...ha};for(let o of Object.keys(r))if(e.includes(o))return r[o];return console.warn(`[pricing] Unknown model: ${t}, cost_usd=0`),ma}function Mb(t,e,n,r=0,o){let i=Db(n),s=Math.min(r,t),d=(t-s)*i.input/1e6,c=s*i.cachedInput/1e6,l=e*i.output/1e6;return d+c+l}function vc(t,e,n,r,o,i){return t&&t>0?t:!e&&!n?0:Mb(e??0,n??0,o,r??0)}var Ob,ma,ha,S_,Fo=U(()=>{m();hf();hf();Ob={opus:"claude-opus-4-8",sonnet:"claude-sonnet-4-6",haiku:"claude-haiku-4-5","codex-mini":"gpt-5.3-codex",codex:"gpt-5.3-codex"},ma={input:0,cachedInput:0,output:0},ha={},S_={};});function bc(t){return Hb[t]??t}function x_(t){return Fb.get(t)??t}function Cc(t){if(!t)return {};let e=Bb.get(t);return e?{...e}:{model:t}}function ya(t,e){return t==="antigravity"||t==="cli/antigravity"?Cc(e):e===void 0?{}:{model:x_(e)}}var Lb,Ub,P_,Hb,Fb,O_,Bb,Yi=U(()=>{m();Lb="claude-opus-4-8",Ub="claude-opus-4-8[1m]",P_=[{baseModelId:"claude-opus-4-8",catalogModelId:"claude-opus-4-8[1m]"},{baseModelId:"claude-opus-4-7",catalogModelId:"claude-opus-4-7[1m]"},{baseModelId:"claude-opus-4-6",catalogModelId:"claude-opus-4-6[1m]"},{baseModelId:"claude-sonnet-4-6",catalogModelId:"claude-sonnet-4-6[1m]"}],Hb={"accept-edits":"acceptEdits",yolo:"bypassPermissions","agent-full-access":"bypassPermissions"};Fb=new Map(P_.map(({baseModelId:t,catalogModelId:e})=>[t,e]));O_=[{legacyId:"Gemini 3.7 Flash (High)",model:"gemini-3.7-flash",effort:"high"},{legacyId:"Gemini 3.7 Flash (Medium)",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"Gemini 3.7 Flash (Low)",model:"gemini-3.7-flash",effort:"low"},{legacyId:"Gemini 3.6 Flash (High)",model:"gemini-3.6-flash",effort:"high"},{legacyId:"Gemini 3.6 Flash (Medium)",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"Gemini 3.6 Flash (Low)",model:"gemini-3.6-flash",effort:"low"},{legacyId:"Gemini 3.5 Flash (Medium)",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"Gemini 3.5 Flash (High)",model:"gemini-3.5-flash",effort:"high"},{legacyId:"Gemini 3.5 Flash (Low)",model:"gemini-3.5-flash",effort:"low"},{legacyId:"Gemini 3.1 Pro (Low)",model:"gemini-3.1-pro",effort:"low"},{legacyId:"Gemini 3.1 Pro (High)",model:"gemini-3.1-pro",effort:"high"},{legacyId:"Claude Sonnet 4.6 (Thinking)",model:"claude-sonnet-4-6"},{legacyId:"Claude Opus 4.6 (Thinking)",model:"claude-opus-4-6-thinking"},{legacyId:"GPT-OSS 120B (Medium)",model:"gpt-oss-120b",effort:"medium"},{legacyId:"gemini-3.7-flash-high",model:"gemini-3.7-flash",effort:"high"},{legacyId:"gemini-3.7-flash-medium",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"gemini-3.7-flash-low",model:"gemini-3.7-flash",effort:"low"},{legacyId:"gemini-3.6-flash-high",model:"gemini-3.6-flash",effort:"high"},{legacyId:"gemini-3.6-flash-medium",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"gemini-3.6-flash-low",model:"gemini-3.6-flash",effort:"low"},{legacyId:"gemini-3.5-flash-high",model:"gemini-3.5-flash",effort:"high"},{legacyId:"gemini-3.5-flash-medium",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"gemini-3.5-flash-low",model:"gemini-3.5-flash",effort:"low"},{legacyId:"gemini-3.1-pro-high",model:"gemini-3.1-pro",effort:"high"},{legacyId:"gemini-3.1-pro-low",model:"gemini-3.1-pro",effort:"low"},{legacyId:"gpt-oss-120b-medium",model:"gpt-oss-120b",effort:"medium"}],Bb=new Map(O_.map(({legacyId:t,model:e,effort:n})=>[t,n===void 0?{model:e}:{model:e,effort:n}]));});function D_(){return {models:[],modes:[],effort:[],modelOverrides:{},providerOptions:[]}}function jb(t){return Array.isArray(t)?{models:t,modes:[],effort:[],modelOverrides:{},providerOptions:[]}:t?{models:t.models??[],modes:t.modes??[],effort:t.effort??[],modelOverrides:t.modelOverrides??{},providerOptions:t.providerOptions??[]}:D_()}function Pc(t){_f=Object.fromEntries(Object.entries(t).map(([e,n])=>[e,jb(n)]));}function $b(){_f={};}function Qi(t){N_={...t};}function Hn(t){return Fn(t).models}function Fn(t){return _f[t]??ga[t]??D_()}function _a(t){return N_[t]??Sc.providers[t]}function Bo(t){return Fn(t).modes}function xr(t,e){let n=Fn(t);if(e){if(Object.prototype.hasOwnProperty.call(n.modelOverrides,e))return n.modelOverrides[e]?.effort??n.effort;let r=ya(t,e);return r.model===void 0?n.effort:n.modelOverrides[r.model]?.effort??n.effort}return n.effort}function xc(t){return Fn(t).modelOverrides}function Ta(){return Hn("claude")}function Tf(){return Hn("codex")}function Af(){return Hn("copilot")}function If(){return Hn("antigravity")}function Aa(t,e){let n=new Map;for(let r of [...t,...e]){let o=n.get(r.id);if(!o){let{apiPricing:i,recommended:s,...a}=r;n.set(r.id,{...a,...s===true?{recommended:true}:{},...i!=null?{apiPricing:{...i}}:{}});continue}!o.name&&r.name&&(o.name=r.name),o.description==null&&r.description!=null&&(o.description=r.description),o.contextWindowTokens==null&&r.contextWindowTokens!=null&&(o.contextWindowTokens=r.contextWindowTokens),o.tier==null&&r.tier!=null&&(o.tier=r.tier),o.recommended!==true&&r.recommended===true&&(o.recommended=true),o.apiPricing==null&&r.apiPricing!=null&&(o.apiPricing={...r.apiPricing});}return Array.from(n.values())}function Ia(t){return t.map(e=>{let{apiPricing:n,...r}=e,o=C_(e.id);return o?{...r,apiPricing:o}:r})}var _f,N_,pn=U(()=>{m();Uo();Fo();Yi();_f={},N_={};});function rT(t,e){let n={};for(let[r,o]of Object.entries(t))o!==void 0&&(e.includes(r)||(n[r]=o));return n}function Ft(t){return rT(t,nT)}function jC(t){return rT(t,BC)}var nT,BC,Or=U(()=>{m();nT=["CREWX_ASSIGNED_TASK_ID","CREWX_DETACHED_RUNNER"],BC=["CREWX_AGENT_ID","CREWX_PARENT_TASK_ID","CREWX_CALLER_AGENT_ID"];});function Gc(t){return typeof t!="string"?void 0:t.trim()||void 0}function zc(t){return Gc(t)?.toLowerCase()??""}function ns(t){try{return statSync(t).isFile()}catch{return false}}function qC(t,e){if(t===e)return true;let n=Ne__default.relative(t,e);return n!==""&&!n.startsWith("..")&&!Ne__default.isAbsolute(n)}function VC(t,e){if(Ne__default.basename(t)!==".bin")return false;let n=Ne__default.dirname(t);if(Ne__default.basename(n)!=="node_modules")return false;let r=Ne__default.dirname(n);return qC(r,e)}function rs(t,e={}){if(t.includes("/")||t.includes("\\")||Ne__default.isAbsolute(t))return t;let n=e.platform??process.platform,r=e.env??process.env,o=Ne__default.resolve(e.cwd??process.cwd()),i=(e.resolution??"global_first")==="global_first",s=r.PATH??r.Path??process.env.PATH??process.env.Path??"",a=n==="win32"?";":":",d=s.split(a).map(f=>f.trim()).filter(Boolean),c=Ne__default.extname(t).length>0,l=r.PATHEXT??r.Pathext??process.env.PATHEXT??process.env.Pathext??".EXE;.CMD;.BAT;.COM",u=n==="win32"?c?[""]:l.split(";").map(f=>f.trim()).filter(Boolean).map(f=>f.startsWith(".")?f:`.${f}`):[""];for(let f of d){let g=Ne__default.resolve(o,f);if(!(i&&VC(g,o)))for(let h of u){let y=zc(h),_=h.toUpperCase();for(let A of [h,y,_]){let T=Ne__default.join(g,`${t}${A}`);if(ns(T))return T}}}return t}function WC(t,e){return rs(t,{env:e,platform:"win32",resolution:"local_first"})}function GC(t){if(!ns(t))return null;try{let e=readFileSync(t,"utf8"),n=Ne__default.dirname(t),r=[];for(let a of e.matchAll(/"([^"\r\n]*)"/g)){let l=(a[1]??"").match(/%~?dp0%?\s*[\\/]*(.*)$/i)?.[1]?.trim();if(!l)continue;let u=l.replace(/[\\/]+/g,Ne__default.sep).replace(/^[\\/]+/,""),f=Ne__default.resolve(n,u);ns(f)&&r.push(f);}let o=[],i=new Map;for(let a of e.matchAll(/SET\s+"(\w+)=%~?dp0%?[\\/]?([^"]+)"/gi)){let d=a[1].toUpperCase(),c=a[2].trim().replace(/[\\/]+/g,Ne__default.sep).replace(/^[\\/]+/,"");i.set(d,Ne__default.resolve(n,c));}for(let a of e.split(/\r?\n/))if(a.includes("%*"))for(let d of a.matchAll(/"%(\w+)%"/g)){let c=i.get(d[1].toUpperCase());c&&ns(c)&&o.push(c);}let s=a=>a.find(d=>{let c=zc(Ne__default.basename(d));return c!=="node.exe"&&c!=="node"})??null;return s(o)??s(r)}catch{return null}}function zC(t,e){if(typeof e=="string")return Gc(e)||null;if(!e||typeof e!="object")return null;if(t){let n=e[t],r=typeof n=="string"?Gc(n):void 0;if(r)return r}for(let n of Object.values(e)){let r=typeof n=="string"?Gc(n):void 0;if(r)return r}return null}function JC(t,e){if(!e)return null;let n=Ne__default.dirname(t),r=[Ne__default.resolve(n,"..",e),Ne__default.resolve(n,"node_modules",e)];for(let o of r){let i=Ne__default.join(o,"package.json");if(ns(i))try{let s=JSON.parse(readFileSync(i,"utf8")),a=zC(e,s.bin);if(!a)continue;let d=Ne__default.resolve(o,a);if(ns(d))return d}catch{}}return null}function KC(t){let e=t.platform??process.platform,n=t.env??process.env,r=t.execPath??process.execPath,o=t.cwd,i=t.resolution;if(e!=="win32")return {command:rs(t.command,{cwd:o,env:n,platform:e,resolution:i}),leadingArgv:[],resolution:"direct"};let s=rs(t.command,{cwd:o,env:n,platform:e,resolution:i}),a=zc(Ne__default.extname(s));if(a===".js"||a===".cjs"||a===".mjs")return {command:r,leadingArgv:[s],resolution:"node-entrypoint",windowsHide:true};if(a===".cmd"||a===".bat"){let d=GC(s)??JC(s,t.packageName);return d?zc(Ne__default.extname(d))===".exe"?{command:d,leadingArgv:[],resolution:"exe-entrypoint",windowsHide:true}:{command:r,leadingArgv:[d],resolution:"node-entrypoint",windowsHide:true}:{command:s,leadingArgv:[],resolution:"unresolved-wrapper"}}return {command:s,leadingArgv:[],resolution:"direct"}}function XC(t){if(t.candidate.resolution!=="unresolved-wrapper")return {command:t.candidate.command,leadingArgv:t.candidate.leadingArgv,resolution:t.candidate.resolution,windowsHide:t.candidate.windowsHide};if(t.allowShellFallback===true)return {command:t.candidate.command,leadingArgv:[],resolution:"shell-fallback",shell:true};throw new Error(`${Ne__default.basename(t.candidate.command)} wrapper resolved, but no executable/Node entrypoint could be resolved without shell execution.`)}function Jo(t){let e=KC(t);return XC({candidate:e,allowShellFallback:t.allowShellFallback})}function Ko(t,e){return {command:t.command,argv:[...t.leadingArgv,...e],resolution:t.resolution,shell:t.shell,windowsHide:t.windowsHide}}var os=U(()=>{m();});function Mf(t){let e=0;for(let n of t)n===xa&&(e+=1);return e}function Kc(t,e){return Mf(e)<Mf(t)?e:t}function dT(t){let e=t.match(/(?:^|[^0-9])([0-9]{1,5})(?![0-9])/);if(!e)return null;let n=Number(e[1]);return Number.isInteger(n)&&n>0&&n<=65535?n:null}function ZC(t){if(t!==65001)return QC.get(t)}function cT(t){let e=ZC(t);if(!e)return null;try{return new TextDecoder(e)}catch{return null}}function eP(){return new Promise(t=>{let e=false,n,r=o=>{e||(e=true,n&&clearTimeout(n),t(o));};n=setTimeout(()=>r(null),sT),n.unref();try{execFile("chcp.com",[],{encoding:"ascii",timeout:sT,windowsHide:!0},(i,s)=>{if(i){r(null);return}r(dT(String(s)));}).once("error",()=>r(null));}catch{r(null);}})}function Lf(){return process.platform!=="win32"?Promise.resolve(null):(Jc||(Jc=eP(),Jc.then(t=>{Df=t;},()=>{Df=null;})),Jc)}function Xo(){process.platform==="win32"&&Lf();}function tP(){return Df}function aT(t,e){if(e.length>=Nf)return e.subarray(e.length-Nf);let n=Nf-e.length,r=t.length>n?t.subarray(t.length-n):t;return Buffer.concat([r,e])}function Oa(t,e={}){let n=Buffer.from(t),r=n.toString("utf8");if((e.platform??process.platform)!=="win32"||!r.includes(xa))return r;let i=e.codePage===void 0?tP():e.codePage;if(i==null)return Xo(),r;let s=cT(i);return s?Kc(r,s.decode(n)):r}async function Uf(t,e={}){let n=new wn(e);return `${await n.write(t)}${await n.end()}`}var xa,Nf,sT,QC,Jc,Df,wn,to=U(()=>{m();xa="\uFFFD",Nf=8,sT=1e3,QC=new Map([[437,"ibm437"],[720,"ibm720"],[737,"ibm737"],[775,"ibm775"],[850,"ibm850"],[852,"ibm852"],[855,"ibm855"],[857,"ibm857"],[858,"ibm858"],[862,"ibm862"],[864,"ibm864"],[932,"shift_jis"],[936,"gb18030"],[949,"euc-kr"],[950,"big5"],[866,"ibm866"],[869,"ibm869"],[1250,"windows-1250"],[1251,"windows-1251"],[1252,"windows-1252"],[1253,"windows-1253"],[1254,"windows-1254"],[1255,"windows-1255"],[1256,"windows-1256"],[1257,"windows-1257"],[1258,"windows-1258"]]);wn=class{platform;detectCodePage;utf8Decoder=new StringDecoder("utf8");codePage;fallbackDecoder;replayTail=Buffer.alloc(0);pendingUtf8="";pendingFallback="";pendingBytes=Buffer.alloc(0);queue=Promise.resolve();ended=false;constructor(e={}){this.platform=e.platform??process.platform,this.detectCodePage=e.detectCodePage??Lf,this.codePage=e.codePage;}write(e){let n=Buffer.from(e);return this.enqueue(()=>this.decodeChunk(n))}end(){return this.enqueue(()=>this.finish())}enqueue(e){let n=this.queue.then(e);return this.queue=n.then(()=>{},()=>{}),n}clearPendingCandidate(){this.pendingUtf8="",this.pendingFallback="",this.pendingBytes=Buffer.alloc(0);}async resolveCodePage(){if(this.codePage!==void 0)return this.codePage;try{this.codePage=await this.detectCodePage();}catch{this.codePage=null;}return this.codePage}async getFallbackDecoder(){if(this.fallbackDecoder!==void 0)return this.fallbackDecoder;let e=await this.resolveCodePage();return this.fallbackDecoder=e===null?null:cT(e),this.fallbackDecoder}async decodeChunk(e){if(this.ended)return "";let n=this.utf8Decoder.write(e),r=n.includes(xa);if(r&&(this.utf8Decoder=new StringDecoder("utf8")),this.platform!=="win32")return n;if(this.fallbackDecoder){let d=this.fallbackDecoder.decode(e,{stream:true}),c=aT(this.pendingBytes,e);if(r){let l=this.pendingUtf8+n,u=this.pendingFallback+d;return this.clearPendingCandidate(),Kc(l,u)}if(Mf(d)>0){let l=this.pendingUtf8+n;return this.clearPendingCandidate(),this.fallbackDecoder=void 0,this.replayTail=c,l}if(this.pendingUtf8||this.pendingFallback){if(this.pendingUtf8+=n,this.pendingFallback+=d,this.pendingBytes=c,n.length===0||d.length===0)return "";let l=this.pendingUtf8;return this.clearPendingCandidate(),l}return n.length===0&&d.length>0?(this.pendingUtf8=n,this.pendingFallback=d,this.pendingBytes=c,""):n}let o=this.replayTail;if(this.fallbackDecoder===void 0&&(this.replayTail=aT(this.replayTail,e)),!r)return n;let i=this.fallbackDecoder===void 0,s=await this.getFallbackDecoder();if(!s)return this.replayTail=Buffer.alloc(0),n;i&&o.length>0&&s.decode(o,{stream:true}),this.replayTail=Buffer.alloc(0);let a=s.decode(e,{stream:true});return Kc(n,a)}async finish(){if(this.ended)return "";this.ended=true;let e=this.utf8Decoder.end();if(this.platform!=="win32")return e;if(this.fallbackDecoder===void 0&&e.includes(xa)){let i=await this.getFallbackDecoder();i&&this.replayTail.length>0&&(i.decode(this.replayTail,{stream:true}),this.replayTail=Buffer.alloc(0));}let n=this.pendingUtf8+e,r=this.fallbackDecoder?.decode()??"",o=this.pendingFallback+r;return this.clearPendingCandidate(),n.includes(xa)?Kc(n,o):n}};Xo();});function nP(t){if(t.type!=="usage"||!("input_tokens"in t))return null;let e=Number(t.input_tokens??0),n=Number(t.output_tokens??0),o="cache_read_input_tokens"in t?Number(t.cache_read_input_tokens):void 0,i="cached_input_tokens"in t?Number(t.cached_input_tokens):void 0,s=o!==void 0?o:i??0;return {inputTokens:o!==void 0?e+o:e,outputTokens:n,cachedInputTokens:s}}function rP(t){let e=t.usage;if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e;if(!("input_tokens"in n))return null;let r=Number(n.input_tokens??0),o=Number(n.output_tokens??0),s="cache_read_input_tokens"in n?Number(n.cache_read_input_tokens):void 0,a="cached_input_tokens"in n?Number(n.cached_input_tokens):void 0,d=s!==void 0?s:a??0;return {inputTokens:s!==void 0?r+s:r,outputTokens:o,cachedInputTokens:d}}function oP(t){if(t.type!=="step_finish")return null;let n=t.part?.tokens;if(!n)return null;let r=Number(n.input??0),o=Number(n.output??0),i=n.cache,s=i?Number(i.read??0):0;return {inputTokens:r+s,outputTokens:o,cachedInputTokens:s}}function lT(t){let e=new Map,n;for(let i of t.split(`
1
+ import*as Ne from'path';import Ne__default,{join,dirname,resolve,isAbsolute,relative,sep,basename,normalize,win32}from'path';import {fileURLToPath}from'url';import*as wt from'fs';import {constants,existsSync,mkdirSync,readFileSync,writeFileSync,statSync,renameSync,readdirSync,lstatSync,realpathSync,chmodSync,rmSync,unlinkSync,linkSync,openSync,fsyncSync,closeSync,appendFileSync,promises}from'fs';import {spawn,execFile,execFileSync,spawnSync}from'child_process';import {StringDecoder}from'string_decoder';import*as cy from'crypto';import {createHash,randomUUID,randomBytes}from'crypto';import*as sI from'os';import sI__default,{tmpdir,hostname,homedir}from'os';import {sqliteTable,text,integer,index,check,primaryKey,uniqueIndex,real,unique}from'drizzle-orm/sqlite-core';import {sql,or as or$1,eq,isNull,and,ne,desc,inArray,lt as lt$1,notLike,asc,like,gte,isNotNull}from'drizzle-orm';import {ndJsonStream,ClientSideConnection}from'@agentclientprotocol/sdk';import*as VR from'js-yaml';import {load,dump}from'js-yaml';import {getEncoding}from'js-tiktoken';import {Tiktoken}from'js-tiktoken/lite';import Ef from'js-tiktoken/ranks/o200k_base';import {z}from'zod';import {createRequire}from'module';import*as lr from'handlebars';import lr__default from'handlebars';import {readFile,access,readdir,realpath,stat,open,lstat}from'fs/promises';import {EventEmitter}from'events';import {AsyncLocalStorage}from'async_hooks';import {McpServer}from'@modelcontextprotocol/sdk/server/mcp.js';import {WebStandardStreamableHTTPServerTransport}from'@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js';import*as eS from'tar';import {gunzipSync,gzipSync}from'zlib';import {performance as performance$1}from'perf_hooks';import {parse}from'dotenv';var uf=Object.defineProperty;var Eb=Object.getOwnPropertyDescriptor;var wb=Object.getOwnPropertyNames;var Rb=Object.prototype.hasOwnProperty;var lt=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,n)=>(typeof require<"u"?require:e)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var U=(t,e)=>()=>(t&&(e=t(t=0)),e);var pa=(t,e)=>{for(var n in e)uf(t,n,{get:e[n],enumerable:true});},Sb=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of wb(e))!Rb.call(t,o)&&o!==n&&uf(t,o,{get:()=>e[o],enumerable:!(r=Eb(e,o))||r.enumerable});return t};var k_=t=>Sb(uf({},"__esModule",{value:true}),t);var E_,Cb,k,E,m=U(()=>{E_=()=>fileURLToPath(import.meta.url),Cb=()=>Ne__default.dirname(E_()),k=Cb(),E=E_();});var w_,gf,fa,ga,Sc,Uo=U(()=>{m();w_=["flagship","balanced","speed"],gf=["none","minimal","low","medium","high","xhigh","max","ultra"],fa={claude:["low","medium","high","xhigh","max"],codex:["none","minimal","low","medium","high","xhigh","max","ultra"],opencode:[],copilot:["none","low","medium","high","xhigh","max"],antigravity:["low","medium","high"],grok:["low","medium","high","xhigh"]},ga={claude:{models:[{id:"claude-fable-5-1",name:"Claude Fable 5.1",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-fable-5",name:"Claude Fable 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-5-5",name:"Claude Opus 5.5",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-opus-5",name:"Claude Opus 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"claude-opus-4-8[1m]",name:"Claude Opus 4.8",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-7[1m]",name:"Claude Opus 4.7",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-6[1m]",name:"Claude Opus 4.6",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-4-6[1m]",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindowTokens:2e5,tier:"speed"}],modes:[{id:"default",name:"Default",description:"Uses Claude's default permission handling with normal approval prompts."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without approval; other permission checks remain in place."},{id:"plan",name:"Plan",description:"Keeps Claude in plan mode so it can inspect and propose changes without applying them."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permissions; only pre-approved tool actions can proceed."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Claude permission checks so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"claude-fable-5-1":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-fable-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-opus-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-8[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-7[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-sonnet-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-haiku-4-5":{effort:[]}},providerOptions:[]},codex:{models:[{id:"gpt-6-astra",name:"GPT-6 Astra",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-6-sol",name:"GPT-6 Sol",contextWindowTokens:105e4,tier:"balanced",recommended:true},{id:"gpt-6-luna",name:"GPT-6 Luna",contextWindowTokens:105e4,tier:"speed",recommended:true},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindowTokens:105e4,tier:"speed"},{id:"gpt-5.5",name:"GPT-5.5",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4",name:"GPT-5.4",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",contextWindowTokens:4e5,tier:"speed"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",contextWindowTokens:4e5,tier:"flagship"},{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",contextWindowTokens:128e3,tier:"speed"}],modes:[{id:"agent",name:"Agent",description:"Uses the workspace-write sandbox; can read and modify workspace files without full machine access."},{id:"read-only",name:"Read Only",description:"Uses the read-only sandbox; can inspect files but cannot write to the workspace."},{id:"plan",name:"Plan",description:"Uses the read-only sandbox for planning and inspection; cannot write to the workspace."},{id:"agent-full-access",name:"Agent Full Access",description:"Bypasses approvals and the sandbox; can access and modify files beyond the workspace."},{id:"yolo",name:"YOLO",description:"Bypasses approvals and the sandbox for unrestricted execution and full filesystem access."}],effort:["minimal","low","medium","high"],modelOverrides:{"gpt-6-astra":{effort:["low","medium","high","xhigh","max"],defaultEffort:"xhigh"},"gpt-6-sol":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-6-luna":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-5.6-sol":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"xhigh"},"gpt-5.6-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"high"},"gpt-5.6-luna":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-5.5":{effort:["low","medium","high","xhigh"],defaultEffort:"high"}},providerOptions:[]},opencode:{models:[],modes:[{id:"plan",name:"Plan",description:"Uses the plan agent without --auto; planning follows standard approval behavior."},{id:"plan-auto",name:"Plan \xB7 Auto",description:"Uses the plan agent with --auto; planning uses automatic approvals."},{id:"build",name:"Build",description:"Uses the build agent without --auto; work follows standard approval behavior."},{id:"build-auto",name:"Build \xB7 Auto",description:"Uses the build agent with --auto; work uses automatic approvals."}],effort:[],modelOverrides:{},providerOptions:[]},copilot:{models:[{id:"auto",name:"Auto"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"gpt-5.5",name:"GPT-5.5",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4",name:"GPT-5.4",contextWindowTokens:105e4,tier:"flagship"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"}],modes:[{id:"interactive",name:"Interactive",description:"Passes --mode interactive; tool access follows Copilot's interactive mode behavior."},{id:"plan",name:"Plan",description:"Passes --mode plan; planning and permission behavior follow Copilot's plan mode."},{id:"autopilot",name:"Autopilot",description:"Passes --mode autopilot; execution behavior follows Copilot's autonomous mode."}],effort:["none","low","medium","high","xhigh","max"],modelOverrides:{},providerOptions:[]},antigravity:{models:[{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking",contextWindowTokens:1e6,tier:"flagship"},{id:"gpt-oss-120b",name:"GPT-OSS 120B",contextWindowTokens:128e3,tier:"balanced"}],modes:[{id:"default",name:"Default",description:"Uses Antigravity's default permission handling. No extra permission flags are passed."},{id:"plan",name:"Plan",description:"Passes --mode plan. This turns on /plan; it is not a Claude-style permission mode."},{id:"acceptEdits",name:"Accept Edits",description:"Passes --mode accept-edits."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Passes --dangerously-skip-permissions so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"gemini-3.7-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.6-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.5-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.1-pro":{effort:["low","high"],defaultEffort:"high"},"claude-sonnet-4-6":{effort:[]},"claude-opus-4-6-thinking":{effort:[]},"gpt-oss-120b":{effort:["medium"],defaultEffort:"medium"}},providerOptions:[]},grok:{models:[{id:"grok-4.7",name:"Grok 4.7",contextWindowTokens:5e5,tier:"flagship",recommended:true},{id:"grok-4.6",name:"Grok 4.6",contextWindowTokens:5e5,tier:"flagship"},{id:"grok-4.5",name:"Grok 4.5",contextWindowTokens:5e5,tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Grok's default permission handling."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without changing the selected sandbox profile."},{id:"auto",name:"Auto",description:"Uses Grok automatic permission handling."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permission before tool execution."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Grok permission checks for tool execution."},{id:"plan",name:"Plan",description:"Keeps Grok in planning mode without applying changes."}],effort:["low","medium","high"],modelOverrides:{"grok-4.7":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.6":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.5":{effort:["low","medium","high"],defaultEffort:"high"}},providerOptions:[{key:"alwaysApprove",type:"boolean"},{key:"sandbox",type:"enum",values:["workspace","read-only","off"]}]}},Sc={version:1,providers:{"cli/codex":{model:"gpt-6-sol",query:{mode:"agent",effort:"high"},execute:{mode:"agent-full-access",effort:"xhigh"}},"cli/claude":{model:"claude-opus-5-5",query:{mode:"default",effort:"high"},execute:{mode:"bypassPermissions",effort:"xhigh"}},"cli/grok":{model:"grok-4.7",query:{mode:"default",effort:"high",providerOptions:{alwaysApprove:true,sandbox:"off"}},execute:{mode:"bypassPermissions",effort:"xhigh",providerOptions:{alwaysApprove:true,sandbox:"off"}}}}},Object.fromEntries(Object.entries(ga).map(([t,e])=>[t,e.models]));});var Ho,mf,R_,hf=U(()=>{m();Ho={"claude-fable-5-1":{input:10,cachedInput:.25,output:50},"claude-fable-5":{input:10,cachedInput:1,output:50},"claude-opus-5-5":{input:4,cachedInput:.2,output:20},"claude-opus-5":{input:5,cachedInput:.5,output:25},"claude-opus-4-8":{input:5,cachedInput:.5,output:25},"claude-opus-4-7":{input:5,cachedInput:.5,output:25},"claude-opus-4-6":{input:5,cachedInput:.5,output:25},"claude-sonnet-5":{input:2,cachedInput:.2,output:10},"claude-sonnet-4-6":{input:3,cachedInput:.3,output:15},"claude-haiku-4-5":{input:1,cachedInput:.1,output:5},"gpt-6-astra":{input:10,cachedInput:1,output:50},"gpt-6-sol":{input:2,cachedInput:.2,output:10},"gpt-6-luna":{input:.1,cachedInput:.01,output:.5},"gpt-5.6-sol":{input:4,cachedInput:.4,output:20},"gpt-5.6-terra":{input:2,cachedInput:.2,output:12},"gpt-5.6-luna":{input:.2,cachedInput:.02,output:1.2},"gpt-5.5":{input:5,cachedInput:.5,output:30},"gpt-5.4":{input:2.5,cachedInput:.25,output:15},"gpt-5.4-mini":{input:.75,cachedInput:.075,output:4.5},"gpt-5.3-codex":{input:1.75,cachedInput:.175,output:14},"gpt-5-mini":{input:.4,cachedInput:.1,output:1.6},"gpt-4.1":{input:2,cachedInput:.5,output:8},"gpt-4o":{input:2.5,cachedInput:1.25,output:10},"glm-5.2":{input:1.4,cachedInput:.26,output:4.4},"glm-5.1":{input:1.4,cachedInput:.26,output:4.4},"gemini-3.7-flash":{input:1.5,cachedInput:.15,output:7.5},"gemini-3.6-flash":{input:1.5,cachedInput:.15,output:7.5},"grok-4.7":{input:2,cachedInput:.5,output:6},"grok-4.6":{input:2,cachedInput:.5,output:6},"grok-4.5":{input:2,cachedInput:.3,output:6}},mf=new Set(["gpt-5.3-codex-spark"]),R_=new Set(["auto","claude-fable-5","claude-fable-5-1","claude-haiku-4-5","claude-opus-4-6-thinking","claude-opus-4-6[1m]","claude-opus-4-7[1m]","claude-opus-4-8[1m]","claude-opus-5","claude-opus-5-5","claude-sonnet-4-6","claude-sonnet-4-6[1m]","claude-sonnet-5","gemini-3.1-pro","gemini-3.5-flash","gemini-3.6-flash","gemini-3.7-flash","gpt-5.3-codex","gpt-5.3-codex-spark","gpt-5.4","gpt-5.4-mini","gpt-5.5","gpt-5.6-luna","gpt-5.6-sol","gpt-5.6-terra","gpt-6-astra","gpt-6-luna","gpt-6-sol","gpt-oss-120b","grok-4.5","grok-4.6","grok-4.7"]);});function v_(t){ha=t;}function b_(t){S_=Object.fromEntries(Object.entries(t).map(([e,n])=>[e,{...n}]));}function yf(t){let e=t.toLowerCase().trim();e=e.replace(/\[[^\]]*\]$/g,"");let n=e.lastIndexOf("/");return n>=0&&(e=e.slice(n+1)),e=e.replace(/-\d{8}$/,""),e}function Nb(t){if(!t)return;let e="inputPerMillionTokensUsd"in t?t.inputPerMillionTokensUsd:t.input,n="outputPerMillionTokensUsd"in t?t.outputPerMillionTokensUsd:t.output;if(!(!Number.isFinite(e)||e<=0||!Number.isFinite(n)||n<=0))return {inputPerMillionTokensUsd:e,outputPerMillionTokensUsd:n}}function C_(t){if(!t)return;let e=t.replace(/\[[^\]]*\]$/g,"");return Nb(S_[e]??Ho[e])}function Db(t){if(!t)return console.warn("[pricing] missing model id; cost is being recorded as 0"),ma;let e=yf(t),n=Ob[e];if(n)return ha[n]??Ho[n]??ma;if(ha[e])return ha[e];if(Ho[e])return Ho[e];if(mf.has(e))return console.warn(`[pricing] unpublished model pricing: ${t}, cost_usd=0`),ma;if(R_.has(e))return console.warn(`[pricing] missing catalog pricing: ${t}, cost_usd=0`),ma;let r={...Ho,...ha};for(let o of Object.keys(r))if(e.includes(o))return r[o];return console.warn(`[pricing] Unknown model: ${t}, cost_usd=0`),ma}function Mb(t,e,n,r=0,o){let i=Db(n),s=Math.min(r,t),d=(t-s)*i.input/1e6,c=s*i.cachedInput/1e6,l=e*i.output/1e6;return d+c+l}function vc(t,e,n,r,o,i){return t&&t>0?t:!e&&!n?0:Mb(e??0,n??0,o,r??0)}var Ob,ma,ha,S_,Fo=U(()=>{m();hf();hf();Ob={opus:"claude-opus-4-8",sonnet:"claude-sonnet-4-6",haiku:"claude-haiku-4-5","codex-mini":"gpt-5.3-codex",codex:"gpt-5.3-codex"},ma={input:0,cachedInput:0,output:0},ha={},S_={};});function bc(t){return Hb[t]??t}function x_(t){return Fb.get(t)??t}function Cc(t){if(!t)return {};let e=Bb.get(t);return e?{...e}:{model:t}}function ya(t,e){return t==="antigravity"||t==="cli/antigravity"?Cc(e):e===void 0?{}:{model:x_(e)}}var Lb,Ub,P_,Hb,Fb,O_,Bb,Yi=U(()=>{m();Lb="claude-opus-4-8",Ub="claude-opus-4-8[1m]",P_=[{baseModelId:"claude-opus-4-8",catalogModelId:"claude-opus-4-8[1m]"},{baseModelId:"claude-opus-4-7",catalogModelId:"claude-opus-4-7[1m]"},{baseModelId:"claude-opus-4-6",catalogModelId:"claude-opus-4-6[1m]"},{baseModelId:"claude-sonnet-4-6",catalogModelId:"claude-sonnet-4-6[1m]"}],Hb={"accept-edits":"acceptEdits",yolo:"bypassPermissions","agent-full-access":"bypassPermissions"};Fb=new Map(P_.map(({baseModelId:t,catalogModelId:e})=>[t,e]));O_=[{legacyId:"Gemini 3.7 Flash (High)",model:"gemini-3.7-flash",effort:"high"},{legacyId:"Gemini 3.7 Flash (Medium)",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"Gemini 3.7 Flash (Low)",model:"gemini-3.7-flash",effort:"low"},{legacyId:"Gemini 3.6 Flash (High)",model:"gemini-3.6-flash",effort:"high"},{legacyId:"Gemini 3.6 Flash (Medium)",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"Gemini 3.6 Flash (Low)",model:"gemini-3.6-flash",effort:"low"},{legacyId:"Gemini 3.5 Flash (Medium)",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"Gemini 3.5 Flash (High)",model:"gemini-3.5-flash",effort:"high"},{legacyId:"Gemini 3.5 Flash (Low)",model:"gemini-3.5-flash",effort:"low"},{legacyId:"Gemini 3.1 Pro (Low)",model:"gemini-3.1-pro",effort:"low"},{legacyId:"Gemini 3.1 Pro (High)",model:"gemini-3.1-pro",effort:"high"},{legacyId:"Claude Sonnet 4.6 (Thinking)",model:"claude-sonnet-4-6"},{legacyId:"Claude Opus 4.6 (Thinking)",model:"claude-opus-4-6-thinking"},{legacyId:"GPT-OSS 120B (Medium)",model:"gpt-oss-120b",effort:"medium"},{legacyId:"gemini-3.7-flash-high",model:"gemini-3.7-flash",effort:"high"},{legacyId:"gemini-3.7-flash-medium",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"gemini-3.7-flash-low",model:"gemini-3.7-flash",effort:"low"},{legacyId:"gemini-3.6-flash-high",model:"gemini-3.6-flash",effort:"high"},{legacyId:"gemini-3.6-flash-medium",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"gemini-3.6-flash-low",model:"gemini-3.6-flash",effort:"low"},{legacyId:"gemini-3.5-flash-high",model:"gemini-3.5-flash",effort:"high"},{legacyId:"gemini-3.5-flash-medium",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"gemini-3.5-flash-low",model:"gemini-3.5-flash",effort:"low"},{legacyId:"gemini-3.1-pro-high",model:"gemini-3.1-pro",effort:"high"},{legacyId:"gemini-3.1-pro-low",model:"gemini-3.1-pro",effort:"low"},{legacyId:"gpt-oss-120b-medium",model:"gpt-oss-120b",effort:"medium"}],Bb=new Map(O_.map(({legacyId:t,model:e,effort:n})=>[t,n===void 0?{model:e}:{model:e,effort:n}]));});function D_(){return {models:[],modes:[],effort:[],modelOverrides:{},providerOptions:[]}}function jb(t){return Array.isArray(t)?{models:t,modes:[],effort:[],modelOverrides:{},providerOptions:[]}:t?{models:t.models??[],modes:t.modes??[],effort:t.effort??[],modelOverrides:t.modelOverrides??{},providerOptions:t.providerOptions??[]}:D_()}function Pc(t){_f=Object.fromEntries(Object.entries(t).map(([e,n])=>[e,jb(n)]));}function $b(){_f={};}function Qi(t){N_={...t};}function Hn(t){return Fn(t).models}function Fn(t){return _f[t]??ga[t]??D_()}function _a(t){return N_[t]??Sc.providers[t]}function Bo(t){return Fn(t).modes}function xr(t,e){let n=Fn(t);if(e){if(Object.prototype.hasOwnProperty.call(n.modelOverrides,e))return n.modelOverrides[e]?.effort??n.effort;let r=ya(t,e);return r.model===void 0?n.effort:n.modelOverrides[r.model]?.effort??n.effort}return n.effort}function xc(t){return Fn(t).modelOverrides}function Ta(){return Hn("claude")}function Tf(){return Hn("codex")}function Af(){return Hn("copilot")}function If(){return Hn("antigravity")}function Aa(t,e){let n=new Map;for(let r of [...t,...e]){let o=n.get(r.id);if(!o){let{apiPricing:i,recommended:s,...a}=r;n.set(r.id,{...a,...s===true?{recommended:true}:{},...i!=null?{apiPricing:{...i}}:{}});continue}!o.name&&r.name&&(o.name=r.name),o.description==null&&r.description!=null&&(o.description=r.description),o.contextWindowTokens==null&&r.contextWindowTokens!=null&&(o.contextWindowTokens=r.contextWindowTokens),o.tier==null&&r.tier!=null&&(o.tier=r.tier),o.recommended!==true&&r.recommended===true&&(o.recommended=true),o.apiPricing==null&&r.apiPricing!=null&&(o.apiPricing={...r.apiPricing});}return Array.from(n.values())}function Ia(t){return t.map(e=>{let{apiPricing:n,...r}=e,o=C_(e.id);return o?{...r,apiPricing:o}:r})}var _f,N_,pn=U(()=>{m();Uo();Fo();Yi();_f={},N_={};});function rT(t,e){let n={};for(let[r,o]of Object.entries(t))o!==void 0&&(e.includes(r)||(n[r]=o));return n}function Ft(t){return rT(t,nT)}function jC(t){return rT(t,BC)}var nT,BC,Or=U(()=>{m();nT=["CREWX_ASSIGNED_TASK_ID","CREWX_DETACHED_RUNNER"],BC=["CREWX_AGENT_ID","CREWX_PARENT_TASK_ID","CREWX_CALLER_AGENT_ID"];});function Gc(t){return typeof t!="string"?void 0:t.trim()||void 0}function zc(t){return Gc(t)?.toLowerCase()??""}function ns(t){try{return statSync(t).isFile()}catch{return false}}function qC(t,e){if(t===e)return true;let n=Ne__default.relative(t,e);return n!==""&&!n.startsWith("..")&&!Ne__default.isAbsolute(n)}function VC(t,e){if(Ne__default.basename(t)!==".bin")return false;let n=Ne__default.dirname(t);if(Ne__default.basename(n)!=="node_modules")return false;let r=Ne__default.dirname(n);return qC(r,e)}function rs(t,e={}){if(t.includes("/")||t.includes("\\")||Ne__default.isAbsolute(t))return t;let n=e.platform??process.platform,r=e.env??process.env,o=Ne__default.resolve(e.cwd??process.cwd()),i=(e.resolution??"global_first")==="global_first",s=r.PATH??r.Path??process.env.PATH??process.env.Path??"",a=n==="win32"?";":":",d=s.split(a).map(f=>f.trim()).filter(Boolean),c=Ne__default.extname(t).length>0,l=r.PATHEXT??r.Pathext??process.env.PATHEXT??process.env.Pathext??".EXE;.CMD;.BAT;.COM",u=n==="win32"?c?[""]:l.split(";").map(f=>f.trim()).filter(Boolean).map(f=>f.startsWith(".")?f:`.${f}`):[""];for(let f of d){let g=Ne__default.resolve(o,f);if(!(i&&VC(g,o)))for(let h of u){let y=zc(h),_=h.toUpperCase();for(let A of [h,y,_]){let T=Ne__default.join(g,`${t}${A}`);if(ns(T))return T}}}return t}function WC(t,e){return rs(t,{env:e,platform:"win32",resolution:"local_first"})}function GC(t){if(!ns(t))return null;try{let e=readFileSync(t,"utf8"),n=Ne__default.dirname(t),r=[];for(let a of e.matchAll(/"([^"\r\n]*)"/g)){let l=(a[1]??"").match(/%~?dp0%?\s*[\\/]*(.*)$/i)?.[1]?.trim();if(!l)continue;let u=l.replace(/[\\/]+/g,Ne__default.sep).replace(/^[\\/]+/,""),f=Ne__default.resolve(n,u);ns(f)&&r.push(f);}let o=[],i=new Map;for(let a of e.matchAll(/SET\s+"(\w+)=%~?dp0%?[\\/]?([^"]+)"/gi)){let d=a[1].toUpperCase(),c=a[2].trim().replace(/[\\/]+/g,Ne__default.sep).replace(/^[\\/]+/,"");i.set(d,Ne__default.resolve(n,c));}for(let a of e.split(/\r?\n/))if(a.includes("%*"))for(let d of a.matchAll(/"%(\w+)%"/g)){let c=i.get(d[1].toUpperCase());c&&ns(c)&&o.push(c);}let s=a=>a.find(d=>{let c=zc(Ne__default.basename(d));return c!=="node.exe"&&c!=="node"})??null;return s(o)??s(r)}catch{return null}}function zC(t,e){if(typeof e=="string")return Gc(e)||null;if(!e||typeof e!="object")return null;if(t){let n=e[t],r=typeof n=="string"?Gc(n):void 0;if(r)return r}for(let n of Object.values(e)){let r=typeof n=="string"?Gc(n):void 0;if(r)return r}return null}function JC(t,e){if(!e)return null;let n=Ne__default.dirname(t),r=[Ne__default.resolve(n,"..",e),Ne__default.resolve(n,"node_modules",e)];for(let o of r){let i=Ne__default.join(o,"package.json");if(ns(i))try{let s=JSON.parse(readFileSync(i,"utf8")),a=zC(e,s.bin);if(!a)continue;let d=Ne__default.resolve(o,a);if(ns(d))return d}catch{}}return null}function KC(t){let e=t.platform??process.platform,n=t.env??process.env,r=t.execPath??process.execPath,o=t.cwd,i=t.resolution;if(e!=="win32")return {command:rs(t.command,{cwd:o,env:n,platform:e,resolution:i}),leadingArgv:[],resolution:"direct"};let s=rs(t.command,{cwd:o,env:n,platform:e,resolution:i}),a=zc(Ne__default.extname(s));if(a===".js"||a===".cjs"||a===".mjs")return {command:r,leadingArgv:[s],resolution:"node-entrypoint",windowsHide:true};if(a===".cmd"||a===".bat"){let d=GC(s)??JC(s,t.packageName);return d?zc(Ne__default.extname(d))===".exe"?{command:d,leadingArgv:[],resolution:"exe-entrypoint",windowsHide:true}:{command:r,leadingArgv:[d],resolution:"node-entrypoint",windowsHide:true}:{command:s,leadingArgv:[],resolution:"unresolved-wrapper"}}return {command:s,leadingArgv:[],resolution:"direct",windowsHide:true}}function XC(t){if(t.candidate.resolution!=="unresolved-wrapper")return {command:t.candidate.command,leadingArgv:t.candidate.leadingArgv,resolution:t.candidate.resolution,windowsHide:t.candidate.windowsHide};if(t.allowShellFallback===true)return {command:t.candidate.command,leadingArgv:[],resolution:"shell-fallback",shell:true,windowsHide:true};throw new Error(`${Ne__default.basename(t.candidate.command)} wrapper resolved, but no executable/Node entrypoint could be resolved without shell execution.`)}function Jo(t){let e=KC(t);return XC({candidate:e,allowShellFallback:t.allowShellFallback})}function Ko(t,e){return {command:t.command,argv:[...t.leadingArgv,...e],resolution:t.resolution,shell:t.shell,windowsHide:t.windowsHide}}var os=U(()=>{m();});function Mf(t){let e=0;for(let n of t)n===xa&&(e+=1);return e}function Kc(t,e){return Mf(e)<Mf(t)?e:t}function dT(t){let e=t.match(/(?:^|[^0-9])([0-9]{1,5})(?![0-9])/);if(!e)return null;let n=Number(e[1]);return Number.isInteger(n)&&n>0&&n<=65535?n:null}function ZC(t){if(t!==65001)return QC.get(t)}function cT(t){let e=ZC(t);if(!e)return null;try{return new TextDecoder(e)}catch{return null}}function eP(){return new Promise(t=>{let e=false,n,r=o=>{e||(e=true,n&&clearTimeout(n),t(o));};n=setTimeout(()=>r(null),sT),n.unref();try{execFile("chcp.com",[],{encoding:"ascii",timeout:sT,windowsHide:!0},(i,s)=>{if(i){r(null);return}r(dT(String(s)));}).once("error",()=>r(null));}catch{r(null);}})}function Lf(){return process.platform!=="win32"?Promise.resolve(null):(Jc||(Jc=eP(),Jc.then(t=>{Df=t;},()=>{Df=null;})),Jc)}function Xo(){process.platform==="win32"&&Lf();}function tP(){return Df}function aT(t,e){if(e.length>=Nf)return e.subarray(e.length-Nf);let n=Nf-e.length,r=t.length>n?t.subarray(t.length-n):t;return Buffer.concat([r,e])}function Oa(t,e={}){let n=Buffer.from(t),r=n.toString("utf8");if((e.platform??process.platform)!=="win32"||!r.includes(xa))return r;let i=e.codePage===void 0?tP():e.codePage;if(i==null)return Xo(),r;let s=cT(i);return s?Kc(r,s.decode(n)):r}async function Uf(t,e={}){let n=new wn(e);return `${await n.write(t)}${await n.end()}`}var xa,Nf,sT,QC,Jc,Df,wn,to=U(()=>{m();xa="\uFFFD",Nf=8,sT=1e3,QC=new Map([[437,"ibm437"],[720,"ibm720"],[737,"ibm737"],[775,"ibm775"],[850,"ibm850"],[852,"ibm852"],[855,"ibm855"],[857,"ibm857"],[858,"ibm858"],[862,"ibm862"],[864,"ibm864"],[932,"shift_jis"],[936,"gb18030"],[949,"euc-kr"],[950,"big5"],[866,"ibm866"],[869,"ibm869"],[1250,"windows-1250"],[1251,"windows-1251"],[1252,"windows-1252"],[1253,"windows-1253"],[1254,"windows-1254"],[1255,"windows-1255"],[1256,"windows-1256"],[1257,"windows-1257"],[1258,"windows-1258"]]);wn=class{platform;detectCodePage;utf8Decoder=new StringDecoder("utf8");codePage;fallbackDecoder;replayTail=Buffer.alloc(0);pendingUtf8="";pendingFallback="";pendingBytes=Buffer.alloc(0);queue=Promise.resolve();ended=false;constructor(e={}){this.platform=e.platform??process.platform,this.detectCodePage=e.detectCodePage??Lf,this.codePage=e.codePage;}write(e){let n=Buffer.from(e);return this.enqueue(()=>this.decodeChunk(n))}end(){return this.enqueue(()=>this.finish())}enqueue(e){let n=this.queue.then(e);return this.queue=n.then(()=>{},()=>{}),n}clearPendingCandidate(){this.pendingUtf8="",this.pendingFallback="",this.pendingBytes=Buffer.alloc(0);}async resolveCodePage(){if(this.codePage!==void 0)return this.codePage;try{this.codePage=await this.detectCodePage();}catch{this.codePage=null;}return this.codePage}async getFallbackDecoder(){if(this.fallbackDecoder!==void 0)return this.fallbackDecoder;let e=await this.resolveCodePage();return this.fallbackDecoder=e===null?null:cT(e),this.fallbackDecoder}async decodeChunk(e){if(this.ended)return "";let n=this.utf8Decoder.write(e),r=n.includes(xa);if(r&&(this.utf8Decoder=new StringDecoder("utf8")),this.platform!=="win32")return n;if(this.fallbackDecoder){let d=this.fallbackDecoder.decode(e,{stream:true}),c=aT(this.pendingBytes,e);if(r){let l=this.pendingUtf8+n,u=this.pendingFallback+d;return this.clearPendingCandidate(),Kc(l,u)}if(Mf(d)>0){let l=this.pendingUtf8+n;return this.clearPendingCandidate(),this.fallbackDecoder=void 0,this.replayTail=c,l}if(this.pendingUtf8||this.pendingFallback){if(this.pendingUtf8+=n,this.pendingFallback+=d,this.pendingBytes=c,n.length===0||d.length===0)return "";let l=this.pendingUtf8;return this.clearPendingCandidate(),l}return n.length===0&&d.length>0?(this.pendingUtf8=n,this.pendingFallback=d,this.pendingBytes=c,""):n}let o=this.replayTail;if(this.fallbackDecoder===void 0&&(this.replayTail=aT(this.replayTail,e)),!r)return n;let i=this.fallbackDecoder===void 0,s=await this.getFallbackDecoder();if(!s)return this.replayTail=Buffer.alloc(0),n;i&&o.length>0&&s.decode(o,{stream:true}),this.replayTail=Buffer.alloc(0);let a=s.decode(e,{stream:true});return Kc(n,a)}async finish(){if(this.ended)return "";this.ended=true;let e=this.utf8Decoder.end();if(this.platform!=="win32")return e;if(this.fallbackDecoder===void 0&&e.includes(xa)){let i=await this.getFallbackDecoder();i&&this.replayTail.length>0&&(i.decode(this.replayTail,{stream:true}),this.replayTail=Buffer.alloc(0));}let n=this.pendingUtf8+e,r=this.fallbackDecoder?.decode()??"",o=this.pendingFallback+r;return this.clearPendingCandidate(),n.includes(xa)?Kc(n,o):n}};Xo();});function nP(t){if(t.type!=="usage"||!("input_tokens"in t))return null;let e=Number(t.input_tokens??0),n=Number(t.output_tokens??0),o="cache_read_input_tokens"in t?Number(t.cache_read_input_tokens):void 0,i="cached_input_tokens"in t?Number(t.cached_input_tokens):void 0,s=o!==void 0?o:i??0;return {inputTokens:o!==void 0?e+o:e,outputTokens:n,cachedInputTokens:s}}function rP(t){let e=t.usage;if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e;if(!("input_tokens"in n))return null;let r=Number(n.input_tokens??0),o=Number(n.output_tokens??0),s="cache_read_input_tokens"in n?Number(n.cache_read_input_tokens):void 0,a="cached_input_tokens"in n?Number(n.cached_input_tokens):void 0,d=s!==void 0?s:a??0;return {inputTokens:s!==void 0?r+s:r,outputTokens:o,cachedInputTokens:d}}function oP(t){if(t.type!=="step_finish")return null;let n=t.part?.tokens;if(!n)return null;let r=Number(n.input??0),o=Number(n.output??0),i=n.cache,s=i?Number(i.read??0):0;return {inputTokens:r+s,outputTokens:o,cachedInputTokens:s}}function lT(t){let e=new Map,n;for(let i of t.split(`
2
2
  `))if(i.trim())try{let s=JSON.parse(i);if(s.type!=="assistant")continue;let a=s.message,d=a?.id,c=a?.usage;if(typeof d!="string"||!c)continue;let l=Number(c.input_tokens??0),u=Number(c.cache_read_input_tokens??0);e.set(d,{inputTokens:l+u,cachedInputTokens:u});let f=a?.model;typeof f=="string"&&f&&(n=f);}catch{}if(e.size===0)return;let r=0,o=0;for(let i of e.values())r+=i.inputTokens,o+=i.cachedInputTokens;return {inputTokens:r,cachedInputTokens:o,model:n}}function Nr(t){if(!t||!t.trim())return;let e=null,n=null;for(let r of t.split(`
3
3
  `))if(r.trim())try{let o=JSON.parse(r),i=oP(o);if(i){n||(n={inputTokens:0,outputTokens:0,cachedInputTokens:0}),n.inputTokens+=i.inputTokens,n.outputTokens+=i.outputTokens,n.cachedInputTokens+=i.cachedInputTokens;continue}let s=nP(o)??rP(o);s&&(e=s);}catch{}return n||(e??void 0)}var Yo=U(()=>{m();});var B,Qo,Zo,Na,Dr=U(()=>{m();B=class extends Error{constructor(n,r,o){super(n);this.providerStr=r;this.name="ProviderError",this.code=o?.code??"UNKNOWN",this.kind=o?.kind??(this.code==="UNKNOWN"?"transient":void 0),this.retryAfterMs=o?.retryAfterMs;}providerStr;code;kind;retryAfterMs;stdout},Qo=class extends B{constructor(e,n){super(e,n,{code:"TIMEOUT_IDLE",kind:"permanent"}),this.name="IdleTimeoutError";}},Zo=class extends B{constructor(e,n){super(e,n,{code:"TIMEOUT_TOTAL",kind:"permanent"}),this.name="TotalTimeoutError";}},Na=class extends B{constructor(e,n){super(e,n,{code:"TIMEOUT_RESUME",kind:"transient"}),this.name="ResumeTimeoutError";}};});var no,Xc=U(()=>{m();Dr();no=class extends B{name="RateLimitError";constructor(e,n="cli/claude"){super(e,n,{code:"QUOTA_EXHAUSTED",kind:"transient"});}};});function Qc(t){if(!Yc(t)||t.type!=="item.started"||!pT(t)||!uT(t))return false;let e=t.item;return !Yc(e)||!pT(e)||!uT(e)||!Hf(e.id)?false:e.type==="web_search"?e.query===""&&Yc(e.action)&&e.action.type==="other":e.type==="file_change"?e.status!=="in_progress"||!Array.isArray(e.changes)||e.changes.length===0?false:e.changes.every(n=>Yc(n)&&Hf(n.path)&&Hf(n.kind)):false}function Yc(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function fT(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Hf(t){return typeof t=="string"&&t.trim().length>0}function uT(t){return !fT(t,"status")||t.status==="in_progress"}function pT(t){for(let e of ["error","errors","isError","is_error"])if(fT(t,e))return false;return true}var Ff=U(()=>{m();});function Bf(t,e){let n=t.trimStart();if(!n.startsWith("{"))return false;let r;try{r=JSON.parse(n);}catch{return false}let o=r.type;if(typeof o!="string")return false;let i=e?wP[e]:void 0;return i?i(r,o):Object.values(hT).some(s=>s(r,o))}function ei(t,e){let n=t.split(`
4
4
  `).filter(r=>r.trim());return n.length===0?false:n.every(r=>Bf(r,e))}function iP(t,e){let n;try{n=JSON.parse(t.trim());}catch{return false}if(!ro(n))return false;let r;switch(e){case "claude":r=pP(n);break;case "grok":r=fP(n);break;case "codex":r=gP(n);break;default:return false}return r?Bf(t,e):false}function gn(t){return typeof t=="object"&&t!==null}function ro(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Rn(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function ar(t){return typeof t=="string"&&t.trim().length>0}function is(t,e){return Object.keys(t).every(n=>e.includes(n))}function Da(t,e){return e.every(n=>!Rn(t,n)||typeof t[n]=="string")}function pP(t){let e=t.type;if(typeof e!="string")return false;if(e==="system")return t.subtype==="init"||t.subtype==="thinking_tokens"?typeof t.session_id=="string":t.subtype==="task_started"?is(t,sP)&&Da(t,["description","uuid"])&&ar(t.session_id)&&ar(t.tool_use_id)&&ar(t.task_id)&&t.task_type==="local_bash"&&t.is_backgrounded===false:t.subtype==="task_notification"?is(t,aP)&&Da(t,["summary","uuid"])&&ar(t.session_id)&&ar(t.tool_use_id)&&ar(t.task_id)&&t.status==="completed"&&Rn(t,"output_file")&&t.output_file==="":t.subtype==="background_tasks_changed"?!is(t,dP)||!Da(t,["uuid"])||!ar(t.session_id)||!Array.isArray(t.tasks)?false:t.tasks.every(n=>ro(n)&&is(n,cP)&&ar(n.task_id)&&Da(n,["task_type","description"])):t.subtype==="task_updated"?!is(t,lP)||!Da(t,["uuid"])||!ar(t.session_id)||!ar(t.task_id)||!ro(t.patch)||Object.keys(t.patch).length===0||!is(t.patch,uP)?false:(!Rn(t.patch,"is_backgrounded")||typeof t.patch.is_backgrounded=="boolean")&&(!Rn(t.patch,"status")||t.patch.status==="completed")&&(!Rn(t.patch,"end_time")||typeof t.patch.end_time=="number"&&Number.isFinite(t.patch.end_time)):false;if(e==="rate_limit_event"){let n=t.rate_limit_info;return ro(n)&&n.status==="allowed"}if(e==="result"){let n=t.permission_denials;return t.subtype==="success"&&t.is_error===false&&(t.api_error_status===void 0||t.api_error_status===null)&&(t.terminal_reason===void 0||t.terminal_reason==="completed")&&(t.stop_reason===void 0||t.stop_reason==="end_turn")&&(n===void 0||Array.isArray(n)&&n.length===0)}if(e==="tool_progress")return t.heartbeat===true&&typeof t.tool_use_id=="string";if(e==="assistant"){let n=t.message;return !ro(n)||!Array.isArray(n.content)||n.content.length===0?false:n.content.every(r=>ro(r)&&r.type==="thinking"&&typeof r.thinking=="string"&&r.thinking.trim()===""&&typeof r.signature=="string")}return false}function fP(t){return t.type!=="tool_call_update"||typeof t.toolCallId!="string"||t.toolCallId.length===0||!Rn(t,"status")||t.status!==null&&t.status!=="in_progress"||!gT(t)?false:!Rn(t,"rawOutput")||t.rawOutput===null?true:hP(t.rawOutput)}function gP(t){return t.type==="thread.started"?typeof t.thread_id!="string"||t.thread_id.length===0?false:Object.keys(t).every(e=>e==="type"||e==="thread_id"):Qc(t)}function gT(t){for(let e of ["isError","is_error"])if(Rn(t,e)&&(typeof t[e]!="boolean"||t[e]!==false))return false;for(let e of ["error","errors"])if(Rn(t,e)&&!mP(t[e]))return false;return true}function mP(t){return t===null||t===""||Array.isArray(t)&&t.length===0||ro(t)&&Object.keys(t).length===0}function hP(t){if(!ro(t)||!gT(t))return false;if(Rn(t,"exit_code")){let e=t.exit_code;if(!(e===null||typeof e=="number"&&Number.isFinite(e)&&e===0))return false}return !(Rn(t,"signal")&&t.signal!==null||Rn(t,"timed_out")&&t.timed_out!==false)}function mT(t,e){if(e==="assistant"||e==="user"){let n=t.message;return gn(n)&&Array.isArray(n.content)}return e==="system"?typeof t.subtype=="string"||typeof t.session_id=="string":e==="result"?typeof t.result=="string"||gn(t.usage)||typeof t.total_cost_usd=="number"||typeof t.is_error=="boolean":e==="rate_limit_event"?gn(t.rate_limit_info):e==="tool_progress"?t.heartbeat===true&&typeof t.tool_use_id=="string":false}function yP(t,e){return typeof t.session_id=="string"||typeof t.uuid=="string"?true:mT(t,e)}function _P(t,e){if(e==="error")return typeof t.message=="string"||typeof t.errorMessage=="string"||typeof t.error=="string"||gn(t.error);if(e==="item.updated"||e.startsWith("thread.")||e.startsWith("turn."))return true;if(e==="item.started"||e==="item.completed"){let n=t.item;return gn(n)&&typeof n.type=="string"}return false}function TP(t,e){return e==="step_start"||e==="step_finish"?typeof t.stepID=="string"||typeof t.sessionID=="string"||gn(t.part):e==="text"||e==="tool_use"?gn(t.part):e==="result"?typeof t.result=="string":false}function AP(t,e){return !!(typeof t.stepID=="string"||typeof t.sessionID=="string"||gn(t.part)||e==="result"&&typeof t.result=="string")}function IP(t,e){return e.startsWith("assistant.")||e.startsWith("tool.execution")||e==="user.message"?gn(t.data):e==="result"?typeof t.result=="string":false}function kP(t,e){return e==="message"?typeof t.role=="string":e==="tool_use"?typeof t.tool_name=="string"||typeof t.tool_id=="string":e==="tool_result"?typeof t.tool_id=="string"||typeof t.status=="string":false}function EP(t,e){return e==="available_commands"?gn(t.tools)||gn(t.commands):e==="usage"?gn(t.usage):e==="end"?typeof t.sessionId=="string"||typeof t.stopReason=="string"||gn(t.usage):e==="tool_call_update"?typeof t.toolCallId=="string"||typeof t.status=="string":false}var sP,aP,dP,cP,lP,uP,hT,wP,Ma=U(()=>{m();Ff();sP=["type","subtype","task_id","tool_use_id","session_id","task_type","is_backgrounded","description","uuid"],aP=["type","subtype","task_id","tool_use_id","session_id","status","output_file","summary","uuid"],dP=["type","subtype","tasks","uuid","session_id"],cP=["task_id","task_type","description"],lP=["type","subtype","task_id","patch","uuid","session_id"],uP=["is_backgrounded","status","end_time"];hT={claude:mT,codex:_P,opencode:TP,copilot:IP,gemini:kP},wP={...hT,claude:yP,opencode:AP,grok:EP,antigravity:()=>false};});function Bn(t){return /crewx\s+(q|query|x|execute)\s/.test(t)}function jn(t,e,n){let r=e.match(/@(\S+)/);return {timestamp:t,type:"agent_call",targetAgent:r?.[1]?.replace(/["']/g,""),toolInput:e,...typeof n=="string"&&n.length>0?{toolUseId:n}:{}}}var ss=U(()=>{m();});function _T(t){CP(t);let e={schema:1};return t.taskId!==void 0&&(e.taskId=t.taskId),t.agentId!==void 0&&(e.agentId=t.agentId),e.isError=t.isError,`${Zc}${JSON.stringify(e)}]]`}function tl(t){let e=PP(t),n=e.map((i,s)=>({line:i,index:s})).filter(({line:i})=>OP(i.value)),r=xP(e);return {result:n.length===1&&n[0].index===r?NP(n[0].line.value):null,resultPreview:MP(e,n),hasReservedLine:n.length>0}}function TT(t){return tl(t).resultPreview}function mn(t,e){let n=tl(t);return {resultPreview:n.resultPreview,isError:e||n.result?.isError===true,...n.hasReservedLine?{delegationResult:n.result}:{}}}function CP(t){if(t.schema!==void 0&&t.schema!==1)throw new TypeError("Delegation result schema must be 1");if(typeof t.isError!="boolean")throw new TypeError("Delegation result isError must be boolean");let e=t.taskId!==void 0,n=t.agentId!==void 0;if(e!==n)throw new TypeError("Delegation result taskId and agentId must be provided together");if(!e&&!t.isError)throw new TypeError("Successful delegation results require taskId and agentId");if(e&&(!el(t.taskId)||!el(t.agentId)))throw new TypeError("Delegation result taskId and agentId must be non-empty strings")}function PP(t){let e=[],n=0;for(let r=0;r<t.length;r++){let o=t[r];if(o!==`
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';var Et=require('fs'),Oe=require('path'),child_process=require('child_process'),string_decoder=require('string_decoder'),dy=require('crypto'),oI=require('os'),sqliteCore=require('drizzle-orm/sqlite-core'),drizzleOrm=require('drizzle-orm'),sdk=require('@agentclientprotocol/sdk'),$R=require('js-yaml'),jsTiktoken=require('js-tiktoken'),lite=require('js-tiktoken/lite'),kf=require('js-tiktoken/ranks/o200k_base'),zod=require('zod'),module$1=require('module'),cr=require('handlebars'),promises=require('fs/promises'),events=require('events'),async_hooks=require('async_hooks'),mcp_js=require('@modelcontextprotocol/sdk/server/mcp.js'),webStandardStreamableHttp_js=require('@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js'),QR=require('tar'),zlib=require('zlib'),perf_hooks=require('perf_hooks'),url=require('url'),dotenv=require('dotenv');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Et__namespace=/*#__PURE__*/_interopNamespace(Et);var Oe__namespace=/*#__PURE__*/_interopNamespace(Oe);var dy__namespace=/*#__PURE__*/_interopNamespace(dy);var oI__namespace=/*#__PURE__*/_interopNamespace(oI);var $R__namespace=/*#__PURE__*/_interopNamespace($R);var kf__default=/*#__PURE__*/_interopDefault(kf);var cr__namespace=/*#__PURE__*/_interopNamespace(cr);var QR__namespace=/*#__PURE__*/_interopNamespace(QR);var lf=Object.defineProperty;var Ib=Object.getOwnPropertyDescriptor;var kb=Object.getOwnPropertyNames;var Eb=Object.prototype.hasOwnProperty;var ct=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,n)=>(typeof require<"u"?require:e)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var L=(t,e)=>()=>(t&&(e=t(t=0)),e);var ua=(t,e)=>{for(var n in e)lf(t,n,{get:e[n],enumerable:true});},wb=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of kb(e))!Eb.call(t,o)&&o!==n&&lf(t,o,{get:()=>e[o],enumerable:!(r=Ib(e,o))||r.enumerable});return t};var I_=t=>wb(lf({},"__esModule",{value:true}),t);var m=L(()=>{});var k_;exports.EFFORT_LEVELS=void 0;exports.PROVIDER_ARGV_EFFORTS=void 0;var fa,Rc,Lo=L(()=>{m();k_=["flagship","balanced","speed"],exports.EFFORT_LEVELS=["none","minimal","low","medium","high","xhigh","max","ultra"],exports.PROVIDER_ARGV_EFFORTS={claude:["low","medium","high","xhigh","max"],codex:["none","minimal","low","medium","high","xhigh","max","ultra"],opencode:[],copilot:["none","low","medium","high","xhigh","max"],antigravity:["low","medium","high"],grok:["low","medium","high","xhigh"]},fa={claude:{models:[{id:"claude-fable-5-1",name:"Claude Fable 5.1",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-fable-5",name:"Claude Fable 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-5-5",name:"Claude Opus 5.5",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-opus-5",name:"Claude Opus 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"claude-opus-4-8[1m]",name:"Claude Opus 4.8",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-7[1m]",name:"Claude Opus 4.7",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-6[1m]",name:"Claude Opus 4.6",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-4-6[1m]",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindowTokens:2e5,tier:"speed"}],modes:[{id:"default",name:"Default",description:"Uses Claude's default permission handling with normal approval prompts."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without approval; other permission checks remain in place."},{id:"plan",name:"Plan",description:"Keeps Claude in plan mode so it can inspect and propose changes without applying them."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permissions; only pre-approved tool actions can proceed."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Claude permission checks so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"claude-fable-5-1":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-fable-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-opus-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-8[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-7[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-sonnet-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-haiku-4-5":{effort:[]}},providerOptions:[]},codex:{models:[{id:"gpt-6-astra",name:"GPT-6 Astra",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-6-sol",name:"GPT-6 Sol",contextWindowTokens:105e4,tier:"balanced",recommended:true},{id:"gpt-6-luna",name:"GPT-6 Luna",contextWindowTokens:105e4,tier:"speed",recommended:true},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindowTokens:105e4,tier:"speed"},{id:"gpt-5.5",name:"GPT-5.5",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4",name:"GPT-5.4",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",contextWindowTokens:4e5,tier:"speed"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",contextWindowTokens:4e5,tier:"flagship"},{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",contextWindowTokens:128e3,tier:"speed"}],modes:[{id:"agent",name:"Agent",description:"Uses the workspace-write sandbox; can read and modify workspace files without full machine access."},{id:"read-only",name:"Read Only",description:"Uses the read-only sandbox; can inspect files but cannot write to the workspace."},{id:"plan",name:"Plan",description:"Uses the read-only sandbox for planning and inspection; cannot write to the workspace."},{id:"agent-full-access",name:"Agent Full Access",description:"Bypasses approvals and the sandbox; can access and modify files beyond the workspace."},{id:"yolo",name:"YOLO",description:"Bypasses approvals and the sandbox for unrestricted execution and full filesystem access."}],effort:["minimal","low","medium","high"],modelOverrides:{"gpt-6-astra":{effort:["low","medium","high","xhigh","max"],defaultEffort:"xhigh"},"gpt-6-sol":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-6-luna":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-5.6-sol":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"xhigh"},"gpt-5.6-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"high"},"gpt-5.6-luna":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-5.5":{effort:["low","medium","high","xhigh"],defaultEffort:"high"}},providerOptions:[]},opencode:{models:[],modes:[{id:"plan",name:"Plan",description:"Uses the plan agent without --auto; planning follows standard approval behavior."},{id:"plan-auto",name:"Plan \xB7 Auto",description:"Uses the plan agent with --auto; planning uses automatic approvals."},{id:"build",name:"Build",description:"Uses the build agent without --auto; work follows standard approval behavior."},{id:"build-auto",name:"Build \xB7 Auto",description:"Uses the build agent with --auto; work uses automatic approvals."}],effort:[],modelOverrides:{},providerOptions:[]},copilot:{models:[{id:"auto",name:"Auto"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"gpt-5.5",name:"GPT-5.5",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4",name:"GPT-5.4",contextWindowTokens:105e4,tier:"flagship"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"}],modes:[{id:"interactive",name:"Interactive",description:"Passes --mode interactive; tool access follows Copilot's interactive mode behavior."},{id:"plan",name:"Plan",description:"Passes --mode plan; planning and permission behavior follow Copilot's plan mode."},{id:"autopilot",name:"Autopilot",description:"Passes --mode autopilot; execution behavior follows Copilot's autonomous mode."}],effort:["none","low","medium","high","xhigh","max"],modelOverrides:{},providerOptions:[]},antigravity:{models:[{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking",contextWindowTokens:1e6,tier:"flagship"},{id:"gpt-oss-120b",name:"GPT-OSS 120B",contextWindowTokens:128e3,tier:"balanced"}],modes:[{id:"default",name:"Default",description:"Uses Antigravity's default permission handling. No extra permission flags are passed."},{id:"plan",name:"Plan",description:"Passes --mode plan. This turns on /plan; it is not a Claude-style permission mode."},{id:"acceptEdits",name:"Accept Edits",description:"Passes --mode accept-edits."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Passes --dangerously-skip-permissions so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"gemini-3.7-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.6-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.5-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.1-pro":{effort:["low","high"],defaultEffort:"high"},"claude-sonnet-4-6":{effort:[]},"claude-opus-4-6-thinking":{effort:[]},"gpt-oss-120b":{effort:["medium"],defaultEffort:"medium"}},providerOptions:[]},grok:{models:[{id:"grok-4.7",name:"Grok 4.7",contextWindowTokens:5e5,tier:"flagship",recommended:true},{id:"grok-4.6",name:"Grok 4.6",contextWindowTokens:5e5,tier:"flagship"},{id:"grok-4.5",name:"Grok 4.5",contextWindowTokens:5e5,tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Grok's default permission handling."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without changing the selected sandbox profile."},{id:"auto",name:"Auto",description:"Uses Grok automatic permission handling."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permission before tool execution."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Grok permission checks for tool execution."},{id:"plan",name:"Plan",description:"Keeps Grok in planning mode without applying changes."}],effort:["low","medium","high"],modelOverrides:{"grok-4.7":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.6":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.5":{effort:["low","medium","high"],defaultEffort:"high"}},providerOptions:[{key:"alwaysApprove",type:"boolean"},{key:"sandbox",type:"enum",values:["workspace","read-only","off"]}]}},Rc={version:1,providers:{"cli/codex":{model:"gpt-6-sol",query:{mode:"agent",effort:"high"},execute:{mode:"agent-full-access",effort:"xhigh"}},"cli/claude":{model:"claude-opus-5-5",query:{mode:"default",effort:"high"},execute:{mode:"bypassPermissions",effort:"xhigh"}},"cli/grok":{model:"grok-4.7",query:{mode:"default",effort:"high",providerOptions:{alwaysApprove:true,sandbox:"off"}},execute:{mode:"bypassPermissions",effort:"xhigh",providerOptions:{alwaysApprove:true,sandbox:"off"}}}}},Object.fromEntries(Object.entries(fa).map(([t,e])=>[t,e.models]));});var Uo,gf,E_,mf=L(()=>{m();Uo={"claude-fable-5-1":{input:10,cachedInput:.25,output:50},"claude-fable-5":{input:10,cachedInput:1,output:50},"claude-opus-5-5":{input:4,cachedInput:.2,output:20},"claude-opus-5":{input:5,cachedInput:.5,output:25},"claude-opus-4-8":{input:5,cachedInput:.5,output:25},"claude-opus-4-7":{input:5,cachedInput:.5,output:25},"claude-opus-4-6":{input:5,cachedInput:.5,output:25},"claude-sonnet-5":{input:2,cachedInput:.2,output:10},"claude-sonnet-4-6":{input:3,cachedInput:.3,output:15},"claude-haiku-4-5":{input:1,cachedInput:.1,output:5},"gpt-6-astra":{input:10,cachedInput:1,output:50},"gpt-6-sol":{input:2,cachedInput:.2,output:10},"gpt-6-luna":{input:.1,cachedInput:.01,output:.5},"gpt-5.6-sol":{input:4,cachedInput:.4,output:20},"gpt-5.6-terra":{input:2,cachedInput:.2,output:12},"gpt-5.6-luna":{input:.2,cachedInput:.02,output:1.2},"gpt-5.5":{input:5,cachedInput:.5,output:30},"gpt-5.4":{input:2.5,cachedInput:.25,output:15},"gpt-5.4-mini":{input:.75,cachedInput:.075,output:4.5},"gpt-5.3-codex":{input:1.75,cachedInput:.175,output:14},"gpt-5-mini":{input:.4,cachedInput:.1,output:1.6},"gpt-4.1":{input:2,cachedInput:.5,output:8},"gpt-4o":{input:2.5,cachedInput:1.25,output:10},"glm-5.2":{input:1.4,cachedInput:.26,output:4.4},"glm-5.1":{input:1.4,cachedInput:.26,output:4.4},"gemini-3.7-flash":{input:1.5,cachedInput:.15,output:7.5},"gemini-3.6-flash":{input:1.5,cachedInput:.15,output:7.5},"grok-4.7":{input:2,cachedInput:.5,output:6},"grok-4.6":{input:2,cachedInput:.5,output:6},"grok-4.5":{input:2,cachedInput:.3,output:6}},gf=new Set(["gpt-5.3-codex-spark"]),E_=new Set(["auto","claude-fable-5","claude-fable-5-1","claude-haiku-4-5","claude-opus-4-6-thinking","claude-opus-4-6[1m]","claude-opus-4-7[1m]","claude-opus-4-8[1m]","claude-opus-5","claude-opus-5-5","claude-sonnet-4-6","claude-sonnet-4-6[1m]","claude-sonnet-5","gemini-3.1-pro","gemini-3.5-flash","gemini-3.6-flash","gemini-3.7-flash","gpt-5.3-codex","gpt-5.3-codex-spark","gpt-5.4","gpt-5.4-mini","gpt-5.5","gpt-5.6-luna","gpt-5.6-sol","gpt-5.6-terra","gpt-6-astra","gpt-6-luna","gpt-6-sol","gpt-oss-120b","grok-4.5","grok-4.6","grok-4.7"]);});function R_(t){ma=t;}function S_(t){w_=Object.fromEntries(Object.entries(t).map(([e,n])=>[e,{...n}]));}function hf(t){let e=t.toLowerCase().trim();e=e.replace(/\[[^\]]*\]$/g,"");let n=e.lastIndexOf("/");return n>=0&&(e=e.slice(n+1)),e=e.replace(/-\d{8}$/,""),e}function bb(t){if(!t)return;let e="inputPerMillionTokensUsd"in t?t.inputPerMillionTokensUsd:t.input,n="outputPerMillionTokensUsd"in t?t.outputPerMillionTokensUsd:t.output;if(!(!Number.isFinite(e)||e<=0||!Number.isFinite(n)||n<=0))return {inputPerMillionTokensUsd:e,outputPerMillionTokensUsd:n}}function v_(t){if(!t)return;let e=t.replace(/\[[^\]]*\]$/g,"");return bb(w_[e]??Uo[e])}function Cb(t){if(!t)return console.warn("[pricing] missing model id; cost is being recorded as 0"),ga;let e=hf(t),n=vb[e];if(n)return ma[n]??Uo[n]??ga;if(ma[e])return ma[e];if(Uo[e])return Uo[e];if(gf.has(e))return console.warn(`[pricing] unpublished model pricing: ${t}, cost_usd=0`),ga;if(E_.has(e))return console.warn(`[pricing] missing catalog pricing: ${t}, cost_usd=0`),ga;let r={...Uo,...ma};for(let o of Object.keys(r))if(e.includes(o))return r[o];return console.warn(`[pricing] Unknown model: ${t}, cost_usd=0`),ga}function Pb(t,e,n,r=0,o){let i=Cb(n),s=Math.min(r,t),d=(t-s)*i.input/1e6,c=s*i.cachedInput/1e6,l=e*i.output/1e6;return d+c+l}function Sc(t,e,n,r,o,i){return t&&t>0?t:!e&&!n?0:Pb(e??0,n??0,o,r??0)}var vb,ga,ma,w_,Ho=L(()=>{m();mf();mf();vb={opus:"claude-opus-4-8",sonnet:"claude-sonnet-4-6",haiku:"claude-haiku-4-5","codex-mini":"gpt-5.3-codex",codex:"gpt-5.3-codex"},ga={input:0,cachedInput:0,output:0},ma={},w_={};});function vc(t){return Nb[t]??t}function C_(t){return Db.get(t)??t}function bc(t){if(!t)return {};let e=Mb.get(t);return e?{...e}:{model:t}}function ha(t,e){return t==="antigravity"||t==="cli/antigravity"?bc(e):e===void 0?{}:{model:C_(e)}}exports.CLAUDE_OPUS_4_8_BASE_MODEL_ID=void 0;exports.CLAUDE_OPUS_4_8_LEGACY_MODEL_ID=void 0;exports.CLAUDE_MODEL_COMPATIBILITY_PAIRS=void 0;var Nb,Db;exports.ANTIGRAVITY_MODEL_COMPATIBILITY=void 0;var Mb,Xi=L(()=>{m();exports.CLAUDE_OPUS_4_8_BASE_MODEL_ID="claude-opus-4-8",exports.CLAUDE_OPUS_4_8_LEGACY_MODEL_ID="claude-opus-4-8[1m]",exports.CLAUDE_MODEL_COMPATIBILITY_PAIRS=[{baseModelId:"claude-opus-4-8",catalogModelId:"claude-opus-4-8[1m]"},{baseModelId:"claude-opus-4-7",catalogModelId:"claude-opus-4-7[1m]"},{baseModelId:"claude-opus-4-6",catalogModelId:"claude-opus-4-6[1m]"},{baseModelId:"claude-sonnet-4-6",catalogModelId:"claude-sonnet-4-6[1m]"}],Nb={"accept-edits":"acceptEdits",yolo:"bypassPermissions","agent-full-access":"bypassPermissions"};Db=new Map(exports.CLAUDE_MODEL_COMPATIBILITY_PAIRS.map(({baseModelId:t,catalogModelId:e})=>[t,e]));exports.ANTIGRAVITY_MODEL_COMPATIBILITY=[{legacyId:"Gemini 3.7 Flash (High)",model:"gemini-3.7-flash",effort:"high"},{legacyId:"Gemini 3.7 Flash (Medium)",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"Gemini 3.7 Flash (Low)",model:"gemini-3.7-flash",effort:"low"},{legacyId:"Gemini 3.6 Flash (High)",model:"gemini-3.6-flash",effort:"high"},{legacyId:"Gemini 3.6 Flash (Medium)",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"Gemini 3.6 Flash (Low)",model:"gemini-3.6-flash",effort:"low"},{legacyId:"Gemini 3.5 Flash (Medium)",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"Gemini 3.5 Flash (High)",model:"gemini-3.5-flash",effort:"high"},{legacyId:"Gemini 3.5 Flash (Low)",model:"gemini-3.5-flash",effort:"low"},{legacyId:"Gemini 3.1 Pro (Low)",model:"gemini-3.1-pro",effort:"low"},{legacyId:"Gemini 3.1 Pro (High)",model:"gemini-3.1-pro",effort:"high"},{legacyId:"Claude Sonnet 4.6 (Thinking)",model:"claude-sonnet-4-6"},{legacyId:"Claude Opus 4.6 (Thinking)",model:"claude-opus-4-6-thinking"},{legacyId:"GPT-OSS 120B (Medium)",model:"gpt-oss-120b",effort:"medium"},{legacyId:"gemini-3.7-flash-high",model:"gemini-3.7-flash",effort:"high"},{legacyId:"gemini-3.7-flash-medium",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"gemini-3.7-flash-low",model:"gemini-3.7-flash",effort:"low"},{legacyId:"gemini-3.6-flash-high",model:"gemini-3.6-flash",effort:"high"},{legacyId:"gemini-3.6-flash-medium",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"gemini-3.6-flash-low",model:"gemini-3.6-flash",effort:"low"},{legacyId:"gemini-3.5-flash-high",model:"gemini-3.5-flash",effort:"high"},{legacyId:"gemini-3.5-flash-medium",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"gemini-3.5-flash-low",model:"gemini-3.5-flash",effort:"low"},{legacyId:"gemini-3.1-pro-high",model:"gemini-3.1-pro",effort:"high"},{legacyId:"gemini-3.1-pro-low",model:"gemini-3.1-pro",effort:"low"},{legacyId:"gpt-oss-120b-medium",model:"gpt-oss-120b",effort:"medium"}],Mb=new Map(exports.ANTIGRAVITY_MODEL_COMPATIBILITY.map(({legacyId:t,model:e,effort:n})=>[t,n===void 0?{model:e}:{model:e,effort:n}]));});function O_(){return {models:[],modes:[],effort:[],modelOverrides:{},providerOptions:[]}}function Lb(t){return Array.isArray(t)?{models:t,modes:[],effort:[],modelOverrides:{},providerOptions:[]}:t?{models:t.models??[],modes:t.modes??[],effort:t.effort??[],modelOverrides:t.modelOverrides??{},providerOptions:t.providerOptions??[]}:O_()}function Cc(t){yf=Object.fromEntries(Object.entries(t).map(([e,n])=>[e,Lb(n)]));}function Ub(){yf={};}function Yi(t){x_={...t};}function Un(t){return Hn(t).models}function Hn(t){return yf[t]??fa[t]??O_()}function ya(t){return x_[t]??Rc.providers[t]}function Fo(t){return Hn(t).modes}function Pr(t,e){let n=Hn(t);if(e){if(Object.prototype.hasOwnProperty.call(n.modelOverrides,e))return n.modelOverrides[e]?.effort??n.effort;let r=ha(t,e);return r.model===void 0?n.effort:n.modelOverrides[r.model]?.effort??n.effort}return n.effort}function Pc(t){return Hn(t).modelOverrides}function _a(){return Un("claude")}function _f(){return Un("codex")}function Tf(){return Un("copilot")}function Af(){return Un("antigravity")}function Ta(t,e){let n=new Map;for(let r of [...t,...e]){let o=n.get(r.id);if(!o){let{apiPricing:i,recommended:s,...a}=r;n.set(r.id,{...a,...s===true?{recommended:true}:{},...i!=null?{apiPricing:{...i}}:{}});continue}!o.name&&r.name&&(o.name=r.name),o.description==null&&r.description!=null&&(o.description=r.description),o.contextWindowTokens==null&&r.contextWindowTokens!=null&&(o.contextWindowTokens=r.contextWindowTokens),o.tier==null&&r.tier!=null&&(o.tier=r.tier),o.recommended!==true&&r.recommended===true&&(o.recommended=true),o.apiPricing==null&&r.apiPricing!=null&&(o.apiPricing={...r.apiPricing});}return Array.from(n.values())}function Aa(t){return t.map(e=>{let{apiPricing:n,...r}=e,o=v_(e.id);return o?{...r,apiPricing:o}:r})}var yf,x_,un=L(()=>{m();Lo();Ho();Xi();yf={},x_={};});function tT(t,e){let n={};for(let[r,o]of Object.entries(t))o!==void 0&&(e.includes(r)||(n[r]=o));return n}function Ht(t){return tT(t,exports.CREWX_RUNNER_IDENTITY_ENV)}function LC(t){return tT(t,MC)}exports.CREWX_RUNNER_IDENTITY_ENV=void 0;var MC,xr=L(()=>{m();exports.CREWX_RUNNER_IDENTITY_ENV=["CREWX_ASSIGNED_TASK_ID","CREWX_DETACHED_RUNNER"],MC=["CREWX_AGENT_ID","CREWX_PARENT_TASK_ID","CREWX_CALLER_AGENT_ID"];});function Wc(t){return typeof t!="string"?void 0:t.trim()||void 0}function Gc(t){return Wc(t)?.toLowerCase()??""}function ts(t){try{return Et.statSync(t).isFile()}catch{return false}}function HC(t,e){if(t===e)return true;let n=Oe__namespace.default.relative(t,e);return n!==""&&!n.startsWith("..")&&!Oe__namespace.default.isAbsolute(n)}function FC(t,e){if(Oe__namespace.default.basename(t)!==".bin")return false;let n=Oe__namespace.default.dirname(t);if(Oe__namespace.default.basename(n)!=="node_modules")return false;let r=Oe__namespace.default.dirname(n);return HC(r,e)}function ns(t,e={}){if(t.includes("/")||t.includes("\\")||Oe__namespace.default.isAbsolute(t))return t;let n=e.platform??process.platform,r=e.env??process.env,o=Oe__namespace.default.resolve(e.cwd??process.cwd()),i=(e.resolution??"global_first")==="global_first",s=r.PATH??r.Path??process.env.PATH??process.env.Path??"",a=n==="win32"?";":":",d=s.split(a).map(f=>f.trim()).filter(Boolean),c=Oe__namespace.default.extname(t).length>0,l=r.PATHEXT??r.Pathext??process.env.PATHEXT??process.env.Pathext??".EXE;.CMD;.BAT;.COM",u=n==="win32"?c?[""]:l.split(";").map(f=>f.trim()).filter(Boolean).map(f=>f.startsWith(".")?f:`.${f}`):[""];for(let f of d){let g=Oe__namespace.default.resolve(o,f);if(!(i&&FC(g,o)))for(let h of u){let y=Gc(h),_=h.toUpperCase();for(let A of [h,y,_]){let T=Oe__namespace.default.join(g,`${t}${A}`);if(ts(T))return T}}}return t}function BC(t,e){return ns(t,{env:e,platform:"win32",resolution:"local_first"})}function jC(t){if(!ts(t))return null;try{let e=Et.readFileSync(t,"utf8"),n=Oe__namespace.default.dirname(t),r=[];for(let a of e.matchAll(/"([^"\r\n]*)"/g)){let l=(a[1]??"").match(/%~?dp0%?\s*[\\/]*(.*)$/i)?.[1]?.trim();if(!l)continue;let u=l.replace(/[\\/]+/g,Oe__namespace.default.sep).replace(/^[\\/]+/,""),f=Oe__namespace.default.resolve(n,u);ts(f)&&r.push(f);}let o=[],i=new Map;for(let a of e.matchAll(/SET\s+"(\w+)=%~?dp0%?[\\/]?([^"]+)"/gi)){let d=a[1].toUpperCase(),c=a[2].trim().replace(/[\\/]+/g,Oe__namespace.default.sep).replace(/^[\\/]+/,"");i.set(d,Oe__namespace.default.resolve(n,c));}for(let a of e.split(/\r?\n/))if(a.includes("%*"))for(let d of a.matchAll(/"%(\w+)%"/g)){let c=i.get(d[1].toUpperCase());c&&ts(c)&&o.push(c);}let s=a=>a.find(d=>{let c=Gc(Oe__namespace.default.basename(d));return c!=="node.exe"&&c!=="node"})??null;return s(o)??s(r)}catch{return null}}function $C(t,e){if(typeof e=="string")return Wc(e)||null;if(!e||typeof e!="object")return null;if(t){let n=e[t],r=typeof n=="string"?Wc(n):void 0;if(r)return r}for(let n of Object.values(e)){let r=typeof n=="string"?Wc(n):void 0;if(r)return r}return null}function qC(t,e){if(!e)return null;let n=Oe__namespace.default.dirname(t),r=[Oe__namespace.default.resolve(n,"..",e),Oe__namespace.default.resolve(n,"node_modules",e)];for(let o of r){let i=Oe__namespace.default.join(o,"package.json");if(ts(i))try{let s=JSON.parse(Et.readFileSync(i,"utf8")),a=$C(e,s.bin);if(!a)continue;let d=Oe__namespace.default.resolve(o,a);if(ts(d))return d}catch{}}return null}function VC(t){let e=t.platform??process.platform,n=t.env??process.env,r=t.execPath??process.execPath,o=t.cwd,i=t.resolution;if(e!=="win32")return {command:ns(t.command,{cwd:o,env:n,platform:e,resolution:i}),leadingArgv:[],resolution:"direct"};let s=ns(t.command,{cwd:o,env:n,platform:e,resolution:i}),a=Gc(Oe__namespace.default.extname(s));if(a===".js"||a===".cjs"||a===".mjs")return {command:r,leadingArgv:[s],resolution:"node-entrypoint",windowsHide:true};if(a===".cmd"||a===".bat"){let d=jC(s)??qC(s,t.packageName);return d?Gc(Oe__namespace.default.extname(d))===".exe"?{command:d,leadingArgv:[],resolution:"exe-entrypoint",windowsHide:true}:{command:r,leadingArgv:[d],resolution:"node-entrypoint",windowsHide:true}:{command:s,leadingArgv:[],resolution:"unresolved-wrapper"}}return {command:s,leadingArgv:[],resolution:"direct"}}function WC(t){if(t.candidate.resolution!=="unresolved-wrapper")return {command:t.candidate.command,leadingArgv:t.candidate.leadingArgv,resolution:t.candidate.resolution,windowsHide:t.candidate.windowsHide};if(t.allowShellFallback===true)return {command:t.candidate.command,leadingArgv:[],resolution:"shell-fallback",shell:true};throw new Error(`${Oe__namespace.default.basename(t.candidate.command)} wrapper resolved, but no executable/Node entrypoint could be resolved without shell execution.`)}function zo(t){let e=VC(t);return WC({candidate:e,allowShellFallback:t.allowShellFallback})}function Jo(t,e){return {command:t.command,argv:[...t.leadingArgv,...e],resolution:t.resolution,shell:t.shell,windowsHide:t.windowsHide}}var rs=L(()=>{m();});function Df(t){let e=0;for(let n of t)n===Pa&&(e+=1);return e}function Jc(t,e){return Df(e)<Df(t)?e:t}function sT(t){let e=t.match(/(?:^|[^0-9])([0-9]{1,5})(?![0-9])/);if(!e)return null;let n=Number(e[1]);return Number.isInteger(n)&&n>0&&n<=65535?n:null}function JC(t){if(t!==65001)return zC.get(t)}function aT(t){let e=JC(t);if(!e)return null;try{return new TextDecoder(e)}catch{return null}}function KC(){return new Promise(t=>{let e=false,n,r=o=>{e||(e=true,n&&clearTimeout(n),t(o));};n=setTimeout(()=>r(null),oT),n.unref();try{child_process.execFile("chcp.com",[],{encoding:"ascii",timeout:oT,windowsHide:!0},(i,s)=>{if(i){r(null);return}r(sT(String(s)));}).once("error",()=>r(null));}catch{r(null);}})}function Mf(){return process.platform!=="win32"?Promise.resolve(null):(zc||(zc=KC(),zc.then(t=>{Nf=t;},()=>{Nf=null;})),zc)}function Ko(){process.platform==="win32"&&Mf();}function XC(){return Nf}function iT(t,e){if(e.length>=Of)return e.subarray(e.length-Of);let n=Of-e.length,r=t.length>n?t.subarray(t.length-n):t;return Buffer.concat([r,e])}function xa(t,e={}){let n=Buffer.from(t),r=n.toString("utf8");if((e.platform??process.platform)!=="win32"||!r.includes(Pa))return r;let i=e.codePage===void 0?XC():e.codePage;if(i==null)return Ko(),r;let s=aT(i);return s?Jc(r,s.decode(n)):r}async function Lf(t,e={}){let n=new exports.ConsoleDecoder(e);return `${await n.write(t)}${await n.end()}`}var Pa,Of,oT,zC,zc,Nf;exports.ConsoleDecoder=void 0;var eo=L(()=>{m();Pa="\uFFFD",Of=8,oT=1e3,zC=new Map([[437,"ibm437"],[720,"ibm720"],[737,"ibm737"],[775,"ibm775"],[850,"ibm850"],[852,"ibm852"],[855,"ibm855"],[857,"ibm857"],[858,"ibm858"],[862,"ibm862"],[864,"ibm864"],[932,"shift_jis"],[936,"gb18030"],[949,"euc-kr"],[950,"big5"],[866,"ibm866"],[869,"ibm869"],[1250,"windows-1250"],[1251,"windows-1251"],[1252,"windows-1252"],[1253,"windows-1253"],[1254,"windows-1254"],[1255,"windows-1255"],[1256,"windows-1256"],[1257,"windows-1257"],[1258,"windows-1258"]]);exports.ConsoleDecoder=class{platform;detectCodePage;utf8Decoder=new string_decoder.StringDecoder("utf8");codePage;fallbackDecoder;replayTail=Buffer.alloc(0);pendingUtf8="";pendingFallback="";pendingBytes=Buffer.alloc(0);queue=Promise.resolve();ended=false;constructor(e={}){this.platform=e.platform??process.platform,this.detectCodePage=e.detectCodePage??Mf,this.codePage=e.codePage;}write(e){let n=Buffer.from(e);return this.enqueue(()=>this.decodeChunk(n))}end(){return this.enqueue(()=>this.finish())}enqueue(e){let n=this.queue.then(e);return this.queue=n.then(()=>{},()=>{}),n}clearPendingCandidate(){this.pendingUtf8="",this.pendingFallback="",this.pendingBytes=Buffer.alloc(0);}async resolveCodePage(){if(this.codePage!==void 0)return this.codePage;try{this.codePage=await this.detectCodePage();}catch{this.codePage=null;}return this.codePage}async getFallbackDecoder(){if(this.fallbackDecoder!==void 0)return this.fallbackDecoder;let e=await this.resolveCodePage();return this.fallbackDecoder=e===null?null:aT(e),this.fallbackDecoder}async decodeChunk(e){if(this.ended)return "";let n=this.utf8Decoder.write(e),r=n.includes(Pa);if(r&&(this.utf8Decoder=new string_decoder.StringDecoder("utf8")),this.platform!=="win32")return n;if(this.fallbackDecoder){let d=this.fallbackDecoder.decode(e,{stream:true}),c=iT(this.pendingBytes,e);if(r){let l=this.pendingUtf8+n,u=this.pendingFallback+d;return this.clearPendingCandidate(),Jc(l,u)}if(Df(d)>0){let l=this.pendingUtf8+n;return this.clearPendingCandidate(),this.fallbackDecoder=void 0,this.replayTail=c,l}if(this.pendingUtf8||this.pendingFallback){if(this.pendingUtf8+=n,this.pendingFallback+=d,this.pendingBytes=c,n.length===0||d.length===0)return "";let l=this.pendingUtf8;return this.clearPendingCandidate(),l}return n.length===0&&d.length>0?(this.pendingUtf8=n,this.pendingFallback=d,this.pendingBytes=c,""):n}let o=this.replayTail;if(this.fallbackDecoder===void 0&&(this.replayTail=iT(this.replayTail,e)),!r)return n;let i=this.fallbackDecoder===void 0,s=await this.getFallbackDecoder();if(!s)return this.replayTail=Buffer.alloc(0),n;i&&o.length>0&&s.decode(o,{stream:true}),this.replayTail=Buffer.alloc(0);let a=s.decode(e,{stream:true});return Jc(n,a)}async finish(){if(this.ended)return "";this.ended=true;let e=this.utf8Decoder.end();if(this.platform!=="win32")return e;if(this.fallbackDecoder===void 0&&e.includes(Pa)){let i=await this.getFallbackDecoder();i&&this.replayTail.length>0&&(i.decode(this.replayTail,{stream:true}),this.replayTail=Buffer.alloc(0));}let n=this.pendingUtf8+e,r=this.fallbackDecoder?.decode()??"",o=this.pendingFallback+r;return this.clearPendingCandidate(),n.includes(Pa)?Jc(n,o):n}};Ko();});function YC(t){if(t.type!=="usage"||!("input_tokens"in t))return null;let e=Number(t.input_tokens??0),n=Number(t.output_tokens??0),o="cache_read_input_tokens"in t?Number(t.cache_read_input_tokens):void 0,i="cached_input_tokens"in t?Number(t.cached_input_tokens):void 0,s=o!==void 0?o:i??0;return {inputTokens:o!==void 0?e+o:e,outputTokens:n,cachedInputTokens:s}}function QC(t){let e=t.usage;if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e;if(!("input_tokens"in n))return null;let r=Number(n.input_tokens??0),o=Number(n.output_tokens??0),s="cache_read_input_tokens"in n?Number(n.cache_read_input_tokens):void 0,a="cached_input_tokens"in n?Number(n.cached_input_tokens):void 0,d=s!==void 0?s:a??0;return {inputTokens:s!==void 0?r+s:r,outputTokens:o,cachedInputTokens:d}}function ZC(t){if(t.type!=="step_finish")return null;let n=t.part?.tokens;if(!n)return null;let r=Number(n.input??0),o=Number(n.output??0),i=n.cache,s=i?Number(i.read??0):0;return {inputTokens:r+s,outputTokens:o,cachedInputTokens:s}}function dT(t){let e=new Map,n;for(let i of t.split(`
1
+ 'use strict';var Et=require('fs'),Oe=require('path'),child_process=require('child_process'),string_decoder=require('string_decoder'),dy=require('crypto'),oI=require('os'),sqliteCore=require('drizzle-orm/sqlite-core'),drizzleOrm=require('drizzle-orm'),sdk=require('@agentclientprotocol/sdk'),$R=require('js-yaml'),jsTiktoken=require('js-tiktoken'),lite=require('js-tiktoken/lite'),kf=require('js-tiktoken/ranks/o200k_base'),zod=require('zod'),module$1=require('module'),cr=require('handlebars'),promises=require('fs/promises'),events=require('events'),async_hooks=require('async_hooks'),mcp_js=require('@modelcontextprotocol/sdk/server/mcp.js'),webStandardStreamableHttp_js=require('@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js'),QR=require('tar'),zlib=require('zlib'),perf_hooks=require('perf_hooks'),url=require('url'),dotenv=require('dotenv');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Et__namespace=/*#__PURE__*/_interopNamespace(Et);var Oe__namespace=/*#__PURE__*/_interopNamespace(Oe);var dy__namespace=/*#__PURE__*/_interopNamespace(dy);var oI__namespace=/*#__PURE__*/_interopNamespace(oI);var $R__namespace=/*#__PURE__*/_interopNamespace($R);var kf__default=/*#__PURE__*/_interopDefault(kf);var cr__namespace=/*#__PURE__*/_interopNamespace(cr);var QR__namespace=/*#__PURE__*/_interopNamespace(QR);var lf=Object.defineProperty;var Ib=Object.getOwnPropertyDescriptor;var kb=Object.getOwnPropertyNames;var Eb=Object.prototype.hasOwnProperty;var ct=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,n)=>(typeof require<"u"?require:e)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var L=(t,e)=>()=>(t&&(e=t(t=0)),e);var ua=(t,e)=>{for(var n in e)lf(t,n,{get:e[n],enumerable:true});},wb=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of kb(e))!Eb.call(t,o)&&o!==n&&lf(t,o,{get:()=>e[o],enumerable:!(r=Ib(e,o))||r.enumerable});return t};var I_=t=>wb(lf({},"__esModule",{value:true}),t);var m=L(()=>{});var k_;exports.EFFORT_LEVELS=void 0;exports.PROVIDER_ARGV_EFFORTS=void 0;var fa,Rc,Lo=L(()=>{m();k_=["flagship","balanced","speed"],exports.EFFORT_LEVELS=["none","minimal","low","medium","high","xhigh","max","ultra"],exports.PROVIDER_ARGV_EFFORTS={claude:["low","medium","high","xhigh","max"],codex:["none","minimal","low","medium","high","xhigh","max","ultra"],opencode:[],copilot:["none","low","medium","high","xhigh","max"],antigravity:["low","medium","high"],grok:["low","medium","high","xhigh"]},fa={claude:{models:[{id:"claude-fable-5-1",name:"Claude Fable 5.1",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-fable-5",name:"Claude Fable 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-5-5",name:"Claude Opus 5.5",contextWindowTokens:1e6,tier:"flagship",recommended:true},{id:"claude-opus-5",name:"Claude Opus 5",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced",recommended:true},{id:"claude-opus-4-8[1m]",name:"Claude Opus 4.8",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-7[1m]",name:"Claude Opus 4.7",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-opus-4-6[1m]",name:"Claude Opus 4.6",contextWindowTokens:1e6,tier:"flagship"},{id:"claude-sonnet-4-6[1m]",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindowTokens:2e5,tier:"speed"}],modes:[{id:"default",name:"Default",description:"Uses Claude's default permission handling with normal approval prompts."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without approval; other permission checks remain in place."},{id:"plan",name:"Plan",description:"Keeps Claude in plan mode so it can inspect and propose changes without applying them."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permissions; only pre-approved tool actions can proceed."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Claude permission checks so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"claude-fable-5-1":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-fable-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-5-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"medium"},"claude-opus-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-sonnet-5":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-8[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-7[1m]":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"claude-opus-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-sonnet-4-6[1m]":{effort:["low","medium","high","max"],defaultEffort:"high"},"claude-haiku-4-5":{effort:[]}},providerOptions:[]},codex:{models:[{id:"gpt-6-astra",name:"GPT-6 Astra",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-6-sol",name:"GPT-6 Sol",contextWindowTokens:105e4,tier:"balanced",recommended:true},{id:"gpt-6-luna",name:"GPT-6 Luna",contextWindowTokens:105e4,tier:"speed",recommended:true},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindowTokens:105e4,tier:"balanced"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindowTokens:105e4,tier:"speed"},{id:"gpt-5.5",name:"GPT-5.5",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4",name:"GPT-5.4",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",contextWindowTokens:4e5,tier:"speed"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",contextWindowTokens:4e5,tier:"flagship"},{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",contextWindowTokens:128e3,tier:"speed"}],modes:[{id:"agent",name:"Agent",description:"Uses the workspace-write sandbox; can read and modify workspace files without full machine access."},{id:"read-only",name:"Read Only",description:"Uses the read-only sandbox; can inspect files but cannot write to the workspace."},{id:"plan",name:"Plan",description:"Uses the read-only sandbox for planning and inspection; cannot write to the workspace."},{id:"agent-full-access",name:"Agent Full Access",description:"Bypasses approvals and the sandbox; can access and modify files beyond the workspace."},{id:"yolo",name:"YOLO",description:"Bypasses approvals and the sandbox for unrestricted execution and full filesystem access."}],effort:["minimal","low","medium","high"],modelOverrides:{"gpt-6-astra":{effort:["low","medium","high","xhigh","max"],defaultEffort:"xhigh"},"gpt-6-sol":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-6-luna":{effort:["none","low","medium","high","xhigh","max"],defaultEffort:"medium"},"gpt-5.6-sol":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"xhigh"},"gpt-5.6-terra":{effort:["low","medium","high","xhigh","max","ultra"],defaultEffort:"high"},"gpt-5.6-luna":{effort:["low","medium","high","xhigh","max"],defaultEffort:"high"},"gpt-5.5":{effort:["low","medium","high","xhigh"],defaultEffort:"high"}},providerOptions:[]},opencode:{models:[],modes:[{id:"plan",name:"Plan",description:"Uses the plan agent without --auto; planning follows standard approval behavior."},{id:"plan-auto",name:"Plan \xB7 Auto",description:"Uses the plan agent with --auto; planning uses automatic approvals."},{id:"build",name:"Build",description:"Uses the build agent without --auto; work follows standard approval behavior."},{id:"build-auto",name:"Build \xB7 Auto",description:"Uses the build agent with --auto; work uses automatic approvals."}],effort:[],modelOverrides:{},providerOptions:[]},copilot:{models:[{id:"auto",name:"Auto"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"gpt-5.5",name:"GPT-5.5",contextWindowTokens:105e4,tier:"flagship"},{id:"gpt-5.4",name:"GPT-5.4",contextWindowTokens:105e4,tier:"flagship"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"}],modes:[{id:"interactive",name:"Interactive",description:"Passes --mode interactive; tool access follows Copilot's interactive mode behavior."},{id:"plan",name:"Plan",description:"Passes --mode plan; planning and permission behavior follow Copilot's plan mode."},{id:"autopilot",name:"Autopilot",description:"Passes --mode autopilot; execution behavior follows Copilot's autonomous mode."}],effort:["none","low","medium","high","xhigh","max"],modelOverrides:{},providerOptions:[]},antigravity:{models:[{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",contextWindowTokens:1048576,tier:"balanced"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",contextWindowTokens:1048576,tier:"flagship"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindowTokens:1e6,tier:"balanced"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking",contextWindowTokens:1e6,tier:"flagship"},{id:"gpt-oss-120b",name:"GPT-OSS 120B",contextWindowTokens:128e3,tier:"balanced"}],modes:[{id:"default",name:"Default",description:"Uses Antigravity's default permission handling. No extra permission flags are passed."},{id:"plan",name:"Plan",description:"Passes --mode plan. This turns on /plan; it is not a Claude-style permission mode."},{id:"acceptEdits",name:"Accept Edits",description:"Passes --mode accept-edits."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Passes --dangerously-skip-permissions so tools can run without approval prompts."}],effort:["low","medium","high"],modelOverrides:{"gemini-3.7-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.6-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.5-flash":{effort:["low","medium","high"],defaultEffort:"medium"},"gemini-3.1-pro":{effort:["low","high"],defaultEffort:"high"},"claude-sonnet-4-6":{effort:[]},"claude-opus-4-6-thinking":{effort:[]},"gpt-oss-120b":{effort:["medium"],defaultEffort:"medium"}},providerOptions:[]},grok:{models:[{id:"grok-4.7",name:"Grok 4.7",contextWindowTokens:5e5,tier:"flagship",recommended:true},{id:"grok-4.6",name:"Grok 4.6",contextWindowTokens:5e5,tier:"flagship"},{id:"grok-4.5",name:"Grok 4.5",contextWindowTokens:5e5,tier:"flagship"}],modes:[{id:"default",name:"Default",description:"Uses Grok's default permission handling."},{id:"acceptEdits",name:"Accept Edits",description:"Allows file edits without changing the selected sandbox profile."},{id:"auto",name:"Auto",description:"Uses Grok automatic permission handling."},{id:"dontAsk",name:"Don't Ask",description:"Does not ask for permission before tool execution."},{id:"bypassPermissions",name:"Bypass Permissions",description:"Bypasses Grok permission checks for tool execution."},{id:"plan",name:"Plan",description:"Keeps Grok in planning mode without applying changes."}],effort:["low","medium","high"],modelOverrides:{"grok-4.7":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.6":{effort:["low","medium","high","xhigh"],defaultEffort:"high"},"grok-4.5":{effort:["low","medium","high"],defaultEffort:"high"}},providerOptions:[{key:"alwaysApprove",type:"boolean"},{key:"sandbox",type:"enum",values:["workspace","read-only","off"]}]}},Rc={version:1,providers:{"cli/codex":{model:"gpt-6-sol",query:{mode:"agent",effort:"high"},execute:{mode:"agent-full-access",effort:"xhigh"}},"cli/claude":{model:"claude-opus-5-5",query:{mode:"default",effort:"high"},execute:{mode:"bypassPermissions",effort:"xhigh"}},"cli/grok":{model:"grok-4.7",query:{mode:"default",effort:"high",providerOptions:{alwaysApprove:true,sandbox:"off"}},execute:{mode:"bypassPermissions",effort:"xhigh",providerOptions:{alwaysApprove:true,sandbox:"off"}}}}},Object.fromEntries(Object.entries(fa).map(([t,e])=>[t,e.models]));});var Uo,gf,E_,mf=L(()=>{m();Uo={"claude-fable-5-1":{input:10,cachedInput:.25,output:50},"claude-fable-5":{input:10,cachedInput:1,output:50},"claude-opus-5-5":{input:4,cachedInput:.2,output:20},"claude-opus-5":{input:5,cachedInput:.5,output:25},"claude-opus-4-8":{input:5,cachedInput:.5,output:25},"claude-opus-4-7":{input:5,cachedInput:.5,output:25},"claude-opus-4-6":{input:5,cachedInput:.5,output:25},"claude-sonnet-5":{input:2,cachedInput:.2,output:10},"claude-sonnet-4-6":{input:3,cachedInput:.3,output:15},"claude-haiku-4-5":{input:1,cachedInput:.1,output:5},"gpt-6-astra":{input:10,cachedInput:1,output:50},"gpt-6-sol":{input:2,cachedInput:.2,output:10},"gpt-6-luna":{input:.1,cachedInput:.01,output:.5},"gpt-5.6-sol":{input:4,cachedInput:.4,output:20},"gpt-5.6-terra":{input:2,cachedInput:.2,output:12},"gpt-5.6-luna":{input:.2,cachedInput:.02,output:1.2},"gpt-5.5":{input:5,cachedInput:.5,output:30},"gpt-5.4":{input:2.5,cachedInput:.25,output:15},"gpt-5.4-mini":{input:.75,cachedInput:.075,output:4.5},"gpt-5.3-codex":{input:1.75,cachedInput:.175,output:14},"gpt-5-mini":{input:.4,cachedInput:.1,output:1.6},"gpt-4.1":{input:2,cachedInput:.5,output:8},"gpt-4o":{input:2.5,cachedInput:1.25,output:10},"glm-5.2":{input:1.4,cachedInput:.26,output:4.4},"glm-5.1":{input:1.4,cachedInput:.26,output:4.4},"gemini-3.7-flash":{input:1.5,cachedInput:.15,output:7.5},"gemini-3.6-flash":{input:1.5,cachedInput:.15,output:7.5},"grok-4.7":{input:2,cachedInput:.5,output:6},"grok-4.6":{input:2,cachedInput:.5,output:6},"grok-4.5":{input:2,cachedInput:.3,output:6}},gf=new Set(["gpt-5.3-codex-spark"]),E_=new Set(["auto","claude-fable-5","claude-fable-5-1","claude-haiku-4-5","claude-opus-4-6-thinking","claude-opus-4-6[1m]","claude-opus-4-7[1m]","claude-opus-4-8[1m]","claude-opus-5","claude-opus-5-5","claude-sonnet-4-6","claude-sonnet-4-6[1m]","claude-sonnet-5","gemini-3.1-pro","gemini-3.5-flash","gemini-3.6-flash","gemini-3.7-flash","gpt-5.3-codex","gpt-5.3-codex-spark","gpt-5.4","gpt-5.4-mini","gpt-5.5","gpt-5.6-luna","gpt-5.6-sol","gpt-5.6-terra","gpt-6-astra","gpt-6-luna","gpt-6-sol","gpt-oss-120b","grok-4.5","grok-4.6","grok-4.7"]);});function R_(t){ma=t;}function S_(t){w_=Object.fromEntries(Object.entries(t).map(([e,n])=>[e,{...n}]));}function hf(t){let e=t.toLowerCase().trim();e=e.replace(/\[[^\]]*\]$/g,"");let n=e.lastIndexOf("/");return n>=0&&(e=e.slice(n+1)),e=e.replace(/-\d{8}$/,""),e}function bb(t){if(!t)return;let e="inputPerMillionTokensUsd"in t?t.inputPerMillionTokensUsd:t.input,n="outputPerMillionTokensUsd"in t?t.outputPerMillionTokensUsd:t.output;if(!(!Number.isFinite(e)||e<=0||!Number.isFinite(n)||n<=0))return {inputPerMillionTokensUsd:e,outputPerMillionTokensUsd:n}}function v_(t){if(!t)return;let e=t.replace(/\[[^\]]*\]$/g,"");return bb(w_[e]??Uo[e])}function Cb(t){if(!t)return console.warn("[pricing] missing model id; cost is being recorded as 0"),ga;let e=hf(t),n=vb[e];if(n)return ma[n]??Uo[n]??ga;if(ma[e])return ma[e];if(Uo[e])return Uo[e];if(gf.has(e))return console.warn(`[pricing] unpublished model pricing: ${t}, cost_usd=0`),ga;if(E_.has(e))return console.warn(`[pricing] missing catalog pricing: ${t}, cost_usd=0`),ga;let r={...Uo,...ma};for(let o of Object.keys(r))if(e.includes(o))return r[o];return console.warn(`[pricing] Unknown model: ${t}, cost_usd=0`),ga}function Pb(t,e,n,r=0,o){let i=Cb(n),s=Math.min(r,t),d=(t-s)*i.input/1e6,c=s*i.cachedInput/1e6,l=e*i.output/1e6;return d+c+l}function Sc(t,e,n,r,o,i){return t&&t>0?t:!e&&!n?0:Pb(e??0,n??0,o,r??0)}var vb,ga,ma,w_,Ho=L(()=>{m();mf();mf();vb={opus:"claude-opus-4-8",sonnet:"claude-sonnet-4-6",haiku:"claude-haiku-4-5","codex-mini":"gpt-5.3-codex",codex:"gpt-5.3-codex"},ga={input:0,cachedInput:0,output:0},ma={},w_={};});function vc(t){return Nb[t]??t}function C_(t){return Db.get(t)??t}function bc(t){if(!t)return {};let e=Mb.get(t);return e?{...e}:{model:t}}function ha(t,e){return t==="antigravity"||t==="cli/antigravity"?bc(e):e===void 0?{}:{model:C_(e)}}exports.CLAUDE_OPUS_4_8_BASE_MODEL_ID=void 0;exports.CLAUDE_OPUS_4_8_LEGACY_MODEL_ID=void 0;exports.CLAUDE_MODEL_COMPATIBILITY_PAIRS=void 0;var Nb,Db;exports.ANTIGRAVITY_MODEL_COMPATIBILITY=void 0;var Mb,Xi=L(()=>{m();exports.CLAUDE_OPUS_4_8_BASE_MODEL_ID="claude-opus-4-8",exports.CLAUDE_OPUS_4_8_LEGACY_MODEL_ID="claude-opus-4-8[1m]",exports.CLAUDE_MODEL_COMPATIBILITY_PAIRS=[{baseModelId:"claude-opus-4-8",catalogModelId:"claude-opus-4-8[1m]"},{baseModelId:"claude-opus-4-7",catalogModelId:"claude-opus-4-7[1m]"},{baseModelId:"claude-opus-4-6",catalogModelId:"claude-opus-4-6[1m]"},{baseModelId:"claude-sonnet-4-6",catalogModelId:"claude-sonnet-4-6[1m]"}],Nb={"accept-edits":"acceptEdits",yolo:"bypassPermissions","agent-full-access":"bypassPermissions"};Db=new Map(exports.CLAUDE_MODEL_COMPATIBILITY_PAIRS.map(({baseModelId:t,catalogModelId:e})=>[t,e]));exports.ANTIGRAVITY_MODEL_COMPATIBILITY=[{legacyId:"Gemini 3.7 Flash (High)",model:"gemini-3.7-flash",effort:"high"},{legacyId:"Gemini 3.7 Flash (Medium)",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"Gemini 3.7 Flash (Low)",model:"gemini-3.7-flash",effort:"low"},{legacyId:"Gemini 3.6 Flash (High)",model:"gemini-3.6-flash",effort:"high"},{legacyId:"Gemini 3.6 Flash (Medium)",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"Gemini 3.6 Flash (Low)",model:"gemini-3.6-flash",effort:"low"},{legacyId:"Gemini 3.5 Flash (Medium)",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"Gemini 3.5 Flash (High)",model:"gemini-3.5-flash",effort:"high"},{legacyId:"Gemini 3.5 Flash (Low)",model:"gemini-3.5-flash",effort:"low"},{legacyId:"Gemini 3.1 Pro (Low)",model:"gemini-3.1-pro",effort:"low"},{legacyId:"Gemini 3.1 Pro (High)",model:"gemini-3.1-pro",effort:"high"},{legacyId:"Claude Sonnet 4.6 (Thinking)",model:"claude-sonnet-4-6"},{legacyId:"Claude Opus 4.6 (Thinking)",model:"claude-opus-4-6-thinking"},{legacyId:"GPT-OSS 120B (Medium)",model:"gpt-oss-120b",effort:"medium"},{legacyId:"gemini-3.7-flash-high",model:"gemini-3.7-flash",effort:"high"},{legacyId:"gemini-3.7-flash-medium",model:"gemini-3.7-flash",effort:"medium"},{legacyId:"gemini-3.7-flash-low",model:"gemini-3.7-flash",effort:"low"},{legacyId:"gemini-3.6-flash-high",model:"gemini-3.6-flash",effort:"high"},{legacyId:"gemini-3.6-flash-medium",model:"gemini-3.6-flash",effort:"medium"},{legacyId:"gemini-3.6-flash-low",model:"gemini-3.6-flash",effort:"low"},{legacyId:"gemini-3.5-flash-high",model:"gemini-3.5-flash",effort:"high"},{legacyId:"gemini-3.5-flash-medium",model:"gemini-3.5-flash",effort:"medium"},{legacyId:"gemini-3.5-flash-low",model:"gemini-3.5-flash",effort:"low"},{legacyId:"gemini-3.1-pro-high",model:"gemini-3.1-pro",effort:"high"},{legacyId:"gemini-3.1-pro-low",model:"gemini-3.1-pro",effort:"low"},{legacyId:"gpt-oss-120b-medium",model:"gpt-oss-120b",effort:"medium"}],Mb=new Map(exports.ANTIGRAVITY_MODEL_COMPATIBILITY.map(({legacyId:t,model:e,effort:n})=>[t,n===void 0?{model:e}:{model:e,effort:n}]));});function O_(){return {models:[],modes:[],effort:[],modelOverrides:{},providerOptions:[]}}function Lb(t){return Array.isArray(t)?{models:t,modes:[],effort:[],modelOverrides:{},providerOptions:[]}:t?{models:t.models??[],modes:t.modes??[],effort:t.effort??[],modelOverrides:t.modelOverrides??{},providerOptions:t.providerOptions??[]}:O_()}function Cc(t){yf=Object.fromEntries(Object.entries(t).map(([e,n])=>[e,Lb(n)]));}function Ub(){yf={};}function Yi(t){x_={...t};}function Un(t){return Hn(t).models}function Hn(t){return yf[t]??fa[t]??O_()}function ya(t){return x_[t]??Rc.providers[t]}function Fo(t){return Hn(t).modes}function Pr(t,e){let n=Hn(t);if(e){if(Object.prototype.hasOwnProperty.call(n.modelOverrides,e))return n.modelOverrides[e]?.effort??n.effort;let r=ha(t,e);return r.model===void 0?n.effort:n.modelOverrides[r.model]?.effort??n.effort}return n.effort}function Pc(t){return Hn(t).modelOverrides}function _a(){return Un("claude")}function _f(){return Un("codex")}function Tf(){return Un("copilot")}function Af(){return Un("antigravity")}function Ta(t,e){let n=new Map;for(let r of [...t,...e]){let o=n.get(r.id);if(!o){let{apiPricing:i,recommended:s,...a}=r;n.set(r.id,{...a,...s===true?{recommended:true}:{},...i!=null?{apiPricing:{...i}}:{}});continue}!o.name&&r.name&&(o.name=r.name),o.description==null&&r.description!=null&&(o.description=r.description),o.contextWindowTokens==null&&r.contextWindowTokens!=null&&(o.contextWindowTokens=r.contextWindowTokens),o.tier==null&&r.tier!=null&&(o.tier=r.tier),o.recommended!==true&&r.recommended===true&&(o.recommended=true),o.apiPricing==null&&r.apiPricing!=null&&(o.apiPricing={...r.apiPricing});}return Array.from(n.values())}function Aa(t){return t.map(e=>{let{apiPricing:n,...r}=e,o=v_(e.id);return o?{...r,apiPricing:o}:r})}var yf,x_,un=L(()=>{m();Lo();Ho();Xi();yf={},x_={};});function tT(t,e){let n={};for(let[r,o]of Object.entries(t))o!==void 0&&(e.includes(r)||(n[r]=o));return n}function Ht(t){return tT(t,exports.CREWX_RUNNER_IDENTITY_ENV)}function LC(t){return tT(t,MC)}exports.CREWX_RUNNER_IDENTITY_ENV=void 0;var MC,xr=L(()=>{m();exports.CREWX_RUNNER_IDENTITY_ENV=["CREWX_ASSIGNED_TASK_ID","CREWX_DETACHED_RUNNER"],MC=["CREWX_AGENT_ID","CREWX_PARENT_TASK_ID","CREWX_CALLER_AGENT_ID"];});function Wc(t){return typeof t!="string"?void 0:t.trim()||void 0}function Gc(t){return Wc(t)?.toLowerCase()??""}function ts(t){try{return Et.statSync(t).isFile()}catch{return false}}function HC(t,e){if(t===e)return true;let n=Oe__namespace.default.relative(t,e);return n!==""&&!n.startsWith("..")&&!Oe__namespace.default.isAbsolute(n)}function FC(t,e){if(Oe__namespace.default.basename(t)!==".bin")return false;let n=Oe__namespace.default.dirname(t);if(Oe__namespace.default.basename(n)!=="node_modules")return false;let r=Oe__namespace.default.dirname(n);return HC(r,e)}function ns(t,e={}){if(t.includes("/")||t.includes("\\")||Oe__namespace.default.isAbsolute(t))return t;let n=e.platform??process.platform,r=e.env??process.env,o=Oe__namespace.default.resolve(e.cwd??process.cwd()),i=(e.resolution??"global_first")==="global_first",s=r.PATH??r.Path??process.env.PATH??process.env.Path??"",a=n==="win32"?";":":",d=s.split(a).map(f=>f.trim()).filter(Boolean),c=Oe__namespace.default.extname(t).length>0,l=r.PATHEXT??r.Pathext??process.env.PATHEXT??process.env.Pathext??".EXE;.CMD;.BAT;.COM",u=n==="win32"?c?[""]:l.split(";").map(f=>f.trim()).filter(Boolean).map(f=>f.startsWith(".")?f:`.${f}`):[""];for(let f of d){let g=Oe__namespace.default.resolve(o,f);if(!(i&&FC(g,o)))for(let h of u){let y=Gc(h),_=h.toUpperCase();for(let A of [h,y,_]){let T=Oe__namespace.default.join(g,`${t}${A}`);if(ts(T))return T}}}return t}function BC(t,e){return ns(t,{env:e,platform:"win32",resolution:"local_first"})}function jC(t){if(!ts(t))return null;try{let e=Et.readFileSync(t,"utf8"),n=Oe__namespace.default.dirname(t),r=[];for(let a of e.matchAll(/"([^"\r\n]*)"/g)){let l=(a[1]??"").match(/%~?dp0%?\s*[\\/]*(.*)$/i)?.[1]?.trim();if(!l)continue;let u=l.replace(/[\\/]+/g,Oe__namespace.default.sep).replace(/^[\\/]+/,""),f=Oe__namespace.default.resolve(n,u);ts(f)&&r.push(f);}let o=[],i=new Map;for(let a of e.matchAll(/SET\s+"(\w+)=%~?dp0%?[\\/]?([^"]+)"/gi)){let d=a[1].toUpperCase(),c=a[2].trim().replace(/[\\/]+/g,Oe__namespace.default.sep).replace(/^[\\/]+/,"");i.set(d,Oe__namespace.default.resolve(n,c));}for(let a of e.split(/\r?\n/))if(a.includes("%*"))for(let d of a.matchAll(/"%(\w+)%"/g)){let c=i.get(d[1].toUpperCase());c&&ts(c)&&o.push(c);}let s=a=>a.find(d=>{let c=Gc(Oe__namespace.default.basename(d));return c!=="node.exe"&&c!=="node"})??null;return s(o)??s(r)}catch{return null}}function $C(t,e){if(typeof e=="string")return Wc(e)||null;if(!e||typeof e!="object")return null;if(t){let n=e[t],r=typeof n=="string"?Wc(n):void 0;if(r)return r}for(let n of Object.values(e)){let r=typeof n=="string"?Wc(n):void 0;if(r)return r}return null}function qC(t,e){if(!e)return null;let n=Oe__namespace.default.dirname(t),r=[Oe__namespace.default.resolve(n,"..",e),Oe__namespace.default.resolve(n,"node_modules",e)];for(let o of r){let i=Oe__namespace.default.join(o,"package.json");if(ts(i))try{let s=JSON.parse(Et.readFileSync(i,"utf8")),a=$C(e,s.bin);if(!a)continue;let d=Oe__namespace.default.resolve(o,a);if(ts(d))return d}catch{}}return null}function VC(t){let e=t.platform??process.platform,n=t.env??process.env,r=t.execPath??process.execPath,o=t.cwd,i=t.resolution;if(e!=="win32")return {command:ns(t.command,{cwd:o,env:n,platform:e,resolution:i}),leadingArgv:[],resolution:"direct"};let s=ns(t.command,{cwd:o,env:n,platform:e,resolution:i}),a=Gc(Oe__namespace.default.extname(s));if(a===".js"||a===".cjs"||a===".mjs")return {command:r,leadingArgv:[s],resolution:"node-entrypoint",windowsHide:true};if(a===".cmd"||a===".bat"){let d=jC(s)??qC(s,t.packageName);return d?Gc(Oe__namespace.default.extname(d))===".exe"?{command:d,leadingArgv:[],resolution:"exe-entrypoint",windowsHide:true}:{command:r,leadingArgv:[d],resolution:"node-entrypoint",windowsHide:true}:{command:s,leadingArgv:[],resolution:"unresolved-wrapper"}}return {command:s,leadingArgv:[],resolution:"direct",windowsHide:true}}function WC(t){if(t.candidate.resolution!=="unresolved-wrapper")return {command:t.candidate.command,leadingArgv:t.candidate.leadingArgv,resolution:t.candidate.resolution,windowsHide:t.candidate.windowsHide};if(t.allowShellFallback===true)return {command:t.candidate.command,leadingArgv:[],resolution:"shell-fallback",shell:true,windowsHide:true};throw new Error(`${Oe__namespace.default.basename(t.candidate.command)} wrapper resolved, but no executable/Node entrypoint could be resolved without shell execution.`)}function zo(t){let e=VC(t);return WC({candidate:e,allowShellFallback:t.allowShellFallback})}function Jo(t,e){return {command:t.command,argv:[...t.leadingArgv,...e],resolution:t.resolution,shell:t.shell,windowsHide:t.windowsHide}}var rs=L(()=>{m();});function Df(t){let e=0;for(let n of t)n===Pa&&(e+=1);return e}function Jc(t,e){return Df(e)<Df(t)?e:t}function sT(t){let e=t.match(/(?:^|[^0-9])([0-9]{1,5})(?![0-9])/);if(!e)return null;let n=Number(e[1]);return Number.isInteger(n)&&n>0&&n<=65535?n:null}function JC(t){if(t!==65001)return zC.get(t)}function aT(t){let e=JC(t);if(!e)return null;try{return new TextDecoder(e)}catch{return null}}function KC(){return new Promise(t=>{let e=false,n,r=o=>{e||(e=true,n&&clearTimeout(n),t(o));};n=setTimeout(()=>r(null),oT),n.unref();try{child_process.execFile("chcp.com",[],{encoding:"ascii",timeout:oT,windowsHide:!0},(i,s)=>{if(i){r(null);return}r(sT(String(s)));}).once("error",()=>r(null));}catch{r(null);}})}function Mf(){return process.platform!=="win32"?Promise.resolve(null):(zc||(zc=KC(),zc.then(t=>{Nf=t;},()=>{Nf=null;})),zc)}function Ko(){process.platform==="win32"&&Mf();}function XC(){return Nf}function iT(t,e){if(e.length>=Of)return e.subarray(e.length-Of);let n=Of-e.length,r=t.length>n?t.subarray(t.length-n):t;return Buffer.concat([r,e])}function xa(t,e={}){let n=Buffer.from(t),r=n.toString("utf8");if((e.platform??process.platform)!=="win32"||!r.includes(Pa))return r;let i=e.codePage===void 0?XC():e.codePage;if(i==null)return Ko(),r;let s=aT(i);return s?Jc(r,s.decode(n)):r}async function Lf(t,e={}){let n=new exports.ConsoleDecoder(e);return `${await n.write(t)}${await n.end()}`}var Pa,Of,oT,zC,zc,Nf;exports.ConsoleDecoder=void 0;var eo=L(()=>{m();Pa="\uFFFD",Of=8,oT=1e3,zC=new Map([[437,"ibm437"],[720,"ibm720"],[737,"ibm737"],[775,"ibm775"],[850,"ibm850"],[852,"ibm852"],[855,"ibm855"],[857,"ibm857"],[858,"ibm858"],[862,"ibm862"],[864,"ibm864"],[932,"shift_jis"],[936,"gb18030"],[949,"euc-kr"],[950,"big5"],[866,"ibm866"],[869,"ibm869"],[1250,"windows-1250"],[1251,"windows-1251"],[1252,"windows-1252"],[1253,"windows-1253"],[1254,"windows-1254"],[1255,"windows-1255"],[1256,"windows-1256"],[1257,"windows-1257"],[1258,"windows-1258"]]);exports.ConsoleDecoder=class{platform;detectCodePage;utf8Decoder=new string_decoder.StringDecoder("utf8");codePage;fallbackDecoder;replayTail=Buffer.alloc(0);pendingUtf8="";pendingFallback="";pendingBytes=Buffer.alloc(0);queue=Promise.resolve();ended=false;constructor(e={}){this.platform=e.platform??process.platform,this.detectCodePage=e.detectCodePage??Mf,this.codePage=e.codePage;}write(e){let n=Buffer.from(e);return this.enqueue(()=>this.decodeChunk(n))}end(){return this.enqueue(()=>this.finish())}enqueue(e){let n=this.queue.then(e);return this.queue=n.then(()=>{},()=>{}),n}clearPendingCandidate(){this.pendingUtf8="",this.pendingFallback="",this.pendingBytes=Buffer.alloc(0);}async resolveCodePage(){if(this.codePage!==void 0)return this.codePage;try{this.codePage=await this.detectCodePage();}catch{this.codePage=null;}return this.codePage}async getFallbackDecoder(){if(this.fallbackDecoder!==void 0)return this.fallbackDecoder;let e=await this.resolveCodePage();return this.fallbackDecoder=e===null?null:aT(e),this.fallbackDecoder}async decodeChunk(e){if(this.ended)return "";let n=this.utf8Decoder.write(e),r=n.includes(Pa);if(r&&(this.utf8Decoder=new string_decoder.StringDecoder("utf8")),this.platform!=="win32")return n;if(this.fallbackDecoder){let d=this.fallbackDecoder.decode(e,{stream:true}),c=iT(this.pendingBytes,e);if(r){let l=this.pendingUtf8+n,u=this.pendingFallback+d;return this.clearPendingCandidate(),Jc(l,u)}if(Df(d)>0){let l=this.pendingUtf8+n;return this.clearPendingCandidate(),this.fallbackDecoder=void 0,this.replayTail=c,l}if(this.pendingUtf8||this.pendingFallback){if(this.pendingUtf8+=n,this.pendingFallback+=d,this.pendingBytes=c,n.length===0||d.length===0)return "";let l=this.pendingUtf8;return this.clearPendingCandidate(),l}return n.length===0&&d.length>0?(this.pendingUtf8=n,this.pendingFallback=d,this.pendingBytes=c,""):n}let o=this.replayTail;if(this.fallbackDecoder===void 0&&(this.replayTail=iT(this.replayTail,e)),!r)return n;let i=this.fallbackDecoder===void 0,s=await this.getFallbackDecoder();if(!s)return this.replayTail=Buffer.alloc(0),n;i&&o.length>0&&s.decode(o,{stream:true}),this.replayTail=Buffer.alloc(0);let a=s.decode(e,{stream:true});return Jc(n,a)}async finish(){if(this.ended)return "";this.ended=true;let e=this.utf8Decoder.end();if(this.platform!=="win32")return e;if(this.fallbackDecoder===void 0&&e.includes(Pa)){let i=await this.getFallbackDecoder();i&&this.replayTail.length>0&&(i.decode(this.replayTail,{stream:true}),this.replayTail=Buffer.alloc(0));}let n=this.pendingUtf8+e,r=this.fallbackDecoder?.decode()??"",o=this.pendingFallback+r;return this.clearPendingCandidate(),n.includes(Pa)?Jc(n,o):n}};Ko();});function YC(t){if(t.type!=="usage"||!("input_tokens"in t))return null;let e=Number(t.input_tokens??0),n=Number(t.output_tokens??0),o="cache_read_input_tokens"in t?Number(t.cache_read_input_tokens):void 0,i="cached_input_tokens"in t?Number(t.cached_input_tokens):void 0,s=o!==void 0?o:i??0;return {inputTokens:o!==void 0?e+o:e,outputTokens:n,cachedInputTokens:s}}function QC(t){let e=t.usage;if(!e||typeof e!="object"||Array.isArray(e))return null;let n=e;if(!("input_tokens"in n))return null;let r=Number(n.input_tokens??0),o=Number(n.output_tokens??0),s="cache_read_input_tokens"in n?Number(n.cache_read_input_tokens):void 0,a="cached_input_tokens"in n?Number(n.cached_input_tokens):void 0,d=s!==void 0?s:a??0;return {inputTokens:s!==void 0?r+s:r,outputTokens:o,cachedInputTokens:d}}function ZC(t){if(t.type!=="step_finish")return null;let n=t.part?.tokens;if(!n)return null;let r=Number(n.input??0),o=Number(n.output??0),i=n.cache,s=i?Number(i.read??0):0;return {inputTokens:r+s,outputTokens:o,cachedInputTokens:s}}function dT(t){let e=new Map,n;for(let i of t.split(`
2
2
  `))if(i.trim())try{let s=JSON.parse(i);if(s.type!=="assistant")continue;let a=s.message,d=a?.id,c=a?.usage;if(typeof d!="string"||!c)continue;let l=Number(c.input_tokens??0),u=Number(c.cache_read_input_tokens??0);e.set(d,{inputTokens:l+u,cachedInputTokens:u});let f=a?.model;typeof f=="string"&&f&&(n=f);}catch{}if(e.size===0)return;let r=0,o=0;for(let i of e.values())r+=i.inputTokens,o+=i.cachedInputTokens;return {inputTokens:r,cachedInputTokens:o,model:n}}function Or(t){if(!t||!t.trim())return;let e=null,n=null;for(let r of t.split(`
3
3
  `))if(r.trim())try{let o=JSON.parse(r),i=ZC(o);if(i){n||(n={inputTokens:0,outputTokens:0,cachedInputTokens:0}),n.inputTokens+=i.inputTokens,n.outputTokens+=i.outputTokens,n.cachedInputTokens+=i.cachedInputTokens;continue}let s=YC(o)??QC(o);s&&(e=s);}catch{}return n||(e??void 0)}var Xo=L(()=>{m();});exports.ProviderError=void 0;var Yo,Qo,Oa,Nr=L(()=>{m();exports.ProviderError=class extends Error{constructor(n,r,o){super(n);this.providerStr=r;this.name="ProviderError",this.code=o?.code??"UNKNOWN",this.kind=o?.kind??(this.code==="UNKNOWN"?"transient":void 0),this.retryAfterMs=o?.retryAfterMs;}providerStr;code;kind;retryAfterMs;stdout},Yo=class extends exports.ProviderError{constructor(e,n){super(e,n,{code:"TIMEOUT_IDLE",kind:"permanent"}),this.name="IdleTimeoutError";}},Qo=class extends exports.ProviderError{constructor(e,n){super(e,n,{code:"TIMEOUT_TOTAL",kind:"permanent"}),this.name="TotalTimeoutError";}},Oa=class extends exports.ProviderError{constructor(e,n){super(e,n,{code:"TIMEOUT_RESUME",kind:"transient"}),this.name="ResumeTimeoutError";}};});exports.RateLimitError=void 0;var Kc=L(()=>{m();Nr();exports.RateLimitError=class extends exports.ProviderError{name="RateLimitError";constructor(e,n="cli/claude"){super(e,n,{code:"QUOTA_EXHAUSTED",kind:"transient"});}};});function Yc(t){if(!Xc(t)||t.type!=="item.started"||!lT(t)||!cT(t))return false;let e=t.item;return !Xc(e)||!lT(e)||!cT(e)||!Uf(e.id)?false:e.type==="web_search"?e.query===""&&Xc(e.action)&&e.action.type==="other":e.type==="file_change"?e.status!=="in_progress"||!Array.isArray(e.changes)||e.changes.length===0?false:e.changes.every(n=>Xc(n)&&Uf(n.path)&&Uf(n.kind)):false}function Xc(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function uT(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Uf(t){return typeof t=="string"&&t.trim().length>0}function cT(t){return !uT(t,"status")||t.status==="in_progress"}function lT(t){for(let e of ["error","errors","isError","is_error"])if(uT(t,e))return false;return true}var Hf=L(()=>{m();});function Ff(t,e){let n=t.trimStart();if(!n.startsWith("{"))return false;let r;try{r=JSON.parse(n);}catch{return false}let o=r.type;if(typeof o!="string")return false;let i=e?TP[e]:void 0;return i?i(r,o):Object.values(gT).some(s=>s(r,o))}function Zo(t,e){let n=t.split(`
4
4
  `).filter(r=>r.trim());return n.length===0?false:n.every(r=>Ff(r,e))}function eP(t,e){let n;try{n=JSON.parse(t.trim());}catch{return false}if(!no(n))return false;let r;switch(e){case "claude":r=aP(n);break;case "grok":r=dP(n);break;case "codex":r=cP(n);break;default:return false}return r?Ff(t,e):false}function fn(t){return typeof t=="object"&&t!==null}function no(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function wn(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function sr(t){return typeof t=="string"&&t.trim().length>0}function os(t,e){return Object.keys(t).every(n=>e.includes(n))}function Na(t,e){return e.every(n=>!wn(t,n)||typeof t[n]=="string")}function aP(t){let e=t.type;if(typeof e!="string")return false;if(e==="system")return t.subtype==="init"||t.subtype==="thinking_tokens"?typeof t.session_id=="string":t.subtype==="task_started"?os(t,tP)&&Na(t,["description","uuid"])&&sr(t.session_id)&&sr(t.tool_use_id)&&sr(t.task_id)&&t.task_type==="local_bash"&&t.is_backgrounded===false:t.subtype==="task_notification"?os(t,nP)&&Na(t,["summary","uuid"])&&sr(t.session_id)&&sr(t.tool_use_id)&&sr(t.task_id)&&t.status==="completed"&&wn(t,"output_file")&&t.output_file==="":t.subtype==="background_tasks_changed"?!os(t,rP)||!Na(t,["uuid"])||!sr(t.session_id)||!Array.isArray(t.tasks)?false:t.tasks.every(n=>no(n)&&os(n,oP)&&sr(n.task_id)&&Na(n,["task_type","description"])):t.subtype==="task_updated"?!os(t,iP)||!Na(t,["uuid"])||!sr(t.session_id)||!sr(t.task_id)||!no(t.patch)||Object.keys(t.patch).length===0||!os(t.patch,sP)?false:(!wn(t.patch,"is_backgrounded")||typeof t.patch.is_backgrounded=="boolean")&&(!wn(t.patch,"status")||t.patch.status==="completed")&&(!wn(t.patch,"end_time")||typeof t.patch.end_time=="number"&&Number.isFinite(t.patch.end_time)):false;if(e==="rate_limit_event"){let n=t.rate_limit_info;return no(n)&&n.status==="allowed"}if(e==="result"){let n=t.permission_denials;return t.subtype==="success"&&t.is_error===false&&(t.api_error_status===void 0||t.api_error_status===null)&&(t.terminal_reason===void 0||t.terminal_reason==="completed")&&(t.stop_reason===void 0||t.stop_reason==="end_turn")&&(n===void 0||Array.isArray(n)&&n.length===0)}if(e==="tool_progress")return t.heartbeat===true&&typeof t.tool_use_id=="string";if(e==="assistant"){let n=t.message;return !no(n)||!Array.isArray(n.content)||n.content.length===0?false:n.content.every(r=>no(r)&&r.type==="thinking"&&typeof r.thinking=="string"&&r.thinking.trim()===""&&typeof r.signature=="string")}return false}function dP(t){return t.type!=="tool_call_update"||typeof t.toolCallId!="string"||t.toolCallId.length===0||!wn(t,"status")||t.status!==null&&t.status!=="in_progress"||!pT(t)?false:!wn(t,"rawOutput")||t.rawOutput===null?true:uP(t.rawOutput)}function cP(t){return t.type==="thread.started"?typeof t.thread_id!="string"||t.thread_id.length===0?false:Object.keys(t).every(e=>e==="type"||e==="thread_id"):Yc(t)}function pT(t){for(let e of ["isError","is_error"])if(wn(t,e)&&(typeof t[e]!="boolean"||t[e]!==false))return false;for(let e of ["error","errors"])if(wn(t,e)&&!lP(t[e]))return false;return true}function lP(t){return t===null||t===""||Array.isArray(t)&&t.length===0||no(t)&&Object.keys(t).length===0}function uP(t){if(!no(t)||!pT(t))return false;if(wn(t,"exit_code")){let e=t.exit_code;if(!(e===null||typeof e=="number"&&Number.isFinite(e)&&e===0))return false}return !(wn(t,"signal")&&t.signal!==null||wn(t,"timed_out")&&t.timed_out!==false)}function fT(t,e){if(e==="assistant"||e==="user"){let n=t.message;return fn(n)&&Array.isArray(n.content)}return e==="system"?typeof t.subtype=="string"||typeof t.session_id=="string":e==="result"?typeof t.result=="string"||fn(t.usage)||typeof t.total_cost_usd=="number"||typeof t.is_error=="boolean":e==="rate_limit_event"?fn(t.rate_limit_info):e==="tool_progress"?t.heartbeat===true&&typeof t.tool_use_id=="string":false}function pP(t,e){return typeof t.session_id=="string"||typeof t.uuid=="string"?true:fT(t,e)}function fP(t,e){if(e==="error")return typeof t.message=="string"||typeof t.errorMessage=="string"||typeof t.error=="string"||fn(t.error);if(e==="item.updated"||e.startsWith("thread.")||e.startsWith("turn."))return true;if(e==="item.started"||e==="item.completed"){let n=t.item;return fn(n)&&typeof n.type=="string"}return false}function gP(t,e){return e==="step_start"||e==="step_finish"?typeof t.stepID=="string"||typeof t.sessionID=="string"||fn(t.part):e==="text"||e==="tool_use"?fn(t.part):e==="result"?typeof t.result=="string":false}function mP(t,e){return !!(typeof t.stepID=="string"||typeof t.sessionID=="string"||fn(t.part)||e==="result"&&typeof t.result=="string")}function hP(t,e){return e.startsWith("assistant.")||e.startsWith("tool.execution")||e==="user.message"?fn(t.data):e==="result"?typeof t.result=="string":false}function yP(t,e){return e==="message"?typeof t.role=="string":e==="tool_use"?typeof t.tool_name=="string"||typeof t.tool_id=="string":e==="tool_result"?typeof t.tool_id=="string"||typeof t.status=="string":false}function _P(t,e){return e==="available_commands"?fn(t.tools)||fn(t.commands):e==="usage"?fn(t.usage):e==="end"?typeof t.sessionId=="string"||typeof t.stopReason=="string"||fn(t.usage):e==="tool_call_update"?typeof t.toolCallId=="string"||typeof t.status=="string":false}var tP,nP,rP,oP,iP,sP,gT,TP,Da=L(()=>{m();Hf();tP=["type","subtype","task_id","tool_use_id","session_id","task_type","is_backgrounded","description","uuid"],nP=["type","subtype","task_id","tool_use_id","session_id","status","output_file","summary","uuid"],rP=["type","subtype","tasks","uuid","session_id"],oP=["task_id","task_type","description"],iP=["type","subtype","task_id","patch","uuid","session_id"],sP=["is_backgrounded","status","end_time"];gT={claude:fT,codex:fP,opencode:gP,copilot:hP,gemini:yP},TP={...gT,claude:pP,opencode:mP,grok:_P,antigravity:()=>false};});function Fn(t){return /crewx\s+(q|query|x|execute)\s/.test(t)}function Bn(t,e,n){let r=e.match(/@(\S+)/);return {timestamp:t,type:"agent_call",targetAgent:r?.[1]?.replace(/["']/g,""),toolInput:e,...typeof n=="string"&&n.length>0?{toolUseId:n}:{}}}var is=L(()=>{m();});function hT(t){wP(t);let e={schema:1};return t.taskId!==void 0&&(e.taskId=t.taskId),t.agentId!==void 0&&(e.agentId=t.agentId),e.isError=t.isError,`${exports.DELEGATION_RESULT_PREFIX}${JSON.stringify(e)}]]`}function el(t){let e=RP(t),n=e.map((i,s)=>({line:i,index:s})).filter(({line:i})=>vP(i.value)),r=SP(e);return {result:n.length===1&&n[0].index===r?bP(n[0].line.value):null,resultPreview:PP(e,n),hasReservedLine:n.length>0}}function yT(t){return el(t).resultPreview}function gn(t,e){let n=el(t);return {resultPreview:n.resultPreview,isError:e||n.result?.isError===true,...n.hasReservedLine?{delegationResult:n.result}:{}}}function wP(t){if(t.schema!==void 0&&t.schema!==1)throw new TypeError("Delegation result schema must be 1");if(typeof t.isError!="boolean")throw new TypeError("Delegation result isError must be boolean");let e=t.taskId!==void 0,n=t.agentId!==void 0;if(e!==n)throw new TypeError("Delegation result taskId and agentId must be provided together");if(!e&&!t.isError)throw new TypeError("Successful delegation results require taskId and agentId");if(e&&(!Zc(t.taskId)||!Zc(t.agentId)))throw new TypeError("Delegation result taskId and agentId must be non-empty strings")}function RP(t){let e=[],n=0;for(let r=0;r<t.length;r++){let o=t[r];if(o!==`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewx/sdk",
3
- "version": "0.9.0-rc.123",
3
+ "version": "0.9.0-rc.124",
4
4
  "license": "UNLICENSED",
5
5
  "engines": {
6
6
  "node": ">=20.19.0"