@testmuai/kane-cli 0.4.5 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ChromeProfilePicker-DHEEFWVV.js → ChromeProfilePicker-HBFXP75A.js} +1 -1
- package/dist/{CliFeedbackPrompt-XVBAXCYR.js → CliFeedbackPrompt-WICQY46X.js} +1 -1
- package/dist/{CliUploadProgress-4S3BH3LI.js → CliUploadProgress-XJ6CCNCR.js} +1 -1
- package/dist/{ConfigView-Q5NNM5T5.js → ConfigView-GPMON37C.js} +1 -1
- package/dist/FolderPicker-IZXWPOTS.js +2 -0
- package/dist/{HelpView-2T36LFLG.js → HelpView-7SDQKJFW.js} +1 -1
- package/dist/{InfoBox-TBM3RTBH.js → InfoBox-PNFLVOCW.js} +1 -1
- package/dist/{LinksBox-WRMIRJLF.js → LinksBox-R23D7MOQ.js} +1 -1
- package/dist/{ProfilesView-GGYBHIOM.js → ProfilesView-7BXBJQWU.js} +1 -1
- package/dist/{ProjectPicker-UEVYQGLY.js → ProjectPicker-ZZQKNTV5.js} +1 -1
- package/dist/{SaveSessionPrompt-KYL6AOGP.js → SaveSessionPrompt-HJYSPZH5.js} +1 -1
- package/dist/SingleShotApp-SLABQ7BW.js +2 -0
- package/dist/{SummaryBox-B4QJDLQD.js → SummaryBox-WWMBNF6O.js} +1 -1
- package/dist/TestMdRunView-33RBMIZB.js +2 -0
- package/dist/{WhoamiView-BY57RUTR.js → WhoamiView-JEXEKDXI.js} +1 -1
- package/dist/{changelog-OM726WGL.js → changelog-74AVV4RG.js} +1 -1
- package/dist/{chunk-SNV7DD5M.js → chunk-264ZEJT7.js} +1 -1
- package/dist/{chunk-E5WH7UGU.js → chunk-2RXJ7SIN.js} +1 -1
- package/dist/{chunk-AYWWHMM7.js → chunk-2TT2RIVP.js} +1 -1
- package/dist/{chunk-F22NYY2I.js → chunk-33273OM4.js} +1 -1
- package/dist/{chunk-BDMQY6N6.js → chunk-3TNWLCIU.js} +1 -1
- package/dist/{chunk-S6DJADYF.js → chunk-554BXLWE.js} +1 -1
- package/dist/{chunk-VF6NQFGC.js → chunk-6E4FS7EC.js} +1 -1
- package/dist/{chunk-GG73PQBI.js → chunk-6IE22TW6.js} +2 -2
- package/dist/{chunk-LY2SBSUM.js → chunk-7NELLGD4.js} +1 -1
- package/dist/{chunk-FTWHK7PH.js → chunk-7YZO2QQ6.js} +1 -1
- package/dist/{chunk-K77SVBYU.js → chunk-AFUGVKF7.js} +1 -1
- package/dist/{chunk-WGYUOXJX.js → chunk-AR6VSIYN.js} +1 -1
- package/dist/{chunk-I5KH34BI.js → chunk-BACEOONG.js} +1 -1
- package/dist/{chunk-N7OAA2OD.js → chunk-BFYV4TJW.js} +1 -1
- package/dist/chunk-BSTC6BLT.js +5 -0
- package/dist/{chunk-GVXJKQF7.js → chunk-BY7T5OJN.js} +1 -1
- package/dist/{chunk-62ZUB3DG.js → chunk-H7TODYZ2.js} +1 -1
- package/dist/{chunk-4D5Z4OAS.js → chunk-HHDG2TGX.js} +1 -1
- package/dist/{chunk-XT45Z36Q.js → chunk-HWCBOJOP.js} +1 -1
- package/dist/{chunk-X6FNT3EY.js → chunk-J54IX7BP.js} +1 -1
- package/dist/{chunk-73TFORTS.js → chunk-J7QJ5Q3J.js} +1 -1
- package/dist/{chunk-DVRZITSK.js → chunk-JTXYQ2KH.js} +1 -1
- package/dist/{chunk-6XWZHEQR.js → chunk-KKXWOTVX.js} +1 -1
- package/dist/{chunk-Q5XYITHT.js → chunk-LAPX4BA7.js} +1 -1
- package/dist/{chunk-7XX4XFCV.js → chunk-LFQ2MZYC.js} +1 -1
- package/dist/{chunk-4EDPYAMW.js → chunk-NURJMABT.js} +2 -2
- package/dist/{chunk-D2J4EILJ.js → chunk-OUO4AO3Z.js} +3 -3
- package/dist/{chunk-EWID6VQA.js → chunk-Q3RXDN74.js} +1 -1
- package/dist/{chunk-MBK47QLD.js → chunk-SC4KKGUA.js} +1 -1
- package/dist/{chunk-HIFHTE2F.js → chunk-T7ECNTOU.js} +2 -2
- package/dist/{chunk-EQLDX5LN.js → chunk-TOR7WEDD.js} +1 -1
- package/dist/{chunk-5WMT2WVI.js → chunk-TQZPYXN7.js} +1 -1
- package/dist/{chunk-SDY6K7ZR.js → chunk-WILJRFXU.js} +1 -1
- package/dist/{chunk-UJJX2Y5K.js → chunk-WVAX7IIU.js} +2 -2
- package/dist/{chunk-6GWQ2RA4.js → chunk-WXV73W6R.js} +1 -1
- package/dist/{chunk-D3NAXZ2R.js → chunk-Y6MB5JP7.js} +9 -9
- package/dist/{chunk-T4WDQ7I4.js → chunk-YC7GOEEW.js} +1 -1
- package/dist/{generate-headless-6SH67NQN.js → generate-headless-FX7EAINU.js} +2 -2
- package/dist/index.js +8 -8
- package/dist/{list-commands-4OC75YL3.js → list-commands-M35SC7YD.js} +1 -1
- package/dist/login-flow-OBWXOIJ2.js +2 -0
- package/dist/{persist-recorded-session-HXVQRBJV.js → persist-recorded-session-V4OYUDBM.js} +1 -1
- package/dist/{pipeline-IXEPO6AR.js → pipeline-26FR6BXR.js} +1 -1
- package/dist/{recording-banner-G3BDHTZU.js → recording-banner-5V66U2RF.js} +1 -1
- package/dist/{require-project-folder-VSJ3UJL6.js → require-project-folder-J5IFDFQZ.js} +1 -1
- package/dist/{run-test-md-JVYGWYZJ.js → run-test-md-XSR7NXBR.js} +3 -3
- package/dist/{skill-installer-2CMWR2TX.js → skill-installer-WZCILRBJ.js} +1 -1
- package/dist/tcg-generate-2H5AUMWY.js +2 -0
- package/dist/testmd-actions-QKMEYBUJ.js +2 -0
- package/dist/token-refresh-VUGZH2DA.js +2 -0
- package/dist/{validate-basic-F6DP3VUX.js → validate-basic-3W5ODPRI.js} +1 -1
- package/dist/{version-check-JHH3FYZ4.js → version-check-43WUFMCW.js} +1 -1
- package/package.json +6 -6
- package/dist/FolderPicker-T575L6QE.js +0 -2
- package/dist/SingleShotApp-DOEY5FTW.js +0 -2
- package/dist/TestMdRunView-J3M33BMA.js +0 -2
- package/dist/chunk-K74XYWPF.js +0 -5
- package/dist/login-flow-GLIUZ3XD.js +0 -2
- package/dist/tcg-generate-JNA7RLSH.js +0 -2
- package/dist/testmd-actions-3YF6E3W6.js +0 -2
- package/dist/token-refresh-TPRQLK6B.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as Cs,b as Po,c as dn,d as Is,e as fn,f as ks,h as As,i as _s,j as Ps,k as Ls,l as Bs,m as St,n as $s,o as Os,p as Ds,q as mn,r as Ns,s as Lo,t as js,u as Ms,v as Vs}from"./chunk-LY2SBSUM.js";import{a as bo,b as Ni}from"./chunk-3MSXQU2C.js";import{a as Fs}from"./chunk-S6DJADYF.js";import{a as Hi,b as Gi,d as Zi,e as es,f as ts,g as Co,h as ss,j as gs,k as ko,l as Ao,n as hs,o as xs,p as vs,q as Ss,r as _o,s as bs,t as ws,u as Rs,w as vt,x as ys}from"./chunk-4EDPYAMW.js";import{a as Ts}from"./chunk-D3NAXZ2R.js";import{a as ls,b as us,l as Es}from"./chunk-GG73PQBI.js";import{a as qs,b as Bo}from"./chunk-6GWQ2RA4.js";import{a as ds}from"./chunk-PUU7A26K.js";import{b as cs}from"./chunk-AH4AXJML.js";import{a as ji,b as wo,c as $t,d as an,e as os,f as is}from"./chunk-SDY6K7ZR.js";import{c as cn}from"./chunk-EWID6VQA.js";import{a as rr}from"./chunk-73TFORTS.js";import{a as Qi}from"./chunk-FPFOW6BS.js";import{a as Vi,b as Fi,c as qi,d as rs,e as ns,f as as,h as fs}from"./chunk-I5KH34BI.js";import{a as ln,b as ms,c as Io}from"./chunk-GVXJKQF7.js";import{a as Ro}from"./chunk-6XWZHEQR.js";import{c as ps}from"./chunk-K77SVBYU.js";import{a as un}from"./chunk-Q5XYITHT.js";import{b as er}from"./chunk-EQLDX5LN.js";import{b as tr}from"./chunk-T4WDQ7I4.js";import{a as Wi,d as xt,e as Cr,f as Ot,g as nr}from"./chunk-LOIRZFV3.js";import{g as zi}from"./chunk-DVRZITSK.js";import{a as Er}from"./chunk-LPUQ4HWQ.js";import{a as at,b as pt,c as Xi}from"./chunk-VE3SUJMA.js";import{a as Ki}from"./chunk-FTWHK7PH.js";import{a as Ji}from"./chunk-SNV7DD5M.js";import{a as sn}from"./chunk-WGYUOXJX.js";import{a as Yi}from"./chunk-BDMQY6N6.js";import{a as ze}from"./chunk-5WMT2WVI.js";import{a as Ui}from"./chunk-RZ4F3BHX.js";import{a as To}from"./chunk-7XX4XFCV.js";import{a as Et}from"./chunk-AYWWHMM7.js";import{b as Mi}from"./chunk-C6S4IEBC.js";import{b as yo}from"./chunk-N7OAA2OD.js";import{c as Eo}from"./chunk-4D5Z4OAS.js";import{a as Zt}from"./chunk-XT45Z36Q.js";import{a as mt,c as We,j as vo,n as Di,o as So,x as c}from"./chunk-X6FNT3EY.js";import{a as M}from"./chunk-HCBYKLMW.js";import{a as S,b as s,i as Ee,j as Oi,k as on}from"./chunk-C44QQJR4.js";import{a as ve}from"./chunk-6YGTRKDT.js";import{c as z,e as k}from"./chunk-UR6MHSHU.js";var ir=z((_g,Gs)=>{"use strict";var ju="2.0.0",Mu=Number.MAX_SAFE_INTEGER||9007199254740991,Vu=16,Fu=250,qu=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Gs.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Vu,MAX_SAFE_BUILD_LENGTH:Fu,MAX_SAFE_INTEGER:Mu,RELEASE_TYPES:qu,SEMVER_SPEC_VERSION:ju,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Ir=z((Pg,Xs)=>{"use strict";var Uu=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};Xs.exports=Uu});var sr=z((bt,Ws)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:$o,MAX_SAFE_BUILD_LENGTH:Hu,MAX_LENGTH:Gu}=ir(),Xu=Ir();bt=Ws.exports={};var Wu=bt.re=[],zu=bt.safeRe=[],D=bt.src=[],Yu=bt.safeSrc=[],N=bt.t={},Ku=0,Oo="[a-zA-Z0-9-]",Ju=[["\\s",1],["\\d",Gu],[Oo,Hu]],Qu=e=>{for(let[t,r]of Ju)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},K=(e,t,r)=>{let n=Qu(t),o=Ku++;Xu(e,o,t),N[e]=o,D[o]=t,Yu[o]=n,Wu[o]=new RegExp(t,r?"g":void 0),zu[o]=new RegExp(n,r?"g":void 0)};K("NUMERICIDENTIFIER","0|[1-9]\\d*");K("NUMERICIDENTIFIERLOOSE","\\d+");K("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Oo}*`);K("MAINVERSION",`(${D[N.NUMERICIDENTIFIER]})\\.(${D[N.NUMERICIDENTIFIER]})\\.(${D[N.NUMERICIDENTIFIER]})`);K("MAINVERSIONLOOSE",`(${D[N.NUMERICIDENTIFIERLOOSE]})\\.(${D[N.NUMERICIDENTIFIERLOOSE]})\\.(${D[N.NUMERICIDENTIFIERLOOSE]})`);K("PRERELEASEIDENTIFIER",`(?:${D[N.NONNUMERICIDENTIFIER]}|${D[N.NUMERICIDENTIFIER]})`);K("PRERELEASEIDENTIFIERLOOSE",`(?:${D[N.NONNUMERICIDENTIFIER]}|${D[N.NUMERICIDENTIFIERLOOSE]})`);K("PRERELEASE",`(?:-(${D[N.PRERELEASEIDENTIFIER]}(?:\\.${D[N.PRERELEASEIDENTIFIER]})*))`);K("PRERELEASELOOSE",`(?:-?(${D[N.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${D[N.PRERELEASEIDENTIFIERLOOSE]})*))`);K("BUILDIDENTIFIER",`${Oo}+`);K("BUILD",`(?:\\+(${D[N.BUILDIDENTIFIER]}(?:\\.${D[N.BUILDIDENTIFIER]})*))`);K("FULLPLAIN",`v?${D[N.MAINVERSION]}${D[N.PRERELEASE]}?${D[N.BUILD]}?`);K("FULL",`^${D[N.FULLPLAIN]}$`);K("LOOSEPLAIN",`[v=\\s]*${D[N.MAINVERSIONLOOSE]}${D[N.PRERELEASELOOSE]}?${D[N.BUILD]}?`);K("LOOSE",`^${D[N.LOOSEPLAIN]}$`);K("GTLT","((?:<|>)?=?)");K("XRANGEIDENTIFIERLOOSE",`${D[N.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);K("XRANGEIDENTIFIER",`${D[N.NUMERICIDENTIFIER]}|x|X|\\*`);K("XRANGEPLAIN",`[v=\\s]*(${D[N.XRANGEIDENTIFIER]})(?:\\.(${D[N.XRANGEIDENTIFIER]})(?:\\.(${D[N.XRANGEIDENTIFIER]})(?:${D[N.PRERELEASE]})?${D[N.BUILD]}?)?)?`);K("XRANGEPLAINLOOSE",`[v=\\s]*(${D[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${D[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${D[N.XRANGEIDENTIFIERLOOSE]})(?:${D[N.PRERELEASELOOSE]})?${D[N.BUILD]}?)?)?`);K("XRANGE",`^${D[N.GTLT]}\\s*${D[N.XRANGEPLAIN]}$`);K("XRANGELOOSE",`^${D[N.GTLT]}\\s*${D[N.XRANGEPLAINLOOSE]}$`);K("COERCEPLAIN",`(^|[^\\d])(\\d{1,${$o}})(?:\\.(\\d{1,${$o}}))?(?:\\.(\\d{1,${$o}}))?`);K("COERCE",`${D[N.COERCEPLAIN]}(?:$|[^\\d])`);K("COERCEFULL",D[N.COERCEPLAIN]+`(?:${D[N.PRERELEASE]})?(?:${D[N.BUILD]})?(?:$|[^\\d])`);K("COERCERTL",D[N.COERCE],!0);K("COERCERTLFULL",D[N.COERCEFULL],!0);K("LONETILDE","(?:~>?)");K("TILDETRIM",`(\\s*)${D[N.LONETILDE]}\\s+`,!0);bt.tildeTrimReplace="$1~";K("TILDE",`^${D[N.LONETILDE]}${D[N.XRANGEPLAIN]}$`);K("TILDELOOSE",`^${D[N.LONETILDE]}${D[N.XRANGEPLAINLOOSE]}$`);K("LONECARET","(?:\\^)");K("CARETTRIM",`(\\s*)${D[N.LONECARET]}\\s+`,!0);bt.caretTrimReplace="$1^";K("CARET",`^${D[N.LONECARET]}${D[N.XRANGEPLAIN]}$`);K("CARETLOOSE",`^${D[N.LONECARET]}${D[N.XRANGEPLAINLOOSE]}$`);K("COMPARATORLOOSE",`^${D[N.GTLT]}\\s*(${D[N.LOOSEPLAIN]})$|^$`);K("COMPARATOR",`^${D[N.GTLT]}\\s*(${D[N.FULLPLAIN]})$|^$`);K("COMPARATORTRIM",`(\\s*)${D[N.GTLT]}\\s*(${D[N.LOOSEPLAIN]}|${D[N.XRANGEPLAIN]})`,!0);bt.comparatorTrimReplace="$1$2$3";K("HYPHENRANGE",`^\\s*(${D[N.XRANGEPLAIN]})\\s+-\\s+(${D[N.XRANGEPLAIN]})\\s*$`);K("HYPHENRANGELOOSE",`^\\s*(${D[N.XRANGEPLAINLOOSE]})\\s+-\\s+(${D[N.XRANGEPLAINLOOSE]})\\s*$`);K("STAR","(<|>)?=?\\s*\\*");K("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");K("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var pn=z((Lg,zs)=>{"use strict";var Zu=Object.freeze({loose:!0}),ed=Object.freeze({}),td=e=>e?typeof e!="object"?Zu:e:ed;zs.exports=td});var Do=z((Bg,Js)=>{"use strict";var Ys=/^[0-9]+$/,Ks=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:e<t?-1:1;let r=Ys.test(e),n=Ys.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1},rd=(e,t)=>Ks(t,e);Js.exports={compareIdentifiers:Ks,rcompareIdentifiers:rd}});var Be=z(($g,Zs)=>{"use strict";var gn=Ir(),{MAX_LENGTH:Qs,MAX_SAFE_INTEGER:hn}=ir(),{safeRe:xn,t:vn}=sr(),nd=pn(),{compareIdentifiers:No}=Do(),od=(e,t)=>{let r=t.split(".");if(r.length>e.length)return!1;for(let n=0;n<r.length;n++)if(No(e[n],r[n])!==0)return!1;return!0},jo=class e{constructor(t,r){if(r=nd(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>Qs)throw new TypeError(`version is longer than ${Qs} characters`);gn("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?xn[vn.LOOSE]:xn[vn.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>hn||this.major<0)throw new TypeError("Invalid major version");if(this.minor>hn||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>hn||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){let i=+o;if(i>=0&&i<hn)return i}return o}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(gn("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),this.major<t.major?-1:this.major>t.major?1:this.minor<t.minor?-1:this.minor>t.minor?1:this.patch<t.patch?-1:this.patch>t.patch?1:0}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],o=t.prerelease[r];if(gn("prerelease compare",r,n,o),n===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(n===void 0)return-1;if(n===o)continue;return No(n,o)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let n=this.build[r],o=t.build[r];if(gn("build compare",r,n,o),n===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(n===void 0)return-1;if(n===o)continue;return No(n,o)}while(++r)}inc(t,r,n){if(t.startsWith("pre")){if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let o=`-${r}`.match(this.options.loose?xn[vn.PRERELEASELOOSE]:xn[vn.PRERELEASE]);if(!o||o[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let o=Number(n)?1:0;if(this.prerelease.length===0)this.prerelease=[o];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);if(i===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(r){let i=[r,o];if(n===!1&&(i=[r]),od(this.prerelease,r)){let a=this.prerelease[r.split(".").length];isNaN(a)&&(this.prerelease=i)}else this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Zs.exports=jo});var Dt=z((Og,ta)=>{"use strict";var ea=Be(),id=(e,t,r=!1)=>{if(e instanceof ea)return e;try{return new ea(e,t)}catch(n){if(!r)return null;throw n}};ta.exports=id});var na=z((Dg,ra)=>{"use strict";var sd=Dt(),ad=(e,t)=>{let r=sd(e,t);return r?r.version:null};ra.exports=ad});var ia=z((Ng,oa)=>{"use strict";var cd=Dt(),ld=(e,t)=>{let r=cd(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};oa.exports=ld});var ca=z((jg,aa)=>{"use strict";var sa=Be(),ud=(e,t,r,n,o)=>{typeof r=="string"&&(o=n,n=r,r=void 0);try{return new sa(e instanceof sa?e.version:e,r).inc(t,n,o).version}catch{return null}};aa.exports=ud});var da=z((Mg,ua)=>{"use strict";var la=Dt(),dd=(e,t)=>{let r=la(e,null,!0),n=la(t,null,!0),o=r.compare(n);if(o===0)return null;let i=o>0,a=i?r:n,u=i?n:r,d=!!a.prerelease.length;if(!!u.prerelease.length&&!d){if(!u.patch&&!u.minor)return"major";if(u.compareMain(a)===0)return u.minor&&!u.patch?"minor":"patch"}let R=d?"pre":"";return r.major!==n.major?R+"major":r.minor!==n.minor?R+"minor":r.patch!==n.patch?R+"patch":"prerelease"};ua.exports=dd});var ma=z((Vg,fa)=>{"use strict";var fd=Be(),md=(e,t)=>new fd(e,t).major;fa.exports=md});var ga=z((Fg,pa)=>{"use strict";var pd=Be(),gd=(e,t)=>new pd(e,t).minor;pa.exports=gd});var xa=z((qg,ha)=>{"use strict";var hd=Be(),xd=(e,t)=>new hd(e,t).patch;ha.exports=xd});var Sa=z((Ug,va)=>{"use strict";var vd=Dt(),Sd=(e,t)=>{let r=vd(e,t);return r&&r.prerelease.length?r.prerelease:null};va.exports=Sd});var ct=z((Hg,wa)=>{"use strict";var ba=Be(),bd=(e,t,r)=>new ba(e,r).compare(new ba(t,r));wa.exports=bd});var Ta=z((Gg,Ra)=>{"use strict";var wd=ct(),Rd=(e,t,r)=>wd(t,e,r);Ra.exports=Rd});var Ea=z((Xg,ya)=>{"use strict";var Td=ct(),yd=(e,t)=>Td(e,t,!0);ya.exports=yd});var Sn=z((Wg,Ia)=>{"use strict";var Ca=Be(),Ed=(e,t,r)=>{let n=new Ca(e,r),o=new Ca(t,r);return n.compare(o)||n.compareBuild(o)};Ia.exports=Ed});var Aa=z((zg,ka)=>{"use strict";var Cd=Sn(),Id=(e,t)=>e.sort((r,n)=>Cd(r,n,t));ka.exports=Id});var Pa=z((Yg,_a)=>{"use strict";var kd=Sn(),Ad=(e,t)=>e.sort((r,n)=>kd(n,r,t));_a.exports=Ad});var kr=z((Kg,La)=>{"use strict";var _d=ct(),Pd=(e,t,r)=>_d(e,t,r)>0;La.exports=Pd});var bn=z((Jg,Ba)=>{"use strict";var Ld=ct(),Bd=(e,t,r)=>Ld(e,t,r)<0;Ba.exports=Bd});var Mo=z((Qg,$a)=>{"use strict";var $d=ct(),Od=(e,t,r)=>$d(e,t,r)===0;$a.exports=Od});var Vo=z((Zg,Oa)=>{"use strict";var Dd=ct(),Nd=(e,t,r)=>Dd(e,t,r)!==0;Oa.exports=Nd});var wn=z((eh,Da)=>{"use strict";var jd=ct(),Md=(e,t,r)=>jd(e,t,r)>=0;Da.exports=Md});var Rn=z((th,Na)=>{"use strict";var Vd=ct(),Fd=(e,t,r)=>Vd(e,t,r)<=0;Na.exports=Fd});var Fo=z((rh,ja)=>{"use strict";var qd=Mo(),Ud=Vo(),Hd=kr(),Gd=wn(),Xd=bn(),Wd=Rn(),zd=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return qd(e,r,n);case"!=":return Ud(e,r,n);case">":return Hd(e,r,n);case">=":return Gd(e,r,n);case"<":return Xd(e,r,n);case"<=":return Wd(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};ja.exports=zd});var Va=z((nh,Ma)=>{"use strict";var Yd=Be(),Kd=Dt(),{safeRe:Tn,t:yn}=sr(),Jd=(e,t)=>{if(e instanceof Yd)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(t.includePrerelease?Tn[yn.COERCEFULL]:Tn[yn.COERCE]);else{let d=t.includePrerelease?Tn[yn.COERCERTLFULL]:Tn[yn.COERCERTL],x;for(;(x=d.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||x.index+x[0].length!==r.index+r[0].length)&&(r=x),d.lastIndex=x.index+x[1].length+x[2].length;d.lastIndex=-1}if(r===null)return null;let n=r[2],o=r[3]||"0",i=r[4]||"0",a=t.includePrerelease&&r[5]?`-${r[5]}`:"",u=t.includePrerelease&&r[6]?`+${r[6]}`:"";return Kd(`${n}.${o}.${i}${a}${u}`,t)};Ma.exports=Jd});var qa=z((oh,Fa)=>{"use strict";var Qd=Dt(),Zd=ir(),ef=Be(),tf=(e,t,r)=>{if(!Zd.RELEASE_TYPES.includes(t))return null;let n=rf(e,r);return n&&nf(n,t)},rf=(e,t)=>{let r=e instanceof ef?e.version:e;return Qd(r,t)},nf=(e,t)=>{if(of(t))return e.version;switch(e.prerelease=[],t){case"major":e.minor=0,e.patch=0;break;case"minor":e.patch=0;break}return e.format()},of=e=>e.startsWith("pre");Fa.exports=tf});var Ha=z((ih,Ua)=>{"use strict";var qo=class{constructor(){this.max=1e3,this.map=new Map}get(t){let r=this.map.get(t);if(r!==void 0)return this.map.delete(t),this.map.set(t,r),r}delete(t){return this.map.delete(t)}set(t,r){if(!this.delete(t)&&r!==void 0){if(this.map.size>=this.max){let o=this.map.keys().next().value;this.delete(o)}this.map.set(t,r)}return this}};Ua.exports=qo});var lt=z((sh,za)=>{"use strict";var sf=/\s+/g,Uo=class e{constructor(t,r){if(r=cf(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof Ho)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(sf," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(o=>!Xa(o[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let o of this.set)if(o.length===1&&xf(o[0])){this.set=[o];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t<this.set.length;t++){t>0&&(this.formatted+="||");let r=this.set[t];for(let n=0;n<r.length;n++)n>0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){t=t.replace(hf,"");let n=((this.options.includePrerelease&&pf)|(this.options.loose&&gf))+":"+t,o=Ga.get(n);if(o)return o;let i=this.options.loose,a=i?Ye[$e.HYPHENRANGELOOSE]:Ye[$e.HYPHENRANGE];t=t.replace(a,kf(this.options.includePrerelease)),pe("hyphen replace",t),t=t.replace(Ye[$e.COMPARATORTRIM],df),pe("comparator trim",t),t=t.replace(Ye[$e.TILDETRIM],ff),pe("tilde trim",t),t=t.replace(Ye[$e.CARETTRIM],mf),pe("caret trim",t);let u=t.split(" ").map(h=>vf(h,this.options)).join(" ").split(/\s+/).map(h=>If(h,this.options));i&&(u=u.filter(h=>(pe("loose invalid filter",h,this.options),!!h.match(Ye[$e.COMPARATORLOOSE])))),pe("range list",u);let d=new Map,x=u.map(h=>new Ho(h,this.options));for(let h of x){if(Xa(h))return[h];d.set(h.value,h)}d.size>1&&d.has("")&&d.delete("");let R=[...d.values()];return Ga.set(n,R),R}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>Wa(n,r)&&t.set.some(o=>Wa(o,r)&&n.every(i=>o.every(a=>i.intersects(a,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new lf(t,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(Af(this.set[r],t,this.options))return!0;return!1}};za.exports=Uo;var af=Ha(),Ga=new af,cf=pn(),Ho=Ar(),pe=Ir(),lf=Be(),{safeRe:Ye,src:uf,t:$e,comparatorTrimReplace:df,tildeTrimReplace:ff,caretTrimReplace:mf}=sr(),{FLAG_INCLUDE_PRERELEASE:pf,FLAG_LOOSE:gf}=ir(),hf=new RegExp(uf[$e.BUILD],"g"),Xa=e=>e.value==="<0.0.0-0",xf=e=>e.value==="",Wa=(e,t)=>{let r=!0,n=e.slice(),o=n.pop();for(;r&&n.length;)r=n.every(i=>o.intersects(i,t)),o=n.pop();return r},vf=(e,t)=>(e=e.replace(Ye[$e.BUILD],""),pe("comp",e,t),e=Rf(e,t),pe("caret",e),e=bf(e,t),pe("tildes",e),e=yf(e,t),pe("xrange",e),e=Cf(e,t),pe("stars",e),e),Re=e=>!e||e.toLowerCase()==="x"||e==="*",Sf=(e,t,r)=>Re(e)&&!Re(t)||Re(t)&&r&&!Re(r),bf=(e,t)=>e.trim().split(/\s+/).map(r=>wf(r,t)).join(" "),wf=(e,t)=>{let r=t.loose?Ye[$e.TILDELOOSE]:Ye[$e.TILDE];return e.replace(r,(n,o,i,a,u)=>{pe("tilde",e,n,o,i,a,u);let d;return Re(o)?d="":Re(i)?d=`>=${o}.0.0 <${+o+1}.0.0-0`:Re(a)?d=`>=${o}.${i}.0 <${o}.${+i+1}.0-0`:u?(pe("replaceTilde pr",u),d=`>=${o}.${i}.${a}-${u} <${o}.${+i+1}.0-0`):d=`>=${o}.${i}.${a} <${o}.${+i+1}.0-0`,pe("tilde return",d),d})},Rf=(e,t)=>e.trim().split(/\s+/).map(r=>Tf(r,t)).join(" "),Tf=(e,t)=>{pe("caret",e,t);let r=t.loose?Ye[$e.CARETLOOSE]:Ye[$e.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(o,i,a,u,d)=>{pe("caret",e,o,i,a,u,d);let x;return Re(i)?x="":Re(a)?x=`>=${i}.0.0${n} <${+i+1}.0.0-0`:Re(u)?i==="0"?x=`>=${i}.${a}.0${n} <${i}.${+a+1}.0-0`:x=`>=${i}.${a}.0${n} <${+i+1}.0.0-0`:d?(pe("replaceCaret pr",d),i==="0"?a==="0"?x=`>=${i}.${a}.${u}-${d} <${i}.${a}.${+u+1}-0`:x=`>=${i}.${a}.${u}-${d} <${i}.${+a+1}.0-0`:x=`>=${i}.${a}.${u}-${d} <${+i+1}.0.0-0`):(pe("no pr"),i==="0"?a==="0"?x=`>=${i}.${a}.${u} <${i}.${a}.${+u+1}-0`:x=`>=${i}.${a}.${u} <${i}.${+a+1}.0-0`:x=`>=${i}.${a}.${u} <${+i+1}.0.0-0`),pe("caret return",x),x})},yf=(e,t)=>(pe("replaceXRanges",e,t),e.split(/\s+/).map(r=>Ef(r,t)).join(" ")),Ef=(e,t)=>{e=e.trim();let r=t.loose?Ye[$e.XRANGELOOSE]:Ye[$e.XRANGE];return e.replace(r,(n,o,i,a,u,d)=>{if(pe("xRange",e,n,o,i,a,u,d),Sf(i,a,u))return e;let x=Re(i),R=x||Re(a),h=R||Re(u),y=h;return o==="="&&y&&(o=""),d=t.includePrerelease?"-0":"",x?o===">"||o==="<"?n="<0.0.0-0":n="*":o&&y?(R&&(a=0),u=0,o===">"?(o=">=",R?(i=+i+1,a=0,u=0):(a=+a+1,u=0)):o==="<="&&(o="<",R?i=+i+1:a=+a+1),o==="<"&&(d="-0"),n=`${o+i}.${a}.${u}${d}`):R?n=`>=${i}.0.0${d} <${+i+1}.0.0-0`:h&&(n=`>=${i}.${a}.0${d} <${i}.${+a+1}.0-0`),pe("xRange return",n),n})},Cf=(e,t)=>(pe("replaceStars",e,t),e.trim().replace(Ye[$e.STAR],"")),If=(e,t)=>(pe("replaceGTE0",e,t),e.trim().replace(Ye[t.includePrerelease?$e.GTE0PRE:$e.GTE0],"")),kf=e=>(t,r,n,o,i,a,u,d,x,R,h,y)=>(Re(n)?r="":Re(o)?r=`>=${n}.0.0${e?"-0":""}`:Re(i)?r=`>=${n}.${o}.0${e?"-0":""}`:a?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,Re(x)?d="":Re(R)?d=`<${+x+1}.0.0-0`:Re(h)?d=`<${x}.${+R+1}.0-0`:y?d=`<=${x}.${R}.${h}-${y}`:e?d=`<${x}.${R}.${+h+1}-0`:d=`<=${d}`,`${r} ${d}`.trim()),Af=(e,t,r)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(let n=0;n<e.length;n++)if(pe(e[n].semver),e[n].semver!==Ho.ANY&&e[n].semver.prerelease.length>0){let o=e[n].semver;if(o.major===t.major&&o.minor===t.minor&&o.patch===t.patch)return!0}return!1}return!0}});var Ar=z((ah,ec)=>{"use strict";var _r=Symbol("SemVer ANY"),Wo=class e{static get ANY(){return _r}constructor(t,r){if(r=Ya(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Xo("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===_r?this.value="":this.value=this.operator+this.semver.version,Xo("comp",this)}parse(t){let r=this.options.loose?Ka[Ja.COMPARATORLOOSE]:Ka[Ja.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new Qa(n[2],this.options.loose):this.semver=_r}toString(){return this.value}test(t){if(Xo("Comparator.test",t,this.options.loose),this.semver===_r||t===_r)return!0;if(typeof t=="string")try{t=new Qa(t,this.options)}catch{return!1}return Go(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Za(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new Za(this.value,r).test(t.semver):(r=Ya(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||Go(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Go(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};ec.exports=Wo;var Ya=pn(),{safeRe:Ka,t:Ja}=sr(),Go=Fo(),Xo=Ir(),Qa=Be(),Za=lt()});var Pr=z((ch,tc)=>{"use strict";var _f=lt(),Pf=(e,t,r)=>{try{t=new _f(t,r)}catch{return!1}return t.test(e)};tc.exports=Pf});var nc=z((lh,rc)=>{"use strict";var Lf=lt(),Bf=(e,t)=>new Lf(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));rc.exports=Bf});var ic=z((uh,oc)=>{"use strict";var $f=Be(),Of=lt(),Df=(e,t,r)=>{let n=null,o=null,i=null;try{i=new Of(t,r)}catch{return null}return e.forEach(a=>{i.test(a)&&(!n||o.compare(a)===-1)&&(n=a,o=new $f(n,r))}),n};oc.exports=Df});var ac=z((dh,sc)=>{"use strict";var Nf=Be(),jf=lt(),Mf=(e,t,r)=>{let n=null,o=null,i=null;try{i=new jf(t,r)}catch{return null}return e.forEach(a=>{i.test(a)&&(!n||o.compare(a)===1)&&(n=a,o=new Nf(n,r))}),n};sc.exports=Mf});var uc=z((fh,lc)=>{"use strict";var zo=Be(),Vf=lt(),cc=kr(),Ff=(e,t)=>{e=new Vf(e,t);let r=new zo("0.0.0");if(e.test(r)||(r=new zo("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n<e.set.length;++n){let o=e.set[n],i=null;o.forEach(a=>{let u=new zo(a.semver.version);switch(a.operator){case">":u.prerelease.length===0?u.patch++:u.prerelease.push(0),u.raw=u.format();case"":case">=":(!i||cc(u,i))&&(i=u);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),i&&(!r||cc(r,i))&&(r=i)}return r&&e.test(r)?r:null};lc.exports=Ff});var fc=z((mh,dc)=>{"use strict";var qf=lt(),Uf=(e,t)=>{try{return new qf(e,t).range||"*"}catch{return null}};dc.exports=Uf});var En=z((ph,hc)=>{"use strict";var Hf=Be(),gc=Ar(),{ANY:Gf}=gc,Xf=lt(),Wf=Pr(),mc=kr(),pc=bn(),zf=Rn(),Yf=wn(),Kf=(e,t,r,n)=>{e=new Hf(e,n),t=new Xf(t,n);let o,i,a,u,d;switch(r){case">":o=mc,i=zf,a=pc,u=">",d=">=";break;case"<":o=pc,i=Yf,a=mc,u="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Wf(e,t,n))return!1;for(let x=0;x<t.set.length;++x){let R=t.set[x],h=null,y=null;if(R.forEach(l=>{l.semver===Gf&&(l=new gc(">=0.0.0")),h=h||l,y=y||l,o(l.semver,h.semver,n)?h=l:a(l.semver,y.semver,n)&&(y=l)}),h.operator===u||h.operator===d||(!y.operator||y.operator===u)&&i(e,y.semver))return!1;if(y.operator===d&&a(e,y.semver))return!1}return!0};hc.exports=Kf});var vc=z((gh,xc)=>{"use strict";var Jf=En(),Qf=(e,t,r)=>Jf(e,t,">",r);xc.exports=Qf});var bc=z((hh,Sc)=>{"use strict";var Zf=En(),em=(e,t,r)=>Zf(e,t,"<",r);Sc.exports=em});var Tc=z((xh,Rc)=>{"use strict";var wc=lt(),tm=(e,t,r)=>(e=new wc(e,r),t=new wc(t,r),e.intersects(t,r));Rc.exports=tm});var Ec=z((vh,yc)=>{"use strict";var rm=Pr(),nm=ct();yc.exports=(e,t,r)=>{let n=[],o=null,i=null,a=e.sort((R,h)=>nm(R,h,r));for(let R of a)rm(R,t,r)?(i=R,o||(o=R)):(i&&n.push([o,i]),i=null,o=null);o&&n.push([o,null]);let u=[];for(let[R,h]of n)R===h?u.push(R):!h&&R===a[0]?u.push("*"):h?R===a[0]?u.push(`<=${h}`):u.push(`${R} - ${h}`):u.push(`>=${R}`);let d=u.join(" || "),x=typeof t.raw=="string"?t.raw:String(t);return d.length<x.length?d:t}});var Pc=z((Sh,_c)=>{"use strict";var Cc=lt(),Jo=Ar(),{ANY:Yo}=Jo,Ko=Pr(),Qo=ct(),om=(e,t,r={})=>{if(e===t)return!0;e=new Cc(e,r),t=new Cc(t,r);let n=!1;e:for(let o of e.set){for(let i of t.set){let a=sm(o,i,r);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},im=[new Jo(">=0.0.0-0")],Ic=[new Jo(">=0.0.0")],sm=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Yo){if(t.length===1&&t[0].semver===Yo)return!0;r.includePrerelease?e=im:e=Ic}if(t.length===1&&t[0].semver===Yo){if(r.includePrerelease)return!0;t=Ic}let n=new Set,o,i;for(let l of e)l.operator===">"||l.operator===">="?o=kc(o,l,r):l.operator==="<"||l.operator==="<="?i=Ac(i,l,r):n.add(l.semver);if(n.size>1)return null;let a;if(o&&i){if(a=Qo(o.semver,i.semver,r),a>0)return null;if(a===0&&(o.operator!==">="||i.operator!=="<="))return null}for(let l of n){if(o&&!Ko(l,String(o),r)||i&&!Ko(l,String(i),r))return null;for(let m of t)if(!Ko(l,String(m),r))return!1;return!0}let u,d,x,R,h=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1,y=o&&!r.includePrerelease&&o.semver.prerelease.length?o.semver:!1;h&&h.prerelease.length===1&&i.operator==="<"&&h.prerelease[0]===0&&(h=!1);for(let l of t){if(R=R||l.operator===">"||l.operator===">=",x=x||l.operator==="<"||l.operator==="<=",o){if(y&&l.semver.prerelease&&l.semver.prerelease.length&&l.semver.major===y.major&&l.semver.minor===y.minor&&l.semver.patch===y.patch&&(y=!1),l.operator===">"||l.operator===">="){if(u=kc(o,l,r),u===l&&u!==o)return!1}else if(o.operator===">="&&!l.test(o.semver))return!1}if(i){if(h&&l.semver.prerelease&&l.semver.prerelease.length&&l.semver.major===h.major&&l.semver.minor===h.minor&&l.semver.patch===h.patch&&(h=!1),l.operator==="<"||l.operator==="<="){if(d=Ac(i,l,r),d===l&&d!==i)return!1}else if(i.operator==="<="&&!l.test(i.semver))return!1}if(!l.operator&&(i||o)&&a!==0)return!1}return!(o&&x&&!i&&a!==0||i&&R&&!o&&a!==0||y||h)},kc=(e,t,r)=>{if(!e)return t;let n=Qo(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},Ac=(e,t,r)=>{if(!e)return t;let n=Qo(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};_c.exports=om});var ei=z((bh,$c)=>{"use strict";var Zo=sr(),Lc=ir(),am=Be(),Bc=Do(),cm=Dt(),lm=na(),um=ia(),dm=ca(),fm=da(),mm=ma(),pm=ga(),gm=xa(),hm=Sa(),xm=ct(),vm=Ta(),Sm=Ea(),bm=Sn(),wm=Aa(),Rm=Pa(),Tm=kr(),ym=bn(),Em=Mo(),Cm=Vo(),Im=wn(),km=Rn(),Am=Fo(),_m=Va(),Pm=qa(),Lm=Ar(),Bm=lt(),$m=Pr(),Om=nc(),Dm=ic(),Nm=ac(),jm=uc(),Mm=fc(),Vm=En(),Fm=vc(),qm=bc(),Um=Tc(),Hm=Ec(),Gm=Pc();$c.exports={parse:cm,valid:lm,clean:um,inc:dm,diff:fm,major:mm,minor:pm,patch:gm,prerelease:hm,compare:xm,rcompare:vm,compareLoose:Sm,compareBuild:bm,sort:wm,rsort:Rm,gt:Tm,lt:ym,eq:Em,neq:Cm,gte:Im,lte:km,cmp:Am,coerce:_m,truncate:Pm,Comparator:Lm,Range:Bm,satisfies:$m,toComparators:Om,maxSatisfying:Dm,minSatisfying:Nm,minVersion:jm,validRange:Mm,outside:Vm,gtr:Fm,ltr:qm,intersects:Um,simplifyRange:Hm,subset:Gm,SemVer:am,re:Zo.re,src:Zo.src,tokens:Zo.t,SEMVER_SPEC_VERSION:Lc.SEMVER_SPEC_VERSION,RELEASE_TYPES:Lc.RELEASE_TYPES,compareIdentifiers:Bc.compareIdentifiers,rcompareIdentifiers:Bc.rcompareIdentifiers}});var E=k(ve(),1);var Us=k(ve(),1);var or=k(M(),1);function Hs({path:e}){return e.length===0?null:(0,or.jsx)(S,{children:e.map((t,r)=>(0,or.jsxs)(Us.default.Fragment,{children:[r>0&&(0,or.jsx)(s,{color:c.muted,children:" \u203A "}),(0,or.jsx)(s,{color:c.dim,children:t})]},r))})}var Oc=k(ei(),1),Xm=1,Wm=new Set(["discover","workflow","nudge","recovery"]),zm=new Set(["run","generate","both"]),Ym=new Set(["banner","footer"]),Cn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),ar=e=>typeof e=="string"&&e.length>0?e:void 0,cr=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function Km(e){if(!Cn(e))return{};let t={};return ar(e.run)&&(t.run=e.run),ar(e.generate)&&(t.generate=e.generate),ar(e.default)&&(t.default=e.default),t}function Dc(e,t){return e.text[t]??e.text.default??(e.target!=="both"?e.text[e.target]:void 0)}function Jm(e,t){return t==="both"?!!e.default||!!e.run&&!!e.generate:t==="run"?!!e.run||!!e.default:!!e.generate||!!e.default}function Qm(e,t){if(!Cn(e))return;let r=cr(e.maxShows),n=ar(e.until),o=cr(e.weight);if(!(r===void 0||r<1||n===void 0||!Number.isFinite(Date.parse(n))))return{weight:Math.max(o??t,t),maxShows:Math.floor(r),until:n}}function Zm(e){if(!Cn(e))return null;let t=ar(e.id);if(!t)return null;let r=zm.has(e.target)?e.target:void 0;if(e.target!==void 0&&r===void 0)return null;let n=r??"both",o=Km(e.text);if(!Jm(o,n))return null;let i=Wm.has(e.category)?e.category:"nudge",a=Ym.has(e.surface)?e.surface:void 0,u=cr(e.weight),d=u===void 0?1:Math.max(0,u),x=cr(e.cooldownSessions),R=x===void 0?0:Math.max(0,Math.floor(x)),h=ar(e.minVersion)&&Oc.default.coerce(e.minVersion)?e.minVersion:void 0,y=Array.isArray(e.relevance)?e.relevance.filter(B=>typeof B=="string"):[],l=cr(e.retireAfterShows),m=l!==void 0&&l>=1?Math.floor(l):void 0,P=Qm(e.boost,d);return{id:t,category:i,surface:a,target:n,text:o,weight:d,cooldownSessions:R,minVersion:h,relevance:y,retireAfterShows:m,boost:P}}function In(e){if(!Cn(e)||!Array.isArray(e.hints)||typeof e.enabled!="boolean")return{catalog:null,dropped:0};let t=cr(e.schemaVersion)??0;if(Math.floor(t)>Xm)return{catalog:null,dropped:0};let r=0,n=new Set,o=[];for(let i of e.hints){let a=Zm(i);if(!a){r++;continue}if(n.has(a.id)){r++;continue}n.add(a.id),o.push(a)}return o.length===0?{catalog:null,dropped:r}:{catalog:{schemaVersion:t,enabled:e.enabled,hints:o},dropped:r}}var Mc=k(M(),1),Nc="tip: ";function jc({hint:e,mode:t,termWidth:r}){if(e.target!=="both"&&e.target!==t)return null;let n=Dc(e,t);if(!n)return null;let o=Math.max(8,r-Nc.length-2),i=n.length>o?n.slice(0,o-1)+"\u2026":n;return(0,Mc.jsx)(s,{color:c.dim,children:Nc+i})}var J=k(M(),1);function Vc({profile:e,environment:t,tokenValid:r,runCount:n,sessionId:o,viewMode:i,breadcrumb:a,chatMode:u,tcgRequestId:d,tcgStreamStatus:x,footerHint:R}){let{stdout:h}=on(),y=h?.columns??80,l=u??"run",m=t==="stage",P=t==="prod",B=l==="generate"?c.generateAccent:c.orange,V=x==="completed"?c.green:x==="failed"?c.red:c.generateAccent;return(0,J.jsxs)(S,{flexDirection:"column",children:[(0,J.jsx)(s,{color:c.muted,children:"\u2500".repeat(y)}),a&&a.length>0&&(0,J.jsx)(S,{paddingX:1,children:(0,J.jsx)(Hs,{path:a})}),(0,J.jsxs)(S,{paddingX:1,gap:1,children:[(0,J.jsx)(s,{color:c.dim,children:"Mode:"}),(0,J.jsx)(s,{color:B,bold:!0,children:l==="generate"?"Generate":"Run"}),(0,J.jsx)(s,{color:c.muted,children:"|"}),l==="generate"?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.dim,children:"req"}),(0,J.jsx)(s,{color:c.dim,children:d??"\u2014"}),x&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.muted,children:"\xB7"}),(0,J.jsx)(s,{color:V,children:x})]})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.dim,children:"Session:"}),(0,J.jsx)(s,{color:c.dim,children:o})]}),(0,J.jsx)(s,{color:c.muted,children:"|"}),(0,J.jsx)(s,{color:r?c.green:c.red,children:"\u25CF"}),(0,J.jsx)(s,{color:c.dim,children:r?"authenticated":"not logged in"}),!P&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.muted,children:"|"}),m?(0,J.jsx)(s,{color:c.orange,bold:!0,children:"\u26A0 stage"}):(0,J.jsx)(s,{color:c.green,children:t})]})]}),(0,J.jsxs)(S,{paddingX:1,gap:1,children:[(0,J.jsx)(s,{color:c.dim,children:e??"no profile"}),l==="run"&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.muted,children:"|"}),(0,J.jsxs)(s,{color:c.dim,children:["runs: ",n]})]}),(0,J.jsx)(s,{color:c.muted,children:"|"}),(0,J.jsx)(s,{dimColor:!0,children:Ni()})]}),(0,J.jsx)(S,{paddingX:1,children:(0,J.jsx)(s,{dimColor:!0,children:i==="chat"?"ctrl+c cancel/exit":"\u2191\u2193 navigate \u21B5 select esc back"})}),R&&(0,J.jsx)(S,{paddingX:1,children:(0,J.jsx)(jc,{hint:R,mode:l,termWidth:y})})]})}var Xt=k(ve(),1);var Lr=[[[" "],[" "],[" "],[" "],["\u2584","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],[" "],[" "],[" "],[" "],[" "],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2584","#af87d7"],[" "],[" "],[" "],[" "]],[[" "],[" "],["\u2584","#875faf"],["\u2584","#af87d7","#875faf"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2584","#af87d7","#875faf"],["\u2584","#875faf"],[" "],[" "]],[[" "],[" "],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2584","#000000","#af87d7"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#af87d7"],["\u2588","#af87d7"],["\u2588","#875faf"],[" "],[" "]],[[" "],["\u2588","#875faf"],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2588","#000000"],["\u2584","#585858","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#af87d7"],["\u2588","#875faf"],["\u2588","#875faf"],[" "]],[[" "],["\u2588","#875faf"],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2588","#000000"],["\u2588","#585858"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#af87d7"],["\u2588","#875faf"],["\u2588","#875faf"],[" "]],[[" "],[" "],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2588","#000000"],["\u2584","#000000","#585858"],["\u2588","#000000"],["\u2588","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#af87d7"],["\u2588","#875faf"],[" "],[" "]],[[" "],[" "],["\u2580","#875faf"],["\u2580","#af87d7"],["\u2580","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2580","#af87d7"],["\u2580","#af87d7"],["\u2580","#875faf"],[" "],[" "]],[[" "],[" "],[" "],[" "],[" "],["\u2580","#af87d7"],["\u2580","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2580","#af87d7"],["\u2580","#af87d7"],[" "],[" "],[" "],[" "],[" "]]];var ne=k(M(),1),kn="#af87d7",ti="#875faf",Fc="#5b3a7a",ep="#ff9500",tp="#ea580c";var ri="#666666",rp="#555555",Gt=[[kn,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[kn,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[kn,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[kn,"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[ti,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[ti,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[ti,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588"]],ni=Gt.map(([,e])=>[...e]);function qc({visibleRows:e=Gt.length}){let t=Math.min(e,Gt.length);return(0,ne.jsxs)(S,{flexDirection:"column",children:[Gt.slice(0,t).map(([r,n],o)=>{let i=ni[o];return(0,ne.jsx)(s,{children:i.map((a,u)=>{if(a==="\u2588")return(0,ne.jsx)(s,{color:r,children:"\u2588"},u);let d=u>0&&i[u-1]==="\u2588",x=o>0&&u>0&&ni[o-1][u-1]==="\u2588";return d||x?(0,ne.jsx)(s,{color:Fc,children:"\u2592"},u):(0,ne.jsx)(s,{children:" "},u)})},o)}),t>=Gt.length&&(0,ne.jsxs)(s,{children:[" ",ni[Gt.length-1].map((r,n)=>r==="\u2588"?(0,ne.jsx)(s,{color:Fc,children:"\u2580"},n):(0,ne.jsx)(s,{children:" "},n))]})]})}function np({visibleRows:e=Lr.length}){let t=Math.min(e,Lr.length);return(0,ne.jsx)(S,{flexDirection:"column",children:Lr.slice(0,t).map((r,n)=>(0,ne.jsx)(s,{children:r.map((o,i)=>{let a=o[0],u=o[1],d=o[2];return u?(0,ne.jsx)(s,{color:u,backgroundColor:d,children:a},i):(0,ne.jsx)(s,{children:a},i)})},n))})}function An({size:e="compact",helmetVisibleRows:t=Lr.length,textVisibleRows:r=Gt.length,showMeta:n=!1,user:o=null,authenticated:i=!1,version:a=""}){return e==="compact"?(0,ne.jsx)(qc,{}):(0,ne.jsxs)(S,{flexDirection:"column",paddingX:1,paddingY:1,children:[(0,ne.jsx)(s,{color:ep,italic:!0,children:" Welcome to"}),(0,ne.jsx)(s,{children:" "}),(0,ne.jsxs)(S,{gap:2,children:[(0,ne.jsx)(np,{visibleRows:t}),(0,ne.jsxs)(S,{flexDirection:"column",children:[(0,ne.jsx)(qc,{visibleRows:r}),(0,ne.jsx)(S,{justifyContent:"flex-end",width:73,children:(0,ne.jsx)(s,{color:tp,italic:!0,children:"Command-line interface"})})]})]}),n&&(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)(s,{children:" "}),(0,ne.jsxs)(s,{children:[(0,ne.jsx)(s,{color:ri,children:" Browser automation powered by AI. "}),(0,ne.jsx)(s,{color:rp,children:`v${a}`})]}),(0,ne.jsx)(s,{children:" "}),(0,ne.jsx)(s,{children:(0,ne.jsx)(s,{color:ri,children:" KaneCLI can navigate websites, fill forms, test web UI, and extract"})}),(0,ne.jsx)(s,{children:(0,ne.jsx)(s,{color:ri,children:" data \u2014 right from your terminal."})}),(0,ne.jsx)(s,{children:" "})]})]})}var si=k(M(),1),oi=8,ii=7;function Uc({onComplete:e}){let[t,r]=(0,Xt.useState)(0),[n,o]=(0,Xt.useState)(0),[i,a]=(0,Xt.useState)(!1),[u]=(0,Xt.useState)(()=>{let d=new sn,x=d.getActiveProfile(),R=d.getDefaultEnv(),h=x?d.loadCredentials(x,R):null,y=x?d.loadBasicAuth(x,R):null;return{authenticated:!!(h||y),user:y?.username??x??null}});return Ro(()=>{r(d=>Math.min(oi,d+1))},t<oi?60:null),Ro(()=>{o(d=>Math.min(ii,d+1))},n<ii?80:null),(0,Xt.useEffect)(()=>{t>=oi&&n>=ii&&!i&&(a(!0),e?.())},[t,n,i,e]),(0,si.jsx)(S,{flexDirection:"column",children:(0,si.jsx)(An,{size:"full",helmetVisibleRows:t,textVisibleRows:n,showMeta:i,user:u.user,authenticated:u.authenticated,version:mt})})}var Ct=k(M(),1);function Hc({entry:e}){return e.type==="input"?(0,Ct.jsxs)(S,{children:[(0,Ct.jsx)(s,{color:c.orange,children:"\u276F "}),(0,Ct.jsx)(s,{children:e.text})]}):e.type==="error"?(0,Ct.jsx)(S,{marginLeft:2,children:(0,Ct.jsx)(s,{color:c.red,children:e.text})}):(0,Ct.jsx)(S,{marginLeft:2,children:(0,Ct.jsx)(s,{color:e.type==="info"?c.dim:void 0,children:e.text})})}var wt=k(ve(),1);var Ke=k(M(),1);function op(e,t){let r=[],o=Math.max(t-4,30);r.push({type:"title",text:e.title});for(let i=0;i<e.sections.length;i++){let a=e.sections[i];i>0&&r.push({type:"divider",text:"\u2500".repeat(o)}),a.label&&r.push({type:"header",text:a.label});let u=a.entries.length>0?Math.max(...a.entries.map(d=>d.key.length)):0;for(let d of a.entries){let x="\xB7".repeat(Math.max(2,u-d.key.length+3)),R=`${d.key} ${x} ${d.value}`;r.push({type:"entry",text:R,color:d.color})}}return r.push({type:"footer",text:"esc back"}),r}function Gc({data:e,width:t=60}){let r=op(e,t);return(0,Ke.jsx)(S,{flexDirection:"column",borderStyle:"round",borderColor:c.orange,paddingX:2,paddingY:1,children:r.map((n,o)=>{if(n.type==="title")return(0,Ke.jsx)(s,{color:c.orange,bold:!0,children:n.text},o);if(n.type==="header")return(0,Ke.jsx)(S,{marginTop:1,children:(0,Ke.jsx)(s,{color:c.dim,children:n.text})},o);if(n.type==="divider")return(0,Ke.jsx)(S,{marginTop:1,marginBottom:0,children:(0,Ke.jsx)(s,{color:c.muted,children:n.text})},o);if(n.type==="footer")return(0,Ke.jsx)(S,{marginTop:1,children:(0,Ke.jsx)(s,{color:c.dim,children:n.text})},o);let i=n.text.match(/^(.+?) (·+) (.+)$/);return i?(0,Ke.jsxs)(s,{children:[(0,Ke.jsxs)(s,{color:c.secondary,children:[i[1]," "]}),(0,Ke.jsxs)(s,{color:c.muted,children:[i[2]," "]}),(0,Ke.jsx)(s,{color:n.color,children:i[3]})]},o):(0,Ke.jsx)(s,{color:n.color,children:n.text},o)})})}var Oe=k(M(),1);function ai(e,t){let r=[];function n(o,i){for(let a of o)r.push({item:a,depth:i}),a.type==="submenu"&&a.children&&t.length>i&&t[i]===a.id&&n(a.children,i+1)}return n(e,0),r}function ci({items:e,onRunSelected:t,initialExpandedPath:r,onDismiss:n,renderLoginWizard:o,renderProfilesView:i,renderChromeProfilePicker:a,renderProjectPicker:u,renderFolderPicker:d,renderWindowSizePicker:x,onActiveViewChange:R}){let[h,y]=(0,wt.useState)(()=>{let $=r??[],q=ai(e,$),A=0;if($.length>0){let F=q.findIndex(re=>re.item.id===$[0]);F>=0&&F+1<q.length&&(A=F+1)}return{expandedPath:$,selectedIndex:A,inputValue:"",isEditing:!1,isSelecting:!1,feedback:null,activeView:null,infoData:null}}),l=ai(e,h.expandedPath),m=l[h.selectedIndex]?.item,P=(0,wt.useRef)(null),B=(0,wt.useCallback)($=>{y(q=>({...q,feedback:$})),P.current&&clearTimeout(P.current),P.current=setTimeout(()=>{y(q=>({...q,feedback:null})),P.current=null},4e3)},[]);(0,wt.useEffect)(()=>()=>{P.current&&clearTimeout(P.current)},[]),(0,wt.useEffect)(()=>{R?.(h.activeView)},[h.activeView,R]);let V=(0,wt.useCallback)(()=>{y($=>({...$,activeView:null,infoData:null}))},[]);return Ee(($,q)=>{if(h.activeView==="infoView"){q.escape&&V();return}if(!(h.activeView==="loginWizard"||h.activeView==="profilesView"||h.activeView==="chromeProfilePicker"||h.activeView==="projectPicker"||h.activeView==="folderPicker"||h.activeView==="windowSizePicker")){if(h.isEditing){if(q.escape){y(A=>({...A,isEditing:!1,inputValue:""}));return}if(q.return){let A=h.inputValue.trim();if(m?.onValue&&A){let F=m.currentValue;m.onValue(A),B(F?`${m.label}: ${F} \u2192 ${A}`:`${m.label}: ${A}`)}y(F=>({...F,isEditing:!1,inputValue:""}));return}if(q.backspace||q.delete){y(A=>({...A,inputValue:A.inputValue.slice(0,-1)}));return}$&&!q.ctrl&&!q.meta&&y(A=>({...A,inputValue:A.inputValue+$}));return}if(h.isSelecting&&m?.options){let A=m.options;if(q.escape){y(F=>({...F,isSelecting:!1}));return}if(q.upArrow){y(F=>({...F,inputValue:String(Math.max(0,Number(F.inputValue||"0")-1))}));return}if(q.downArrow){y(F=>({...F,inputValue:String(Math.min(A.length-1,Number(F.inputValue||"0")+1))}));return}if(q.return){let F=Number(h.inputValue||"0"),re=A[F];if(re&&m.onValue){let oe=m.currentValue;m.onValue(re.value),B(oe?`${m.label}: ${oe} \u2192 ${re.label}`:`${m.label}: ${re.label}`)}y(oe=>({...oe,isSelecting:!1,inputValue:""}));return}return}if(q.upArrow){y(A=>({...A,selectedIndex:Math.max(0,A.selectedIndex-1)}));return}if(q.downArrow){y(A=>({...A,selectedIndex:Math.min(l.length-1,A.selectedIndex+1)}));return}if(q.escape){if(h.expandedPath.length===0){n?.();return}y(A=>{let F=A.expandedPath.slice(0,-1),re=ai(e,F),oe=A.expandedPath[A.expandedPath.length-1],ue=re.findIndex(W=>W.item.id===oe);return{...A,expandedPath:F,selectedIndex:ue>=0?ue:0}});return}if(q.return&&m){if(m.id==="run-start"){t();return}if(m.type==="submenu"){let A=l[h.selectedIndex]?.depth??0;y(F=>({...F,expandedPath:[...F.expandedPath.slice(0,A),m.id],selectedIndex:F.selectedIndex+1}));return}if(m.onInfo){let A=m.onInfo();y(F=>({...F,activeView:"infoView",infoData:A}));return}if(m.onLoginWizard){m.onLoginWizard(),y(A=>({...A,activeView:"loginWizard"}));return}if(m.onProfilesView){m.onProfilesView(),y(A=>({...A,activeView:"profilesView"}));return}if(m.onChromeProfilePicker){m.onChromeProfilePicker(),y(A=>({...A,activeView:"chromeProfilePicker"}));return}if(m.onProjectPicker){m.onProjectPicker(),y(A=>({...A,activeView:"projectPicker"}));return}if(m.onFolderPicker){m.onFolderPicker(),y(A=>({...A,activeView:"folderPicker"}));return}if(m.onWindowSizePicker){m.onWindowSizePicker(),y(A=>({...A,activeView:"windowSizePicker"}));return}if(m.type==="action"){m.onAction?.(),m.suppressFeedback||B(`${m.label} done`);return}if(m.type==="select"&&m.options){let A=m.options.findIndex(F=>F.value===m.currentValue);y(F=>({...F,isSelecting:!0,inputValue:String(Math.max(0,A))}));return}if(m.type==="text-input"){y(A=>({...A,isEditing:!0,inputValue:m.currentValue??""}));return}}}}),(0,Oe.jsx)(S,{flexDirection:"column",paddingX:1,children:h.activeView==="infoView"&&h.infoData?(0,Oe.jsx)(Gc,{data:h.infoData}):h.activeView==="loginWizard"&&o?o(V):h.activeView==="profilesView"&&i?i(V):h.activeView==="chromeProfilePicker"&&a?a(V):h.activeView==="projectPicker"&&u?u(V):h.activeView==="folderPicker"&&d?d(V):h.activeView==="windowSizePicker"&&x?x(V):(0,Oe.jsxs)(Oe.Fragment,{children:[l.map(({item:$,depth:q},A)=>{let F=A===h.selectedIndex,re=" ".repeat(q),oe=F?"\u276F ":" ",ue=$.type==="submenu"?h.expandedPath.includes($.id)?"\u25BC ":"\u25B6 ":" ",W=$.currentValue!=null?` [${$.currentValue}]`:"";if(F&&h.isSelecting&&$.options){let se=Number(h.inputValue||"0");return(0,Oe.jsxs)(S,{flexDirection:"column",children:[(0,Oe.jsxs)(s,{color:c.orange,children:[re,oe,ue,$.label]}),$.options.map((ce,Te)=>(0,Oe.jsxs)(s,{color:Te===se?c.orange:void 0,children:[re," ",Te===se?"\u276F ":" ",ce.label]},ce.value))]},$.id)}return F&&h.isEditing?(0,Oe.jsxs)(s,{color:c.orange,children:[re,oe,ue,$.label,": ",h.inputValue,(0,Oe.jsx)(s,{color:c.dim,children:"\u2588"})]},$.id):(0,Oe.jsxs)(s,{color:F?c.orange:void 0,dimColor:!F&&q>0,children:[re,oe,ue,$.label,(0,Oe.jsx)(s,{dimColor:!0,children:W})]},$.id)}),h.feedback&&(0,Oe.jsx)(S,{marginTop:1,children:(0,Oe.jsxs)(s,{color:c.green,children:["\u2713 ",h.feedback]})}),(0,Oe.jsx)(Zt,{bindings:[{keys:"\u2191\u2193",label:"navigate"},{keys:"\u21B5",label:"select"}],escBackLabel:"back"})]})})}var Br=k(ve(),1);var Me=k(M(),1),li=800,ui=3840,di=600,fi=2160;function Xc(e,t){if(!t)return"Enter a value";let r=Number(t);if(!Number.isInteger(r))return"Must be a whole number";if(e==="width"){if(r<li)return`Min ${li}`;if(r>ui)return`Max ${ui}`}else{if(r<di)return`Min ${di}`;if(r>fi)return`Max ${fi}`}return null}function mi({currentWidth:e,currentHeight:t,onSelect:r,onCancel:n}){let[o,i]=(0,Br.useState)("width"),[a,u]=(0,Br.useState)(String(e)),[d,x]=(0,Br.useState)(String(t)),[R,h]=(0,Br.useState)(null);Ee((l,m)=>{if(m.escape){n();return}if(m.tab||m.rightArrow||m.leftArrow){i(P=>P==="width"?"height":"width"),h(null);return}if(m.return){let P=Xc("width",a);if(P){i("width"),h(`Width: ${P}`);return}let B=Xc("height",d);if(B){i("height"),h(`Height: ${B}`);return}r(Number(a),Number(d));return}if(m.backspace||m.delete){o==="width"?u(P=>P.slice(0,-1)):x(P=>P.slice(0,-1)),h(null);return}l&&/^\d$/.test(l)&&(o==="width"?u(P=>P+l):x(P=>P+l),h(null))});let y=(l,m,P)=>{let B=o===P,V=B?c.orange:c.secondary;return(0,Me.jsxs)(S,{flexDirection:"column",children:[(0,Me.jsxs)(s,{color:c.dim,children:[" ",l]}),(0,Me.jsx)(S,{borderStyle:"round",borderColor:V,paddingX:1,width:10,children:(0,Me.jsxs)(s,{color:B?void 0:c.dim,children:[m||" ",B?(0,Me.jsx)(s,{color:c.dim,children:"\u2588"}):""]})}),(0,Me.jsxs)(s,{color:c.dim,dimColor:!0,children:[" ",P==="width"?`${li}\u2013${ui}`:`${di}\u2013${fi}`]})]})};return(0,Me.jsxs)(S,{flexDirection:"column",paddingX:1,children:[(0,Me.jsx)(s,{color:c.orange,bold:!0,children:"Window Size"}),(0,Me.jsxs)(S,{marginTop:1,gap:1,children:[y("Width",a,"width"),(0,Me.jsx)(S,{alignItems:"center",marginTop:1,children:(0,Me.jsx)(s,{color:c.dim,children:"x"})}),y("Height",d,"height")]}),R&&(0,Me.jsx)(S,{marginTop:1,children:(0,Me.jsx)(s,{color:c.red,children:R})}),(0,Me.jsx)(Zt,{bindings:[{keys:"tab/\u2190\u2192",label:"switch field"},{keys:"\u21B5",label:"save"}],escBackLabel:"cancel"})]})}var Ve=k(ve(),1);async function Wc(e,t,r){let n=e.loadCredentials(t,r),o=e.loadClient(t,r);if(n&&o){let a=new Yi(r);await Promise.allSettled([a.revokeToken(n.access_token,o.client_id,"access_token"),a.revokeToken(n.refresh_token,o.client_id,"refresh_token")])}e.deleteProfileFull(t,r);let i=e.listProfiles();return i.length>0&&(e.setActiveProfile(i[0].profile),e.setDefaultEnv(i[0].env)),{profile:t,env:r,switchedTo:i.length>0?i[0]:void 0}}function zc(){let[e]=(0,Ve.useState)(()=>new sn),[t,r]=(0,Ve.useState)(()=>{let m=e.resolveAuth();if(!m)return!1;if(m.method==="basic")return!0;let{credentials:P}=e.getActiveCredentials();return P?P.expires_at>Date.now()/1e3:!1}),n=(0,Ve.useRef)(null),o=(0,Ve.useRef)(null),i=(0,Ve.useCallback)(()=>{let m=e.resolveAuth();return m?{method:m.method,profile:m.profile,env:m.env}:null},[e]),a=(0,Ve.useCallback)(async()=>{let{credentials:m,profile:P,env:B}=e.getActiveCredentials();if(!m||!P||!B)return null;let V=m.expires_at,$=Date.now()/1e3;if(V-$<300){if(o.current)return o.current;let q=(async()=>{try{let A=await Ki({creds:e,profile:P,env:B,credentials:m});return A?(r(!0),A.accessToken):null}catch{return r(!1),null}finally{o.current=null}})();return o.current=q,q}return r(!0),m.access_token},[e]),u=(0,Ve.useCallback)(()=>{let m=e.resolveAuth();return!m||m.method!=="basic"?null:{username:m.username,access_key:m.access_key}},[e]),d=(0,Ve.useCallback)((m,P)=>{n.current?.revoke();let B=ze(m),V=u(),$=new Qi(B.controllerBaseUrl,a,V,P);return n.current=$,$},[u,a]),x=(0,Ve.useCallback)(()=>n.current,[]),R=(0,Ve.useCallback)(()=>{let m=u();if(m)return m;let P=n.current?.cached;return P?{username:P.username,access_key:P.access_key}:null},[u]),h=(0,Ve.useCallback)(async()=>{let m=n.current;return m?m.resolve():null},[]),y=(0,Ve.useCallback)(async(m="default")=>{let P=e.getDefaultEnv();await new Ji(m,P,e).login(),e.setActiveProfile(m);try{let V=new rr;at(e,V,m,P)}catch{}r(!0)},[e]),l=(0,Ve.useCallback)(async()=>{let m=e.getActiveProfile();if(!m)return null;let P=e.getDefaultEnv(),B=await Wc(e,m,P);return r(!1),{profile:B.profile,env:B.env}},[e]);return{creds:e,tokenValid:t,setTokenValid:r,getToken:a,getBasicAuth:u,getAuthInfo:i,login:y,logout:l,initResolver:d,getResolver:x,getResolvedBasicAuth:R,resolveBasicAuth:h}}var It=k(ve(),1);import{mkdtempSync as ip,rmSync as sp}from"fs";import{join as ap}from"path";import{tmpdir as cp}from"os";function Yc(){let[e]=(0,It.useState)(()=>new rr),t=(0,It.useRef)(null),r=(0,It.useRef)(null),n=(0,It.useRef)(null),o=(0,It.useCallback)(async a=>{if(t.current)return t.current;if(n.current)return n.current;let u=(async()=>{let d=e.load(),x;if(d.chrome_profile_path)x=d.chrome_profile_path.replace("~",process.env.HOME??"~");else{r.current&&(Ot("tempDir","Previous temp dir removed before retry"),r.current=null);let h=ip(ap(cp(),"kane-clean-"));r.current=h,x=h,xt("tempDir",()=>{try{sp(h,{recursive:!0,force:!0})}catch{}})}let R=await es({userDataDir:x,width:d.window_size.width,height:d.window_size.height,startUrl:a??d.default_url??void 0});return t.current=R,xt("chrome",()=>{R.kill()}),R})();n.current=u;try{return await u}finally{n.current=null}},[e]),i=(0,It.useCallback)(()=>{Ot("chrome","Chrome killed"),Ot("tempDir","Temp dir removed"),t.current=null,r.current=null},[]);return{ensureChrome:o,killChrome:i}}var _n=[{name:"run",description:"Execute a test run",args:'[--url <url>] "objective"'},{name:"login",description:"OAuth login",args:"[--profile name]"},{name:"logout",description:"Logout & revoke tokens",args:"[--profile name]"},{name:"whoami",description:"Show profile info",args:"[--profile name]"},{name:"balance",description:"Show credit balance"},{name:"profiles",description:"Manage profiles",args:"list|switch|delete"},{name:"config",description:"Manage configuration",args:"show|set-window|set-mode|chrome-profile|project|folder|hints"},{name:"new",description:"Start a fresh session (uploads current first)"},{name:"name",description:"Set the current session's name (used at /exit save)",args:"<new-name>"},{name:"summary",description:"View detailed run summaries",args:"[index]"},{name:"cancel",description:"Abort current run"},{name:"help",description:"Show command reference"},{name:"clear",description:"Clear chat history"},{name:"exit",description:"Quit kane-cli"}];function Pn(e){let t=e.trim();if(!t.startsWith("/"))return null;let n=t.slice(1).match(/(?:[^\s"]+|"[^"]*")+/g)??[];if(n.length===0)return null;let o=n[0],i={},a=1;for(;a<n.length;){let u=n[a];if(u.startsWith("--")){let d=u.slice(2),x=n[a+1];x&&!x.startsWith("--")?(i[d]=x.replace(/^"|"$/g,""),a+=2):(i[d]=void 0,a++)}else{let d=u.replace(/^"|"$/g,"");o==="run"?i.objective=d:o==="config"?i.action?i.value=d:i.action=d:o==="profiles"?i.action=d:o==="summary"&&(i.index=d),a++}}return{command:o,args:i,raw:t}}var yx=[{name:"Testing",commands:_n.filter(e=>["run","cancel"].includes(e.name))},{name:"Auth",commands:_n.filter(e=>["login","logout","whoami","balance","profiles"].includes(e.name))},{name:"Settings",commands:_n.filter(e=>["config"].includes(e.name))},{name:"Session",commands:_n.filter(e=>["new","name","summary","help","clear","exit"].includes(e.name))}];var Kc=[{name:"testmd",description:"Browse & run saved tests under cwd"},{name:"auth",description:"Login, logout, profiles"},{name:"config",description:"View/change settings",args:"show|mode|window|chrome-profile|project|folder|hints"},{name:"help",description:"Command reference"},{name:"new",description:"Start a fresh session"},{name:"name",description:"Set the session name",args:"<new-name>"},{name:"exit",description:"Quit kane-cli"}],lp={name:"cancel",description:"Abort current run"},up={name:"cancel",description:"Cancel current generation"},lr=[{name:"generate",description:"Switch to Generate mode (test case generator)"},{name:"summary",description:"View run summaries",args:"[index]"},lp,...Kc],$r=[{name:"run",description:"Switch back to Run mode"},{name:"save",description:"Save the current test cases"},{name:"view",description:"Open the scenario browser",args:"[S<n>]"},up,...Kc],Jc=lr;function Ln(e,t="run"){let r=t==="generate"?$r:lr,n=e.startsWith("/")?e.slice(1):e;return n?r.filter(o=>o.name.startsWith(n)):r}var dp=new Set([...lr,...$r].map(e=>e.name));function Qc(e,t){let r=t==="generate"?$r:lr;return dp.has(e)?r.some(n=>n.name===e):!0}function Zc(e,t){let r=t?.trim();return r?e==="generate"?{kind:"reject"}:{kind:"run",objective:r}:e==="generate"?{kind:"toggle"}:{kind:"already"}}var Nt=k(M(),1);function pi({flows:e,filterIndex:t}){let r=t!==void 0?e.filter(n=>n.index===t):e;return r.length===0?null:(0,Nt.jsx)(S,{flexDirection:"column",children:r.map(n=>(0,Nt.jsxs)(S,{flexDirection:"column",marginTop:1,children:[(0,Nt.jsxs)(S,{marginLeft:1,children:[(0,Nt.jsx)(s,{color:c.purple,bold:!0,children:"Flow "+n.index+": "}),(0,Nt.jsx)(s,{color:c.purple,children:n.objective})]}),(0,Nt.jsx)(as,{status:n.status==="error"?"failed":n.status,summary:n.summary,duration:n.duration,steps:n.steps,stepsPassed:n.stepsPassed,stepsFailed:n.stepsFailed,reason:n.reason,creditsConsumed:n.creditsConsumed})]},n.index))})}var jt=k(M(),1),fp={ok:"\u2713",error:"\u2717",cancelled:"\u2298"},mp={ok:c.green,error:c.red,cancelled:c.dim};function el({status:e,command:t,message:r,details:n,accentColor:o}){let i=t.startsWith("/")?t.slice(1):t,a=o??mp[e];return(0,jt.jsxs)(S,{flexDirection:"column",marginLeft:2,marginTop:1,children:[(0,jt.jsx)(S,{marginLeft:1,children:(0,jt.jsxs)(s,{color:a,bold:!0,children:[fp[e]," ",i]})}),(0,jt.jsxs)(S,{borderStyle:"round",borderColor:a,paddingX:2,flexDirection:"column",width:70,children:[(0,jt.jsx)(s,{children:r}),n&&(0,jt.jsx)(s,{color:c.dim,children:n})]})]})}var jr=k(ve(),1);import{join as Dr}from"path";var Or=k(M(),1);function tl({tabs:e,activeIndex:t}){return(0,Or.jsx)(S,{children:e.map((r,n)=>(0,Or.jsx)(S,{marginRight:1,children:n===t?(0,Or.jsx)(s,{color:c.orange,bold:!0,children:`[ ${r} ]`}):(0,Or.jsx)(s,{color:c.dim,children:` ${r} `})},r))})}var C=k(M(),1),Nr=["Commands","Shortcuts","Tests","Setup","About"],Bn=18,pp="https://www.testmuai.com/support/docs/kane-cli-introduction",gp="https://github.com/LambdaTest/kane-cli/issues";function rl({onClose:e,version:t,environment:r,sessionId:n,runUrl:o,mode:i="run"}){let[a,u]=(0,jr.useState)(0),[d,x]=(0,jr.useState)(0);(0,jr.useEffect)(()=>{x(0)},[a]);let R=Nr[a],h=R==="Commands"?hp(i):R==="Shortcuts"?xp():R==="Tests"?vp():R==="Setup"?Sp():bp({version:t,environment:r,sessionId:n,runUrl:o}),y=h.length,l=d>0,m=d+Bn<y,P=h.slice(d,d+Bn);Ee((V,$)=>{if($.escape){e();return}if($.rightArrow||$.tab){u(q=>(q+1)%Nr.length);return}if($.leftArrow){u(q=>(q-1+Nr.length)%Nr.length);return}if($.upArrow){x(q=>Math.max(0,q-1));return}if($.downArrow){x(q=>Math.min(Math.max(0,y-Bn),q+1));return}});let B=[{keys:"\u2190\u2192/tab",label:"switch tabs"}];return y>Bn&&B.push({keys:"\u2191\u2193",label:"scroll"}),(0,C.jsxs)(S,{flexDirection:"column",borderStyle:"round",borderColor:c.orange,paddingX:2,paddingY:1,children:[(0,C.jsx)(tl,{tabs:[...Nr],activeIndex:a,onChange:u}),l&&(0,C.jsx)(S,{marginTop:1,children:(0,C.jsx)(s,{color:c.dim,children:"\u25B2 more above"})}),(0,C.jsx)(S,{marginTop:l?0:1,flexDirection:"column",children:P}),m&&(0,C.jsx)(S,{children:(0,C.jsx)(s,{color:c.dim,children:"\u25BC more below"})}),(0,C.jsx)(Zt,{bindings:B,escBackLabel:"back to chat"})]})}function hp(e){let t=e==="generate"?$r:lr;return[(0,C.jsx)(s,{color:c.dim,children:"Type a natural-language objective and press \u21B5 to run, e.g."},"intro"),(0,C.jsx)(S,{marginLeft:2,children:(0,C.jsx)(s,{color:c.orange,children:'"search amazon for laptop"'})},"ex"),(0,C.jsx)(S,{marginBottom:1},"sp"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Slash commands"},"cmd-h"),...t.map(r=>(0,C.jsxs)(S,{marginLeft:2,children:[(0,C.jsx)(S,{width:14,children:(0,C.jsxs)(s,{color:c.orange,children:["/",r.name]})}),r.args&&(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:r.args})}),(0,C.jsx)(s,{color:c.dim,children:r.description})]},r.name)),(0,C.jsx)(S,{marginBottom:1},"sp2"),(0,C.jsx)(S,{marginLeft:2,children:(0,C.jsx)(s,{color:c.dim,children:"/auth submenu: login \xB7 logout \xB7 whoami \xB7 profiles \xB7 balance"})},"auth-sub"),(0,C.jsx)(S,{marginLeft:2,children:(0,C.jsx)(s,{color:c.dim,children:"/config submenu: show \xB7 set-mode \xB7 set-window \xB7 chrome-profile \xB7 project \xB7 folder"})},"config-sub")]}function $n(e,t){return[(0,C.jsx)(s,{color:c.dim,bold:!0,children:e},`h-${e}`),...t.map(([r,n],o)=>(0,C.jsxs)(S,{marginLeft:2,children:[(0,C.jsx)(S,{width:26,children:(0,C.jsx)(s,{color:c.orange,children:r})}),(0,C.jsx)(s,{color:c.dim,children:n})]},`r-${e}-${o}`)),(0,C.jsx)(S,{marginBottom:1},`s-${e}`)]}function xp(){return[...$n("Cursor & word edit",[["\u2190 \u2192","Cursor by char"],["Ctrl+A Ctrl+E","Start / end of line"],["Home End","Start / end (Linux/Win; rare on Mac laptops)"],["Backspace","Delete char before cursor"],["Ctrl+W","Delete word back"],["Ctrl+U","Clear input"],["Ctrl+K","Kill from cursor to end"],["Ctrl+\u2190 Ctrl+\u2192","Word jump (Linux/Win, iTerm2)"],["Option+\u2190 Option+\u2192","Word jump (Mac native)"],["Option+B Option+F","Word jump (Mac, Emacs-style)"],["Alt+Backspace","Delete word back (Option+Delete on Mac)"],["Ctrl+Delete Option+Fn+Del","Delete word forward"]]),...$n("History & completion",[["\u2191 \u2193","Previous / next history"],["Tab","Accept ghost / fill highlighted command"],["Ctrl+R","Reverse-search history"],["\u21B5","Submit"],["Esc","Close overlay / clear / back"]]),...$n("Lists & menus",[["\u2191 \u2193","Navigate"],["type any char","Filter"],["\u21B5","Select"],["Tab","Create-new (in pickers)"],["Esc","Clear filter, then back"]]),...$n("Global",[["Ctrl+C","Cancel run \xB7 twice exits"]]),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Platform caveats"},"cv-h"),(0,C.jsx)(s,{color:c.dim,children:'\u2022 Mac Terminal.app: enable "Use Option as Meta key" (Profile \u2192 Keyboard)'},"cv-1"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Mac iTerm2: works by default (Esc+ mode)"},"cv-2"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Mac Mission Control may intercept Ctrl+arrow \u2014 use Option+arrow instead"},"cv-3"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Bare Forward Delete acts as Backspace (Ink can't disambiguate)"},"cv-4"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Shift+arrow is parsed but unbound (selection model is future)"},"cv-5"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Thousands of terminals exist \u2014 if a shortcut fails, run `cat` to see bytes"},"cv-6")]}function vp(){return[(0,C.jsxs)(s,{color:c.dim,children:["Sessions you run here are saved as ",(0,C.jsx)(s,{color:c.orange,children:"*_test.md"})," files you can replay later."]},"t-intro"),(0,C.jsx)(S,{marginBottom:1},"t-sp1"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Auto-save"},"t-save-h"),(0,C.jsxs)(s,{color:c.dim,children:[" In ",(0,C.jsx)(s,{color:c.orange,children:"testing"})," mode, /exit prompts to save the session under a name (default: timestamp)."]},"t-save-1"),(0,C.jsxs)(s,{color:c.dim,children:[" In ",(0,C.jsx)(s,{color:c.orange,children:"action"})," mode, sessions are ephemeral unless launched with --name or set via /name."]},"t-save-2"),(0,C.jsxs)(s,{color:c.dim,children:[" Output: ",(0,C.jsx)(s,{color:c.orange,children:"<cwd>/.testmuai/tests/<name>_test.md"})," + sibling ",(0,C.jsx)(s,{color:c.orange,children:"output-<name>/"})," (Result.md + .internal/meta.json)."]},"t-save-3"),(0,C.jsx)(S,{marginBottom:1},"t-sp2"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Replay from a shell"},"t-run-h"),(0,C.jsxs)(s,{color:c.dim,children:[" ",(0,C.jsx)(s,{color:c.orange,children:"kane-cli testmd run path/to/foo_test.md"})," \xB7 ",(0,C.jsx)(s,{color:c.orange,children:"kane-cli testmd list"})," \xB7 bare ",(0,C.jsx)(s,{color:c.orange,children:"kane-cli testmd"})," opens a TTY picker."]},"t-run-1"),(0,C.jsx)(s,{color:c.dim,children:" The .md file carries its own config (mode, max_steps, variables, \u2026) so the replay is reproducible."},"t-run-2"),(0,C.jsx)(S,{marginBottom:1},"t-sp3"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Naming a session mid-run"},"t-name-h"),(0,C.jsxs)(s,{color:c.dim,children:[" Type ",(0,C.jsxs)(s,{color:c.orange,children:["/name ","<new-name>"]})," any time before /exit. Name allowed chars: letters, digits, _, -."]},"t-name-1"),(0,C.jsxs)(s,{color:c.dim,children:[" Discarding at the save prompt: press ",(0,C.jsx)(s,{color:c.orange,children:"N"})," (only key that discards \u2014 every other key saves with default)."]},"t-name-2")]}function Sp(){return[(0,C.jsx)(s,{color:c.dim,bold:!0,children:"1. Login"},"s1-h"),(0,C.jsx)(s,{color:c.dim,children:" /auth \u2192 login. OAuth opens browser; basic uses LambdaTest username + access key."},"s1-b"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"2. Project & folder"},"s2-h"),(0,C.jsx)(s,{color:c.dim,children:" /config project / /config folder. Esc auto-picks KaneAI Generated / Untitled."},"s2-b"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"3. Mode"},"s3-h"),(0,C.jsx)(s,{color:c.dim,children:" testing (saves to TMS) | action (local report). /config set-mode"},"s3-b"),(0,C.jsx)(S,{marginBottom:1},"spacer-1"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Variables (later wins)"},"v-h"),(0,C.jsxs)(s,{color:c.dim,children:[" ",`${Dr(We,"variables")}/*.json`," (global)"]},"v-1"),(0,C.jsxs)(s,{color:c.dim,children:[" ","{cwd}/.testmuai/variables/*.json"," (local) \xB7 --variables-file \xB7 --variables ","'{...}'"]},"v-2"),(0,C.jsx)(s,{color:c.dim,children:' Format: { "key": { "value": "...", "secret": false } } \xB7 ref via {{key}}'},"v-3"),(0,C.jsx)(S,{marginBottom:1},"spacer-2"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Context files"},"c-h"),(0,C.jsxs)(s,{color:c.dim,children:[" Global: ",Dr(We,"global-memory.md")]},"c-1"),(0,C.jsxs)(s,{color:c.dim,children:[" Local: ","{cwd}/.testmuai/context.md"," \xB7 CLI: --global-context, --local-context"]},"c-2"),(0,C.jsx)(S,{marginBottom:1},"spacer-3"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Paths"},"p-h"),(0,C.jsxs)(s,{color:c.dim,children:[" Config: ",Dr(We,"tui-config.json")," \xB7 Auth: ",Dr(We,"config.json")]},"p-1"),(0,C.jsxs)(s,{color:c.dim,children:[" Sessions: ",Dr(We,"sessions"),"/"]},"p-2")]}function bp({version:e,environment:t,sessionId:r,runUrl:n}){return[(0,C.jsxs)(S,{children:[(0,C.jsx)(s,{color:c.orange,bold:!0,children:"kane-cli "}),(0,C.jsxs)(s,{color:c.muted,children:["v",e]})]},"title"),(0,C.jsx)(S,{marginBottom:1},"sp"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Environment"})}),(0,C.jsx)(s,{children:t})]},"env"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Session"})}),(0,C.jsx)(s,{children:r})]},"sess"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Default URL"})}),(0,C.jsx)(s,{color:c.orange,children:n})]},"url"),(0,C.jsx)(S,{marginBottom:1},"sp2"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Docs"})}),(0,C.jsx)(s,{color:c.orange,underline:!0,children:pp})]},"docs"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Bugs"})}),(0,C.jsx)(s,{color:c.orange,underline:!0,children:gp})]},"bugs")]}var On=k(ve(),1);import{existsSync as nl,readFileSync as Wx,rmSync as wp,unlinkSync as Rp}from"fs";function ol(e){let t=cs(e);nl(t)&&wp(t,{recursive:!0,force:!0}),nl(e)&&Rp(e)}var gi=k(M(),1);function il({cwd:e,currentOrgId:t,onClose:r,onRun:n,onExport:o}){let[i,a]=(0,On.useState)("list"),[u,d]=(0,On.useState)(null),[x,R]=(0,On.useState)(0);return i==="inspect"&&u?(0,gi.jsx)(us,{path:u.path,relPath:u.relPath,onBack:()=>a("list"),onAction:h=>{if(h==="run")n(u);else if(h==="export")o(u);else{try{ol(u.path)}catch{}d(null),a("list"),R(y=>y+1)}}}):(0,gi.jsx)(ls,{root:e,currentOrgId:t,onSelect:h=>{d(h),a("inspect")},onCancel:r},x)}var Fe=k(ve(),1);function sl(e){let[t,r]=(0,Fe.useState)(null),[n,o]=(0,Fe.useState)(!1),[i,a]=(0,Fe.useState)(null),[u,d]=(0,Fe.useState)(null),[x,R]=(0,Fe.useState)(null),h=(0,Fe.useRef)(0),y=(0,Fe.useRef)([]),l=(0,Fe.useRef)(!1),m=(0,Fe.useRef)(null),P=(0,Fe.useRef)(e);P.current=e;let B=(0,Fe.useCallback)(async q=>{if(l.current)return null;l.current=!0;let A=++h.current,F=[];y.current=F;let re=W=>`testmd-run-${A}-${W}`,oe={register:(W,se)=>{let ce=re(W);F.push(ce),xt(ce,se)},deregister:W=>Cr(re(W)),cleanup:(W,se)=>Ot(re(W),se),remoteLogger:P.current.remoteLogger},ue={runSteps:W=>new Promise(se=>{let ce=()=>{m.current=null,se()};m.current=ce,r({...W,exitOnComplete:!1,onAllComplete:()=>{W.onAllComplete?.(),ce()}})}),onLockState:W=>{},onRetryAttempt:W=>{},onSummary:async W=>{a(W)},onLinks:async W=>{d(W)},runUpload:W=>W.execute(),onAgentEvent:W=>{}};o(!0),a(null),d(null),R(null);try{let W=await P.current.buildInput(q),se=await ys(W,ue,oe);return R(se),se}finally{l.current=!1,m.current=null,o(!1),r(null);for(let W of F)Ot(W,"run-finished");F.length=0}},[]),V=(0,Fe.useCallback)(()=>{for(let A of y.current)Ot(A,"cancelled");y.current=[];let q=m.current;m.current=null,q?.()},[]),$=(0,Fe.useCallback)(()=>{a(null),d(null),R(null)},[]);return{start:B,cancel:V,clearResult:$,running:n,runViewProps:t,summary:i,links:u,runSummary:x}}var De=k(ve(),1);function al(e={}){let[t,r]=(0,De.useState)(()=>dn({requestId:"",objective:""})),[n,o]=(0,De.useState)(!1),[i,a]=(0,De.useState)(null),u=(0,De.useRef)(null),d=(0,De.useRef)(!1),x=(0,De.useRef)(null),R=(0,De.useCallback)(async(B,V,$)=>{d.current=!1;let q=0,A=0,F=0;for await(let re of B){if(d.current)break;switch(r(oe=>ks(oe,re)),re.type){case"thinking_done":$?.("tcg_thinking",{tookMs:re.tookMs});break;case"progress":{let oe=Math.min(100,Math.floor(re.pct/25)*25);oe>F&&(F=oe,$?.("tcg_progress",{pct:oe}));break}case"snapshot":q=re.data.scenarios.length,A=re.data.scenarios.reduce((oe,ue)=>oe+(ue.test_cases?.length??0),0),$?.("tcg_snapshot",{scenarioCount:q,caseCount:A});break;case"clarification":$?.("tcg_clarification",{});break;case"done":$?.("tcg_request_done",{status:re.status,scenarioCount:q,caseCount:A,durationMs:Date.now()-V});break;case"error":$?.("tcg_request_error",{errorCode:"tcg_request_failed",durationMs:Date.now()-V});break}}},[]),h=(0,De.useCallback)(async(B,V)=>{if(u.current)throw new Error("useTcgSession: a session is already active; call reset() or end() first");let $=e.makeClient??As;u.current=$(B),x.current=new AbortController;let q=dn({requestId:"",objective:V.prompt});r(fn(q));let A;try{A=await u.current.start(V,x.current.signal)}catch(re){throw u.current=null,x.current=null,r(oe=>({...oe,turnActive:!1})),re}a(A.requestId),r(fn({...A.state,requestId:A.requestId,objective:V.prompt}));let F=Date.now();e.log?.("tcg_request_start",{request_id:A.requestId,objectiveChars:V.prompt.length,scenarioLimit:V.scenarioLimit,perScenarioLimit:V.perScenarioLimit,memoryEnhancement:V.memoryEnhancement}),await R(A.events,F,e.log)},[R,e.makeClient,e.log]),y=(0,De.useCallback)(async(B,V)=>{if(!u.current||!i)throw new Error("useTcgSession: chat() with no active request");r($=>fn(Is($)));try{await u.current.chat(i,B,V)}catch($){throw r(q=>({...q,turnActive:!1})),$}},[i]),l=(0,De.useCallback)(async()=>{if(!(!i||!u.current)){d.current=!0,x.current&&x.current.abort();try{await u.current.cancel(i)}catch{}u.current=null,a(null),r(B=>({...B,turnActive:!1}))}},[i]),m=(0,De.useCallback)(async()=>{if(!(!i||!u.current)){d.current=!0,x.current&&x.current.abort();try{await u.current.end(i)}catch{}u.current=null,a(null),r(B=>({...B,turnActive:!1}))}},[i]),P=(0,De.useCallback)(()=>{d.current=!0,x.current&&x.current.abort(),x.current=null,r(dn({requestId:"",objective:""})),a(null),o(!1),u.current=null},[]);return(0,De.useEffect)(()=>()=>{d.current=!0,x.current&&x.current.abort()},[]),{state:t,isStreaming:t.turnActive,isTerminal:Cs(t.status),isReconnecting:n,turnActive:t.turnActive,inReview:t.scenarios.length>0&&!t.turnActive&&!Po(t.status),isSessionClosed:Po(t.status),requestId:i,startWith:h,chat:y,cancel:l,end:m,reset:P}}var te=k(ve(),1);import{join as ur,resolve as Op}from"path";import{mkdirSync as xi,writeFileSync as Rl,appendFileSync as Dp}from"fs";function cl(e){let t=ze(e.env);return!t||!t.testGeneratorBaseUrl?{ok:!1,error:`Unknown environment "${e.env}" \u2014 fix default_env via /config`}:{ok:!0,conn:{baseUrl:`${t.testGeneratorBaseUrl}/test-generator/api/v2`,tmsBaseUrl:t.tmsBaseUrl,authResolver:e.resolver,projectId:e.projectId,folderId:e.folderId,log:e.log}}}function ll(e){return e.turnActive?!0:e.requestId!=null&&!e.isSessionClosed&&!e.saved}function ul(e){return e.isRunning||e.hasLiveResults}function dl(e){let t=(e??"").trim().match(/^[sS](\d+)$/);if(!t)return{level:"scenarios"};let r=parseInt(t[1],10);return r<1?{level:"scenarios"}:{level:"cases",scenarioIdx:r-1}}function fl(e,t){return`S${e+1}.C${t+1}`}function ml(e,t){return e.reduce((r,n)=>r+(n.test_cases??[]).filter(o=>!t.has(o.id)).length,0)}function pl(e,t){return e.map(r=>({...r,test_cases:(r.test_cases??[]).filter(n=>!t.has(n.id))})).filter(r=>(r.test_cases??[]).length>0)}var Mr=k(ve(),1);import{createHash as Tp}from"crypto";function yp(e){return Tp("sha1").update(JSON.stringify({t:e.title,p:e.preconditions,m:e.manual_steps})).digest("hex")}var Dn=class{constructor(t){this.deps=t;this.max=t.maxConcurrent??3}cache=new Map;caseById=new Map;queue=[];active=0;max;onSnapshot(t){t.forEach((r,n)=>{(r.test_cases??[]).forEach((o,i)=>{if(!St(o)||o.manual_steps==null)return;let a=yp(o),u=this.cache.get(o.id);u&&u.hash===a||(u?.controller?.abort(),this.caseById.set(o.id,o),this.cache.set(o.id,{hash:a,ref:fl(n,i),status:"pending"}),this.queue.includes(o.id)||this.queue.push(o.id))})}),this.pump()}pump(){for(;this.active<this.max&&this.queue.length>0;){let t=this.queue.shift(),r=this.cache.get(t),n=this.caseById.get(t);!r||!n||r.status!=="pending"||(this.active++,this.runOne(t,n,r))}}async runOne(t,r,n){let o=`bifurcation-${t}`,i=new AbortController;n.controller=i;let a=this.deps.run??this.defaultRun.bind(this);xt(o,()=>i.abort());let u=Date.now();try{this.safeLog("tcg_bif_start",{caseId:t,ref:n.ref});let d=await a($s(r),i.signal);if(!i.signal.aborted&&this.cache.get(t)===n){n.status="done",n.result=d;try{this.deps.persist?.(t,d,n.ref)}catch{}this.safeLog("tcg_bif_done",{caseId:t,ref:n.ref,total_flows:d.total_flows,is_single_flow:d.is_single_flow,estimated_steps_total:(d.sub_objectives??[]).reduce((x,R)=>x+(R.estimated_steps??0),0),credits_consumed:d.credits_consumed,durationMs:Date.now()-u})}}catch(d){!i.signal.aborted&&this.cache.get(t)===n&&(n.status="error",n.error=d.message,this.safeLog("tcg_bif_error",{caseId:t,ref:n.ref,errorCode:"bifurcation_failed",durationMs:Date.now()-u}))}finally{Cr(o),this.active--,this.pump()}}safeLog(t,r){try{this.deps.log?.(t,r)}catch{}}async defaultRun(t,r){let n=await this.deps.resolveAuth(),o=Os({objective:t,model:this.deps.model,sessionId:this.deps.sessionId,auth:n});return Ds(o,this.deps.spawnOpts,r)}getStatus(t){return this.cache.get(t)?.status}getResult(t){return this.cache.get(t)?.result}dispose(){for(let[t,r]of this.cache)r.controller?.abort(),Cr(`bifurcation-${t}`);this.cache.clear(),this.caseById.clear(),this.queue=[],this.active=0}};function gl(e){let t=(0,Mr.useRef)(null);return(0,Mr.useEffect)(()=>{if(!e.enabled)return;let r=e.log,n=r?(o,i,a,u)=>r(i,u??{}):void 0;return t.current=new Dn({model:e.model,sessionId:e.sessionId,resolveAuth:e.resolveAuth,spawnOpts:{environment:e.environment,log:n},log:r,persist:e.persist}),()=>{t.current?.dispose(),t.current=null}},[e.enabled,e.sessionId,e.model,e.environment]),(0,Mr.useEffect)(()=>{t.current&&t.current.onSnapshot(e.scenarios)},[e.scenarios]),{getStatus:r=>t.current?.getStatus(r),getResult:r=>t.current?.getResult(r),manager:t}}import{resolve as vl,isAbsolute as Cp,extname as Ip}from"path";import{homedir as xl}from"os";var Ep=/(?<=^|\s)@(?:"([^"]*)"|([^\s@]+))/g;function hl(e){let t=[];for(let r of e.matchAll(Ep)){let n=r[1]!==void 0?r[1]:r[2];t.push({raw:r[0],value:n,start:r.index,end:r.index+r[0].length})}return t}var kp=/^s\d+(\.c\d+)?$/i;function Ap(e){return e==="~"?xl():e.startsWith("~/")?vl(xl(),e.slice(2)):e}function _p(e){return/^https?:\/\//i.test(e)?!1:e.includes("/")?!0:mn.has(Ip(e).toLowerCase())}function Sl(e,t){let r=hl(e),n=[],o=[];for(let a of r){let u=a.value,d=a.end;if(!a.raw.includes('"')){let h=u.match(/[.,;:!?]+$/);h&&(u=u.slice(0,-h[0].length),d-=h[0].length)}if(kp.test(u)||!_p(u))continue;let x=Ap(u),R=Cp(x)?x:vl(t,x);n.push(R),o.push([a.start,d])}let i=e;for(let[a,u]of o.sort((d,x)=>x[0]-d[0]))i=i.slice(0,a)+i.slice(u);return i=i.replace(/[ \t]{2,}/g," ").replace(/ +([.,;:!?])/g,"$1").trim(),{paths:n,promptText:i}}var Pp=["request_id","session_id","caseId","ref","total_flows","is_single_flow","estimated_steps_total","credits_consumed","durationMs","pct","tookMs","scenarioCount","caseCount","savedCount","fellBack","turnIndex","status","errorCode","objectiveChars","scenarioLimit","perScenarioLimit","memoryEnhancement"],Lp=new Set(Pp);function hi(e){let t={};for(let r of Object.keys(e))Lp.has(r)&&e[r]!==void 0&&(t[r]=e[r]);return t}import{mkdirSync as Bp,appendFileSync as $p}from"fs";import{join as bl}from"path";function wl(e,t,r,n,o=We){let i=bl(o,"tcg",e&&e.length>0?e:"pending"),a=bl(i,"errors.log");try{let u=r instanceof Error?r.stack??r.message:String(r),d=`[${new Date().toISOString()}] phase=${t} ${u}${n?" "+JSON.stringify(n):""}
|
|
2
|
+
import{a as Cs,b as Po,c as dn,d as Is,e as fn,f as ks,h as As,i as _s,j as Ps,k as Ls,l as Bs,m as St,n as $s,o as Os,p as Ds,q as mn,r as Ns,s as Lo,t as js,u as Ms,v as Vs}from"./chunk-7NELLGD4.js";import{a as bo,b as Ni}from"./chunk-3MSXQU2C.js";import{a as Fs}from"./chunk-554BXLWE.js";import{a as Hi,b as Gi,d as Zi,e as es,f as ts,g as Co,h as ss,j as gs,k as ko,l as Ao,n as hs,o as xs,p as vs,q as Ss,r as _o,s as bs,t as ws,u as Rs,w as vt,x as ys}from"./chunk-NURJMABT.js";import{a as Ts}from"./chunk-Y6MB5JP7.js";import{a as ls,b as us,l as Es}from"./chunk-6IE22TW6.js";import{a as qs,b as Bo}from"./chunk-WXV73W6R.js";import{a as ds}from"./chunk-PUU7A26K.js";import{b as cs}from"./chunk-AH4AXJML.js";import{a as ji,b as wo,c as $t,d as an,e as os,f as is}from"./chunk-WILJRFXU.js";import{c as cn}from"./chunk-Q3RXDN74.js";import{a as rr}from"./chunk-J7QJ5Q3J.js";import{a as Qi}from"./chunk-FPFOW6BS.js";import{a as Vi,b as Fi,c as qi,d as rs,e as ns,f as as,h as fs}from"./chunk-BACEOONG.js";import{a as ln,b as ms,c as Io}from"./chunk-BY7T5OJN.js";import{a as Ro}from"./chunk-KKXWOTVX.js";import{c as ps}from"./chunk-AFUGVKF7.js";import{a as un}from"./chunk-LAPX4BA7.js";import{b as er}from"./chunk-TOR7WEDD.js";import{b as tr}from"./chunk-YC7GOEEW.js";import{a as Wi,d as xt,e as Cr,f as Ot,g as nr}from"./chunk-LOIRZFV3.js";import{g as zi}from"./chunk-JTXYQ2KH.js";import{a as Er}from"./chunk-LPUQ4HWQ.js";import{a as at,b as pt,c as Xi}from"./chunk-VE3SUJMA.js";import{a as Ki}from"./chunk-7YZO2QQ6.js";import{a as Ji}from"./chunk-264ZEJT7.js";import{a as sn}from"./chunk-AR6VSIYN.js";import{a as Yi}from"./chunk-3TNWLCIU.js";import{a as ze}from"./chunk-TQZPYXN7.js";import{a as Ui}from"./chunk-RZ4F3BHX.js";import{a as To}from"./chunk-LFQ2MZYC.js";import{a as Et}from"./chunk-2TT2RIVP.js";import{b as Mi}from"./chunk-C6S4IEBC.js";import{b as yo}from"./chunk-BFYV4TJW.js";import{c as Eo}from"./chunk-HHDG2TGX.js";import{a as Zt}from"./chunk-HWCBOJOP.js";import{a as mt,c as We,j as vo,n as Di,o as So,x as c}from"./chunk-J54IX7BP.js";import{a as M}from"./chunk-HCBYKLMW.js";import{a as S,b as s,i as Ee,j as Oi,k as on}from"./chunk-C44QQJR4.js";import{a as ve}from"./chunk-6YGTRKDT.js";import{c as z,e as k}from"./chunk-UR6MHSHU.js";var ir=z((_g,Gs)=>{"use strict";var ju="2.0.0",Mu=Number.MAX_SAFE_INTEGER||9007199254740991,Vu=16,Fu=250,qu=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Gs.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Vu,MAX_SAFE_BUILD_LENGTH:Fu,MAX_SAFE_INTEGER:Mu,RELEASE_TYPES:qu,SEMVER_SPEC_VERSION:ju,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Ir=z((Pg,Xs)=>{"use strict";var Uu=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};Xs.exports=Uu});var sr=z((bt,Ws)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:$o,MAX_SAFE_BUILD_LENGTH:Hu,MAX_LENGTH:Gu}=ir(),Xu=Ir();bt=Ws.exports={};var Wu=bt.re=[],zu=bt.safeRe=[],D=bt.src=[],Yu=bt.safeSrc=[],N=bt.t={},Ku=0,Oo="[a-zA-Z0-9-]",Ju=[["\\s",1],["\\d",Gu],[Oo,Hu]],Qu=e=>{for(let[t,r]of Ju)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},K=(e,t,r)=>{let n=Qu(t),o=Ku++;Xu(e,o,t),N[e]=o,D[o]=t,Yu[o]=n,Wu[o]=new RegExp(t,r?"g":void 0),zu[o]=new RegExp(n,r?"g":void 0)};K("NUMERICIDENTIFIER","0|[1-9]\\d*");K("NUMERICIDENTIFIERLOOSE","\\d+");K("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Oo}*`);K("MAINVERSION",`(${D[N.NUMERICIDENTIFIER]})\\.(${D[N.NUMERICIDENTIFIER]})\\.(${D[N.NUMERICIDENTIFIER]})`);K("MAINVERSIONLOOSE",`(${D[N.NUMERICIDENTIFIERLOOSE]})\\.(${D[N.NUMERICIDENTIFIERLOOSE]})\\.(${D[N.NUMERICIDENTIFIERLOOSE]})`);K("PRERELEASEIDENTIFIER",`(?:${D[N.NONNUMERICIDENTIFIER]}|${D[N.NUMERICIDENTIFIER]})`);K("PRERELEASEIDENTIFIERLOOSE",`(?:${D[N.NONNUMERICIDENTIFIER]}|${D[N.NUMERICIDENTIFIERLOOSE]})`);K("PRERELEASE",`(?:-(${D[N.PRERELEASEIDENTIFIER]}(?:\\.${D[N.PRERELEASEIDENTIFIER]})*))`);K("PRERELEASELOOSE",`(?:-?(${D[N.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${D[N.PRERELEASEIDENTIFIERLOOSE]})*))`);K("BUILDIDENTIFIER",`${Oo}+`);K("BUILD",`(?:\\+(${D[N.BUILDIDENTIFIER]}(?:\\.${D[N.BUILDIDENTIFIER]})*))`);K("FULLPLAIN",`v?${D[N.MAINVERSION]}${D[N.PRERELEASE]}?${D[N.BUILD]}?`);K("FULL",`^${D[N.FULLPLAIN]}$`);K("LOOSEPLAIN",`[v=\\s]*${D[N.MAINVERSIONLOOSE]}${D[N.PRERELEASELOOSE]}?${D[N.BUILD]}?`);K("LOOSE",`^${D[N.LOOSEPLAIN]}$`);K("GTLT","((?:<|>)?=?)");K("XRANGEIDENTIFIERLOOSE",`${D[N.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);K("XRANGEIDENTIFIER",`${D[N.NUMERICIDENTIFIER]}|x|X|\\*`);K("XRANGEPLAIN",`[v=\\s]*(${D[N.XRANGEIDENTIFIER]})(?:\\.(${D[N.XRANGEIDENTIFIER]})(?:\\.(${D[N.XRANGEIDENTIFIER]})(?:${D[N.PRERELEASE]})?${D[N.BUILD]}?)?)?`);K("XRANGEPLAINLOOSE",`[v=\\s]*(${D[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${D[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${D[N.XRANGEIDENTIFIERLOOSE]})(?:${D[N.PRERELEASELOOSE]})?${D[N.BUILD]}?)?)?`);K("XRANGE",`^${D[N.GTLT]}\\s*${D[N.XRANGEPLAIN]}$`);K("XRANGELOOSE",`^${D[N.GTLT]}\\s*${D[N.XRANGEPLAINLOOSE]}$`);K("COERCEPLAIN",`(^|[^\\d])(\\d{1,${$o}})(?:\\.(\\d{1,${$o}}))?(?:\\.(\\d{1,${$o}}))?`);K("COERCE",`${D[N.COERCEPLAIN]}(?:$|[^\\d])`);K("COERCEFULL",D[N.COERCEPLAIN]+`(?:${D[N.PRERELEASE]})?(?:${D[N.BUILD]})?(?:$|[^\\d])`);K("COERCERTL",D[N.COERCE],!0);K("COERCERTLFULL",D[N.COERCEFULL],!0);K("LONETILDE","(?:~>?)");K("TILDETRIM",`(\\s*)${D[N.LONETILDE]}\\s+`,!0);bt.tildeTrimReplace="$1~";K("TILDE",`^${D[N.LONETILDE]}${D[N.XRANGEPLAIN]}$`);K("TILDELOOSE",`^${D[N.LONETILDE]}${D[N.XRANGEPLAINLOOSE]}$`);K("LONECARET","(?:\\^)");K("CARETTRIM",`(\\s*)${D[N.LONECARET]}\\s+`,!0);bt.caretTrimReplace="$1^";K("CARET",`^${D[N.LONECARET]}${D[N.XRANGEPLAIN]}$`);K("CARETLOOSE",`^${D[N.LONECARET]}${D[N.XRANGEPLAINLOOSE]}$`);K("COMPARATORLOOSE",`^${D[N.GTLT]}\\s*(${D[N.LOOSEPLAIN]})$|^$`);K("COMPARATOR",`^${D[N.GTLT]}\\s*(${D[N.FULLPLAIN]})$|^$`);K("COMPARATORTRIM",`(\\s*)${D[N.GTLT]}\\s*(${D[N.LOOSEPLAIN]}|${D[N.XRANGEPLAIN]})`,!0);bt.comparatorTrimReplace="$1$2$3";K("HYPHENRANGE",`^\\s*(${D[N.XRANGEPLAIN]})\\s+-\\s+(${D[N.XRANGEPLAIN]})\\s*$`);K("HYPHENRANGELOOSE",`^\\s*(${D[N.XRANGEPLAINLOOSE]})\\s+-\\s+(${D[N.XRANGEPLAINLOOSE]})\\s*$`);K("STAR","(<|>)?=?\\s*\\*");K("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");K("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var pn=z((Lg,zs)=>{"use strict";var Zu=Object.freeze({loose:!0}),ed=Object.freeze({}),td=e=>e?typeof e!="object"?Zu:e:ed;zs.exports=td});var Do=z((Bg,Js)=>{"use strict";var Ys=/^[0-9]+$/,Ks=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:e<t?-1:1;let r=Ys.test(e),n=Ys.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1},rd=(e,t)=>Ks(t,e);Js.exports={compareIdentifiers:Ks,rcompareIdentifiers:rd}});var Be=z(($g,Zs)=>{"use strict";var gn=Ir(),{MAX_LENGTH:Qs,MAX_SAFE_INTEGER:hn}=ir(),{safeRe:xn,t:vn}=sr(),nd=pn(),{compareIdentifiers:No}=Do(),od=(e,t)=>{let r=t.split(".");if(r.length>e.length)return!1;for(let n=0;n<r.length;n++)if(No(e[n],r[n])!==0)return!1;return!0},jo=class e{constructor(t,r){if(r=nd(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>Qs)throw new TypeError(`version is longer than ${Qs} characters`);gn("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?xn[vn.LOOSE]:xn[vn.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>hn||this.major<0)throw new TypeError("Invalid major version");if(this.minor>hn||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>hn||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){let i=+o;if(i>=0&&i<hn)return i}return o}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(gn("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),this.major<t.major?-1:this.major>t.major?1:this.minor<t.minor?-1:this.minor>t.minor?1:this.patch<t.patch?-1:this.patch>t.patch?1:0}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],o=t.prerelease[r];if(gn("prerelease compare",r,n,o),n===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(n===void 0)return-1;if(n===o)continue;return No(n,o)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let n=this.build[r],o=t.build[r];if(gn("build compare",r,n,o),n===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(n===void 0)return-1;if(n===o)continue;return No(n,o)}while(++r)}inc(t,r,n){if(t.startsWith("pre")){if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let o=`-${r}`.match(this.options.loose?xn[vn.PRERELEASELOOSE]:xn[vn.PRERELEASE]);if(!o||o[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let o=Number(n)?1:0;if(this.prerelease.length===0)this.prerelease=[o];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);if(i===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(r){let i=[r,o];if(n===!1&&(i=[r]),od(this.prerelease,r)){let a=this.prerelease[r.split(".").length];isNaN(a)&&(this.prerelease=i)}else this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Zs.exports=jo});var Dt=z((Og,ta)=>{"use strict";var ea=Be(),id=(e,t,r=!1)=>{if(e instanceof ea)return e;try{return new ea(e,t)}catch(n){if(!r)return null;throw n}};ta.exports=id});var na=z((Dg,ra)=>{"use strict";var sd=Dt(),ad=(e,t)=>{let r=sd(e,t);return r?r.version:null};ra.exports=ad});var ia=z((Ng,oa)=>{"use strict";var cd=Dt(),ld=(e,t)=>{let r=cd(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};oa.exports=ld});var ca=z((jg,aa)=>{"use strict";var sa=Be(),ud=(e,t,r,n,o)=>{typeof r=="string"&&(o=n,n=r,r=void 0);try{return new sa(e instanceof sa?e.version:e,r).inc(t,n,o).version}catch{return null}};aa.exports=ud});var da=z((Mg,ua)=>{"use strict";var la=Dt(),dd=(e,t)=>{let r=la(e,null,!0),n=la(t,null,!0),o=r.compare(n);if(o===0)return null;let i=o>0,a=i?r:n,u=i?n:r,d=!!a.prerelease.length;if(!!u.prerelease.length&&!d){if(!u.patch&&!u.minor)return"major";if(u.compareMain(a)===0)return u.minor&&!u.patch?"minor":"patch"}let R=d?"pre":"";return r.major!==n.major?R+"major":r.minor!==n.minor?R+"minor":r.patch!==n.patch?R+"patch":"prerelease"};ua.exports=dd});var ma=z((Vg,fa)=>{"use strict";var fd=Be(),md=(e,t)=>new fd(e,t).major;fa.exports=md});var ga=z((Fg,pa)=>{"use strict";var pd=Be(),gd=(e,t)=>new pd(e,t).minor;pa.exports=gd});var xa=z((qg,ha)=>{"use strict";var hd=Be(),xd=(e,t)=>new hd(e,t).patch;ha.exports=xd});var Sa=z((Ug,va)=>{"use strict";var vd=Dt(),Sd=(e,t)=>{let r=vd(e,t);return r&&r.prerelease.length?r.prerelease:null};va.exports=Sd});var ct=z((Hg,wa)=>{"use strict";var ba=Be(),bd=(e,t,r)=>new ba(e,r).compare(new ba(t,r));wa.exports=bd});var Ta=z((Gg,Ra)=>{"use strict";var wd=ct(),Rd=(e,t,r)=>wd(t,e,r);Ra.exports=Rd});var Ea=z((Xg,ya)=>{"use strict";var Td=ct(),yd=(e,t)=>Td(e,t,!0);ya.exports=yd});var Sn=z((Wg,Ia)=>{"use strict";var Ca=Be(),Ed=(e,t,r)=>{let n=new Ca(e,r),o=new Ca(t,r);return n.compare(o)||n.compareBuild(o)};Ia.exports=Ed});var Aa=z((zg,ka)=>{"use strict";var Cd=Sn(),Id=(e,t)=>e.sort((r,n)=>Cd(r,n,t));ka.exports=Id});var Pa=z((Yg,_a)=>{"use strict";var kd=Sn(),Ad=(e,t)=>e.sort((r,n)=>kd(n,r,t));_a.exports=Ad});var kr=z((Kg,La)=>{"use strict";var _d=ct(),Pd=(e,t,r)=>_d(e,t,r)>0;La.exports=Pd});var bn=z((Jg,Ba)=>{"use strict";var Ld=ct(),Bd=(e,t,r)=>Ld(e,t,r)<0;Ba.exports=Bd});var Mo=z((Qg,$a)=>{"use strict";var $d=ct(),Od=(e,t,r)=>$d(e,t,r)===0;$a.exports=Od});var Vo=z((Zg,Oa)=>{"use strict";var Dd=ct(),Nd=(e,t,r)=>Dd(e,t,r)!==0;Oa.exports=Nd});var wn=z((eh,Da)=>{"use strict";var jd=ct(),Md=(e,t,r)=>jd(e,t,r)>=0;Da.exports=Md});var Rn=z((th,Na)=>{"use strict";var Vd=ct(),Fd=(e,t,r)=>Vd(e,t,r)<=0;Na.exports=Fd});var Fo=z((rh,ja)=>{"use strict";var qd=Mo(),Ud=Vo(),Hd=kr(),Gd=wn(),Xd=bn(),Wd=Rn(),zd=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return qd(e,r,n);case"!=":return Ud(e,r,n);case">":return Hd(e,r,n);case">=":return Gd(e,r,n);case"<":return Xd(e,r,n);case"<=":return Wd(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};ja.exports=zd});var Va=z((nh,Ma)=>{"use strict";var Yd=Be(),Kd=Dt(),{safeRe:Tn,t:yn}=sr(),Jd=(e,t)=>{if(e instanceof Yd)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(t.includePrerelease?Tn[yn.COERCEFULL]:Tn[yn.COERCE]);else{let d=t.includePrerelease?Tn[yn.COERCERTLFULL]:Tn[yn.COERCERTL],x;for(;(x=d.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||x.index+x[0].length!==r.index+r[0].length)&&(r=x),d.lastIndex=x.index+x[1].length+x[2].length;d.lastIndex=-1}if(r===null)return null;let n=r[2],o=r[3]||"0",i=r[4]||"0",a=t.includePrerelease&&r[5]?`-${r[5]}`:"",u=t.includePrerelease&&r[6]?`+${r[6]}`:"";return Kd(`${n}.${o}.${i}${a}${u}`,t)};Ma.exports=Jd});var qa=z((oh,Fa)=>{"use strict";var Qd=Dt(),Zd=ir(),ef=Be(),tf=(e,t,r)=>{if(!Zd.RELEASE_TYPES.includes(t))return null;let n=rf(e,r);return n&&nf(n,t)},rf=(e,t)=>{let r=e instanceof ef?e.version:e;return Qd(r,t)},nf=(e,t)=>{if(of(t))return e.version;switch(e.prerelease=[],t){case"major":e.minor=0,e.patch=0;break;case"minor":e.patch=0;break}return e.format()},of=e=>e.startsWith("pre");Fa.exports=tf});var Ha=z((ih,Ua)=>{"use strict";var qo=class{constructor(){this.max=1e3,this.map=new Map}get(t){let r=this.map.get(t);if(r!==void 0)return this.map.delete(t),this.map.set(t,r),r}delete(t){return this.map.delete(t)}set(t,r){if(!this.delete(t)&&r!==void 0){if(this.map.size>=this.max){let o=this.map.keys().next().value;this.delete(o)}this.map.set(t,r)}return this}};Ua.exports=qo});var lt=z((sh,za)=>{"use strict";var sf=/\s+/g,Uo=class e{constructor(t,r){if(r=cf(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof Ho)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(sf," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(o=>!Xa(o[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let o of this.set)if(o.length===1&&xf(o[0])){this.set=[o];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t<this.set.length;t++){t>0&&(this.formatted+="||");let r=this.set[t];for(let n=0;n<r.length;n++)n>0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){t=t.replace(hf,"");let n=((this.options.includePrerelease&&pf)|(this.options.loose&&gf))+":"+t,o=Ga.get(n);if(o)return o;let i=this.options.loose,a=i?Ye[$e.HYPHENRANGELOOSE]:Ye[$e.HYPHENRANGE];t=t.replace(a,kf(this.options.includePrerelease)),pe("hyphen replace",t),t=t.replace(Ye[$e.COMPARATORTRIM],df),pe("comparator trim",t),t=t.replace(Ye[$e.TILDETRIM],ff),pe("tilde trim",t),t=t.replace(Ye[$e.CARETTRIM],mf),pe("caret trim",t);let u=t.split(" ").map(h=>vf(h,this.options)).join(" ").split(/\s+/).map(h=>If(h,this.options));i&&(u=u.filter(h=>(pe("loose invalid filter",h,this.options),!!h.match(Ye[$e.COMPARATORLOOSE])))),pe("range list",u);let d=new Map,x=u.map(h=>new Ho(h,this.options));for(let h of x){if(Xa(h))return[h];d.set(h.value,h)}d.size>1&&d.has("")&&d.delete("");let R=[...d.values()];return Ga.set(n,R),R}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>Wa(n,r)&&t.set.some(o=>Wa(o,r)&&n.every(i=>o.every(a=>i.intersects(a,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new lf(t,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(Af(this.set[r],t,this.options))return!0;return!1}};za.exports=Uo;var af=Ha(),Ga=new af,cf=pn(),Ho=Ar(),pe=Ir(),lf=Be(),{safeRe:Ye,src:uf,t:$e,comparatorTrimReplace:df,tildeTrimReplace:ff,caretTrimReplace:mf}=sr(),{FLAG_INCLUDE_PRERELEASE:pf,FLAG_LOOSE:gf}=ir(),hf=new RegExp(uf[$e.BUILD],"g"),Xa=e=>e.value==="<0.0.0-0",xf=e=>e.value==="",Wa=(e,t)=>{let r=!0,n=e.slice(),o=n.pop();for(;r&&n.length;)r=n.every(i=>o.intersects(i,t)),o=n.pop();return r},vf=(e,t)=>(e=e.replace(Ye[$e.BUILD],""),pe("comp",e,t),e=Rf(e,t),pe("caret",e),e=bf(e,t),pe("tildes",e),e=yf(e,t),pe("xrange",e),e=Cf(e,t),pe("stars",e),e),Re=e=>!e||e.toLowerCase()==="x"||e==="*",Sf=(e,t,r)=>Re(e)&&!Re(t)||Re(t)&&r&&!Re(r),bf=(e,t)=>e.trim().split(/\s+/).map(r=>wf(r,t)).join(" "),wf=(e,t)=>{let r=t.loose?Ye[$e.TILDELOOSE]:Ye[$e.TILDE];return e.replace(r,(n,o,i,a,u)=>{pe("tilde",e,n,o,i,a,u);let d;return Re(o)?d="":Re(i)?d=`>=${o}.0.0 <${+o+1}.0.0-0`:Re(a)?d=`>=${o}.${i}.0 <${o}.${+i+1}.0-0`:u?(pe("replaceTilde pr",u),d=`>=${o}.${i}.${a}-${u} <${o}.${+i+1}.0-0`):d=`>=${o}.${i}.${a} <${o}.${+i+1}.0-0`,pe("tilde return",d),d})},Rf=(e,t)=>e.trim().split(/\s+/).map(r=>Tf(r,t)).join(" "),Tf=(e,t)=>{pe("caret",e,t);let r=t.loose?Ye[$e.CARETLOOSE]:Ye[$e.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(o,i,a,u,d)=>{pe("caret",e,o,i,a,u,d);let x;return Re(i)?x="":Re(a)?x=`>=${i}.0.0${n} <${+i+1}.0.0-0`:Re(u)?i==="0"?x=`>=${i}.${a}.0${n} <${i}.${+a+1}.0-0`:x=`>=${i}.${a}.0${n} <${+i+1}.0.0-0`:d?(pe("replaceCaret pr",d),i==="0"?a==="0"?x=`>=${i}.${a}.${u}-${d} <${i}.${a}.${+u+1}-0`:x=`>=${i}.${a}.${u}-${d} <${i}.${+a+1}.0-0`:x=`>=${i}.${a}.${u}-${d} <${+i+1}.0.0-0`):(pe("no pr"),i==="0"?a==="0"?x=`>=${i}.${a}.${u} <${i}.${a}.${+u+1}-0`:x=`>=${i}.${a}.${u} <${i}.${+a+1}.0-0`:x=`>=${i}.${a}.${u} <${+i+1}.0.0-0`),pe("caret return",x),x})},yf=(e,t)=>(pe("replaceXRanges",e,t),e.split(/\s+/).map(r=>Ef(r,t)).join(" ")),Ef=(e,t)=>{e=e.trim();let r=t.loose?Ye[$e.XRANGELOOSE]:Ye[$e.XRANGE];return e.replace(r,(n,o,i,a,u,d)=>{if(pe("xRange",e,n,o,i,a,u,d),Sf(i,a,u))return e;let x=Re(i),R=x||Re(a),h=R||Re(u),y=h;return o==="="&&y&&(o=""),d=t.includePrerelease?"-0":"",x?o===">"||o==="<"?n="<0.0.0-0":n="*":o&&y?(R&&(a=0),u=0,o===">"?(o=">=",R?(i=+i+1,a=0,u=0):(a=+a+1,u=0)):o==="<="&&(o="<",R?i=+i+1:a=+a+1),o==="<"&&(d="-0"),n=`${o+i}.${a}.${u}${d}`):R?n=`>=${i}.0.0${d} <${+i+1}.0.0-0`:h&&(n=`>=${i}.${a}.0${d} <${i}.${+a+1}.0-0`),pe("xRange return",n),n})},Cf=(e,t)=>(pe("replaceStars",e,t),e.trim().replace(Ye[$e.STAR],"")),If=(e,t)=>(pe("replaceGTE0",e,t),e.trim().replace(Ye[t.includePrerelease?$e.GTE0PRE:$e.GTE0],"")),kf=e=>(t,r,n,o,i,a,u,d,x,R,h,y)=>(Re(n)?r="":Re(o)?r=`>=${n}.0.0${e?"-0":""}`:Re(i)?r=`>=${n}.${o}.0${e?"-0":""}`:a?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,Re(x)?d="":Re(R)?d=`<${+x+1}.0.0-0`:Re(h)?d=`<${x}.${+R+1}.0-0`:y?d=`<=${x}.${R}.${h}-${y}`:e?d=`<${x}.${R}.${+h+1}-0`:d=`<=${d}`,`${r} ${d}`.trim()),Af=(e,t,r)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(let n=0;n<e.length;n++)if(pe(e[n].semver),e[n].semver!==Ho.ANY&&e[n].semver.prerelease.length>0){let o=e[n].semver;if(o.major===t.major&&o.minor===t.minor&&o.patch===t.patch)return!0}return!1}return!0}});var Ar=z((ah,ec)=>{"use strict";var _r=Symbol("SemVer ANY"),Wo=class e{static get ANY(){return _r}constructor(t,r){if(r=Ya(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Xo("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===_r?this.value="":this.value=this.operator+this.semver.version,Xo("comp",this)}parse(t){let r=this.options.loose?Ka[Ja.COMPARATORLOOSE]:Ka[Ja.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new Qa(n[2],this.options.loose):this.semver=_r}toString(){return this.value}test(t){if(Xo("Comparator.test",t,this.options.loose),this.semver===_r||t===_r)return!0;if(typeof t=="string")try{t=new Qa(t,this.options)}catch{return!1}return Go(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Za(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new Za(this.value,r).test(t.semver):(r=Ya(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||Go(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Go(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};ec.exports=Wo;var Ya=pn(),{safeRe:Ka,t:Ja}=sr(),Go=Fo(),Xo=Ir(),Qa=Be(),Za=lt()});var Pr=z((ch,tc)=>{"use strict";var _f=lt(),Pf=(e,t,r)=>{try{t=new _f(t,r)}catch{return!1}return t.test(e)};tc.exports=Pf});var nc=z((lh,rc)=>{"use strict";var Lf=lt(),Bf=(e,t)=>new Lf(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));rc.exports=Bf});var ic=z((uh,oc)=>{"use strict";var $f=Be(),Of=lt(),Df=(e,t,r)=>{let n=null,o=null,i=null;try{i=new Of(t,r)}catch{return null}return e.forEach(a=>{i.test(a)&&(!n||o.compare(a)===-1)&&(n=a,o=new $f(n,r))}),n};oc.exports=Df});var ac=z((dh,sc)=>{"use strict";var Nf=Be(),jf=lt(),Mf=(e,t,r)=>{let n=null,o=null,i=null;try{i=new jf(t,r)}catch{return null}return e.forEach(a=>{i.test(a)&&(!n||o.compare(a)===1)&&(n=a,o=new Nf(n,r))}),n};sc.exports=Mf});var uc=z((fh,lc)=>{"use strict";var zo=Be(),Vf=lt(),cc=kr(),Ff=(e,t)=>{e=new Vf(e,t);let r=new zo("0.0.0");if(e.test(r)||(r=new zo("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n<e.set.length;++n){let o=e.set[n],i=null;o.forEach(a=>{let u=new zo(a.semver.version);switch(a.operator){case">":u.prerelease.length===0?u.patch++:u.prerelease.push(0),u.raw=u.format();case"":case">=":(!i||cc(u,i))&&(i=u);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),i&&(!r||cc(r,i))&&(r=i)}return r&&e.test(r)?r:null};lc.exports=Ff});var fc=z((mh,dc)=>{"use strict";var qf=lt(),Uf=(e,t)=>{try{return new qf(e,t).range||"*"}catch{return null}};dc.exports=Uf});var En=z((ph,hc)=>{"use strict";var Hf=Be(),gc=Ar(),{ANY:Gf}=gc,Xf=lt(),Wf=Pr(),mc=kr(),pc=bn(),zf=Rn(),Yf=wn(),Kf=(e,t,r,n)=>{e=new Hf(e,n),t=new Xf(t,n);let o,i,a,u,d;switch(r){case">":o=mc,i=zf,a=pc,u=">",d=">=";break;case"<":o=pc,i=Yf,a=mc,u="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Wf(e,t,n))return!1;for(let x=0;x<t.set.length;++x){let R=t.set[x],h=null,y=null;if(R.forEach(l=>{l.semver===Gf&&(l=new gc(">=0.0.0")),h=h||l,y=y||l,o(l.semver,h.semver,n)?h=l:a(l.semver,y.semver,n)&&(y=l)}),h.operator===u||h.operator===d||(!y.operator||y.operator===u)&&i(e,y.semver))return!1;if(y.operator===d&&a(e,y.semver))return!1}return!0};hc.exports=Kf});var vc=z((gh,xc)=>{"use strict";var Jf=En(),Qf=(e,t,r)=>Jf(e,t,">",r);xc.exports=Qf});var bc=z((hh,Sc)=>{"use strict";var Zf=En(),em=(e,t,r)=>Zf(e,t,"<",r);Sc.exports=em});var Tc=z((xh,Rc)=>{"use strict";var wc=lt(),tm=(e,t,r)=>(e=new wc(e,r),t=new wc(t,r),e.intersects(t,r));Rc.exports=tm});var Ec=z((vh,yc)=>{"use strict";var rm=Pr(),nm=ct();yc.exports=(e,t,r)=>{let n=[],o=null,i=null,a=e.sort((R,h)=>nm(R,h,r));for(let R of a)rm(R,t,r)?(i=R,o||(o=R)):(i&&n.push([o,i]),i=null,o=null);o&&n.push([o,null]);let u=[];for(let[R,h]of n)R===h?u.push(R):!h&&R===a[0]?u.push("*"):h?R===a[0]?u.push(`<=${h}`):u.push(`${R} - ${h}`):u.push(`>=${R}`);let d=u.join(" || "),x=typeof t.raw=="string"?t.raw:String(t);return d.length<x.length?d:t}});var Pc=z((Sh,_c)=>{"use strict";var Cc=lt(),Jo=Ar(),{ANY:Yo}=Jo,Ko=Pr(),Qo=ct(),om=(e,t,r={})=>{if(e===t)return!0;e=new Cc(e,r),t=new Cc(t,r);let n=!1;e:for(let o of e.set){for(let i of t.set){let a=sm(o,i,r);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},im=[new Jo(">=0.0.0-0")],Ic=[new Jo(">=0.0.0")],sm=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Yo){if(t.length===1&&t[0].semver===Yo)return!0;r.includePrerelease?e=im:e=Ic}if(t.length===1&&t[0].semver===Yo){if(r.includePrerelease)return!0;t=Ic}let n=new Set,o,i;for(let l of e)l.operator===">"||l.operator===">="?o=kc(o,l,r):l.operator==="<"||l.operator==="<="?i=Ac(i,l,r):n.add(l.semver);if(n.size>1)return null;let a;if(o&&i){if(a=Qo(o.semver,i.semver,r),a>0)return null;if(a===0&&(o.operator!==">="||i.operator!=="<="))return null}for(let l of n){if(o&&!Ko(l,String(o),r)||i&&!Ko(l,String(i),r))return null;for(let m of t)if(!Ko(l,String(m),r))return!1;return!0}let u,d,x,R,h=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1,y=o&&!r.includePrerelease&&o.semver.prerelease.length?o.semver:!1;h&&h.prerelease.length===1&&i.operator==="<"&&h.prerelease[0]===0&&(h=!1);for(let l of t){if(R=R||l.operator===">"||l.operator===">=",x=x||l.operator==="<"||l.operator==="<=",o){if(y&&l.semver.prerelease&&l.semver.prerelease.length&&l.semver.major===y.major&&l.semver.minor===y.minor&&l.semver.patch===y.patch&&(y=!1),l.operator===">"||l.operator===">="){if(u=kc(o,l,r),u===l&&u!==o)return!1}else if(o.operator===">="&&!l.test(o.semver))return!1}if(i){if(h&&l.semver.prerelease&&l.semver.prerelease.length&&l.semver.major===h.major&&l.semver.minor===h.minor&&l.semver.patch===h.patch&&(h=!1),l.operator==="<"||l.operator==="<="){if(d=Ac(i,l,r),d===l&&d!==i)return!1}else if(i.operator==="<="&&!l.test(i.semver))return!1}if(!l.operator&&(i||o)&&a!==0)return!1}return!(o&&x&&!i&&a!==0||i&&R&&!o&&a!==0||y||h)},kc=(e,t,r)=>{if(!e)return t;let n=Qo(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},Ac=(e,t,r)=>{if(!e)return t;let n=Qo(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};_c.exports=om});var ei=z((bh,$c)=>{"use strict";var Zo=sr(),Lc=ir(),am=Be(),Bc=Do(),cm=Dt(),lm=na(),um=ia(),dm=ca(),fm=da(),mm=ma(),pm=ga(),gm=xa(),hm=Sa(),xm=ct(),vm=Ta(),Sm=Ea(),bm=Sn(),wm=Aa(),Rm=Pa(),Tm=kr(),ym=bn(),Em=Mo(),Cm=Vo(),Im=wn(),km=Rn(),Am=Fo(),_m=Va(),Pm=qa(),Lm=Ar(),Bm=lt(),$m=Pr(),Om=nc(),Dm=ic(),Nm=ac(),jm=uc(),Mm=fc(),Vm=En(),Fm=vc(),qm=bc(),Um=Tc(),Hm=Ec(),Gm=Pc();$c.exports={parse:cm,valid:lm,clean:um,inc:dm,diff:fm,major:mm,minor:pm,patch:gm,prerelease:hm,compare:xm,rcompare:vm,compareLoose:Sm,compareBuild:bm,sort:wm,rsort:Rm,gt:Tm,lt:ym,eq:Em,neq:Cm,gte:Im,lte:km,cmp:Am,coerce:_m,truncate:Pm,Comparator:Lm,Range:Bm,satisfies:$m,toComparators:Om,maxSatisfying:Dm,minSatisfying:Nm,minVersion:jm,validRange:Mm,outside:Vm,gtr:Fm,ltr:qm,intersects:Um,simplifyRange:Hm,subset:Gm,SemVer:am,re:Zo.re,src:Zo.src,tokens:Zo.t,SEMVER_SPEC_VERSION:Lc.SEMVER_SPEC_VERSION,RELEASE_TYPES:Lc.RELEASE_TYPES,compareIdentifiers:Bc.compareIdentifiers,rcompareIdentifiers:Bc.rcompareIdentifiers}});var E=k(ve(),1);var Us=k(ve(),1);var or=k(M(),1);function Hs({path:e}){return e.length===0?null:(0,or.jsx)(S,{children:e.map((t,r)=>(0,or.jsxs)(Us.default.Fragment,{children:[r>0&&(0,or.jsx)(s,{color:c.muted,children:" \u203A "}),(0,or.jsx)(s,{color:c.dim,children:t})]},r))})}var Oc=k(ei(),1),Xm=1,Wm=new Set(["discover","workflow","nudge","recovery"]),zm=new Set(["run","generate","both"]),Ym=new Set(["banner","footer"]),Cn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),ar=e=>typeof e=="string"&&e.length>0?e:void 0,cr=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function Km(e){if(!Cn(e))return{};let t={};return ar(e.run)&&(t.run=e.run),ar(e.generate)&&(t.generate=e.generate),ar(e.default)&&(t.default=e.default),t}function Dc(e,t){return e.text[t]??e.text.default??(e.target!=="both"?e.text[e.target]:void 0)}function Jm(e,t){return t==="both"?!!e.default||!!e.run&&!!e.generate:t==="run"?!!e.run||!!e.default:!!e.generate||!!e.default}function Qm(e,t){if(!Cn(e))return;let r=cr(e.maxShows),n=ar(e.until),o=cr(e.weight);if(!(r===void 0||r<1||n===void 0||!Number.isFinite(Date.parse(n))))return{weight:Math.max(o??t,t),maxShows:Math.floor(r),until:n}}function Zm(e){if(!Cn(e))return null;let t=ar(e.id);if(!t)return null;let r=zm.has(e.target)?e.target:void 0;if(e.target!==void 0&&r===void 0)return null;let n=r??"both",o=Km(e.text);if(!Jm(o,n))return null;let i=Wm.has(e.category)?e.category:"nudge",a=Ym.has(e.surface)?e.surface:void 0,u=cr(e.weight),d=u===void 0?1:Math.max(0,u),x=cr(e.cooldownSessions),R=x===void 0?0:Math.max(0,Math.floor(x)),h=ar(e.minVersion)&&Oc.default.coerce(e.minVersion)?e.minVersion:void 0,y=Array.isArray(e.relevance)?e.relevance.filter(B=>typeof B=="string"):[],l=cr(e.retireAfterShows),m=l!==void 0&&l>=1?Math.floor(l):void 0,P=Qm(e.boost,d);return{id:t,category:i,surface:a,target:n,text:o,weight:d,cooldownSessions:R,minVersion:h,relevance:y,retireAfterShows:m,boost:P}}function In(e){if(!Cn(e)||!Array.isArray(e.hints)||typeof e.enabled!="boolean")return{catalog:null,dropped:0};let t=cr(e.schemaVersion)??0;if(Math.floor(t)>Xm)return{catalog:null,dropped:0};let r=0,n=new Set,o=[];for(let i of e.hints){let a=Zm(i);if(!a){r++;continue}if(n.has(a.id)){r++;continue}n.add(a.id),o.push(a)}return o.length===0?{catalog:null,dropped:r}:{catalog:{schemaVersion:t,enabled:e.enabled,hints:o},dropped:r}}var Mc=k(M(),1),Nc="tip: ";function jc({hint:e,mode:t,termWidth:r}){if(e.target!=="both"&&e.target!==t)return null;let n=Dc(e,t);if(!n)return null;let o=Math.max(8,r-Nc.length-2),i=n.length>o?n.slice(0,o-1)+"\u2026":n;return(0,Mc.jsx)(s,{color:c.dim,children:Nc+i})}var J=k(M(),1);function Vc({profile:e,environment:t,tokenValid:r,runCount:n,sessionId:o,viewMode:i,breadcrumb:a,chatMode:u,tcgRequestId:d,tcgStreamStatus:x,footerHint:R}){let{stdout:h}=on(),y=h?.columns??80,l=u??"run",m=t==="stage",P=t==="prod",B=l==="generate"?c.generateAccent:c.orange,V=x==="completed"?c.green:x==="failed"?c.red:c.generateAccent;return(0,J.jsxs)(S,{flexDirection:"column",children:[(0,J.jsx)(s,{color:c.muted,children:"\u2500".repeat(y)}),a&&a.length>0&&(0,J.jsx)(S,{paddingX:1,children:(0,J.jsx)(Hs,{path:a})}),(0,J.jsxs)(S,{paddingX:1,gap:1,children:[(0,J.jsx)(s,{color:c.dim,children:"Mode:"}),(0,J.jsx)(s,{color:B,bold:!0,children:l==="generate"?"Generate":"Run"}),(0,J.jsx)(s,{color:c.muted,children:"|"}),l==="generate"?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.dim,children:"req"}),(0,J.jsx)(s,{color:c.dim,children:d??"\u2014"}),x&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.muted,children:"\xB7"}),(0,J.jsx)(s,{color:V,children:x})]})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.dim,children:"Session:"}),(0,J.jsx)(s,{color:c.dim,children:o})]}),(0,J.jsx)(s,{color:c.muted,children:"|"}),(0,J.jsx)(s,{color:r?c.green:c.red,children:"\u25CF"}),(0,J.jsx)(s,{color:c.dim,children:r?"authenticated":"not logged in"}),!P&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.muted,children:"|"}),m?(0,J.jsx)(s,{color:c.orange,bold:!0,children:"\u26A0 stage"}):(0,J.jsx)(s,{color:c.green,children:t})]})]}),(0,J.jsxs)(S,{paddingX:1,gap:1,children:[(0,J.jsx)(s,{color:c.dim,children:e??"no profile"}),l==="run"&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.muted,children:"|"}),(0,J.jsxs)(s,{color:c.dim,children:["runs: ",n]})]}),(0,J.jsx)(s,{color:c.muted,children:"|"}),(0,J.jsx)(s,{dimColor:!0,children:Ni()})]}),(0,J.jsx)(S,{paddingX:1,children:(0,J.jsx)(s,{dimColor:!0,children:i==="chat"?"ctrl+c cancel/exit":"\u2191\u2193 navigate \u21B5 select esc back"})}),R&&(0,J.jsx)(S,{paddingX:1,children:(0,J.jsx)(jc,{hint:R,mode:l,termWidth:y})})]})}var Xt=k(ve(),1);var Lr=[[[" "],[" "],[" "],[" "],["\u2584","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],[" "],[" "],[" "],[" "],[" "],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2584","#af87d7"],[" "],[" "],[" "],[" "]],[[" "],[" "],["\u2584","#875faf"],["\u2584","#af87d7","#875faf"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2584","#af87d7","#875faf"],["\u2584","#875faf"],[" "],[" "]],[[" "],[" "],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2584","#000000","#af87d7"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#af87d7"],["\u2588","#af87d7"],["\u2588","#875faf"],[" "],[" "]],[[" "],["\u2588","#875faf"],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2588","#000000"],["\u2584","#585858","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#af87d7"],["\u2588","#875faf"],["\u2588","#875faf"],[" "]],[[" "],["\u2588","#875faf"],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2588","#000000"],["\u2588","#585858"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#af87d7"],["\u2588","#875faf"],["\u2588","#875faf"],[" "]],[[" "],[" "],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2588","#000000"],["\u2584","#000000","#585858"],["\u2588","#000000"],["\u2588","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#af87d7"],["\u2588","#875faf"],[" "],[" "]],[[" "],[" "],["\u2580","#875faf"],["\u2580","#af87d7"],["\u2580","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2580","#af87d7"],["\u2580","#af87d7"],["\u2580","#875faf"],[" "],[" "]],[[" "],[" "],[" "],[" "],[" "],["\u2580","#af87d7"],["\u2580","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2580","#af87d7"],["\u2580","#af87d7"],[" "],[" "],[" "],[" "],[" "]]];var ne=k(M(),1),kn="#af87d7",ti="#875faf",Fc="#5b3a7a",ep="#ff9500",tp="#ea580c";var ri="#666666",rp="#555555",Gt=[[kn,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[kn,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[kn,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[kn,"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[ti,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[ti,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[ti,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588"]],ni=Gt.map(([,e])=>[...e]);function qc({visibleRows:e=Gt.length}){let t=Math.min(e,Gt.length);return(0,ne.jsxs)(S,{flexDirection:"column",children:[Gt.slice(0,t).map(([r,n],o)=>{let i=ni[o];return(0,ne.jsx)(s,{children:i.map((a,u)=>{if(a==="\u2588")return(0,ne.jsx)(s,{color:r,children:"\u2588"},u);let d=u>0&&i[u-1]==="\u2588",x=o>0&&u>0&&ni[o-1][u-1]==="\u2588";return d||x?(0,ne.jsx)(s,{color:Fc,children:"\u2592"},u):(0,ne.jsx)(s,{children:" "},u)})},o)}),t>=Gt.length&&(0,ne.jsxs)(s,{children:[" ",ni[Gt.length-1].map((r,n)=>r==="\u2588"?(0,ne.jsx)(s,{color:Fc,children:"\u2580"},n):(0,ne.jsx)(s,{children:" "},n))]})]})}function np({visibleRows:e=Lr.length}){let t=Math.min(e,Lr.length);return(0,ne.jsx)(S,{flexDirection:"column",children:Lr.slice(0,t).map((r,n)=>(0,ne.jsx)(s,{children:r.map((o,i)=>{let a=o[0],u=o[1],d=o[2];return u?(0,ne.jsx)(s,{color:u,backgroundColor:d,children:a},i):(0,ne.jsx)(s,{children:a},i)})},n))})}function An({size:e="compact",helmetVisibleRows:t=Lr.length,textVisibleRows:r=Gt.length,showMeta:n=!1,user:o=null,authenticated:i=!1,version:a=""}){return e==="compact"?(0,ne.jsx)(qc,{}):(0,ne.jsxs)(S,{flexDirection:"column",paddingX:1,paddingY:1,children:[(0,ne.jsx)(s,{color:ep,italic:!0,children:" Welcome to"}),(0,ne.jsx)(s,{children:" "}),(0,ne.jsxs)(S,{gap:2,children:[(0,ne.jsx)(np,{visibleRows:t}),(0,ne.jsxs)(S,{flexDirection:"column",children:[(0,ne.jsx)(qc,{visibleRows:r}),(0,ne.jsx)(S,{justifyContent:"flex-end",width:73,children:(0,ne.jsx)(s,{color:tp,italic:!0,children:"Command-line interface"})})]})]}),n&&(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)(s,{children:" "}),(0,ne.jsxs)(s,{children:[(0,ne.jsx)(s,{color:ri,children:" Browser automation powered by AI. "}),(0,ne.jsx)(s,{color:rp,children:`v${a}`})]}),(0,ne.jsx)(s,{children:" "}),(0,ne.jsx)(s,{children:(0,ne.jsx)(s,{color:ri,children:" KaneCLI can navigate websites, fill forms, test web UI, and extract"})}),(0,ne.jsx)(s,{children:(0,ne.jsx)(s,{color:ri,children:" data \u2014 right from your terminal."})}),(0,ne.jsx)(s,{children:" "})]})]})}var si=k(M(),1),oi=8,ii=7;function Uc({onComplete:e}){let[t,r]=(0,Xt.useState)(0),[n,o]=(0,Xt.useState)(0),[i,a]=(0,Xt.useState)(!1),[u]=(0,Xt.useState)(()=>{let d=new sn,x=d.getActiveProfile(),R=d.getDefaultEnv(),h=x?d.loadCredentials(x,R):null,y=x?d.loadBasicAuth(x,R):null;return{authenticated:!!(h||y),user:y?.username??x??null}});return Ro(()=>{r(d=>Math.min(oi,d+1))},t<oi?60:null),Ro(()=>{o(d=>Math.min(ii,d+1))},n<ii?80:null),(0,Xt.useEffect)(()=>{t>=oi&&n>=ii&&!i&&(a(!0),e?.())},[t,n,i,e]),(0,si.jsx)(S,{flexDirection:"column",children:(0,si.jsx)(An,{size:"full",helmetVisibleRows:t,textVisibleRows:n,showMeta:i,user:u.user,authenticated:u.authenticated,version:mt})})}var Ct=k(M(),1);function Hc({entry:e}){return e.type==="input"?(0,Ct.jsxs)(S,{children:[(0,Ct.jsx)(s,{color:c.orange,children:"\u276F "}),(0,Ct.jsx)(s,{children:e.text})]}):e.type==="error"?(0,Ct.jsx)(S,{marginLeft:2,children:(0,Ct.jsx)(s,{color:c.red,children:e.text})}):(0,Ct.jsx)(S,{marginLeft:2,children:(0,Ct.jsx)(s,{color:e.type==="info"?c.dim:void 0,children:e.text})})}var wt=k(ve(),1);var Ke=k(M(),1);function op(e,t){let r=[],o=Math.max(t-4,30);r.push({type:"title",text:e.title});for(let i=0;i<e.sections.length;i++){let a=e.sections[i];i>0&&r.push({type:"divider",text:"\u2500".repeat(o)}),a.label&&r.push({type:"header",text:a.label});let u=a.entries.length>0?Math.max(...a.entries.map(d=>d.key.length)):0;for(let d of a.entries){let x="\xB7".repeat(Math.max(2,u-d.key.length+3)),R=`${d.key} ${x} ${d.value}`;r.push({type:"entry",text:R,color:d.color})}}return r.push({type:"footer",text:"esc back"}),r}function Gc({data:e,width:t=60}){let r=op(e,t);return(0,Ke.jsx)(S,{flexDirection:"column",borderStyle:"round",borderColor:c.orange,paddingX:2,paddingY:1,children:r.map((n,o)=>{if(n.type==="title")return(0,Ke.jsx)(s,{color:c.orange,bold:!0,children:n.text},o);if(n.type==="header")return(0,Ke.jsx)(S,{marginTop:1,children:(0,Ke.jsx)(s,{color:c.dim,children:n.text})},o);if(n.type==="divider")return(0,Ke.jsx)(S,{marginTop:1,marginBottom:0,children:(0,Ke.jsx)(s,{color:c.muted,children:n.text})},o);if(n.type==="footer")return(0,Ke.jsx)(S,{marginTop:1,children:(0,Ke.jsx)(s,{color:c.dim,children:n.text})},o);let i=n.text.match(/^(.+?) (·+) (.+)$/);return i?(0,Ke.jsxs)(s,{children:[(0,Ke.jsxs)(s,{color:c.secondary,children:[i[1]," "]}),(0,Ke.jsxs)(s,{color:c.muted,children:[i[2]," "]}),(0,Ke.jsx)(s,{color:n.color,children:i[3]})]},o):(0,Ke.jsx)(s,{color:n.color,children:n.text},o)})})}var Oe=k(M(),1);function ai(e,t){let r=[];function n(o,i){for(let a of o)r.push({item:a,depth:i}),a.type==="submenu"&&a.children&&t.length>i&&t[i]===a.id&&n(a.children,i+1)}return n(e,0),r}function ci({items:e,onRunSelected:t,initialExpandedPath:r,onDismiss:n,renderLoginWizard:o,renderProfilesView:i,renderChromeProfilePicker:a,renderProjectPicker:u,renderFolderPicker:d,renderWindowSizePicker:x,onActiveViewChange:R}){let[h,y]=(0,wt.useState)(()=>{let $=r??[],q=ai(e,$),A=0;if($.length>0){let F=q.findIndex(re=>re.item.id===$[0]);F>=0&&F+1<q.length&&(A=F+1)}return{expandedPath:$,selectedIndex:A,inputValue:"",isEditing:!1,isSelecting:!1,feedback:null,activeView:null,infoData:null}}),l=ai(e,h.expandedPath),m=l[h.selectedIndex]?.item,P=(0,wt.useRef)(null),B=(0,wt.useCallback)($=>{y(q=>({...q,feedback:$})),P.current&&clearTimeout(P.current),P.current=setTimeout(()=>{y(q=>({...q,feedback:null})),P.current=null},4e3)},[]);(0,wt.useEffect)(()=>()=>{P.current&&clearTimeout(P.current)},[]),(0,wt.useEffect)(()=>{R?.(h.activeView)},[h.activeView,R]);let V=(0,wt.useCallback)(()=>{y($=>({...$,activeView:null,infoData:null}))},[]);return Ee(($,q)=>{if(h.activeView==="infoView"){q.escape&&V();return}if(!(h.activeView==="loginWizard"||h.activeView==="profilesView"||h.activeView==="chromeProfilePicker"||h.activeView==="projectPicker"||h.activeView==="folderPicker"||h.activeView==="windowSizePicker")){if(h.isEditing){if(q.escape){y(A=>({...A,isEditing:!1,inputValue:""}));return}if(q.return){let A=h.inputValue.trim();if(m?.onValue&&A){let F=m.currentValue;m.onValue(A),B(F?`${m.label}: ${F} \u2192 ${A}`:`${m.label}: ${A}`)}y(F=>({...F,isEditing:!1,inputValue:""}));return}if(q.backspace||q.delete){y(A=>({...A,inputValue:A.inputValue.slice(0,-1)}));return}$&&!q.ctrl&&!q.meta&&y(A=>({...A,inputValue:A.inputValue+$}));return}if(h.isSelecting&&m?.options){let A=m.options;if(q.escape){y(F=>({...F,isSelecting:!1}));return}if(q.upArrow){y(F=>({...F,inputValue:String(Math.max(0,Number(F.inputValue||"0")-1))}));return}if(q.downArrow){y(F=>({...F,inputValue:String(Math.min(A.length-1,Number(F.inputValue||"0")+1))}));return}if(q.return){let F=Number(h.inputValue||"0"),re=A[F];if(re&&m.onValue){let oe=m.currentValue;m.onValue(re.value),B(oe?`${m.label}: ${oe} \u2192 ${re.label}`:`${m.label}: ${re.label}`)}y(oe=>({...oe,isSelecting:!1,inputValue:""}));return}return}if(q.upArrow){y(A=>({...A,selectedIndex:Math.max(0,A.selectedIndex-1)}));return}if(q.downArrow){y(A=>({...A,selectedIndex:Math.min(l.length-1,A.selectedIndex+1)}));return}if(q.escape){if(h.expandedPath.length===0){n?.();return}y(A=>{let F=A.expandedPath.slice(0,-1),re=ai(e,F),oe=A.expandedPath[A.expandedPath.length-1],ue=re.findIndex(W=>W.item.id===oe);return{...A,expandedPath:F,selectedIndex:ue>=0?ue:0}});return}if(q.return&&m){if(m.id==="run-start"){t();return}if(m.type==="submenu"){let A=l[h.selectedIndex]?.depth??0;y(F=>({...F,expandedPath:[...F.expandedPath.slice(0,A),m.id],selectedIndex:F.selectedIndex+1}));return}if(m.onInfo){let A=m.onInfo();y(F=>({...F,activeView:"infoView",infoData:A}));return}if(m.onLoginWizard){m.onLoginWizard(),y(A=>({...A,activeView:"loginWizard"}));return}if(m.onProfilesView){m.onProfilesView(),y(A=>({...A,activeView:"profilesView"}));return}if(m.onChromeProfilePicker){m.onChromeProfilePicker(),y(A=>({...A,activeView:"chromeProfilePicker"}));return}if(m.onProjectPicker){m.onProjectPicker(),y(A=>({...A,activeView:"projectPicker"}));return}if(m.onFolderPicker){m.onFolderPicker(),y(A=>({...A,activeView:"folderPicker"}));return}if(m.onWindowSizePicker){m.onWindowSizePicker(),y(A=>({...A,activeView:"windowSizePicker"}));return}if(m.type==="action"){m.onAction?.(),m.suppressFeedback||B(`${m.label} done`);return}if(m.type==="select"&&m.options){let A=m.options.findIndex(F=>F.value===m.currentValue);y(F=>({...F,isSelecting:!0,inputValue:String(Math.max(0,A))}));return}if(m.type==="text-input"){y(A=>({...A,isEditing:!0,inputValue:m.currentValue??""}));return}}}}),(0,Oe.jsx)(S,{flexDirection:"column",paddingX:1,children:h.activeView==="infoView"&&h.infoData?(0,Oe.jsx)(Gc,{data:h.infoData}):h.activeView==="loginWizard"&&o?o(V):h.activeView==="profilesView"&&i?i(V):h.activeView==="chromeProfilePicker"&&a?a(V):h.activeView==="projectPicker"&&u?u(V):h.activeView==="folderPicker"&&d?d(V):h.activeView==="windowSizePicker"&&x?x(V):(0,Oe.jsxs)(Oe.Fragment,{children:[l.map(({item:$,depth:q},A)=>{let F=A===h.selectedIndex,re=" ".repeat(q),oe=F?"\u276F ":" ",ue=$.type==="submenu"?h.expandedPath.includes($.id)?"\u25BC ":"\u25B6 ":" ",W=$.currentValue!=null?` [${$.currentValue}]`:"";if(F&&h.isSelecting&&$.options){let se=Number(h.inputValue||"0");return(0,Oe.jsxs)(S,{flexDirection:"column",children:[(0,Oe.jsxs)(s,{color:c.orange,children:[re,oe,ue,$.label]}),$.options.map((ce,Te)=>(0,Oe.jsxs)(s,{color:Te===se?c.orange:void 0,children:[re," ",Te===se?"\u276F ":" ",ce.label]},ce.value))]},$.id)}return F&&h.isEditing?(0,Oe.jsxs)(s,{color:c.orange,children:[re,oe,ue,$.label,": ",h.inputValue,(0,Oe.jsx)(s,{color:c.dim,children:"\u2588"})]},$.id):(0,Oe.jsxs)(s,{color:F?c.orange:void 0,dimColor:!F&&q>0,children:[re,oe,ue,$.label,(0,Oe.jsx)(s,{dimColor:!0,children:W})]},$.id)}),h.feedback&&(0,Oe.jsx)(S,{marginTop:1,children:(0,Oe.jsxs)(s,{color:c.green,children:["\u2713 ",h.feedback]})}),(0,Oe.jsx)(Zt,{bindings:[{keys:"\u2191\u2193",label:"navigate"},{keys:"\u21B5",label:"select"}],escBackLabel:"back"})]})})}var Br=k(ve(),1);var Me=k(M(),1),li=800,ui=3840,di=600,fi=2160;function Xc(e,t){if(!t)return"Enter a value";let r=Number(t);if(!Number.isInteger(r))return"Must be a whole number";if(e==="width"){if(r<li)return`Min ${li}`;if(r>ui)return`Max ${ui}`}else{if(r<di)return`Min ${di}`;if(r>fi)return`Max ${fi}`}return null}function mi({currentWidth:e,currentHeight:t,onSelect:r,onCancel:n}){let[o,i]=(0,Br.useState)("width"),[a,u]=(0,Br.useState)(String(e)),[d,x]=(0,Br.useState)(String(t)),[R,h]=(0,Br.useState)(null);Ee((l,m)=>{if(m.escape){n();return}if(m.tab||m.rightArrow||m.leftArrow){i(P=>P==="width"?"height":"width"),h(null);return}if(m.return){let P=Xc("width",a);if(P){i("width"),h(`Width: ${P}`);return}let B=Xc("height",d);if(B){i("height"),h(`Height: ${B}`);return}r(Number(a),Number(d));return}if(m.backspace||m.delete){o==="width"?u(P=>P.slice(0,-1)):x(P=>P.slice(0,-1)),h(null);return}l&&/^\d$/.test(l)&&(o==="width"?u(P=>P+l):x(P=>P+l),h(null))});let y=(l,m,P)=>{let B=o===P,V=B?c.orange:c.secondary;return(0,Me.jsxs)(S,{flexDirection:"column",children:[(0,Me.jsxs)(s,{color:c.dim,children:[" ",l]}),(0,Me.jsx)(S,{borderStyle:"round",borderColor:V,paddingX:1,width:10,children:(0,Me.jsxs)(s,{color:B?void 0:c.dim,children:[m||" ",B?(0,Me.jsx)(s,{color:c.dim,children:"\u2588"}):""]})}),(0,Me.jsxs)(s,{color:c.dim,dimColor:!0,children:[" ",P==="width"?`${li}\u2013${ui}`:`${di}\u2013${fi}`]})]})};return(0,Me.jsxs)(S,{flexDirection:"column",paddingX:1,children:[(0,Me.jsx)(s,{color:c.orange,bold:!0,children:"Window Size"}),(0,Me.jsxs)(S,{marginTop:1,gap:1,children:[y("Width",a,"width"),(0,Me.jsx)(S,{alignItems:"center",marginTop:1,children:(0,Me.jsx)(s,{color:c.dim,children:"x"})}),y("Height",d,"height")]}),R&&(0,Me.jsx)(S,{marginTop:1,children:(0,Me.jsx)(s,{color:c.red,children:R})}),(0,Me.jsx)(Zt,{bindings:[{keys:"tab/\u2190\u2192",label:"switch field"},{keys:"\u21B5",label:"save"}],escBackLabel:"cancel"})]})}var Ve=k(ve(),1);async function Wc(e,t,r){let n=e.loadCredentials(t,r),o=e.loadClient(t,r);if(n&&o){let a=new Yi(r);await Promise.allSettled([a.revokeToken(n.access_token,o.client_id,"access_token"),a.revokeToken(n.refresh_token,o.client_id,"refresh_token")])}e.deleteProfileFull(t,r);let i=e.listProfiles();return i.length>0&&(e.setActiveProfile(i[0].profile),e.setDefaultEnv(i[0].env)),{profile:t,env:r,switchedTo:i.length>0?i[0]:void 0}}function zc(){let[e]=(0,Ve.useState)(()=>new sn),[t,r]=(0,Ve.useState)(()=>{let m=e.resolveAuth();if(!m)return!1;if(m.method==="basic")return!0;let{credentials:P}=e.getActiveCredentials();return P?P.expires_at>Date.now()/1e3:!1}),n=(0,Ve.useRef)(null),o=(0,Ve.useRef)(null),i=(0,Ve.useCallback)(()=>{let m=e.resolveAuth();return m?{method:m.method,profile:m.profile,env:m.env}:null},[e]),a=(0,Ve.useCallback)(async()=>{let{credentials:m,profile:P,env:B}=e.getActiveCredentials();if(!m||!P||!B)return null;let V=m.expires_at,$=Date.now()/1e3;if(V-$<300){if(o.current)return o.current;let q=(async()=>{try{let A=await Ki({creds:e,profile:P,env:B,credentials:m});return A?(r(!0),A.accessToken):null}catch{return r(!1),null}finally{o.current=null}})();return o.current=q,q}return r(!0),m.access_token},[e]),u=(0,Ve.useCallback)(()=>{let m=e.resolveAuth();return!m||m.method!=="basic"?null:{username:m.username,access_key:m.access_key}},[e]),d=(0,Ve.useCallback)((m,P)=>{n.current?.revoke();let B=ze(m),V=u(),$=new Qi(B.controllerBaseUrl,a,V,P);return n.current=$,$},[u,a]),x=(0,Ve.useCallback)(()=>n.current,[]),R=(0,Ve.useCallback)(()=>{let m=u();if(m)return m;let P=n.current?.cached;return P?{username:P.username,access_key:P.access_key}:null},[u]),h=(0,Ve.useCallback)(async()=>{let m=n.current;return m?m.resolve():null},[]),y=(0,Ve.useCallback)(async(m="default")=>{let P=e.getDefaultEnv();await new Ji(m,P,e).login(),e.setActiveProfile(m);try{let V=new rr;at(e,V,m,P)}catch{}r(!0)},[e]),l=(0,Ve.useCallback)(async()=>{let m=e.getActiveProfile();if(!m)return null;let P=e.getDefaultEnv(),B=await Wc(e,m,P);return r(!1),{profile:B.profile,env:B.env}},[e]);return{creds:e,tokenValid:t,setTokenValid:r,getToken:a,getBasicAuth:u,getAuthInfo:i,login:y,logout:l,initResolver:d,getResolver:x,getResolvedBasicAuth:R,resolveBasicAuth:h}}var It=k(ve(),1);import{mkdtempSync as ip,rmSync as sp}from"fs";import{join as ap}from"path";import{tmpdir as cp}from"os";function Yc(){let[e]=(0,It.useState)(()=>new rr),t=(0,It.useRef)(null),r=(0,It.useRef)(null),n=(0,It.useRef)(null),o=(0,It.useCallback)(async a=>{if(t.current)return t.current;if(n.current)return n.current;let u=(async()=>{let d=e.load(),x;if(d.chrome_profile_path)x=d.chrome_profile_path.replace("~",process.env.HOME??"~");else{r.current&&(Ot("tempDir","Previous temp dir removed before retry"),r.current=null);let h=ip(ap(cp(),"kane-clean-"));r.current=h,x=h,xt("tempDir",()=>{try{sp(h,{recursive:!0,force:!0})}catch{}})}let R=await es({userDataDir:x,width:d.window_size.width,height:d.window_size.height,startUrl:a??d.default_url??void 0});return t.current=R,xt("chrome",()=>{R.kill()}),R})();n.current=u;try{return await u}finally{n.current=null}},[e]),i=(0,It.useCallback)(()=>{Ot("chrome","Chrome killed"),Ot("tempDir","Temp dir removed"),t.current=null,r.current=null},[]);return{ensureChrome:o,killChrome:i}}var _n=[{name:"run",description:"Execute a test run",args:'[--url <url>] "objective"'},{name:"login",description:"OAuth login",args:"[--profile name]"},{name:"logout",description:"Logout & revoke tokens",args:"[--profile name]"},{name:"whoami",description:"Show profile info",args:"[--profile name]"},{name:"balance",description:"Show credit balance"},{name:"profiles",description:"Manage profiles",args:"list|switch|delete"},{name:"config",description:"Manage configuration",args:"show|set-window|set-mode|chrome-profile|project|folder|hints"},{name:"new",description:"Start a fresh session (uploads current first)"},{name:"name",description:"Set the current session's name (used at /exit save)",args:"<new-name>"},{name:"summary",description:"View detailed run summaries",args:"[index]"},{name:"cancel",description:"Abort current run"},{name:"help",description:"Show command reference"},{name:"clear",description:"Clear chat history"},{name:"exit",description:"Quit kane-cli"}];function Pn(e){let t=e.trim();if(!t.startsWith("/"))return null;let n=t.slice(1).match(/(?:[^\s"]+|"[^"]*")+/g)??[];if(n.length===0)return null;let o=n[0],i={},a=1;for(;a<n.length;){let u=n[a];if(u.startsWith("--")){let d=u.slice(2),x=n[a+1];x&&!x.startsWith("--")?(i[d]=x.replace(/^"|"$/g,""),a+=2):(i[d]=void 0,a++)}else{let d=u.replace(/^"|"$/g,"");o==="run"?i.objective=d:o==="config"?i.action?i.value=d:i.action=d:o==="profiles"?i.action=d:o==="summary"&&(i.index=d),a++}}return{command:o,args:i,raw:t}}var yx=[{name:"Testing",commands:_n.filter(e=>["run","cancel"].includes(e.name))},{name:"Auth",commands:_n.filter(e=>["login","logout","whoami","balance","profiles"].includes(e.name))},{name:"Settings",commands:_n.filter(e=>["config"].includes(e.name))},{name:"Session",commands:_n.filter(e=>["new","name","summary","help","clear","exit"].includes(e.name))}];var Kc=[{name:"testmd",description:"Browse & run saved tests under cwd"},{name:"auth",description:"Login, logout, profiles"},{name:"config",description:"View/change settings",args:"show|mode|window|chrome-profile|project|folder|hints"},{name:"help",description:"Command reference"},{name:"new",description:"Start a fresh session"},{name:"name",description:"Set the session name",args:"<new-name>"},{name:"exit",description:"Quit kane-cli"}],lp={name:"cancel",description:"Abort current run"},up={name:"cancel",description:"Cancel current generation"},lr=[{name:"generate",description:"Switch to Generate mode (test case generator)"},{name:"summary",description:"View run summaries",args:"[index]"},lp,...Kc],$r=[{name:"run",description:"Switch back to Run mode"},{name:"save",description:"Save the current test cases"},{name:"view",description:"Open the scenario browser",args:"[S<n>]"},up,...Kc],Jc=lr;function Ln(e,t="run"){let r=t==="generate"?$r:lr,n=e.startsWith("/")?e.slice(1):e;return n?r.filter(o=>o.name.startsWith(n)):r}var dp=new Set([...lr,...$r].map(e=>e.name));function Qc(e,t){let r=t==="generate"?$r:lr;return dp.has(e)?r.some(n=>n.name===e):!0}function Zc(e,t){let r=t?.trim();return r?e==="generate"?{kind:"reject"}:{kind:"run",objective:r}:e==="generate"?{kind:"toggle"}:{kind:"already"}}var Nt=k(M(),1);function pi({flows:e,filterIndex:t}){let r=t!==void 0?e.filter(n=>n.index===t):e;return r.length===0?null:(0,Nt.jsx)(S,{flexDirection:"column",children:r.map(n=>(0,Nt.jsxs)(S,{flexDirection:"column",marginTop:1,children:[(0,Nt.jsxs)(S,{marginLeft:1,children:[(0,Nt.jsx)(s,{color:c.purple,bold:!0,children:"Flow "+n.index+": "}),(0,Nt.jsx)(s,{color:c.purple,children:n.objective})]}),(0,Nt.jsx)(as,{status:n.status==="error"?"failed":n.status,summary:n.summary,duration:n.duration,steps:n.steps,stepsPassed:n.stepsPassed,stepsFailed:n.stepsFailed,reason:n.reason,creditsConsumed:n.creditsConsumed})]},n.index))})}var jt=k(M(),1),fp={ok:"\u2713",error:"\u2717",cancelled:"\u2298"},mp={ok:c.green,error:c.red,cancelled:c.dim};function el({status:e,command:t,message:r,details:n,accentColor:o}){let i=t.startsWith("/")?t.slice(1):t,a=o??mp[e];return(0,jt.jsxs)(S,{flexDirection:"column",marginLeft:2,marginTop:1,children:[(0,jt.jsx)(S,{marginLeft:1,children:(0,jt.jsxs)(s,{color:a,bold:!0,children:[fp[e]," ",i]})}),(0,jt.jsxs)(S,{borderStyle:"round",borderColor:a,paddingX:2,flexDirection:"column",width:70,children:[(0,jt.jsx)(s,{children:r}),n&&(0,jt.jsx)(s,{color:c.dim,children:n})]})]})}var jr=k(ve(),1);import{join as Dr}from"path";var Or=k(M(),1);function tl({tabs:e,activeIndex:t}){return(0,Or.jsx)(S,{children:e.map((r,n)=>(0,Or.jsx)(S,{marginRight:1,children:n===t?(0,Or.jsx)(s,{color:c.orange,bold:!0,children:`[ ${r} ]`}):(0,Or.jsx)(s,{color:c.dim,children:` ${r} `})},r))})}var C=k(M(),1),Nr=["Commands","Shortcuts","Tests","Setup","About"],Bn=18,pp="https://www.testmuai.com/support/docs/kane-cli-introduction",gp="https://github.com/LambdaTest/kane-cli/issues";function rl({onClose:e,version:t,environment:r,sessionId:n,runUrl:o,mode:i="run"}){let[a,u]=(0,jr.useState)(0),[d,x]=(0,jr.useState)(0);(0,jr.useEffect)(()=>{x(0)},[a]);let R=Nr[a],h=R==="Commands"?hp(i):R==="Shortcuts"?xp():R==="Tests"?vp():R==="Setup"?Sp():bp({version:t,environment:r,sessionId:n,runUrl:o}),y=h.length,l=d>0,m=d+Bn<y,P=h.slice(d,d+Bn);Ee((V,$)=>{if($.escape){e();return}if($.rightArrow||$.tab){u(q=>(q+1)%Nr.length);return}if($.leftArrow){u(q=>(q-1+Nr.length)%Nr.length);return}if($.upArrow){x(q=>Math.max(0,q-1));return}if($.downArrow){x(q=>Math.min(Math.max(0,y-Bn),q+1));return}});let B=[{keys:"\u2190\u2192/tab",label:"switch tabs"}];return y>Bn&&B.push({keys:"\u2191\u2193",label:"scroll"}),(0,C.jsxs)(S,{flexDirection:"column",borderStyle:"round",borderColor:c.orange,paddingX:2,paddingY:1,children:[(0,C.jsx)(tl,{tabs:[...Nr],activeIndex:a,onChange:u}),l&&(0,C.jsx)(S,{marginTop:1,children:(0,C.jsx)(s,{color:c.dim,children:"\u25B2 more above"})}),(0,C.jsx)(S,{marginTop:l?0:1,flexDirection:"column",children:P}),m&&(0,C.jsx)(S,{children:(0,C.jsx)(s,{color:c.dim,children:"\u25BC more below"})}),(0,C.jsx)(Zt,{bindings:B,escBackLabel:"back to chat"})]})}function hp(e){let t=e==="generate"?$r:lr;return[(0,C.jsx)(s,{color:c.dim,children:"Type a natural-language objective and press \u21B5 to run, e.g."},"intro"),(0,C.jsx)(S,{marginLeft:2,children:(0,C.jsx)(s,{color:c.orange,children:'"search amazon for laptop"'})},"ex"),(0,C.jsx)(S,{marginBottom:1},"sp"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Slash commands"},"cmd-h"),...t.map(r=>(0,C.jsxs)(S,{marginLeft:2,children:[(0,C.jsx)(S,{width:14,children:(0,C.jsxs)(s,{color:c.orange,children:["/",r.name]})}),r.args&&(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:r.args})}),(0,C.jsx)(s,{color:c.dim,children:r.description})]},r.name)),(0,C.jsx)(S,{marginBottom:1},"sp2"),(0,C.jsx)(S,{marginLeft:2,children:(0,C.jsx)(s,{color:c.dim,children:"/auth submenu: login \xB7 logout \xB7 whoami \xB7 profiles \xB7 balance"})},"auth-sub"),(0,C.jsx)(S,{marginLeft:2,children:(0,C.jsx)(s,{color:c.dim,children:"/config submenu: show \xB7 set-mode \xB7 set-window \xB7 chrome-profile \xB7 project \xB7 folder"})},"config-sub")]}function $n(e,t){return[(0,C.jsx)(s,{color:c.dim,bold:!0,children:e},`h-${e}`),...t.map(([r,n],o)=>(0,C.jsxs)(S,{marginLeft:2,children:[(0,C.jsx)(S,{width:26,children:(0,C.jsx)(s,{color:c.orange,children:r})}),(0,C.jsx)(s,{color:c.dim,children:n})]},`r-${e}-${o}`)),(0,C.jsx)(S,{marginBottom:1},`s-${e}`)]}function xp(){return[...$n("Cursor & word edit",[["\u2190 \u2192","Cursor by char"],["Ctrl+A Ctrl+E","Start / end of line"],["Home End","Start / end (Linux/Win; rare on Mac laptops)"],["Backspace","Delete char before cursor"],["Ctrl+W","Delete word back"],["Ctrl+U","Clear input"],["Ctrl+K","Kill from cursor to end"],["Ctrl+\u2190 Ctrl+\u2192","Word jump (Linux/Win, iTerm2)"],["Option+\u2190 Option+\u2192","Word jump (Mac native)"],["Option+B Option+F","Word jump (Mac, Emacs-style)"],["Alt+Backspace","Delete word back (Option+Delete on Mac)"],["Ctrl+Delete Option+Fn+Del","Delete word forward"]]),...$n("History & completion",[["\u2191 \u2193","Previous / next history"],["Tab","Accept ghost / fill highlighted command"],["Ctrl+R","Reverse-search history"],["\u21B5","Submit"],["Esc","Close overlay / clear / back"]]),...$n("Lists & menus",[["\u2191 \u2193","Navigate"],["type any char","Filter"],["\u21B5","Select"],["Tab","Create-new (in pickers)"],["Esc","Clear filter, then back"]]),...$n("Global",[["Ctrl+C","Cancel run \xB7 twice exits"]]),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Platform caveats"},"cv-h"),(0,C.jsx)(s,{color:c.dim,children:'\u2022 Mac Terminal.app: enable "Use Option as Meta key" (Profile \u2192 Keyboard)'},"cv-1"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Mac iTerm2: works by default (Esc+ mode)"},"cv-2"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Mac Mission Control may intercept Ctrl+arrow \u2014 use Option+arrow instead"},"cv-3"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Bare Forward Delete acts as Backspace (Ink can't disambiguate)"},"cv-4"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Shift+arrow is parsed but unbound (selection model is future)"},"cv-5"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Thousands of terminals exist \u2014 if a shortcut fails, run `cat` to see bytes"},"cv-6")]}function vp(){return[(0,C.jsxs)(s,{color:c.dim,children:["Sessions you run here are saved as ",(0,C.jsx)(s,{color:c.orange,children:"*_test.md"})," files you can replay later."]},"t-intro"),(0,C.jsx)(S,{marginBottom:1},"t-sp1"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Auto-save"},"t-save-h"),(0,C.jsxs)(s,{color:c.dim,children:[" In ",(0,C.jsx)(s,{color:c.orange,children:"testing"})," mode, /exit prompts to save the session under a name (default: timestamp)."]},"t-save-1"),(0,C.jsxs)(s,{color:c.dim,children:[" In ",(0,C.jsx)(s,{color:c.orange,children:"action"})," mode, sessions are ephemeral unless launched with --name or set via /name."]},"t-save-2"),(0,C.jsxs)(s,{color:c.dim,children:[" Output: ",(0,C.jsx)(s,{color:c.orange,children:"<cwd>/.testmuai/tests/<name>_test.md"})," + sibling ",(0,C.jsx)(s,{color:c.orange,children:"output-<name>/"})," (Result.md + .internal/meta.json)."]},"t-save-3"),(0,C.jsx)(S,{marginBottom:1},"t-sp2"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Replay from a shell"},"t-run-h"),(0,C.jsxs)(s,{color:c.dim,children:[" ",(0,C.jsx)(s,{color:c.orange,children:"kane-cli testmd run path/to/foo_test.md"})," \xB7 ",(0,C.jsx)(s,{color:c.orange,children:"kane-cli testmd list"})," \xB7 bare ",(0,C.jsx)(s,{color:c.orange,children:"kane-cli testmd"})," opens a TTY picker."]},"t-run-1"),(0,C.jsx)(s,{color:c.dim,children:" The .md file carries its own config (mode, max_steps, variables, \u2026) so the replay is reproducible."},"t-run-2"),(0,C.jsx)(S,{marginBottom:1},"t-sp3"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Naming a session mid-run"},"t-name-h"),(0,C.jsxs)(s,{color:c.dim,children:[" Type ",(0,C.jsxs)(s,{color:c.orange,children:["/name ","<new-name>"]})," any time before /exit. Name allowed chars: letters, digits, _, -."]},"t-name-1"),(0,C.jsxs)(s,{color:c.dim,children:[" Discarding at the save prompt: press ",(0,C.jsx)(s,{color:c.orange,children:"N"})," (only key that discards \u2014 every other key saves with default)."]},"t-name-2")]}function Sp(){return[(0,C.jsx)(s,{color:c.dim,bold:!0,children:"1. Login"},"s1-h"),(0,C.jsx)(s,{color:c.dim,children:" /auth \u2192 login. OAuth opens browser; basic uses LambdaTest username + access key."},"s1-b"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"2. Project & folder"},"s2-h"),(0,C.jsx)(s,{color:c.dim,children:" /config project / /config folder. Esc auto-picks KaneAI Generated / Untitled."},"s2-b"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"3. Mode"},"s3-h"),(0,C.jsx)(s,{color:c.dim,children:" testing (saves to TMS) | action (local report). /config set-mode"},"s3-b"),(0,C.jsx)(S,{marginBottom:1},"spacer-1"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Variables (later wins)"},"v-h"),(0,C.jsxs)(s,{color:c.dim,children:[" ",`${Dr(We,"variables")}/*.json`," (global)"]},"v-1"),(0,C.jsxs)(s,{color:c.dim,children:[" ","{cwd}/.testmuai/variables/*.json"," (local) \xB7 --variables-file \xB7 --variables ","'{...}'"]},"v-2"),(0,C.jsx)(s,{color:c.dim,children:' Format: { "key": { "value": "...", "secret": false } } \xB7 ref via {{key}}'},"v-3"),(0,C.jsx)(S,{marginBottom:1},"spacer-2"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Context files"},"c-h"),(0,C.jsxs)(s,{color:c.dim,children:[" Global: ",Dr(We,"global-memory.md")]},"c-1"),(0,C.jsxs)(s,{color:c.dim,children:[" Local: ","{cwd}/.testmuai/context.md"," \xB7 CLI: --global-context, --local-context"]},"c-2"),(0,C.jsx)(S,{marginBottom:1},"spacer-3"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Paths"},"p-h"),(0,C.jsxs)(s,{color:c.dim,children:[" Config: ",Dr(We,"tui-config.json")," \xB7 Auth: ",Dr(We,"config.json")]},"p-1"),(0,C.jsxs)(s,{color:c.dim,children:[" Sessions: ",Dr(We,"sessions"),"/"]},"p-2")]}function bp({version:e,environment:t,sessionId:r,runUrl:n}){return[(0,C.jsxs)(S,{children:[(0,C.jsx)(s,{color:c.orange,bold:!0,children:"kane-cli "}),(0,C.jsxs)(s,{color:c.muted,children:["v",e]})]},"title"),(0,C.jsx)(S,{marginBottom:1},"sp"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Environment"})}),(0,C.jsx)(s,{children:t})]},"env"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Session"})}),(0,C.jsx)(s,{children:r})]},"sess"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Default URL"})}),(0,C.jsx)(s,{color:c.orange,children:n})]},"url"),(0,C.jsx)(S,{marginBottom:1},"sp2"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Docs"})}),(0,C.jsx)(s,{color:c.orange,underline:!0,children:pp})]},"docs"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Bugs"})}),(0,C.jsx)(s,{color:c.orange,underline:!0,children:gp})]},"bugs")]}var On=k(ve(),1);import{existsSync as nl,readFileSync as Wx,rmSync as wp,unlinkSync as Rp}from"fs";function ol(e){let t=cs(e);nl(t)&&wp(t,{recursive:!0,force:!0}),nl(e)&&Rp(e)}var gi=k(M(),1);function il({cwd:e,currentOrgId:t,onClose:r,onRun:n,onExport:o}){let[i,a]=(0,On.useState)("list"),[u,d]=(0,On.useState)(null),[x,R]=(0,On.useState)(0);return i==="inspect"&&u?(0,gi.jsx)(us,{path:u.path,relPath:u.relPath,onBack:()=>a("list"),onAction:h=>{if(h==="run")n(u);else if(h==="export")o(u);else{try{ol(u.path)}catch{}d(null),a("list"),R(y=>y+1)}}}):(0,gi.jsx)(ls,{root:e,currentOrgId:t,onSelect:h=>{d(h),a("inspect")},onCancel:r},x)}var Fe=k(ve(),1);function sl(e){let[t,r]=(0,Fe.useState)(null),[n,o]=(0,Fe.useState)(!1),[i,a]=(0,Fe.useState)(null),[u,d]=(0,Fe.useState)(null),[x,R]=(0,Fe.useState)(null),h=(0,Fe.useRef)(0),y=(0,Fe.useRef)([]),l=(0,Fe.useRef)(!1),m=(0,Fe.useRef)(null),P=(0,Fe.useRef)(e);P.current=e;let B=(0,Fe.useCallback)(async q=>{if(l.current)return null;l.current=!0;let A=++h.current,F=[];y.current=F;let re=W=>`testmd-run-${A}-${W}`,oe={register:(W,se)=>{let ce=re(W);F.push(ce),xt(ce,se)},deregister:W=>Cr(re(W)),cleanup:(W,se)=>Ot(re(W),se),remoteLogger:P.current.remoteLogger},ue={runSteps:W=>new Promise(se=>{let ce=()=>{m.current=null,se()};m.current=ce,r({...W,exitOnComplete:!1,onAllComplete:()=>{W.onAllComplete?.(),ce()}})}),onLockState:W=>{},onRetryAttempt:W=>{},onSummary:async W=>{a(W)},onLinks:async W=>{d(W)},runUpload:W=>W.execute(),onAgentEvent:W=>{}};o(!0),a(null),d(null),R(null);try{let W=await P.current.buildInput(q),se=await ys(W,ue,oe);return R(se),se}finally{l.current=!1,m.current=null,o(!1),r(null);for(let W of F)Ot(W,"run-finished");F.length=0}},[]),V=(0,Fe.useCallback)(()=>{for(let A of y.current)Ot(A,"cancelled");y.current=[];let q=m.current;m.current=null,q?.()},[]),$=(0,Fe.useCallback)(()=>{a(null),d(null),R(null)},[]);return{start:B,cancel:V,clearResult:$,running:n,runViewProps:t,summary:i,links:u,runSummary:x}}var De=k(ve(),1);function al(e={}){let[t,r]=(0,De.useState)(()=>dn({requestId:"",objective:""})),[n,o]=(0,De.useState)(!1),[i,a]=(0,De.useState)(null),u=(0,De.useRef)(null),d=(0,De.useRef)(!1),x=(0,De.useRef)(null),R=(0,De.useCallback)(async(B,V,$)=>{d.current=!1;let q=0,A=0,F=0;for await(let re of B){if(d.current)break;switch(r(oe=>ks(oe,re)),re.type){case"thinking_done":$?.("tcg_thinking",{tookMs:re.tookMs});break;case"progress":{let oe=Math.min(100,Math.floor(re.pct/25)*25);oe>F&&(F=oe,$?.("tcg_progress",{pct:oe}));break}case"snapshot":q=re.data.scenarios.length,A=re.data.scenarios.reduce((oe,ue)=>oe+(ue.test_cases?.length??0),0),$?.("tcg_snapshot",{scenarioCount:q,caseCount:A});break;case"clarification":$?.("tcg_clarification",{});break;case"done":$?.("tcg_request_done",{status:re.status,scenarioCount:q,caseCount:A,durationMs:Date.now()-V});break;case"error":$?.("tcg_request_error",{errorCode:"tcg_request_failed",durationMs:Date.now()-V});break}}},[]),h=(0,De.useCallback)(async(B,V)=>{if(u.current)throw new Error("useTcgSession: a session is already active; call reset() or end() first");let $=e.makeClient??As;u.current=$(B),x.current=new AbortController;let q=dn({requestId:"",objective:V.prompt});r(fn(q));let A;try{A=await u.current.start(V,x.current.signal)}catch(re){throw u.current=null,x.current=null,r(oe=>({...oe,turnActive:!1})),re}a(A.requestId),r(fn({...A.state,requestId:A.requestId,objective:V.prompt}));let F=Date.now();e.log?.("tcg_request_start",{request_id:A.requestId,objectiveChars:V.prompt.length,scenarioLimit:V.scenarioLimit,perScenarioLimit:V.perScenarioLimit,memoryEnhancement:V.memoryEnhancement}),await R(A.events,F,e.log)},[R,e.makeClient,e.log]),y=(0,De.useCallback)(async(B,V)=>{if(!u.current||!i)throw new Error("useTcgSession: chat() with no active request");r($=>fn(Is($)));try{await u.current.chat(i,B,V)}catch($){throw r(q=>({...q,turnActive:!1})),$}},[i]),l=(0,De.useCallback)(async()=>{if(!(!i||!u.current)){d.current=!0,x.current&&x.current.abort();try{await u.current.cancel(i)}catch{}u.current=null,a(null),r(B=>({...B,turnActive:!1}))}},[i]),m=(0,De.useCallback)(async()=>{if(!(!i||!u.current)){d.current=!0,x.current&&x.current.abort();try{await u.current.end(i)}catch{}u.current=null,a(null),r(B=>({...B,turnActive:!1}))}},[i]),P=(0,De.useCallback)(()=>{d.current=!0,x.current&&x.current.abort(),x.current=null,r(dn({requestId:"",objective:""})),a(null),o(!1),u.current=null},[]);return(0,De.useEffect)(()=>()=>{d.current=!0,x.current&&x.current.abort()},[]),{state:t,isStreaming:t.turnActive,isTerminal:Cs(t.status),isReconnecting:n,turnActive:t.turnActive,inReview:t.scenarios.length>0&&!t.turnActive&&!Po(t.status),isSessionClosed:Po(t.status),requestId:i,startWith:h,chat:y,cancel:l,end:m,reset:P}}var te=k(ve(),1);import{join as ur,resolve as Op}from"path";import{mkdirSync as xi,writeFileSync as Rl,appendFileSync as Dp}from"fs";function cl(e){let t=ze(e.env);return!t||!t.testGeneratorBaseUrl?{ok:!1,error:`Unknown environment "${e.env}" \u2014 fix default_env via /config`}:{ok:!0,conn:{baseUrl:`${t.testGeneratorBaseUrl}/test-generator/api/v2`,tmsBaseUrl:t.tmsBaseUrl,authResolver:e.resolver,projectId:e.projectId,folderId:e.folderId,log:e.log}}}function ll(e){return e.turnActive?!0:e.requestId!=null&&!e.isSessionClosed&&!e.saved}function ul(e){return e.isRunning||e.hasLiveResults}function dl(e){let t=(e??"").trim().match(/^[sS](\d+)$/);if(!t)return{level:"scenarios"};let r=parseInt(t[1],10);return r<1?{level:"scenarios"}:{level:"cases",scenarioIdx:r-1}}function fl(e,t){return`S${e+1}.C${t+1}`}function ml(e,t){return e.reduce((r,n)=>r+(n.test_cases??[]).filter(o=>!t.has(o.id)).length,0)}function pl(e,t){return e.map(r=>({...r,test_cases:(r.test_cases??[]).filter(n=>!t.has(n.id))})).filter(r=>(r.test_cases??[]).length>0)}var Mr=k(ve(),1);import{createHash as Tp}from"crypto";function yp(e){return Tp("sha1").update(JSON.stringify({t:e.title,p:e.preconditions,m:e.manual_steps})).digest("hex")}var Dn=class{constructor(t){this.deps=t;this.max=t.maxConcurrent??3}cache=new Map;caseById=new Map;queue=[];active=0;max;onSnapshot(t){t.forEach((r,n)=>{(r.test_cases??[]).forEach((o,i)=>{if(!St(o)||o.manual_steps==null)return;let a=yp(o),u=this.cache.get(o.id);u&&u.hash===a||(u?.controller?.abort(),this.caseById.set(o.id,o),this.cache.set(o.id,{hash:a,ref:fl(n,i),status:"pending"}),this.queue.includes(o.id)||this.queue.push(o.id))})}),this.pump()}pump(){for(;this.active<this.max&&this.queue.length>0;){let t=this.queue.shift(),r=this.cache.get(t),n=this.caseById.get(t);!r||!n||r.status!=="pending"||(this.active++,this.runOne(t,n,r))}}async runOne(t,r,n){let o=`bifurcation-${t}`,i=new AbortController;n.controller=i;let a=this.deps.run??this.defaultRun.bind(this);xt(o,()=>i.abort());let u=Date.now();try{this.safeLog("tcg_bif_start",{caseId:t,ref:n.ref});let d=await a($s(r),i.signal);if(!i.signal.aborted&&this.cache.get(t)===n){n.status="done",n.result=d;try{this.deps.persist?.(t,d,n.ref)}catch{}this.safeLog("tcg_bif_done",{caseId:t,ref:n.ref,total_flows:d.total_flows,is_single_flow:d.is_single_flow,estimated_steps_total:(d.sub_objectives??[]).reduce((x,R)=>x+(R.estimated_steps??0),0),credits_consumed:d.credits_consumed,durationMs:Date.now()-u})}}catch(d){!i.signal.aborted&&this.cache.get(t)===n&&(n.status="error",n.error=d.message,this.safeLog("tcg_bif_error",{caseId:t,ref:n.ref,errorCode:"bifurcation_failed",durationMs:Date.now()-u}))}finally{Cr(o),this.active--,this.pump()}}safeLog(t,r){try{this.deps.log?.(t,r)}catch{}}async defaultRun(t,r){let n=await this.deps.resolveAuth(),o=Os({objective:t,model:this.deps.model,sessionId:this.deps.sessionId,auth:n});return Ds(o,this.deps.spawnOpts,r)}getStatus(t){return this.cache.get(t)?.status}getResult(t){return this.cache.get(t)?.result}dispose(){for(let[t,r]of this.cache)r.controller?.abort(),Cr(`bifurcation-${t}`);this.cache.clear(),this.caseById.clear(),this.queue=[],this.active=0}};function gl(e){let t=(0,Mr.useRef)(null);return(0,Mr.useEffect)(()=>{if(!e.enabled)return;let r=e.log,n=r?(o,i,a,u)=>r(i,u??{}):void 0;return t.current=new Dn({model:e.model,sessionId:e.sessionId,resolveAuth:e.resolveAuth,spawnOpts:{environment:e.environment,log:n},log:r,persist:e.persist}),()=>{t.current?.dispose(),t.current=null}},[e.enabled,e.sessionId,e.model,e.environment]),(0,Mr.useEffect)(()=>{t.current&&t.current.onSnapshot(e.scenarios)},[e.scenarios]),{getStatus:r=>t.current?.getStatus(r),getResult:r=>t.current?.getResult(r),manager:t}}import{resolve as vl,isAbsolute as Cp,extname as Ip}from"path";import{homedir as xl}from"os";var Ep=/(?<=^|\s)@(?:"([^"]*)"|([^\s@]+))/g;function hl(e){let t=[];for(let r of e.matchAll(Ep)){let n=r[1]!==void 0?r[1]:r[2];t.push({raw:r[0],value:n,start:r.index,end:r.index+r[0].length})}return t}var kp=/^s\d+(\.c\d+)?$/i;function Ap(e){return e==="~"?xl():e.startsWith("~/")?vl(xl(),e.slice(2)):e}function _p(e){return/^https?:\/\//i.test(e)?!1:e.includes("/")?!0:mn.has(Ip(e).toLowerCase())}function Sl(e,t){let r=hl(e),n=[],o=[];for(let a of r){let u=a.value,d=a.end;if(!a.raw.includes('"')){let h=u.match(/[.,;:!?]+$/);h&&(u=u.slice(0,-h[0].length),d-=h[0].length)}if(kp.test(u)||!_p(u))continue;let x=Ap(u),R=Cp(x)?x:vl(t,x);n.push(R),o.push([a.start,d])}let i=e;for(let[a,u]of o.sort((d,x)=>x[0]-d[0]))i=i.slice(0,a)+i.slice(u);return i=i.replace(/[ \t]{2,}/g," ").replace(/ +([.,;:!?])/g,"$1").trim(),{paths:n,promptText:i}}var Pp=["request_id","session_id","caseId","ref","total_flows","is_single_flow","estimated_steps_total","credits_consumed","durationMs","pct","tookMs","scenarioCount","caseCount","savedCount","fellBack","turnIndex","status","errorCode","objectiveChars","scenarioLimit","perScenarioLimit","memoryEnhancement"],Lp=new Set(Pp);function hi(e){let t={};for(let r of Object.keys(e))Lp.has(r)&&e[r]!==void 0&&(t[r]=e[r]);return t}import{mkdirSync as Bp,appendFileSync as $p}from"fs";import{join as bl}from"path";function wl(e,t,r,n,o=We){let i=bl(o,"tcg",e&&e.length>0?e:"pending"),a=bl(i,"errors.log");try{let u=r instanceof Error?r.stack??r.message:String(r),d=`[${new Date().toISOString()}] phase=${t} ${u}${n?" "+JSON.stringify(n):""}
|
|
3
3
|
`;Bp(i,{recursive:!0}),$p(a,d)}catch{}return a}var Ce=k(M(),1);async function Np(e){let t=e?.getResolvedBasicAuth?.();if(t)return{username:t.username,access_key:t.access_key};let r=await e?.getToken?.();return typeof r=="string"&&r.length>0?{auth:{type:"bearer",token:r}}:{}}function Tl(e){return typeof e=="object"&&e!==null&&e.name==="AbortError"}function yl(e){let{tcg:t,initialChatMode:r,tuiConfig:n,auth:o,session:i,appendStatic:a,handleInput:u,freezeTcgArtifact:d,rearmArtifactFreeze:x,initialGenerateLimits:R,ensureProjectAndFolder:h,config:y}=e,[l,m]=(0,te.useState)(r??"run"),[P,B]=(0,te.useState)(null),[V,$]=(0,te.useState)(null),[q,A]=(0,te.useState)(null),[F,re]=(0,te.useState)(0),[oe,ue]=(0,te.useState)(!1),W=(0,te.useRef)(null),se=(0,te.useRef)(()=>{}),ce=(0,te.useCallback)(()=>Np(o),[o]),Te=(0,te.useRef)(null);Te.current=t.requestId;let Pe=(0,te.useCallback)((G,Q)=>{let Z=G.endsWith("_error")?"warn":"info",Y=hi({request_id:Te.current??void 0,...Q});i.log(Z,G,JSON.stringify(Y),Y);try{let ae=typeof Y.request_id=="string"&&Y.request_id||Te.current||"unknown",ye=ur(We,"tcg",ae);xi(ye,{recursive:!0}),Dp(ur(ye,"tcg_tui.log"),`[${new Date().toISOString()}] ${G} ${JSON.stringify(Y)}
|
|
4
4
|
`)}catch{}},[i]),et=(0,te.useCallback)((G,Q)=>{let Z=wl(Te.current,Q.phase,G),Y=typeof G?.status=="number"?G.status:void 0;Pe(`${Q.phase}_error`,{errorCode:`${Q.phase}_failed`,status:Y});let ae=Q.phase==="upload"?"\u2717 Couldn't upload attachments \u2014 generation not started. Try again.":"\u2717 Generation failed \u2014 send another request.";a((0,Ce.jsxs)(S,{flexDirection:"column",marginTop:1,marginBottom:1,children:[(0,Ce.jsx)(s,{color:c.red,children:ae}),(0,Ce.jsx)(s,{color:c.dim,children:`details: ${Z}`})]})),B(null)},[Pe,a]),Mt=(0,te.useRef)(0),tt=(0,te.useCallback)((G,Q,Z)=>{try{let Y=ur(We,"tcg",Te.current??"unknown","bifurcation");xi(Y,{recursive:!0}),Rl(ur(Y,`${G}.json`),JSON.stringify({request_id:Te.current,ref:Z,...Q},null,2))}catch{}},[]),gt=gl({scenarios:t.state?.scenarios??[],model:n.model,sessionId:i.sessionId,resolveAuth:ce,environment:o?.creds?.getDefaultEnv?.(),enabled:!!t.requestId&&!t.isSessionClosed,log:Pe,persist:tt}),mr=(0,te.useRef)(null);(0,te.useEffect)(()=>{let G=t.requestId;if(!G||!t.isSessionClosed&&!t.isTerminal)return;let Q=t.state?.scenarios??[];if(Q.length!==0&&mr.current!==G){mr.current=G;try{let Z=ur(We,"tcg",G);xi(Z,{recursive:!0}),Rl(ur(Z,"request.json"),JSON.stringify({request_id:G,objective:t.state?.objective,headline:t.state?.headline,scenarios:Q,status:t.state?.status},null,2))}catch{}}},[t.requestId,t.isTerminal,t.isSessionClosed,t.state?.scenarios,t.state?.status,t.state?.objective,t.state?.headline]);let pr=(0,te.useCallback)((G,Q=1500)=>{A(G),W.current&&clearTimeout(W.current),W.current=setTimeout(()=>{A(null),W.current=null},Q)},[]);(0,te.useEffect)(()=>()=>{W.current&&clearTimeout(W.current)},[]);let qe=(0,te.useCallback)((G,Q)=>{let Z=o.getResolver();if(!Z)return{ok:!1,error:"Not logged in \u2014 use /login"};let Y=cl({env:o.creds.getDefaultEnv(),resolver:Z,projectId:G??n.project_id??void 0,folderId:Q??n.folder_id??void 0,log:(ae,ye,rt,nt)=>i.log(ae,ye,"",hi(nt??{}))});return Y.ok?{ok:!0,conn:Y.conn}:{ok:!1,error:Y.error}},[o,n,i]),Je=(0,te.useRef)(!1),Le=(0,te.useRef)(null),[Vr,Wt]=(0,te.useState)(!1),Vt=(0,te.useCallback)((G,Q,Z,Y,ae)=>{let ye=process.cwd(),{paths:rt,promptText:nt}=Sl(G,ye);return js({promptText:nt,filePaths:rt,cwd:ye,scenarios:t.state?.scenarios??[],isRefine:Q,conn:Z,deps:{validate:Ns,upload:(H,Ue,He)=>Ms(H,Ue,He,{signal:ae}),buildMappings:Vs},onValidated:Y})},[t]),gr=(0,te.useRef)(!1);(0,te.useEffect)(()=>{if(l!=="generate"){gr.current=!1;return}gr.current||n.project_id&&n.folder_id||h&&o.getResolver()&&(gr.current=!0,h())},[l,n.project_id,n.folder_id,h,o]);let Fr=(0,te.useCallback)(async G=>{B(null),$(null),ue(!1);let Q=G.trim();if(!Q)return;if(Q.startsWith("/")){se.current(Q),re(H=>H+1);return}let Z=n.project_id??null,Y=n.folder_id??null;if(h){let H=await h();if(H)Z=H.projectId,Y=H.folderId;else if(y){let Ue=y.load();Z=Ue.project_id??Z,Y=Ue.folder_id??Y}}else if(y){let H=y.load();Z=H.project_id??Z,Y=H.folder_id??Y}if(!Z||!Y){$("Set a project and folder first \u2014 use /config");return}let ae=qe(Z,Y);if(!ae.ok){B(ae.error);return}if(Je.current)return;Je.current=!0;let ye=new AbortController;Le.current=ye;let rt=ae.conn,nt;try{nt=await Vt(Q,!1,rt,()=>{a((0,Ce.jsx)(S,{marginTop:1,children:(0,Ce.jsx)(s,{color:c.generateAccent,bold:!0,children:`\u276F ${Q}`})})),Wt(!0)},ye.signal)}catch(H){if(H instanceof Lo){$(H.errors.join(`
|
|
5
5
|
`));return}if(Tl(H))return;et(H,{phase:"upload"});return}finally{Je.current=!1,Wt(!1),Le.current===ye&&(Le.current=null)}if(!ye.signal.aborted){for(let H of nt.warnings)e.emitFeedback("ok","/generate",H,void 0,c.generateAccent);d(),t.reset(),x();try{let H=R??{};await t.startWith(rt,{prompt:nt.promptText,attachments:nt.attachments,scenarioLimit:H.scenarioLimit??n.generate.scenario_limit,perScenarioLimit:H.perScenarioLimit??n.generate.per_scenario_limit,memoryEnhancement:n.generate.memory_enabled})}catch(H){et(H,{phase:"generation"})}}},[n,t,qe,Vt,e,h,y,R,a,d,x,et]),Ft=(0,te.useCallback)(()=>B(null),[]),hr=(0,te.useCallback)(async G=>{let Q=qe();if(!Q.ok){B(Q.error);return}if(Je.current)return;Je.current=!0;let Z=new AbortController;Le.current=Z;let Y;try{Y=await Vt(G,!0,Q.conn,()=>{a((0,Ce.jsx)(s,{color:c.generateAccent,bold:!0,children:`\u276F ${G}`})),Mt.current+=1,Pe("tcg_refine",{turnIndex:Mt.current}),Wt(!0)},Z.signal)}catch(ae){if(ae instanceof Lo){$(ae.errors.join(`
|
|
@@ -18,5 +18,5 @@ import{a as Cs,b as Po,c as dn,d as Is,e as fn,f as ks,h as As,i as _s,j as Ps,k
|
|
|
18
18
|
`)})}}},[O.bifurcationInfo,l,ge]);let so=E.default.useRef(null),ao=E.default.useRef(0),co=E.default.useRef(0);(0,E.useEffect)(()=>{if(O.lastRunEnd&&O.lastRunEnd!==so.current){so.current=O.lastRunEnd,Q.current=!0;let{status:p,duration:v,summary:f,reason:g,context:T}=O.lastRunEnd,{passed:j,failed:U,total:X}=ns(O.steps);ao.current+=X,co.current+=v??0,Te({status:p,duration:v??0,summary:f??"",stepsPassed:j,stepsFailed:U,stepsTotal:X,reason:g,finalState:O.lastRunEnd?.final_state,creditsConsumed:O.lastRunEnd?.credits_consumed}),l.logRunEnd(G.current,p,v,f);let ee=O.bifurcationInfo,le=ee&&!ee.isSingleFlow?ee.flows:null,Ze=Hi(O.lastRunEnd,G.current,le),xo=Gi(O.lastRunEnd,Z.current,G.current,Ze);l.addRunResult(xo,O.lastRunEnd?.total_runs);let Ge=O.lastRunEnd?.per_flow_metadata;if(ee&&!ee.isSingleFlow&&Ge&&Ge.length>1)for(let Bt=0;Bt<Ge.length;Bt++){let Jt=Ge[Bt],Qt=O.steps[Bt],Tr=Qt?.children??[],yr=Tr.filter(Xe=>Xe.status==="passed").length,rn=Tr.filter(Xe=>Xe.status==="failed").length,we=Tr.reduce((Xe,nn)=>Xe+(nn.duration??0),0),ot=Qt?.status==="failed"?"failed":"passed",yt=ee.flows[Bt]??Qt?.objective??Z.current;l.addFlow({runIndex:G.current,flowId:ee.flows[Bt],objective:yt,status:ot,summary:Jt.summary??"",duration:we,steps:yr+rn,stepsPassed:yr,stepsFailed:rn,reason:Jt.error_message??void 0,creditsConsumed:Jt.credits_consumed??void 0})}else l.addFlow({runIndex:G.current,objective:Z.current,status:p,summary:f??"",duration:v??0,steps:X,stepsPassed:j,stepsFailed:U,reason:g,creditsConsumed:O.lastRunEnd?.credits_consumed})}},[O.lastRunEnd,l,ge]);let lo=(0,E.useRef)(null);(0,E.useEffect)(()=>{O.askingUser&&(lo.current=O.askingUser)},[O.askingUser]);let uo=(0,E.useRef)(null);(0,E.useEffect)(()=>{if(ce&&!O.isRunning&&O.lastRunEnd){if(uo.current===O.lastRunEnd)return;uo.current=O.lastRunEnd,H((0,w.jsxs)(S,{flexDirection:"column",children:[(0,w.jsx)(lu,{status:ce.status,steps:ce.stepsTotal,duration:ce.duration,creditsConsumed:ce.creditsConsumed,reason:ce.reason}),(0,w.jsx)(uu,{})]})),Te(null)}},[ce,O.isRunning,O.lastRunEnd,H]);let Ai=(0,E.useRef)(null);(0,E.useEffect)(()=>{if(fe.runSummary&&!fe.running){if(Ai.current===fe.runSummary)return;Ai.current=fe.runSummary,(fe.summary||fe.links)&&H((0,w.jsxs)(S,{flexDirection:"column",children:[fe.summary&&(0,w.jsx)(ps,{data:fe.summary}),fe.links&&(0,w.jsx)(un,{...fe.links,autoExit:!1})]}))}},[fe.runSummary,fe.running,fe.summary,fe.links,H]),(0,E.useEffect)(()=>{rt.current?.setRunActive(O.isRunning)},[O.isRunning]),(0,E.useEffect)(()=>{if(O.runError&&!O.isRunning){let p=O.runError.trim();l.log("error","RUNNER_ERROR","Runner error occurred",{error:p}),l.escalateRun(l.nextRunIndex()-1);let f=p.split(`
|
|
19
19
|
`).slice(-8).join(`
|
|
20
20
|
`);ge({type:"error",text:`Runner error:
|
|
21
|
-
${f}`})}},[O.runError,O.isRunning,ge,l]);let Qr=(0,E.useCallback)(async()=>{l.log("info","EXIT_UPLOAD_START","Starting exit upload pipeline"),pr(ln()),gt({status:"uploading"});let p=b.getResolvedBasicAuth(),v=null;if(!p&&(v=await b.getToken(),!v))return l.log("warn","EXIT_UPLOAD_ABORTED","Exit upload aborted \u2014 no auth available"),null;let f=qe??await Ht();if(!f)return l.log("warn","EXIT_UPLOAD_ABORTED","Exit upload aborted \u2014 no TMS credentials"),l.setUploadStatus("failed","Could not get TMS credentials"),null;l.log("info","EXIT_UPLOAD_CONFIG","Exit upload configuration",{test_id:l.testId,commit_id:l.sessionId,project_id:I.project_id,session_dir:l.sessionDir,run_dirs:l.getRunDirs()});let g={basicAuth:p??null,token:v,resolver:b.getResolver(),resolvedCreds:f};Ut.current&&(l.log("info","SCREENSHOT_UPLOAD_DRAIN","Draining screenshot queue before pipeline"),await Ut.current.drain(),l.log("info","SCREENSHOT_UPLOAD_DRAINED","Screenshot queue drained"));let T=bs({session:l,env:me,auth:g,variables:ae.current??{raw:{},auteur:{},auteurObjective:"",secretEntries:[],nonSecretEntries:[]},variableIds:ye.current,projectId:I.project_id,folderId:I.folder_id,totalSteps:ao.current,totalDuration:co.current,screenshotExtMap:Ut.current?.getExtMap(),codeExport:ws({codeExport:t,codeLanguage:r,skipCodeValidation:n},I.code_export),onProgress:(X,ee,le)=>{l.log("info","EXIT_PROGRESS","Upload progress",{step:X,status:ee,detail:le}),pr(Ze=>ms(Ze,X,ee,le))},log:(X,ee,le,Ze)=>l.log(X,ee,le,Ze),shouldUploadArtifacts:!0,shouldReplaceLocalOutput:!1,shouldCommit:!1,isFirstRun:!0}),U=await new Ts(T).execute();if(U.success){l.log("info","EXIT_UPLOAD_OK","Exit upload succeeded",{test_id:U.testId,testcase_id:U.testcaseId??null,share_id:U.shareId??null}),l.setUploadStatus("uploaded"),U.testId&&l.setTestId(U.testId),U.testcaseId&&l.setTestcaseId(U.testcaseId);let X=ze(me),ee=I.project_id,le=U.testcaseId&&U.shareId&&ee?ko(X.testManagerUiUrl,ee,U.testcaseId,U.shareId):void 0,Ze=U.testcaseId&&ee?Ao(X.testManagerUiUrl,ee,U.testcaseId):void 0;gt({status:"success",testUrl:le,testCaseLink:Ze,codeExportDir:U.codeExportDir}),cu({shareableLink:le,testCaseLink:Ze,codeExportDir:U.codeExportDir})}else l.log("error","EXIT_UPLOAD_FAILED","Exit upload failed",{error:U.error}),l.setUploadStatus("failed",U.error),gt({status:"failed",error:U.error});return U},[b,me,l,I,qe,Ht]),Zr=(0,E.useCallback)(async()=>{l.log("info","SESSION_RESET_START","Starting session reset via /new"),Vt(!0);let p=l.getFlows();p.length>0&&H((0,w.jsx)(pi,{flows:p}));let v=null;if(!e)try{v=await Qr()??null}catch(T){l.log("error","SESSION_RESET_UPLOAD_FAILED","Upload failed during /new",{error:String(T)}),ge({type:"error",text:"Upload failed \u2014 session data saved locally."})}let f=null;try{let{persistRecordedSession:T}=await import("./persist-recorded-session-HXVQRBJV.js");f=T(l,{testcaseId:l.testcaseId??void 0,projectId:I.project_id??void 0,folderId:I.folder_id??void 0,codeExportDir:v?.codeExportDir})}catch(T){l.log("error","SESSION_RESET_PERSIST_FAILED","Persist failed during /new",{error:String(T)})}if(v?.success&&v.testcaseId||f){let T=ze(me),j=I.project_id,U=v?.testcaseId;H((0,w.jsx)(un,{recordedTestPath:f?.recordedTestPath,outputDir:f?.outputDir,shareableLink:U&&v?.shareId&&j?ko(T.testManagerUiUrl,j,U,v.shareId):void 0,testCaseLink:U&&j?Ao(T.testManagerUiUrl,j,U):void 0,codeExportDir:v?.codeExportDir,autoExit:!1}))}l.testId&&Vr(T=>[...T,{testId:l.testId,runCount:oe}]),zr.killChrome(),await l.finish("complete");let g=new cn;g.start({model:I.model,environment:me,profile:Kt??null}),R.current=g,y(T=>T+1),l.log("info","SESSION_RESET_COMPLETE","Session reset complete",{new_session_id:g.sessionId}),await vt({kind:"resessionize",env:me},st),ue(0),ao.current=0,co.current=0,G.current=0,Z.current="",ae.current=null,ye.current={},tn.current=0,mo.current=0,lo.current=null,uo.current=null,so.current=null,Q.current=!1,io.current=null,Te(null),A(null),gt(null),pr(ln()),Vt(!1),H((0,w.jsxs)(S,{flexDirection:"column",marginY:1,children:[(0,w.jsx)(s,{color:c.dim,children:"\u2500".repeat(44)}),(0,w.jsx)(s,{color:c.green,bold:!0,children:"New session started"})]}))},[l,ge,H,e,Qr,zr,oe,I,me,Kt,st]),_i=(0,E.useCallback)(async()=>{if(!(l.nextRunIndex()>0)){ge({type:"info",text:"No runs in current session."});return}if(O.isRunning){ge({type:"error",text:"Cannot reset while a run is in progress. Cancel the run first."});return}if(I.mode==="testing"&&!l.sessionName){zt("new"),hr(Bo());return}await Zr()},[l,O,ge,I.mode,Zr]),Pi=(0,E.useCallback)(async()=>{await l.finish("complete"),nr(0,"Session complete")},[l]),_u=(0,E.useCallback)(async p=>{Fr(!1);let v=l.testId??(Le.length>0?Le[Le.length-1].testId:null);if(p&&v){l.log("info","EXIT_FEEDBACK_SUBMIT","Submitting session feedback",{choice:p});try{let f=ze(me),g=b.getResolvedBasicAuth();g&&await mu({tmsBaseUrl:f.tmsBaseUrl,username:g.username,accessKey:g.access_key,testId:v,feedbackType:p,log:(T,j,U,X)=>l.log(T,j,U,X)})}catch(f){l.log("error","EXIT_FEEDBACK_FAILED","Feedback submission failed",{error:String(f)})}}else l.log("info","EXIT_FEEDBACK_SKIPPED","Feedback skipped");Pi()},[me,b,l,Pi,Le]),en=(0,E.useCallback)(async()=>{let p=l.nextRunIndex()>0,v=null;if(p&&!e){l.log("info","EXIT_WITH_ACTIVE_SESSION","Exit with active session \u2014 uploading first"),se(!0);try{v=await Qr()??null}catch(g){l.log("error","EXIT_UPLOAD_FAILED","Exit upload failed",{error:String(g)})}l.testId&&Vr(g=>[...g,{testId:l.testId,runCount:oe}])}try{let{persistRecordedSession:g}=await import("./persist-recorded-session-HXVQRBJV.js"),T=g(l,{testcaseId:l.testcaseId??void 0,projectId:I.project_id??void 0,folderId:I.folder_id??void 0,codeExportDir:v?.codeExportDir});T&&Qn(T)}catch(g){l.log("error","EXIT_PERSIST_FAILED","Persist failed during /exit",{error:String(g)})}if(p&&!e&&await l.finish("complete"),!(l.testId??(Le.length>0?Le[Le.length-1].testId:null))||e){await l.finish("complete"),nr(0,"No test ID \u2014 quick exit");return}se(!0),Fr(!0)},[l,e,Qr,oe,Le,I]),Lt=(0,E.useCallback)(async()=>{if(W)return;l.log("info","EXIT_START","TUI exit initiated");let p=I.mode==="testing",v=l.nextRunIndex()>0;if(p&&v&&!l.sessionName){zt("exit"),hr(Bo());return}await en()},[W,l,I.mode,en]),Pu=(0,E.useCallback)(p=>{p&&l.setSessionName(p);let v=qr;hr(null),zt(null),v==="new"?Zr():en()},[l,qr,en,Zr]);(0,E.useEffect)(()=>{if(!W)return;let p=300*1e3,v=setTimeout(async()=>{l.setUploadStatus("failed","Upload timed out after 5m"),await l.finish("complete"),nr(0,"Upload timed out after 5m")},p);return()=>clearTimeout(v)},[W,l]);let tn=E.default.useRef(0),fo=E.default.useRef(null),mo=E.default.useRef(0),po=E.default.useRef(0),go=E.default.useRef(null);Ee((p,v)=>{if(v.ctrl&&p==="c"){if(xe==="generate"&&(ie.isStreaming||ft.submitting)){ft.cancelGenerate(),po.current++,go.current&&clearTimeout(go.current),go.current=setTimeout(()=>{po.current=0},2e3),po.current>=2&&Lt();return}if(!fe.running){if(W){mo.current+=1,mo.current>=2&&(l.setUploadStatus("pending","Force exit by user"),l.finish("complete"),nr(0,"Force exit by user"));return}if(O.isRunning){O.cancelRun(),ge({type:"info",text:"Run cancelled."}),tn.current++,fo.current&&clearTimeout(fo.current),fo.current=setTimeout(()=>{tn.current=0},2e3),tn.current>=2&&Lt();return}Lt()}}}),Ee((p,v)=>{if(v.ctrl&&p==="t"&&xe==="generate"&&!ie.isStreaming){Jr("no thinking yet");return}});let Li=E.default.useMemo(()=>{let p=b.creds.getActiveProfile()??"none",v=b.creds.getDefaultEnv();return[{id:"run",label:"Run",type:"submenu",children:[{id:"run-start",label:"Start Run",type:"action"},{id:"run-config",label:"Run Config",type:"submenu",children:[{id:"run-headless",label:"Headless",type:"select",currentValue:de.headless?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:f=>{Rr(g=>({...g,headless:f==="on"}))}},{id:"run-max-steps",label:"Max Steps",type:"text-input",currentValue:String(de.maxSteps),onValue:f=>{let g=parseInt(f,10);g>0&&Rr(T=>({...T,maxSteps:g}))}},{id:"run-timeout",label:"Timeout (sec)",type:"text-input",currentValue:de.timeout?String(de.timeout):"",placeholder:"0 = no timeout",onValue:f=>{let g=parseInt(f,10);Rr(T=>({...T,timeout:isNaN(g)?0:g}))}},{id:"run-cdp",label:"CDP Endpoint",type:"text-input",currentValue:de.cdpEndpoint,placeholder:"http://127.0.0.1:9222",onValue:f=>{Rr(g=>({...g,cdpEndpoint:f}))}},{id:"run-ws",label:"WS Endpoint",type:"text-input",currentValue:de.wsEndpoint,placeholder:"wss://...",onValue:f=>{Rr(g=>({...g,wsEndpoint:f}))}}]}]},{id:"auth",label:"Auth",type:"submenu",children:[{id:"login",label:"Login",type:"action",onLoginWizard:()=>{}},{id:"logout",label:"Logout",type:"action",onAction:()=>{b.logout().then(f=>{Qe();let g=b.creds.getActiveProfile(),T=b.creds.getDefaultEnv();dt(g,T);let j=fu(g,T);vt(j,st).catch(()=>{}),f?L("ok","/logout",`Logged out: ${f.profile} [${f.env}]`):L("ok","/logout","No active profile")}).catch(()=>{L("error","/logout","Logout failed")})}},{id:"whoami",label:"Who Am I",type:"action",onInfo:()=>{let f=b.creds.getActiveProfile()??"none",g=b.creds.getDefaultEnv(),T=b.creds.loadBasicAuth(f,g),j=T?"basic":b.creds.loadCredentials(f,g)?"oauth":"not configured";return{title:"Who Am I",sections:[{label:"Identity",entries:[{key:"Profile",value:f},{key:"Environment",value:g}]},{label:"Authentication",entries:[{key:"Method",value:j},...T?[{key:"Username",value:T.username}]:[]]},{label:"Token",entries:[{key:"Status",value:b.tokenValid?"valid":"not logged in",color:b.tokenValid?c.green:c.red}]}]}}},{id:"balance",label:"Credit Balance",type:"action",suppressFeedback:!0,onAction:()=>{(async()=>{let f=b.creds.getActiveProfile()??"default",g=b.creds.getDefaultEnv(),T=ze(g);try{let j=b.getBasicAuth(),U=j?null:await b.getToken();if(!j&&!U){et({text:"Not authenticated. Run /login first.",color:c.red});return}let{ControllerClient:X}=await import("./controller-client-RD2YEMAH.js"),le=await(j?new X(T.controllerBaseUrl,{username:j.username,accessKey:j.access_key}):new X(T.controllerBaseUrl,U)).getCreditBalance();et({text:`Credits \u2014 available: ${le.available_credits}, total: ${le.total_credits} (${f} / ${g})`,color:c.green})}catch(j){et({text:`Balance check failed: ${j instanceof Error?j.message:String(j)}`,color:c.red})}Mt.current&&clearTimeout(Mt.current),Mt.current=setTimeout(()=>{et(null),Mt.current=null},5e3)})()}},{id:"profiles",label:"Profiles",type:"action",onProfilesView:()=>{}}]},{id:"config",label:"Config",type:"submenu",children:[{id:"config-show",label:"Show",type:"action",onInfo:()=>({title:"Show Config",sections:[{label:"General",entries:[{key:"Model",value:"v16-alpha"},{key:"Mode",value:I.mode},{key:"Hints",value:I.hints_enabled===!1?"off":"on"}]},{label:"Browser",entries:[{key:"Window",value:`${I.window_size.width}x${I.window_size.height}`},{key:"Chrome Profile",value:I.chrome_profile_path?I.chrome_profile_path.split("/").pop()??I.chrome_profile_path:"(temporary)"}]},{label:"Project",entries:[{key:"Project",value:I.project_name?`${I.project_name} (${I.project_id})`:I.project_id??"(none)"},{key:"Folder",value:I.folder_name?`${I.folder_name} (${I.folder_id})`:I.folder_id??"(none)"},{key:"Default URL",value:I.default_url??vo}]},{label:"Code Export",entries:[{key:"Enabled",value:I.code_export.enabled?"yes":"no"},{key:"Language",value:I.code_export.language},{key:"Skip Validation",value:I.code_export.skip_validation?"yes":"no"}]}]})},{id:"config-chrome",label:"Chrome Profile",type:"action",onChromeProfilePicker:()=>{}},{id:"config-project",label:"Project",type:"action",onProjectPicker:()=>{}},{id:"config-folder",label:"Folder",type:"action",...I.project_id?{onFolderPicker:()=>{}}:{onInfo:()=>({title:"Folder",sections:[{entries:[{key:"Status",value:"Select a project first",color:c.dim}]}]})}},{id:"config-window",label:"Window Size",type:"action",currentValue:`${I.window_size.width}x${I.window_size.height}`,onWindowSizePicker:()=>{}},{id:"config-default-url",label:"Default URL",type:"text-input",currentValue:I.default_url??"",placeholder:"https://example.com",onValue:f=>{let g=Co(f);if(!g){L("error","/config set-url","Enter a valid URL (e.g. example.com)");return}m.set("default_url",g),he(m.load()),L("ok","/config set-url",g)}},{id:"config-mode",label:"Mode",type:"select",currentValue:I.mode,options:[{label:"testing",value:"testing"},{label:"action",value:"action"}],onValue:f=>{(f==="action"||f==="testing")&&(m.set("mode",f),he(m.load()),L("ok","/config set-mode",f))}},{id:"config-hints",label:"CLI Hints",type:"select",currentValue:I.hints_enabled===!1?"off":"on",options:[{label:"on",value:"on"},{label:"off",value:"off"}],onValue:f=>{let g=f==="on";m.set("hints_enabled",g),he(m.load()),L("ok","/config hints",`CLI hints ${g?"enabled":"disabled"}`)}},{id:"config-generate",label:"Generate",type:"submenu",currentValue:`${I.generate.scenario_limit}x${I.generate.per_scenario_limit}`,children:[{id:"config-generate-scenario-limit",label:"Scenario limit",type:"text-input",currentValue:String(I.generate.scenario_limit),placeholder:"5",onValue:f=>{let g=parseInt(f,10);if(!Number.isFinite(g)||g<1||g>20){L("error","/config",`Scenario limit must be 1-20 (got ${f})`);return}m.set("generate",{...I.generate,scenario_limit:g}),he(m.load()),L("ok","/config",`Scenario limit: ${g}`)}},{id:"config-generate-per-scenario-limit",label:"Per-scenario limit",type:"text-input",currentValue:String(I.generate.per_scenario_limit),placeholder:"4",onValue:f=>{let g=parseInt(f,10);if(!Number.isFinite(g)||g<1||g>20){L("error","/config",`Per-scenario limit must be 1-20 (got ${f})`);return}m.set("generate",{...I.generate,per_scenario_limit:g}),he(m.load()),L("ok","/config",`Per-scenario limit: ${g}`)}},{id:"config-generate-memory",label:"Memory",type:"select",currentValue:I.generate.memory_enabled?"on":"off",options:[{label:"on",value:"on"},{label:"off",value:"off"}],onValue:f=>{let g=f==="on";m.set("generate",{...I.generate,memory_enabled:g}),he(m.load()),L("ok","/config",`Memory: ${g?"on":"off"}`)}}]},{id:"config-code-export",label:"Code Export",type:"submenu",currentValue:I.code_export.enabled?"enabled":"disabled",children:[{id:"config-code-export-enabled",label:"Enabled",type:"select",currentValue:I.code_export.enabled?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:f=>{m.set("code_export",{...I.code_export,enabled:f==="on"}),he(m.load()),L("ok","/config code-export enabled",f)}},{id:"config-code-export-language",label:"Language",type:"select",currentValue:I.code_export.language,options:[{label:"python",value:"python"},{label:"javascript",value:"javascript"}],onValue:f=>{f!=="python"&&f!=="javascript"||(m.set("code_export",{...I.code_export,language:f}),he(m.load()),L("ok","/config code-export language",f))}},{id:"config-code-export-skip-validation",label:"Skip Validation",type:"select",currentValue:I.code_export.skip_validation?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:f=>{m.set("code_export",{...I.code_export,skip_validation:f==="on"}),he(m.load()),L("ok","/config code-export skip-validation",f)}}]}]},{id:"exit",label:"Exit",type:"action",onAction:()=>{Lt()}}]},[b,m,I,ge,Lt,de,Qe,L]),ho=(0,E.useCallback)(p=>{if(O.askingUser){let f=O.askingUser;H((0,w.jsxs)(S,{flexDirection:"column",marginLeft:2,paddingLeft:1,marginTop:1,children:[(0,w.jsx)(S,{marginLeft:1,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"Agent Question"})}),(0,w.jsxs)(S,{borderStyle:"round",borderColor:c.orange,flexDirection:"column",paddingX:2,paddingY:1,width:70,children:[(0,w.jsxs)(S,{children:[(0,w.jsx)(S,{width:3,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"?"})}),(0,w.jsx)(S,{flexShrink:1,children:(0,w.jsx)(s,{wrap:"wrap",children:f})})]}),(0,w.jsxs)(S,{marginTop:1,children:[(0,w.jsx)(S,{width:3,children:(0,w.jsx)(s,{color:c.dim,bold:!0,children:"\u2192"})}),(0,w.jsx)(S,{flexShrink:1,children:(0,w.jsx)(s,{wrap:"wrap",children:p})})]})]})]})),lo.current=null,O.sendAnswer(p);return}if(l.logCommand(p),O.isRunning){ge({type:"error",text:"Run in progress. Ctrl+C to cancel."});return}let v=Pn(p);if(v){if(!Qc(v.command,xe)){L("error",`/${v.command}`,`/${v.command} isn't available in ${xe==="run"?"Run":"Generate"} mode.`);return}switch(v.command){case"profiles":if(xe==="generate"&&ie.requestId&&v.args.action==="switch"){wr({reason:"profile",pendingArgs:v.args});return}vr("auth");return;case"login":case"logout":case"whoami":case"balance":case"auth":vr("auth");return;case"config":if(v.args.action==="set-url"){let f=Co(v.args.value);if(!f){L("error","/config set-url","Usage: /config set-url <url>");return}m.set("default_url",f),he(m.load()),L("ok","/config set-url",f);return}vr("config");return;case"help":Ti(!0);return;case"testmd":if(O.isRunning||ie.isStreaming||fe.running){L("error","/testmd","Finish or cancel the current run/generation first.");return}fe.clearResult(),Xr(!0);return;case"generate":if(fe.running){L("error","/generate","Finish or cancel the running test first.");return}xe==="run"?ft.requestSwitch("generate")&&L("ok","/generate","Switched to Generate mode.",void 0,c.generateAccent):L("ok","/generate","Already in Generate mode.",void 0,c.generateAccent);return;case"run":{let f=Zc(xe,v.args.objective);switch(f.kind){case"run":oo(f.objective,v.args.url);return;case"reject":L("error","/run",'Switch to Run mode first (bare /run), then /run "objective".');return;case"already":L("ok","/run","Already in Run mode.",void 0,c.orange);return;case"toggle":ft.requestSwitch("run")&&L("ok","/run","Switched to Run mode.",void 0,c.orange);return}return}case"update":{(async()=>{let{getUpdateCommand:f}=await import("./version-check-JHH3FYZ4.js");L("ok","/update",`To update kane-cli, run: ${f()}`)})();return}case"summary":{if(xe==="generate"&&!ie.requestId){Jr("no generation yet"),L("ok","/summary","(no generation yet)");return}let f=l.getFlows();if(f.length===0){L("ok","/summary","No runs yet in this session.");return}let g=v.args.index?parseInt(v.args.index,10):void 0;if(g!==void 0&&!l.getFlow(g)){L("error","/summary",`No flow at index ${g}`,`${f.length} flow${f.length===1?"":"s"} available. Use /summary to see all.`);return}H((0,w.jsx)(pi,{flows:f,filterIndex:g})),L("ok","/summary",g!==void 0?`Flow ${g}`:`${f.length} flow${f.length===1?"":"s"}`);return}case"new":xe==="generate"&&ie.requestId&&(_t(),ie.end().catch(f=>{L("error","/new",`Could not end generation cleanly: ${f.message}`)}),ie.reset()),_i(),L("ok","/new","Session reset");return;case"name":{let f=v.raw.replace(/^\/name\s*/,"").trim();if(!f){L("error","/name","Usage: /name <new-name>");return}(async()=>{let{validateNameOrThrow:g}=await import("./name-validator-5YGJXLZ7.js");try{g(f),l.setSessionName(f),L("ok","/name",`Session name set: ${f}`)}catch(T){L("error","/name",T.message)}})();return}case"cancel":if(xe==="generate"&&ie.isStreaming){_t(),ie.cancel(),L("ok","/cancel","Cancelled");return}if(xe==="generate"&&!ie.requestId){Jr("no generation yet"),L("ok","/cancel","(no generation yet)");return}if(fe.running){fe.cancel(),L("ok","/cancel","Run cancelled");return}O.cancelRun(),L("ok","/cancel","Run cancelled");return;case"clear":L("ok","/clear","Chat cleared");return;case"exit":xe==="generate"&&ie.requestId&&(_t(),ie.end()),Lt();return;default:L("error",`/${v.command}`,"Unknown command");return}}if(p.trim().toLowerCase()==="exit"){Lt();return}H((0,w.jsxs)(S,{children:[(0,w.jsx)(s,{color:c.orange,children:"\u276F "}),(0,w.jsx)(s,{children:p})]})),oo(p,void 0)},[O,ge,L,H,l,oo,Lt,_i,xe,ie.isStreaming,ie.requestId,ie,Jr,_t,fe]);Ii.current=ho;let Bi=(0,E.useRef)(!1);(0,E.useEffect)(()=>{if(!Bi.current&&V&&u==="generate"&&d){Bi.current=!0;let p=setTimeout(()=>{Cu(d)},50);return()=>clearTimeout(p)}},[V,u,d]);let $i=b.getAuthInfo(),Lu=$i?$i.method==="basic"?"basic auth":"oauth":"not logged in",Bu=(()=>{if(Sr)return["help"];if(br)return["testmd"];if(_)return _.phase==="wizard"?["auth","login"]:_.phase==="project"?["auth","login","project"]:_.phase==="folder"?["auth","login","folder"]:["auth","login"];let p={infoView:"info",loginWizard:"login",profilesView:"profiles",chromeProfilePicker:"chrome-profile",projectPicker:"project",folderPicker:"folder",windowSizePicker:"set-window"};return ht==="auth"?Gr?["auth",p[Gr]]:["auth"]:ht==="config"?Gr?["config",p[Gr]]:["config"]:ht==="help"?["help"]:O.askingUser?["agent question"]:[]})();return(0,w.jsxs)(S,{flexDirection:"column",children:[!V&&!xr&&(0,w.jsx)(Uc,{onComplete:()=>{let p=b.creds.getActiveProfile(),v=b.creds.getDefaultEnv(),f=p?b.creds.loadCredentials(p,v):null,g=p?b.creds.loadBasicAuth(p,v):null,T=!!(f||g),j=g?.username??p??null;H((0,w.jsx)(An,{size:"full",helmetVisibleRows:8,textVisibleRows:7,showMeta:!0,version:mt,authenticated:T,user:j})),pu(!0);let U=(X,ee,le,Ze)=>{l.log(X,ee,le,Ze)};if(is(b.creds,U).then(X=>{if(X.status==="authenticated"){let{profile:ee,env:le,tmsCreds:Ze}=X.result;b.creds.setActiveProfile(ee),b.creds.setDefaultEnv(le),Qe(),Je(Ze),He("ready"),$(!0)}else X.status==="needs_pick"?(eo(X.profiles),He("pick")):He("login")}).catch(X=>{l.log("error","STARTUP_GATE_ERROR","Auth gate failed",{error:String(X)}),He("login")}),o&&o.then(async X=>{if(X){let{getUpdateCommand:ee}=await import("./version-check-JHH3FYZ4.js");L("ok","update available",`${X.current} \u2192 ${X.latest}`,`Run: ${ee()}`)}}).catch(()=>{}),i&&i.changes.length>0){let X=`kane-cli updated to ${i.toVersion}. Default settings changed:`,ee=[...i.changes.map(le=>`\u2022 ${le.description} (${le.field}: ${JSON.stringify(le.from)} \u2192 ${JSON.stringify(le.to)})`),"","Use /config to review or revert any of these."].join(`
|
|
22
|
-
`);L("ok","defaults updated",X,ee)}}}),!V&&Ue==="booting"&&xr&&(0,w.jsx)(S,{paddingX:1,children:(0,w.jsx)(s,{color:"yellow",children:"Checking authentication..."})}),!V&&Ue==="pick"&&(0,w.jsx)(Rg,{profiles:Yt,onCancel:()=>He("login"),onSelect:async(p,v)=>{b.creds.setActiveProfile(p),b.creds.setDefaultEnv(v),Qe(),Se(!0);let f=(g,T,j,U)=>{l.log(g,T,j,U)};try{let g=await os(b.creds,p,v,f);Se(!1),g.status==="authenticated"?(dt(p,v),Je(g.result.tmsCreds),He("ready"),$(!0)):He("login")}catch{Se(!1),He("login")}},validating:Ur}),!V&&Ue==="login"&&!_&&(0,w.jsx)(an,{devMode:process.env.KANE_DEV_MODE==="1",profiles:b.creds.listProfiles(),onBasicLogin:async(p,v,f,g)=>{let{validateBasicAuth:T}=await import("./validate-basic-F6DP3VUX.js");await T(v,f,g),b.creds.saveBasicAuth(p,v,{username:f,access_key:g}),b.creds.setActiveProfile(p),b.creds.setDefaultEnv(v),at(b.creds,m,p,v),b.setTokenValid(!0),Qe()},onOAuthLogin:async(p,v)=>{b.creds.setDefaultEnv(v),await b.login(p),at(b.creds,m,p,v),Qe()},onComplete:(p,v)=>{vt(Jn(v),st).then(()=>{Qe(),be({phase:"project",profile:p,env:v})}).catch(()=>{be({phase:"project",profile:p,env:v})})},onCancel:()=>{nr(0,"Login cancelled at startup")}}),!V&&Ue==="login"&&_?.phase==="project"&&(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:null,env:_.env,onSelect:(p,v)=>{b.creds.saveProfileConfig(_.profile,_.env,{project_id:p,project_name:v}),L("ok","/config project",v,`id: ${p}`),be({..._,phase:"folder"})},onCancel:async()=>{let p=await ro(_.profile,_.env);p&&(pt(b.creds,m,_.profile,_.env,{projectId:p.id,projectName:p.name}),L("ok","/config project",p.name,`id: ${p.id}`),be({..._,phase:"folder"}))}}),!V&&Ue==="login"&&_?.phase==="folder"&&(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:b.creds.loadProfileConfig(_.profile,_.env)?.project_id??"",currentFolderId:null,env:_.env,onSelect:(p,v)=>{b.creds.saveProfileConfig(_.profile,_.env,{folder_id:p,folder_name:v}),L("ok","/config folder",v,`id: ${p}`),dt(_.profile,_.env),be(null),He("ready"),$(!0)},onCancel:async()=>{let p=b.creds.loadProfileConfig(_.profile,_.env);if(!p?.project_id)return;let v=await no(_.env,p.project_id);v&&(pt(b.creds,m,_.profile,_.env,{folderId:v.id,folderName:v.name}),L("ok","/config folder",v.name,`id: ${v.id}`),dt(_.profile,_.env),be(null),He("ready"),$(!0))}}),V&&Hr==="menu"&&!W&&(0,w.jsx)(S,{marginBottom:1,children:(0,w.jsxs)(S,{borderStyle:"round",borderColor:"#dc4e08",paddingX:2,children:[(0,w.jsx)(s,{color:"#ff9500",bold:!0,children:"KaneAI CLI"}),(0,w.jsx)(s,{color:c.dim,children:" \u2502 "}),(0,w.jsx)(s,{color:"#ff9500",children:I.model}),(0,w.jsx)(s,{color:c.dim,children:" \u2502 "}),(0,w.jsx)(s,{color:c.dim,children:Lu}),(0,w.jsx)(s,{color:c.dim,children:" \u2502 "}),(0,w.jsxs)(s,{color:c.dim,children:[Kt??"no profile","/",me]})]})}),V&&!W&&(0,w.jsxs)(S,{flexDirection:"column",flexGrow:1,children:[Hr==="menu"&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(ci,{items:Li,onRunSelected:()=>gu("chat"),onActiveViewChange:Ri,renderLoginWizard:p=>{let v=_?.phase??"wizard";if(v==="project")return(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:null,env:_.env,onSelect:(f,g)=>{b.creds.saveProfileConfig(_.profile,_.env,{project_id:f,project_name:g}),L("ok","/config project",g,`id: ${f}`),be(T=>T?{...T,phase:"folder"}:null)},onCancel:async()=>{if(!_)return;let f=await ro(_.profile,_.env);f&&(pt(b.creds,m,_.profile,_.env,{projectId:f.id,projectName:f.name}),L("ok","/config project",f.name,`id: ${f.id}`),be(g=>g?{...g,phase:"folder"}:null))}});if(v==="folder"){let f=b.creds.loadProfileConfig(_.profile,_.env);return(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:f?.project_id??"",currentFolderId:null,env:_.env,onSelect:(g,T)=>{b.creds.saveProfileConfig(_.profile,_.env,{folder_id:g,folder_name:T}),L("ok","/config folder",T,`id: ${g}`),dt(_.profile,_.env),be(null),p()},onCancel:async()=>{if(!_)return;let g=b.creds.loadProfileConfig(_.profile,_.env);if(!g?.project_id)return;let T=await no(_.env,g.project_id);T&&(pt(b.creds,m,_.profile,_.env,{folderId:T.id,folderName:T.name}),L("ok","/config folder",T.name,`id: ${T.id}`),dt(_.profile,_.env),be(null),p())}})}return(0,w.jsx)(an,{devMode:process.env.KANE_DEV_MODE==="1",profiles:b.creds.listProfiles(),onBasicLogin:async(f,g,T,j)=>{let{validateBasicAuth:U}=await import("./validate-basic-F6DP3VUX.js");await U(g,T,j),b.creds.saveBasicAuth(f,g,{username:T,access_key:j}),b.creds.setActiveProfile(f),b.creds.setDefaultEnv(g),at(b.creds,m,f,g),b.setTokenValid(!0),Qe()},onOAuthLogin:async(f,g)=>{b.creds.setDefaultEnv(g),await b.login(f),at(b.creds,m,f,g),Qe()},onComplete:(f,g)=>{vt(Jn(g),st).then(()=>{be({phase:"project",profile:f,env:g})}).catch(()=>{be({phase:"project",profile:f,env:g})})},onCancel:()=>{be(null),p()}})},renderProfilesView:p=>(0,w.jsx)(yo,{creds:b.creds,onSwitch:(v,f)=>{let g=b.creds.getActiveProfile()??"(none)";b.creds.setActiveProfile(v),b.creds.setDefaultEnv(f),at(b.creds,m,v,f),dt(v,f),Qe(),vt(wi(f),st).catch(()=>{}),L("ok","/profiles switch",`${g} \u2192 ${v} [${f}]`)},onCancel:p}),renderChromeProfilePicker:p=>(0,w.jsx)(Eo,{currentPath:I.chrome_profile_path,onSelect:v=>{m.set("chrome_profile_path",v),he(m.load()),L("ok","/config chrome-profile",v),p()},onCancel:p}),renderProjectPicker:p=>(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:I.project_id,env:me,onSelect:(v,f)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{projectId:v,projectName:f}),L("ok","/config project",f,`id: ${v}`),he(m.load()),p()},onCancel:p}),renderFolderPicker:p=>(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:I.project_id??"",currentFolderId:I.folder_id,env:me,onSelect:(v,f)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{folderId:v,folderName:f}),L("ok","/config folder",f,`id: ${v}`),he(m.load()),p()},onCancel:p}),renderWindowSizePicker:p=>(0,w.jsx)(mi,{currentWidth:I.window_size.width,currentHeight:I.window_size.height,onSelect:(v,f)=>{m.set("window_size",{width:v,height:f}),he(m.load()),L("ok","/config set-window",`${v} \xD7 ${f}`),p()},onCancel:p})}),Pe&&(0,w.jsx)(S,{paddingX:1,marginTop:1,children:(0,w.jsx)(s,{color:Pe.color,children:Pe.text})})]}),Hr==="chat"&&(0,w.jsxs)(w.Fragment,{children:[(()=>{let p=qi({isRunning:O.isRunning,bifurcationInfo:O.bifurcationInfo,steps:O.steps,cmInitCounts:O.cmInitCounts,replayInfo:O.replayInfo});return p?(0,w.jsx)(Fi,{label:p.label,hasBifurcation:p.hasBifurcation}):null})(),O.isRunning&&O.steps.length>0&&(0,w.jsx)(Vi,{steps:O.steps,bifurcated:!!O.bifurcationInfo&&!O.bifurcationInfo.isSingleFlow,flows:O.bifurcationInfo?.flows,cmInitCounts:O.cmInitCounts,onStepCommit:H},`run-${G.current}`),fe.runViewProps&&(0,w.jsx)(fs,{...fe.runViewProps,onCancel:()=>{fe.runViewProps?.onCancel?.(),fe.cancel()}}),Sr&&(0,w.jsx)(rl,{onClose:()=>Ti(!1),version:mt,environment:b.creds.getDefaultEnv(),sessionId:l.sessionId,runUrl:I.default_url??vo,mode:xe}),br&&(0,w.jsx)(il,{cwd:process.cwd(),currentOrgId:String(qe?.org_id??""),onClose:()=>Xr(!1),onRun:p=>{if(O.isRunning||ie.isStreaming||fe.running){setTimeout(()=>L("error","/testmd","Finish or cancel the current run first."),0);return}Xr(!1),!(xe==="generate"&&!ft.requestSwitch("run"))&&(xe==="generate"&&setTimeout(()=>L("ok","/testmd",`Switched to Run mode to run ${p.relPath}`,void 0,c.orange),0),fe.start(p.path).catch(v=>setTimeout(()=>L("error","/testmd",`Run failed: ${v.message}`),0)))},onExport:p=>{Xr(!1),Es(p.path,{language:I.code_export.language??"python",env:me}).then(v=>setTimeout(()=>L("ok","/testmd",`Exported code \u2192 ${v.codeDir}`),0)).catch(v=>setTimeout(()=>L("error","/testmd",`Export failed: ${v.message}`),0))}}),ht&&!O.isRunning&&(()=>{let p=Li.find(v=>v.id===ht);return p?.children?(0,w.jsx)(ci,{items:p.children,onRunSelected:()=>vr(null),onDismiss:()=>vr(null),onActiveViewChange:Ri,renderLoginWizard:v=>{let f=_?.phase??"wizard";if(f==="project")return(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:null,env:_.env,onSelect:(g,T)=>{b.creds.saveProfileConfig(_.profile,_.env,{project_id:g,project_name:T}),L("ok","/config project",T,`id: ${g}`),be(j=>j?{...j,phase:"folder"}:null)},onCancel:async()=>{if(!_)return;let g=await ro(_.profile,_.env);g&&(pt(b.creds,m,_.profile,_.env,{projectId:g.id,projectName:g.name}),L("ok","/config project",g.name,`id: ${g.id}`),be(T=>T?{...T,phase:"folder"}:null))}});if(f==="folder"){let g=b.creds.loadProfileConfig(_.profile,_.env);return(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:g?.project_id??"",currentFolderId:null,env:_.env,onSelect:(T,j)=>{b.creds.saveProfileConfig(_.profile,_.env,{folder_id:T,folder_name:j}),L("ok","/config folder",j,`id: ${T}`),dt(_.profile,_.env),be(null),v()},onCancel:async()=>{if(!_)return;let T=b.creds.loadProfileConfig(_.profile,_.env);if(!T?.project_id)return;let j=await no(_.env,T.project_id);j&&(pt(b.creds,m,_.profile,_.env,{folderId:j.id,folderName:j.name}),L("ok","/config folder",j.name,`id: ${j.id}`),dt(_.profile,_.env),be(null),v())}})}return(0,w.jsx)(an,{devMode:process.env.KANE_DEV_MODE==="1",profiles:b.creds.listProfiles(),onBasicLogin:async(g,T,j,U)=>{let{validateBasicAuth:X}=await import("./validate-basic-F6DP3VUX.js");await X(T,j,U),b.creds.saveBasicAuth(g,T,{username:j,access_key:U}),b.creds.setActiveProfile(g),b.creds.setDefaultEnv(T),at(b.creds,m,g,T),b.setTokenValid(!0),Qe()},onOAuthLogin:async(g,T)=>{b.creds.setDefaultEnv(T),await b.login(g),at(b.creds,m,g,T),Qe()},onComplete:(g,T)=>{vt(Jn(T),st).then(()=>{be({phase:"project",profile:g,env:T})}).catch(()=>{be({phase:"project",profile:g,env:T})})},onCancel:()=>{be(null),v()}})},renderProfilesView:v=>(0,w.jsx)(yo,{creds:b.creds,onSwitch:(f,g)=>{let T=b.creds.getActiveProfile()??"(none)";b.creds.setActiveProfile(f),b.creds.setDefaultEnv(g),at(b.creds,m,f,g),dt(f,g),Qe(),vt(wi(g),st).catch(()=>{}),L("ok","/profiles switch",`${T} \u2192 ${f} [${g}]`),v()},onCancel:v}),renderChromeProfilePicker:v=>(0,w.jsx)(Eo,{currentPath:I.chrome_profile_path,onSelect:f=>{m.save({chrome_profile_path:f}),he(m.load()),L("ok","/config chrome-profile",f),v()},onCancel:v}),renderProjectPicker:v=>(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:I.project_id,env:me,onSelect:(f,g)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{projectId:f,projectName:g}),he(m.load()),L("ok","/config project",g,`id: ${f}`),v()},onCancel:v}),renderFolderPicker:v=>(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:I.project_id??"",currentFolderId:I.folder_id,env:me,onSelect:(f,g)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{folderId:f,folderName:g}),he(m.load()),L("ok","/config folder",g,`id: ${f}`),v()},onCancel:v}),renderWindowSizePicker:v=>(0,w.jsx)(mi,{currentWidth:I.window_size.width,currentHeight:I.window_size.height,onSelect:(f,g)=>{m.set("window_size",{width:f,height:g}),he(m.load()),L("ok","/config set-window",`${f} \xD7 ${g}`),v()},onCancel:v})},ht):null})(),ht&&Pe&&(0,w.jsx)(S,{paddingX:1,marginTop:1,children:(0,w.jsx)(s,{color:Pe.color,children:Pe.text})}),xe==="run"&&!ht&&!Sr&&!br&&!Ft&&O.askingUser&&(0,w.jsxs)(S,{flexDirection:"column",marginLeft:2,paddingLeft:1,marginTop:1,children:[(0,w.jsx)(S,{marginLeft:1,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"Agent Question"})}),(0,w.jsx)(S,{borderStyle:"round",borderColor:c.orange,flexDirection:"column",paddingX:2,paddingY:1,width:70,children:(0,w.jsxs)(S,{children:[(0,w.jsx)(S,{width:3,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"?"})}),(0,w.jsx)(S,{flexShrink:1,children:(0,w.jsx)(s,{wrap:"wrap",children:O.askingUser})})]})})]}),Wr&&(()=>{let p=Wr,v=p.reason==="switch"?p.to==="run"?"Discard the current generation and switch to Run?":"Stop the current run / discard its results and switch to Generate?":"Switching profile will end this generation. Continue?",f=p.reason==="switch"?"Discard & switch":"Yes, end";return(0,w.jsx)(au,{message:v,confirmLabel:f,onConfirm:async()=>{if(p.reason==="switch"){let T=p.to;wr(null),ft.confirmSwitch(T);return}_t();let g=p.pendingArgs;if(wr(null),await ie.end(),ie.reset(),g.profile){let T=b.creds.getDefaultEnv(),j=b.creds.getActiveProfile()??"(none)";b.creds.setActiveProfile(g.profile),b.creds.setDefaultEnv(T),at(b.creds,m,g.profile,T),dt(g.profile,T),Qe(),vt({kind:"switch",env:T},st).catch(()=>{}),L("ok","/profiles switch",`${j} \u2192 ${g.profile} [${T}]`)}else ho("/profiles switch")},onCancel:()=>wr(null)})})(),xe==="run"&&!ht&&!Sr&&!br&&!Ft&&!Wr&&!fe.running&&(0,w.jsx)($t,{onSubmit:ho,onEscape:void 0,history:xu,commands:Jc,clearSeq:Eu,placeholder:O.askingUser?"Type your answer...":O.isRunning?"Run in progress... Ctrl+C to cancel":"Type an objective... (/ = commands)",footerBindings:[{keys:"\u2191\u2193",label:"history"},{keys:"\u21B5",label:"submit"},{keys:"tab",label:"complete"},{keys:"ctrl+r",label:"search"},{keys:"/generate",label:"test cases"}]}),xe==="generate"&&!ht&&!Sr&&!br&&!Ft&&!Wr&&(0,w.jsx)(iu,{tcg:ie,gm:ft,history:vu,tuiConfig:I,browse:Pt.isOpen?{target:Pt.target,onClose:Pt.close,excluded:Pt.excluded,onToggleCase:Pt.toggleCase,onToggleScenario:Pt.toggleScenario,getStatus:ft.bifurcation.getStatus,getResult:ft.bifurcation.getResult}:null})]})]}),V&&W&&tt&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Io,{steps:mr,status:tt.status,testUrl:tt.testUrl,error:tt.error}),tt.status==="success"&&(0,w.jsx)(un,{recordedTestPath:qt?.recordedTestPath,outputDir:qt?.outputDir,shareableLink:tt.testUrl,testCaseLink:tt.testCaseLink,codeExportDir:tt.codeExportDir,autoExit:!1})]}),Ft&&(0,w.jsx)(qs,{defaultName:Ft,onSubmit:Pu}),gr&&(0,w.jsx)(Fs,{onSubmit:_u}),Wt&&tt&&(0,w.jsx)(Io,{steps:mr,status:tt.status,error:tt.error}),V&&!W&&(0,w.jsx)(Vc,{profile:Kt,environment:me,tokenValid:b.tokenValid,runCount:oe,sessionId:l.sessionId,viewMode:Hr,breadcrumb:Bu,chatMode:xe,footerHint:ku,tcgRequestId:ie.requestId,tcgStreamStatus:ie.isStreaming?"streaming":ie.isReconnecting?"reconnecting":ie.isTerminal&&ie.state.status.toLowerCase()==="completed"?"completed":ie.isTerminal&&ie.state.status.toLowerCase()==="failed"?"failed":null})]})}function Rg({profiles:e,onSelect:t,onCancel:r,validating:n}){let[o,i]=(0,E.useState)(0);return Ee((a,u)=>{if(!n){if(u.escape){r();return}if(u.upArrow&&o>0&&i(d=>d-1),u.downArrow&&o<e.length-1&&i(d=>d+1),u.return){let d=e[o];t(d.profile,d.env)}}}),(0,w.jsxs)(S,{flexDirection:"column",paddingX:1,children:[(0,w.jsx)(s,{color:"#ff9500",bold:!0,children:"Select a profile:"}),(0,w.jsx)(S,{marginTop:1,flexDirection:"column",children:e.map((a,u)=>(0,w.jsxs)(s,{children:[u===o?"\u276F ":" ",(0,w.jsx)(s,{color:u===o?"#ff9500":"white",bold:u===o,children:a.profile}),(0,w.jsxs)(s,{color:"gray",children:[" [",a.env,"]"]})]},`${a.profile}-${a.env}`))}),n&&(0,w.jsx)(S,{marginTop:1,children:(0,w.jsx)(s,{color:"yellow",children:"Validating credentials..."})}),!n&&(0,w.jsx)(S,{marginTop:1,children:(0,w.jsx)(s,{color:"gray",children:"Esc = new login"})})]})}export{Wc as a,mu as b,LR as c};
|
|
21
|
+
${f}`})}},[O.runError,O.isRunning,ge,l]);let Qr=(0,E.useCallback)(async()=>{l.log("info","EXIT_UPLOAD_START","Starting exit upload pipeline"),pr(ln()),gt({status:"uploading"});let p=b.getResolvedBasicAuth(),v=null;if(!p&&(v=await b.getToken(),!v))return l.log("warn","EXIT_UPLOAD_ABORTED","Exit upload aborted \u2014 no auth available"),null;let f=qe??await Ht();if(!f)return l.log("warn","EXIT_UPLOAD_ABORTED","Exit upload aborted \u2014 no TMS credentials"),l.setUploadStatus("failed","Could not get TMS credentials"),null;l.log("info","EXIT_UPLOAD_CONFIG","Exit upload configuration",{test_id:l.testId,commit_id:l.sessionId,project_id:I.project_id,session_dir:l.sessionDir,run_dirs:l.getRunDirs()});let g={basicAuth:p??null,token:v,resolver:b.getResolver(),resolvedCreds:f};Ut.current&&(l.log("info","SCREENSHOT_UPLOAD_DRAIN","Draining screenshot queue before pipeline"),await Ut.current.drain(),l.log("info","SCREENSHOT_UPLOAD_DRAINED","Screenshot queue drained"));let T=bs({session:l,env:me,auth:g,variables:ae.current??{raw:{},auteur:{},auteurObjective:"",secretEntries:[],nonSecretEntries:[]},variableIds:ye.current,projectId:I.project_id,folderId:I.folder_id,totalSteps:ao.current,totalDuration:co.current,screenshotExtMap:Ut.current?.getExtMap(),codeExport:ws({codeExport:t,codeLanguage:r,skipCodeValidation:n},I.code_export),onProgress:(X,ee,le)=>{l.log("info","EXIT_PROGRESS","Upload progress",{step:X,status:ee,detail:le}),pr(Ze=>ms(Ze,X,ee,le))},log:(X,ee,le,Ze)=>l.log(X,ee,le,Ze),shouldUploadArtifacts:!0,shouldReplaceLocalOutput:!1,shouldCommit:!1,isFirstRun:!0}),U=await new Ts(T).execute();if(U.success){l.log("info","EXIT_UPLOAD_OK","Exit upload succeeded",{test_id:U.testId,testcase_id:U.testcaseId??null,share_id:U.shareId??null}),l.setUploadStatus("uploaded"),U.testId&&l.setTestId(U.testId),U.testcaseId&&l.setTestcaseId(U.testcaseId);let X=ze(me),ee=I.project_id,le=U.testcaseId&&U.shareId&&ee?ko(X.testManagerUiUrl,ee,U.testcaseId,U.shareId):void 0,Ze=U.testcaseId&&ee?Ao(X.testManagerUiUrl,ee,U.testcaseId):void 0;gt({status:"success",testUrl:le,testCaseLink:Ze,codeExportDir:U.codeExportDir}),cu({shareableLink:le,testCaseLink:Ze,codeExportDir:U.codeExportDir})}else l.log("error","EXIT_UPLOAD_FAILED","Exit upload failed",{error:U.error}),l.setUploadStatus("failed",U.error),gt({status:"failed",error:U.error});return U},[b,me,l,I,qe,Ht]),Zr=(0,E.useCallback)(async()=>{l.log("info","SESSION_RESET_START","Starting session reset via /new"),Vt(!0);let p=l.getFlows();p.length>0&&H((0,w.jsx)(pi,{flows:p}));let v=null;if(!e)try{v=await Qr()??null}catch(T){l.log("error","SESSION_RESET_UPLOAD_FAILED","Upload failed during /new",{error:String(T)}),ge({type:"error",text:"Upload failed \u2014 session data saved locally."})}let f=null;try{let{persistRecordedSession:T}=await import("./persist-recorded-session-V4OYUDBM.js");f=T(l,{testcaseId:l.testcaseId??void 0,projectId:I.project_id??void 0,folderId:I.folder_id??void 0,codeExportDir:v?.codeExportDir})}catch(T){l.log("error","SESSION_RESET_PERSIST_FAILED","Persist failed during /new",{error:String(T)})}if(v?.success&&v.testcaseId||f){let T=ze(me),j=I.project_id,U=v?.testcaseId;H((0,w.jsx)(un,{recordedTestPath:f?.recordedTestPath,outputDir:f?.outputDir,shareableLink:U&&v?.shareId&&j?ko(T.testManagerUiUrl,j,U,v.shareId):void 0,testCaseLink:U&&j?Ao(T.testManagerUiUrl,j,U):void 0,codeExportDir:v?.codeExportDir,autoExit:!1}))}l.testId&&Vr(T=>[...T,{testId:l.testId,runCount:oe}]),zr.killChrome(),await l.finish("complete");let g=new cn;g.start({model:I.model,environment:me,profile:Kt??null}),R.current=g,y(T=>T+1),l.log("info","SESSION_RESET_COMPLETE","Session reset complete",{new_session_id:g.sessionId}),await vt({kind:"resessionize",env:me},st),ue(0),ao.current=0,co.current=0,G.current=0,Z.current="",ae.current=null,ye.current={},tn.current=0,mo.current=0,lo.current=null,uo.current=null,so.current=null,Q.current=!1,io.current=null,Te(null),A(null),gt(null),pr(ln()),Vt(!1),H((0,w.jsxs)(S,{flexDirection:"column",marginY:1,children:[(0,w.jsx)(s,{color:c.dim,children:"\u2500".repeat(44)}),(0,w.jsx)(s,{color:c.green,bold:!0,children:"New session started"})]}))},[l,ge,H,e,Qr,zr,oe,I,me,Kt,st]),_i=(0,E.useCallback)(async()=>{if(!(l.nextRunIndex()>0)){ge({type:"info",text:"No runs in current session."});return}if(O.isRunning){ge({type:"error",text:"Cannot reset while a run is in progress. Cancel the run first."});return}if(I.mode==="testing"&&!l.sessionName){zt("new"),hr(Bo());return}await Zr()},[l,O,ge,I.mode,Zr]),Pi=(0,E.useCallback)(async()=>{await l.finish("complete"),nr(0,"Session complete")},[l]),_u=(0,E.useCallback)(async p=>{Fr(!1);let v=l.testId??(Le.length>0?Le[Le.length-1].testId:null);if(p&&v){l.log("info","EXIT_FEEDBACK_SUBMIT","Submitting session feedback",{choice:p});try{let f=ze(me),g=b.getResolvedBasicAuth();g&&await mu({tmsBaseUrl:f.tmsBaseUrl,username:g.username,accessKey:g.access_key,testId:v,feedbackType:p,log:(T,j,U,X)=>l.log(T,j,U,X)})}catch(f){l.log("error","EXIT_FEEDBACK_FAILED","Feedback submission failed",{error:String(f)})}}else l.log("info","EXIT_FEEDBACK_SKIPPED","Feedback skipped");Pi()},[me,b,l,Pi,Le]),en=(0,E.useCallback)(async()=>{let p=l.nextRunIndex()>0,v=null;if(p&&!e){l.log("info","EXIT_WITH_ACTIVE_SESSION","Exit with active session \u2014 uploading first"),se(!0);try{v=await Qr()??null}catch(g){l.log("error","EXIT_UPLOAD_FAILED","Exit upload failed",{error:String(g)})}l.testId&&Vr(g=>[...g,{testId:l.testId,runCount:oe}])}try{let{persistRecordedSession:g}=await import("./persist-recorded-session-V4OYUDBM.js"),T=g(l,{testcaseId:l.testcaseId??void 0,projectId:I.project_id??void 0,folderId:I.folder_id??void 0,codeExportDir:v?.codeExportDir});T&&Qn(T)}catch(g){l.log("error","EXIT_PERSIST_FAILED","Persist failed during /exit",{error:String(g)})}if(p&&!e&&await l.finish("complete"),!(l.testId??(Le.length>0?Le[Le.length-1].testId:null))||e){await l.finish("complete"),nr(0,"No test ID \u2014 quick exit");return}se(!0),Fr(!0)},[l,e,Qr,oe,Le,I]),Lt=(0,E.useCallback)(async()=>{if(W)return;l.log("info","EXIT_START","TUI exit initiated");let p=I.mode==="testing",v=l.nextRunIndex()>0;if(p&&v&&!l.sessionName){zt("exit"),hr(Bo());return}await en()},[W,l,I.mode,en]),Pu=(0,E.useCallback)(p=>{p&&l.setSessionName(p);let v=qr;hr(null),zt(null),v==="new"?Zr():en()},[l,qr,en,Zr]);(0,E.useEffect)(()=>{if(!W)return;let p=300*1e3,v=setTimeout(async()=>{l.setUploadStatus("failed","Upload timed out after 5m"),await l.finish("complete"),nr(0,"Upload timed out after 5m")},p);return()=>clearTimeout(v)},[W,l]);let tn=E.default.useRef(0),fo=E.default.useRef(null),mo=E.default.useRef(0),po=E.default.useRef(0),go=E.default.useRef(null);Ee((p,v)=>{if(v.ctrl&&p==="c"){if(xe==="generate"&&(ie.isStreaming||ft.submitting)){ft.cancelGenerate(),po.current++,go.current&&clearTimeout(go.current),go.current=setTimeout(()=>{po.current=0},2e3),po.current>=2&&Lt();return}if(!fe.running){if(W){mo.current+=1,mo.current>=2&&(l.setUploadStatus("pending","Force exit by user"),l.finish("complete"),nr(0,"Force exit by user"));return}if(O.isRunning){O.cancelRun(),ge({type:"info",text:"Run cancelled."}),tn.current++,fo.current&&clearTimeout(fo.current),fo.current=setTimeout(()=>{tn.current=0},2e3),tn.current>=2&&Lt();return}Lt()}}}),Ee((p,v)=>{if(v.ctrl&&p==="t"&&xe==="generate"&&!ie.isStreaming){Jr("no thinking yet");return}});let Li=E.default.useMemo(()=>{let p=b.creds.getActiveProfile()??"none",v=b.creds.getDefaultEnv();return[{id:"run",label:"Run",type:"submenu",children:[{id:"run-start",label:"Start Run",type:"action"},{id:"run-config",label:"Run Config",type:"submenu",children:[{id:"run-headless",label:"Headless",type:"select",currentValue:de.headless?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:f=>{Rr(g=>({...g,headless:f==="on"}))}},{id:"run-max-steps",label:"Max Steps",type:"text-input",currentValue:String(de.maxSteps),onValue:f=>{let g=parseInt(f,10);g>0&&Rr(T=>({...T,maxSteps:g}))}},{id:"run-timeout",label:"Timeout (sec)",type:"text-input",currentValue:de.timeout?String(de.timeout):"",placeholder:"0 = no timeout",onValue:f=>{let g=parseInt(f,10);Rr(T=>({...T,timeout:isNaN(g)?0:g}))}},{id:"run-cdp",label:"CDP Endpoint",type:"text-input",currentValue:de.cdpEndpoint,placeholder:"http://127.0.0.1:9222",onValue:f=>{Rr(g=>({...g,cdpEndpoint:f}))}},{id:"run-ws",label:"WS Endpoint",type:"text-input",currentValue:de.wsEndpoint,placeholder:"wss://...",onValue:f=>{Rr(g=>({...g,wsEndpoint:f}))}}]}]},{id:"auth",label:"Auth",type:"submenu",children:[{id:"login",label:"Login",type:"action",onLoginWizard:()=>{}},{id:"logout",label:"Logout",type:"action",onAction:()=>{b.logout().then(f=>{Qe();let g=b.creds.getActiveProfile(),T=b.creds.getDefaultEnv();dt(g,T);let j=fu(g,T);vt(j,st).catch(()=>{}),f?L("ok","/logout",`Logged out: ${f.profile} [${f.env}]`):L("ok","/logout","No active profile")}).catch(()=>{L("error","/logout","Logout failed")})}},{id:"whoami",label:"Who Am I",type:"action",onInfo:()=>{let f=b.creds.getActiveProfile()??"none",g=b.creds.getDefaultEnv(),T=b.creds.loadBasicAuth(f,g),j=T?"basic":b.creds.loadCredentials(f,g)?"oauth":"not configured";return{title:"Who Am I",sections:[{label:"Identity",entries:[{key:"Profile",value:f},{key:"Environment",value:g}]},{label:"Authentication",entries:[{key:"Method",value:j},...T?[{key:"Username",value:T.username}]:[]]},{label:"Token",entries:[{key:"Status",value:b.tokenValid?"valid":"not logged in",color:b.tokenValid?c.green:c.red}]}]}}},{id:"balance",label:"Credit Balance",type:"action",suppressFeedback:!0,onAction:()=>{(async()=>{let f=b.creds.getActiveProfile()??"default",g=b.creds.getDefaultEnv(),T=ze(g);try{let j=b.getBasicAuth(),U=j?null:await b.getToken();if(!j&&!U){et({text:"Not authenticated. Run /login first.",color:c.red});return}let{ControllerClient:X}=await import("./controller-client-RD2YEMAH.js"),le=await(j?new X(T.controllerBaseUrl,{username:j.username,accessKey:j.access_key}):new X(T.controllerBaseUrl,U)).getCreditBalance();et({text:`Credits \u2014 available: ${le.available_credits}, total: ${le.total_credits} (${f} / ${g})`,color:c.green})}catch(j){et({text:`Balance check failed: ${j instanceof Error?j.message:String(j)}`,color:c.red})}Mt.current&&clearTimeout(Mt.current),Mt.current=setTimeout(()=>{et(null),Mt.current=null},5e3)})()}},{id:"profiles",label:"Profiles",type:"action",onProfilesView:()=>{}}]},{id:"config",label:"Config",type:"submenu",children:[{id:"config-show",label:"Show",type:"action",onInfo:()=>({title:"Show Config",sections:[{label:"General",entries:[{key:"Model",value:"v16-alpha"},{key:"Mode",value:I.mode},{key:"Hints",value:I.hints_enabled===!1?"off":"on"}]},{label:"Browser",entries:[{key:"Window",value:`${I.window_size.width}x${I.window_size.height}`},{key:"Chrome Profile",value:I.chrome_profile_path?I.chrome_profile_path.split("/").pop()??I.chrome_profile_path:"(temporary)"}]},{label:"Project",entries:[{key:"Project",value:I.project_name?`${I.project_name} (${I.project_id})`:I.project_id??"(none)"},{key:"Folder",value:I.folder_name?`${I.folder_name} (${I.folder_id})`:I.folder_id??"(none)"},{key:"Default URL",value:I.default_url??vo}]},{label:"Code Export",entries:[{key:"Enabled",value:I.code_export.enabled?"yes":"no"},{key:"Language",value:I.code_export.language},{key:"Skip Validation",value:I.code_export.skip_validation?"yes":"no"}]}]})},{id:"config-chrome",label:"Chrome Profile",type:"action",onChromeProfilePicker:()=>{}},{id:"config-project",label:"Project",type:"action",onProjectPicker:()=>{}},{id:"config-folder",label:"Folder",type:"action",...I.project_id?{onFolderPicker:()=>{}}:{onInfo:()=>({title:"Folder",sections:[{entries:[{key:"Status",value:"Select a project first",color:c.dim}]}]})}},{id:"config-window",label:"Window Size",type:"action",currentValue:`${I.window_size.width}x${I.window_size.height}`,onWindowSizePicker:()=>{}},{id:"config-default-url",label:"Default URL",type:"text-input",currentValue:I.default_url??"",placeholder:"https://example.com",onValue:f=>{let g=Co(f);if(!g){L("error","/config set-url","Enter a valid URL (e.g. example.com)");return}m.set("default_url",g),he(m.load()),L("ok","/config set-url",g)}},{id:"config-mode",label:"Mode",type:"select",currentValue:I.mode,options:[{label:"testing",value:"testing"},{label:"action",value:"action"}],onValue:f=>{(f==="action"||f==="testing")&&(m.set("mode",f),he(m.load()),L("ok","/config set-mode",f))}},{id:"config-hints",label:"CLI Hints",type:"select",currentValue:I.hints_enabled===!1?"off":"on",options:[{label:"on",value:"on"},{label:"off",value:"off"}],onValue:f=>{let g=f==="on";m.set("hints_enabled",g),he(m.load()),L("ok","/config hints",`CLI hints ${g?"enabled":"disabled"}`)}},{id:"config-generate",label:"Generate",type:"submenu",currentValue:`${I.generate.scenario_limit}x${I.generate.per_scenario_limit}`,children:[{id:"config-generate-scenario-limit",label:"Scenario limit",type:"text-input",currentValue:String(I.generate.scenario_limit),placeholder:"5",onValue:f=>{let g=parseInt(f,10);if(!Number.isFinite(g)||g<1||g>20){L("error","/config",`Scenario limit must be 1-20 (got ${f})`);return}m.set("generate",{...I.generate,scenario_limit:g}),he(m.load()),L("ok","/config",`Scenario limit: ${g}`)}},{id:"config-generate-per-scenario-limit",label:"Per-scenario limit",type:"text-input",currentValue:String(I.generate.per_scenario_limit),placeholder:"4",onValue:f=>{let g=parseInt(f,10);if(!Number.isFinite(g)||g<1||g>20){L("error","/config",`Per-scenario limit must be 1-20 (got ${f})`);return}m.set("generate",{...I.generate,per_scenario_limit:g}),he(m.load()),L("ok","/config",`Per-scenario limit: ${g}`)}},{id:"config-generate-memory",label:"Memory",type:"select",currentValue:I.generate.memory_enabled?"on":"off",options:[{label:"on",value:"on"},{label:"off",value:"off"}],onValue:f=>{let g=f==="on";m.set("generate",{...I.generate,memory_enabled:g}),he(m.load()),L("ok","/config",`Memory: ${g?"on":"off"}`)}}]},{id:"config-code-export",label:"Code Export",type:"submenu",currentValue:I.code_export.enabled?"enabled":"disabled",children:[{id:"config-code-export-enabled",label:"Enabled",type:"select",currentValue:I.code_export.enabled?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:f=>{m.set("code_export",{...I.code_export,enabled:f==="on"}),he(m.load()),L("ok","/config code-export enabled",f)}},{id:"config-code-export-language",label:"Language",type:"select",currentValue:I.code_export.language,options:[{label:"python",value:"python"},{label:"javascript",value:"javascript"}],onValue:f=>{f!=="python"&&f!=="javascript"||(m.set("code_export",{...I.code_export,language:f}),he(m.load()),L("ok","/config code-export language",f))}},{id:"config-code-export-skip-validation",label:"Skip Validation",type:"select",currentValue:I.code_export.skip_validation?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:f=>{m.set("code_export",{...I.code_export,skip_validation:f==="on"}),he(m.load()),L("ok","/config code-export skip-validation",f)}}]}]},{id:"exit",label:"Exit",type:"action",onAction:()=>{Lt()}}]},[b,m,I,ge,Lt,de,Qe,L]),ho=(0,E.useCallback)(p=>{if(O.askingUser){let f=O.askingUser;H((0,w.jsxs)(S,{flexDirection:"column",marginLeft:2,paddingLeft:1,marginTop:1,children:[(0,w.jsx)(S,{marginLeft:1,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"Agent Question"})}),(0,w.jsxs)(S,{borderStyle:"round",borderColor:c.orange,flexDirection:"column",paddingX:2,paddingY:1,width:70,children:[(0,w.jsxs)(S,{children:[(0,w.jsx)(S,{width:3,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"?"})}),(0,w.jsx)(S,{flexShrink:1,children:(0,w.jsx)(s,{wrap:"wrap",children:f})})]}),(0,w.jsxs)(S,{marginTop:1,children:[(0,w.jsx)(S,{width:3,children:(0,w.jsx)(s,{color:c.dim,bold:!0,children:"\u2192"})}),(0,w.jsx)(S,{flexShrink:1,children:(0,w.jsx)(s,{wrap:"wrap",children:p})})]})]})]})),lo.current=null,O.sendAnswer(p);return}if(l.logCommand(p),O.isRunning){ge({type:"error",text:"Run in progress. Ctrl+C to cancel."});return}let v=Pn(p);if(v){if(!Qc(v.command,xe)){L("error",`/${v.command}`,`/${v.command} isn't available in ${xe==="run"?"Run":"Generate"} mode.`);return}switch(v.command){case"profiles":if(xe==="generate"&&ie.requestId&&v.args.action==="switch"){wr({reason:"profile",pendingArgs:v.args});return}vr("auth");return;case"login":case"logout":case"whoami":case"balance":case"auth":vr("auth");return;case"config":if(v.args.action==="set-url"){let f=Co(v.args.value);if(!f){L("error","/config set-url","Usage: /config set-url <url>");return}m.set("default_url",f),he(m.load()),L("ok","/config set-url",f);return}vr("config");return;case"help":Ti(!0);return;case"testmd":if(O.isRunning||ie.isStreaming||fe.running){L("error","/testmd","Finish or cancel the current run/generation first.");return}fe.clearResult(),Xr(!0);return;case"generate":if(fe.running){L("error","/generate","Finish or cancel the running test first.");return}xe==="run"?ft.requestSwitch("generate")&&L("ok","/generate","Switched to Generate mode.",void 0,c.generateAccent):L("ok","/generate","Already in Generate mode.",void 0,c.generateAccent);return;case"run":{let f=Zc(xe,v.args.objective);switch(f.kind){case"run":oo(f.objective,v.args.url);return;case"reject":L("error","/run",'Switch to Run mode first (bare /run), then /run "objective".');return;case"already":L("ok","/run","Already in Run mode.",void 0,c.orange);return;case"toggle":ft.requestSwitch("run")&&L("ok","/run","Switched to Run mode.",void 0,c.orange);return}return}case"update":{(async()=>{let{getUpdateCommand:f}=await import("./version-check-43WUFMCW.js");L("ok","/update",`To update kane-cli, run: ${f()}`)})();return}case"summary":{if(xe==="generate"&&!ie.requestId){Jr("no generation yet"),L("ok","/summary","(no generation yet)");return}let f=l.getFlows();if(f.length===0){L("ok","/summary","No runs yet in this session.");return}let g=v.args.index?parseInt(v.args.index,10):void 0;if(g!==void 0&&!l.getFlow(g)){L("error","/summary",`No flow at index ${g}`,`${f.length} flow${f.length===1?"":"s"} available. Use /summary to see all.`);return}H((0,w.jsx)(pi,{flows:f,filterIndex:g})),L("ok","/summary",g!==void 0?`Flow ${g}`:`${f.length} flow${f.length===1?"":"s"}`);return}case"new":xe==="generate"&&ie.requestId&&(_t(),ie.end().catch(f=>{L("error","/new",`Could not end generation cleanly: ${f.message}`)}),ie.reset()),_i(),L("ok","/new","Session reset");return;case"name":{let f=v.raw.replace(/^\/name\s*/,"").trim();if(!f){L("error","/name","Usage: /name <new-name>");return}(async()=>{let{validateNameOrThrow:g}=await import("./name-validator-5YGJXLZ7.js");try{g(f),l.setSessionName(f),L("ok","/name",`Session name set: ${f}`)}catch(T){L("error","/name",T.message)}})();return}case"cancel":if(xe==="generate"&&ie.isStreaming){_t(),ie.cancel(),L("ok","/cancel","Cancelled");return}if(xe==="generate"&&!ie.requestId){Jr("no generation yet"),L("ok","/cancel","(no generation yet)");return}if(fe.running){fe.cancel(),L("ok","/cancel","Run cancelled");return}O.cancelRun(),L("ok","/cancel","Run cancelled");return;case"clear":L("ok","/clear","Chat cleared");return;case"exit":xe==="generate"&&ie.requestId&&(_t(),ie.end()),Lt();return;default:L("error",`/${v.command}`,"Unknown command");return}}if(p.trim().toLowerCase()==="exit"){Lt();return}H((0,w.jsxs)(S,{children:[(0,w.jsx)(s,{color:c.orange,children:"\u276F "}),(0,w.jsx)(s,{children:p})]})),oo(p,void 0)},[O,ge,L,H,l,oo,Lt,_i,xe,ie.isStreaming,ie.requestId,ie,Jr,_t,fe]);Ii.current=ho;let Bi=(0,E.useRef)(!1);(0,E.useEffect)(()=>{if(!Bi.current&&V&&u==="generate"&&d){Bi.current=!0;let p=setTimeout(()=>{Cu(d)},50);return()=>clearTimeout(p)}},[V,u,d]);let $i=b.getAuthInfo(),Lu=$i?$i.method==="basic"?"basic auth":"oauth":"not logged in",Bu=(()=>{if(Sr)return["help"];if(br)return["testmd"];if(_)return _.phase==="wizard"?["auth","login"]:_.phase==="project"?["auth","login","project"]:_.phase==="folder"?["auth","login","folder"]:["auth","login"];let p={infoView:"info",loginWizard:"login",profilesView:"profiles",chromeProfilePicker:"chrome-profile",projectPicker:"project",folderPicker:"folder",windowSizePicker:"set-window"};return ht==="auth"?Gr?["auth",p[Gr]]:["auth"]:ht==="config"?Gr?["config",p[Gr]]:["config"]:ht==="help"?["help"]:O.askingUser?["agent question"]:[]})();return(0,w.jsxs)(S,{flexDirection:"column",children:[!V&&!xr&&(0,w.jsx)(Uc,{onComplete:()=>{let p=b.creds.getActiveProfile(),v=b.creds.getDefaultEnv(),f=p?b.creds.loadCredentials(p,v):null,g=p?b.creds.loadBasicAuth(p,v):null,T=!!(f||g),j=g?.username??p??null;H((0,w.jsx)(An,{size:"full",helmetVisibleRows:8,textVisibleRows:7,showMeta:!0,version:mt,authenticated:T,user:j})),pu(!0);let U=(X,ee,le,Ze)=>{l.log(X,ee,le,Ze)};if(is(b.creds,U).then(X=>{if(X.status==="authenticated"){let{profile:ee,env:le,tmsCreds:Ze}=X.result;b.creds.setActiveProfile(ee),b.creds.setDefaultEnv(le),Qe(),Je(Ze),He("ready"),$(!0)}else X.status==="needs_pick"?(eo(X.profiles),He("pick")):He("login")}).catch(X=>{l.log("error","STARTUP_GATE_ERROR","Auth gate failed",{error:String(X)}),He("login")}),o&&o.then(async X=>{if(X){let{getUpdateCommand:ee}=await import("./version-check-43WUFMCW.js");L("ok","update available",`${X.current} \u2192 ${X.latest}`,`Run: ${ee()}`)}}).catch(()=>{}),i&&i.changes.length>0){let X=`kane-cli updated to ${i.toVersion}. Default settings changed:`,ee=[...i.changes.map(le=>`\u2022 ${le.description} (${le.field}: ${JSON.stringify(le.from)} \u2192 ${JSON.stringify(le.to)})`),"","Use /config to review or revert any of these."].join(`
|
|
22
|
+
`);L("ok","defaults updated",X,ee)}}}),!V&&Ue==="booting"&&xr&&(0,w.jsx)(S,{paddingX:1,children:(0,w.jsx)(s,{color:"yellow",children:"Checking authentication..."})}),!V&&Ue==="pick"&&(0,w.jsx)(Rg,{profiles:Yt,onCancel:()=>He("login"),onSelect:async(p,v)=>{b.creds.setActiveProfile(p),b.creds.setDefaultEnv(v),Qe(),Se(!0);let f=(g,T,j,U)=>{l.log(g,T,j,U)};try{let g=await os(b.creds,p,v,f);Se(!1),g.status==="authenticated"?(dt(p,v),Je(g.result.tmsCreds),He("ready"),$(!0)):He("login")}catch{Se(!1),He("login")}},validating:Ur}),!V&&Ue==="login"&&!_&&(0,w.jsx)(an,{devMode:process.env.KANE_DEV_MODE==="1",profiles:b.creds.listProfiles(),onBasicLogin:async(p,v,f,g)=>{let{validateBasicAuth:T}=await import("./validate-basic-3W5ODPRI.js");await T(v,f,g),b.creds.saveBasicAuth(p,v,{username:f,access_key:g}),b.creds.setActiveProfile(p),b.creds.setDefaultEnv(v),at(b.creds,m,p,v),b.setTokenValid(!0),Qe()},onOAuthLogin:async(p,v)=>{b.creds.setDefaultEnv(v),await b.login(p),at(b.creds,m,p,v),Qe()},onComplete:(p,v)=>{vt(Jn(v),st).then(()=>{Qe(),be({phase:"project",profile:p,env:v})}).catch(()=>{be({phase:"project",profile:p,env:v})})},onCancel:()=>{nr(0,"Login cancelled at startup")}}),!V&&Ue==="login"&&_?.phase==="project"&&(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:null,env:_.env,onSelect:(p,v)=>{b.creds.saveProfileConfig(_.profile,_.env,{project_id:p,project_name:v}),L("ok","/config project",v,`id: ${p}`),be({..._,phase:"folder"})},onCancel:async()=>{let p=await ro(_.profile,_.env);p&&(pt(b.creds,m,_.profile,_.env,{projectId:p.id,projectName:p.name}),L("ok","/config project",p.name,`id: ${p.id}`),be({..._,phase:"folder"}))}}),!V&&Ue==="login"&&_?.phase==="folder"&&(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:b.creds.loadProfileConfig(_.profile,_.env)?.project_id??"",currentFolderId:null,env:_.env,onSelect:(p,v)=>{b.creds.saveProfileConfig(_.profile,_.env,{folder_id:p,folder_name:v}),L("ok","/config folder",v,`id: ${p}`),dt(_.profile,_.env),be(null),He("ready"),$(!0)},onCancel:async()=>{let p=b.creds.loadProfileConfig(_.profile,_.env);if(!p?.project_id)return;let v=await no(_.env,p.project_id);v&&(pt(b.creds,m,_.profile,_.env,{folderId:v.id,folderName:v.name}),L("ok","/config folder",v.name,`id: ${v.id}`),dt(_.profile,_.env),be(null),He("ready"),$(!0))}}),V&&Hr==="menu"&&!W&&(0,w.jsx)(S,{marginBottom:1,children:(0,w.jsxs)(S,{borderStyle:"round",borderColor:"#dc4e08",paddingX:2,children:[(0,w.jsx)(s,{color:"#ff9500",bold:!0,children:"KaneAI CLI"}),(0,w.jsx)(s,{color:c.dim,children:" \u2502 "}),(0,w.jsx)(s,{color:"#ff9500",children:I.model}),(0,w.jsx)(s,{color:c.dim,children:" \u2502 "}),(0,w.jsx)(s,{color:c.dim,children:Lu}),(0,w.jsx)(s,{color:c.dim,children:" \u2502 "}),(0,w.jsxs)(s,{color:c.dim,children:[Kt??"no profile","/",me]})]})}),V&&!W&&(0,w.jsxs)(S,{flexDirection:"column",flexGrow:1,children:[Hr==="menu"&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(ci,{items:Li,onRunSelected:()=>gu("chat"),onActiveViewChange:Ri,renderLoginWizard:p=>{let v=_?.phase??"wizard";if(v==="project")return(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:null,env:_.env,onSelect:(f,g)=>{b.creds.saveProfileConfig(_.profile,_.env,{project_id:f,project_name:g}),L("ok","/config project",g,`id: ${f}`),be(T=>T?{...T,phase:"folder"}:null)},onCancel:async()=>{if(!_)return;let f=await ro(_.profile,_.env);f&&(pt(b.creds,m,_.profile,_.env,{projectId:f.id,projectName:f.name}),L("ok","/config project",f.name,`id: ${f.id}`),be(g=>g?{...g,phase:"folder"}:null))}});if(v==="folder"){let f=b.creds.loadProfileConfig(_.profile,_.env);return(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:f?.project_id??"",currentFolderId:null,env:_.env,onSelect:(g,T)=>{b.creds.saveProfileConfig(_.profile,_.env,{folder_id:g,folder_name:T}),L("ok","/config folder",T,`id: ${g}`),dt(_.profile,_.env),be(null),p()},onCancel:async()=>{if(!_)return;let g=b.creds.loadProfileConfig(_.profile,_.env);if(!g?.project_id)return;let T=await no(_.env,g.project_id);T&&(pt(b.creds,m,_.profile,_.env,{folderId:T.id,folderName:T.name}),L("ok","/config folder",T.name,`id: ${T.id}`),dt(_.profile,_.env),be(null),p())}})}return(0,w.jsx)(an,{devMode:process.env.KANE_DEV_MODE==="1",profiles:b.creds.listProfiles(),onBasicLogin:async(f,g,T,j)=>{let{validateBasicAuth:U}=await import("./validate-basic-3W5ODPRI.js");await U(g,T,j),b.creds.saveBasicAuth(f,g,{username:T,access_key:j}),b.creds.setActiveProfile(f),b.creds.setDefaultEnv(g),at(b.creds,m,f,g),b.setTokenValid(!0),Qe()},onOAuthLogin:async(f,g)=>{b.creds.setDefaultEnv(g),await b.login(f),at(b.creds,m,f,g),Qe()},onComplete:(f,g)=>{vt(Jn(g),st).then(()=>{be({phase:"project",profile:f,env:g})}).catch(()=>{be({phase:"project",profile:f,env:g})})},onCancel:()=>{be(null),p()}})},renderProfilesView:p=>(0,w.jsx)(yo,{creds:b.creds,onSwitch:(v,f)=>{let g=b.creds.getActiveProfile()??"(none)";b.creds.setActiveProfile(v),b.creds.setDefaultEnv(f),at(b.creds,m,v,f),dt(v,f),Qe(),vt(wi(f),st).catch(()=>{}),L("ok","/profiles switch",`${g} \u2192 ${v} [${f}]`)},onCancel:p}),renderChromeProfilePicker:p=>(0,w.jsx)(Eo,{currentPath:I.chrome_profile_path,onSelect:v=>{m.set("chrome_profile_path",v),he(m.load()),L("ok","/config chrome-profile",v),p()},onCancel:p}),renderProjectPicker:p=>(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:I.project_id,env:me,onSelect:(v,f)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{projectId:v,projectName:f}),L("ok","/config project",f,`id: ${v}`),he(m.load()),p()},onCancel:p}),renderFolderPicker:p=>(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:I.project_id??"",currentFolderId:I.folder_id,env:me,onSelect:(v,f)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{folderId:v,folderName:f}),L("ok","/config folder",f,`id: ${v}`),he(m.load()),p()},onCancel:p}),renderWindowSizePicker:p=>(0,w.jsx)(mi,{currentWidth:I.window_size.width,currentHeight:I.window_size.height,onSelect:(v,f)=>{m.set("window_size",{width:v,height:f}),he(m.load()),L("ok","/config set-window",`${v} \xD7 ${f}`),p()},onCancel:p})}),Pe&&(0,w.jsx)(S,{paddingX:1,marginTop:1,children:(0,w.jsx)(s,{color:Pe.color,children:Pe.text})})]}),Hr==="chat"&&(0,w.jsxs)(w.Fragment,{children:[(()=>{let p=qi({isRunning:O.isRunning,bifurcationInfo:O.bifurcationInfo,steps:O.steps,cmInitCounts:O.cmInitCounts,replayInfo:O.replayInfo});return p?(0,w.jsx)(Fi,{label:p.label,hasBifurcation:p.hasBifurcation}):null})(),O.isRunning&&O.steps.length>0&&(0,w.jsx)(Vi,{steps:O.steps,bifurcated:!!O.bifurcationInfo&&!O.bifurcationInfo.isSingleFlow,flows:O.bifurcationInfo?.flows,cmInitCounts:O.cmInitCounts,onStepCommit:H},`run-${G.current}`),fe.runViewProps&&(0,w.jsx)(fs,{...fe.runViewProps,onCancel:()=>{fe.runViewProps?.onCancel?.(),fe.cancel()}}),Sr&&(0,w.jsx)(rl,{onClose:()=>Ti(!1),version:mt,environment:b.creds.getDefaultEnv(),sessionId:l.sessionId,runUrl:I.default_url??vo,mode:xe}),br&&(0,w.jsx)(il,{cwd:process.cwd(),currentOrgId:String(qe?.org_id??""),onClose:()=>Xr(!1),onRun:p=>{if(O.isRunning||ie.isStreaming||fe.running){setTimeout(()=>L("error","/testmd","Finish or cancel the current run first."),0);return}Xr(!1),!(xe==="generate"&&!ft.requestSwitch("run"))&&(xe==="generate"&&setTimeout(()=>L("ok","/testmd",`Switched to Run mode to run ${p.relPath}`,void 0,c.orange),0),fe.start(p.path).catch(v=>setTimeout(()=>L("error","/testmd",`Run failed: ${v.message}`),0)))},onExport:p=>{Xr(!1),Es(p.path,{language:I.code_export.language??"python",env:me}).then(v=>setTimeout(()=>L("ok","/testmd",`Exported code \u2192 ${v.codeDir}`),0)).catch(v=>setTimeout(()=>L("error","/testmd",`Export failed: ${v.message}`),0))}}),ht&&!O.isRunning&&(()=>{let p=Li.find(v=>v.id===ht);return p?.children?(0,w.jsx)(ci,{items:p.children,onRunSelected:()=>vr(null),onDismiss:()=>vr(null),onActiveViewChange:Ri,renderLoginWizard:v=>{let f=_?.phase??"wizard";if(f==="project")return(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:null,env:_.env,onSelect:(g,T)=>{b.creds.saveProfileConfig(_.profile,_.env,{project_id:g,project_name:T}),L("ok","/config project",T,`id: ${g}`),be(j=>j?{...j,phase:"folder"}:null)},onCancel:async()=>{if(!_)return;let g=await ro(_.profile,_.env);g&&(pt(b.creds,m,_.profile,_.env,{projectId:g.id,projectName:g.name}),L("ok","/config project",g.name,`id: ${g.id}`),be(T=>T?{...T,phase:"folder"}:null))}});if(f==="folder"){let g=b.creds.loadProfileConfig(_.profile,_.env);return(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:g?.project_id??"",currentFolderId:null,env:_.env,onSelect:(T,j)=>{b.creds.saveProfileConfig(_.profile,_.env,{folder_id:T,folder_name:j}),L("ok","/config folder",j,`id: ${T}`),dt(_.profile,_.env),be(null),v()},onCancel:async()=>{if(!_)return;let T=b.creds.loadProfileConfig(_.profile,_.env);if(!T?.project_id)return;let j=await no(_.env,T.project_id);j&&(pt(b.creds,m,_.profile,_.env,{folderId:j.id,folderName:j.name}),L("ok","/config folder",j.name,`id: ${j.id}`),dt(_.profile,_.env),be(null),v())}})}return(0,w.jsx)(an,{devMode:process.env.KANE_DEV_MODE==="1",profiles:b.creds.listProfiles(),onBasicLogin:async(g,T,j,U)=>{let{validateBasicAuth:X}=await import("./validate-basic-3W5ODPRI.js");await X(T,j,U),b.creds.saveBasicAuth(g,T,{username:j,access_key:U}),b.creds.setActiveProfile(g),b.creds.setDefaultEnv(T),at(b.creds,m,g,T),b.setTokenValid(!0),Qe()},onOAuthLogin:async(g,T)=>{b.creds.setDefaultEnv(T),await b.login(g),at(b.creds,m,g,T),Qe()},onComplete:(g,T)=>{vt(Jn(T),st).then(()=>{be({phase:"project",profile:g,env:T})}).catch(()=>{be({phase:"project",profile:g,env:T})})},onCancel:()=>{be(null),v()}})},renderProfilesView:v=>(0,w.jsx)(yo,{creds:b.creds,onSwitch:(f,g)=>{let T=b.creds.getActiveProfile()??"(none)";b.creds.setActiveProfile(f),b.creds.setDefaultEnv(g),at(b.creds,m,f,g),dt(f,g),Qe(),vt(wi(g),st).catch(()=>{}),L("ok","/profiles switch",`${T} \u2192 ${f} [${g}]`),v()},onCancel:v}),renderChromeProfilePicker:v=>(0,w.jsx)(Eo,{currentPath:I.chrome_profile_path,onSelect:f=>{m.save({chrome_profile_path:f}),he(m.load()),L("ok","/config chrome-profile",f),v()},onCancel:v}),renderProjectPicker:v=>(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:I.project_id,env:me,onSelect:(f,g)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{projectId:f,projectName:g}),he(m.load()),L("ok","/config project",g,`id: ${f}`),v()},onCancel:v}),renderFolderPicker:v=>(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:I.project_id??"",currentFolderId:I.folder_id,env:me,onSelect:(f,g)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{folderId:f,folderName:g}),he(m.load()),L("ok","/config folder",g,`id: ${f}`),v()},onCancel:v}),renderWindowSizePicker:v=>(0,w.jsx)(mi,{currentWidth:I.window_size.width,currentHeight:I.window_size.height,onSelect:(f,g)=>{m.set("window_size",{width:f,height:g}),he(m.load()),L("ok","/config set-window",`${f} \xD7 ${g}`),v()},onCancel:v})},ht):null})(),ht&&Pe&&(0,w.jsx)(S,{paddingX:1,marginTop:1,children:(0,w.jsx)(s,{color:Pe.color,children:Pe.text})}),xe==="run"&&!ht&&!Sr&&!br&&!Ft&&O.askingUser&&(0,w.jsxs)(S,{flexDirection:"column",marginLeft:2,paddingLeft:1,marginTop:1,children:[(0,w.jsx)(S,{marginLeft:1,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"Agent Question"})}),(0,w.jsx)(S,{borderStyle:"round",borderColor:c.orange,flexDirection:"column",paddingX:2,paddingY:1,width:70,children:(0,w.jsxs)(S,{children:[(0,w.jsx)(S,{width:3,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"?"})}),(0,w.jsx)(S,{flexShrink:1,children:(0,w.jsx)(s,{wrap:"wrap",children:O.askingUser})})]})})]}),Wr&&(()=>{let p=Wr,v=p.reason==="switch"?p.to==="run"?"Discard the current generation and switch to Run?":"Stop the current run / discard its results and switch to Generate?":"Switching profile will end this generation. Continue?",f=p.reason==="switch"?"Discard & switch":"Yes, end";return(0,w.jsx)(au,{message:v,confirmLabel:f,onConfirm:async()=>{if(p.reason==="switch"){let T=p.to;wr(null),ft.confirmSwitch(T);return}_t();let g=p.pendingArgs;if(wr(null),await ie.end(),ie.reset(),g.profile){let T=b.creds.getDefaultEnv(),j=b.creds.getActiveProfile()??"(none)";b.creds.setActiveProfile(g.profile),b.creds.setDefaultEnv(T),at(b.creds,m,g.profile,T),dt(g.profile,T),Qe(),vt({kind:"switch",env:T},st).catch(()=>{}),L("ok","/profiles switch",`${j} \u2192 ${g.profile} [${T}]`)}else ho("/profiles switch")},onCancel:()=>wr(null)})})(),xe==="run"&&!ht&&!Sr&&!br&&!Ft&&!Wr&&!fe.running&&(0,w.jsx)($t,{onSubmit:ho,onEscape:void 0,history:xu,commands:Jc,clearSeq:Eu,placeholder:O.askingUser?"Type your answer...":O.isRunning?"Run in progress... Ctrl+C to cancel":"Type an objective... (/ = commands)",footerBindings:[{keys:"\u2191\u2193",label:"history"},{keys:"\u21B5",label:"submit"},{keys:"tab",label:"complete"},{keys:"ctrl+r",label:"search"},{keys:"/generate",label:"test cases"}]}),xe==="generate"&&!ht&&!Sr&&!br&&!Ft&&!Wr&&(0,w.jsx)(iu,{tcg:ie,gm:ft,history:vu,tuiConfig:I,browse:Pt.isOpen?{target:Pt.target,onClose:Pt.close,excluded:Pt.excluded,onToggleCase:Pt.toggleCase,onToggleScenario:Pt.toggleScenario,getStatus:ft.bifurcation.getStatus,getResult:ft.bifurcation.getResult}:null})]})]}),V&&W&&tt&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Io,{steps:mr,status:tt.status,testUrl:tt.testUrl,error:tt.error}),tt.status==="success"&&(0,w.jsx)(un,{recordedTestPath:qt?.recordedTestPath,outputDir:qt?.outputDir,shareableLink:tt.testUrl,testCaseLink:tt.testCaseLink,codeExportDir:tt.codeExportDir,autoExit:!1})]}),Ft&&(0,w.jsx)(qs,{defaultName:Ft,onSubmit:Pu}),gr&&(0,w.jsx)(Fs,{onSubmit:_u}),Wt&&tt&&(0,w.jsx)(Io,{steps:mr,status:tt.status,error:tt.error}),V&&!W&&(0,w.jsx)(Vc,{profile:Kt,environment:me,tokenValid:b.tokenValid,runCount:oe,sessionId:l.sessionId,viewMode:Hr,breadcrumb:Bu,chatMode:xe,footerHint:ku,tcgRequestId:ie.requestId,tcgStreamStatus:ie.isStreaming?"streaming":ie.isReconnecting?"reconnecting":ie.isTerminal&&ie.state.status.toLowerCase()==="completed"?"completed":ie.isTerminal&&ie.state.status.toLowerCase()==="failed"?"failed":null})]})}function Rg({profiles:e,onSelect:t,onCancel:r,validating:n}){let[o,i]=(0,E.useState)(0);return Ee((a,u)=>{if(!n){if(u.escape){r();return}if(u.upArrow&&o>0&&i(d=>d-1),u.downArrow&&o<e.length-1&&i(d=>d+1),u.return){let d=e[o];t(d.profile,d.env)}}}),(0,w.jsxs)(S,{flexDirection:"column",paddingX:1,children:[(0,w.jsx)(s,{color:"#ff9500",bold:!0,children:"Select a profile:"}),(0,w.jsx)(S,{marginTop:1,flexDirection:"column",children:e.map((a,u)=>(0,w.jsxs)(s,{children:[u===o?"\u276F ":" ",(0,w.jsx)(s,{color:u===o?"#ff9500":"white",bold:u===o,children:a.profile}),(0,w.jsxs)(s,{color:"gray",children:[" [",a.env,"]"]})]},`${a.profile}-${a.env}`))}),n&&(0,w.jsx)(S,{marginTop:1,children:(0,w.jsx)(s,{color:"yellow",children:"Validating credentials..."})}),!n&&(0,w.jsx)(S,{marginTop:1,children:(0,w.jsx)(s,{color:"gray",children:"Esc = new login"})})]})}export{Wc as a,mu as b,LR as c};
|